langchain-ai/langchain-mcp-adapters
LangChain 🔌 MCP
LangChain MCP Adapters
개요 – Model Context Protocol (MCP)을 LangChain 생태계와 연결하는 작은 Python 패키지입니다. MCP 호환 서버의 함수("도구")를 LangChain/LangGraph 도구로 노출하여, 대규모 언어 모델 에이전트가 네이티브 @tool 함수처럼 이를 호출할 수 있게 합니다.
주요 기능
- 도구 변환 –
load_mcp_tools는 MCP로 설명된 도구를langchain.tools.Tool객체로 변환합니다. - 멀티 서버 클라이언트 –
MultiServerMCPClient는 여러 MCP 서버(stdio, HTTP, SSE, 또는 새로운 streamable-HTTP 트랜스포트)에 대한 연결을 유지하고 모든 도구를 통합할 수 있습니다. - 헤더 지원 – 서버별로 사용자 정의 HTTP/SSE 헤더(예: 인증 토큰)를 제공할 수 있습니다.
- 오류 처리 옵션 – MCP 실행 오류를
ToolMessage로 모델에 반환할지(기본값), 아니면 예외(exception)로 발생시킬지 선택할 수 있습니다. - LangGraph 통합 – LangGraph의
StateGraph,ToolNode및 LangGraph API 서버와 함께 작동하여, 원격 MCP 도구를 호출하는 상태 유지 에이전트 워크플로우를 구현할 수 있습니다.
일반적인 워크플로우
- MCP 서버 실행 –
FastMCP로 도구를 등록하는 모든 Python 프로세스(예: 수학 서비스 또는 날씨 서비스). - 클라이언트 생성 – 서버 사양(stdio용 command + args, 또는 HTTP용 URL)을 사용하여
MultiServerMCPClient를 인스턴스화합니다. - 도구 로드 –
await client.get_tools()(또는load_mcp_tools(session))를 통해 LangChain 도구 객체 목록을 반환받습니다. - 에이전트 구축 –
create_agent("openai:gpt-4.1", tools)를 호출하여 에이전트를 생성하고 실행합니다. 이제 모델이 원격 함수를 호출할 수 있습니다.
설치
pip install langchain-mcp-adapters
예시 (단일 stdio 서버)
# math_server.py – defines add & multiply
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Math")
@mcp.tool()
def add(a: int, b: int) -> int: return a + b
@mcp.tool()
def multiply(a: int, b: int) -> int: return a * b
if __name__ == "__main__":
mcp.run(transport="stdio")
# client side
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp_adapters.tools import load_mcp_tools
from langchain.agents import create_agent
params = StdioServerParameters(command="python", args=["/path/to/math_server.py"])
async with stdio_client(params) as (r, w):
async with ClientSession(r, w) as sess:
await sess.initialize()
tools = await load_mcp_tools(sess)
agent = create_agent("openai:gpt-4.1", tools)
resp = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})
print(resp)
멀티 서버 – 동일한 클라이언트로 stdio 기반 수학 서버와 HTTP 기반 날씨 서버를 동시에 가리킬 수 있으며, 도구를 자동으로 병합합니다.
상태 – 이 저장소는 아카이브되었습니다. MCP 지원은 LangChain의 메인 코드베이스인 langchain.mcp로 이동되었습니다. 어댑터는 여전히 사용할 수 있지만, 새로운 개발은 langchain[mcp]를 대상으로 해야 합니다.
요약 – 기존 MCP 서비스를 보유하고 있거나(또는 프로토콜을 실험해보고 싶은 경우) LangChain 또는 LangGraph 에이전트를 구축하고 있다면, langchain-mcp-adapters는 원격 도구를 LangChain의 일급 시민 도구로 나타나게 하는 준비된 브릿지 역할을 합니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트