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 도구를 호출하는 상태 유지 에이전트 워크플로우를 구현할 수 있습니다.

일반적인 워크플로우

  1. MCP 서버 실행FastMCP로 도구를 등록하는 모든 Python 프로세스(예: 수학 서비스 또는 날씨 서비스).
  2. 클라이언트 생성 – 서버 사양(stdio용 command + args, 또는 HTTP용 URL)을 사용하여 MultiServerMCPClient를 인스턴스화합니다.
  3. 도구 로드await client.get_tools() (또는 load_mcp_tools(session))를 통해 LangChain 도구 객체 목록을 반환받습니다.
  4. 에이전트 구축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
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트