Skip to content

LangChain

Use AllMCP tools in LangChain agents via langchain-mcp-adapters.


install
pip install langchain-mcp-adapters langchain-anthropic langgraph

agent.py
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_anthropic import ChatAnthropic
from langgraph.prebuilt import create_react_agent
async def main():
client = MultiServerMCPClient({
"allmcp": {
"url": "https://go.allmcp.co/mcp/",
"transport": "streamable_http",
"headers": {"X-API-Key": "YOUR_API_KEY"},
}
})
tools = await client.get_tools()
model = ChatAnthropic(model="claude-sonnet-4-6")
agent = create_react_agent(model, tools)
result = await agent.ainvoke({
"messages": [{"role": "user", "content": "List my Bitrix24 contacts"}]
})
print(result["messages"][-1].content)
asyncio.run(main())

agent.py
async def run_for_user(user_id: str, prompt: str) -> str:
client = MultiServerMCPClient({
"allmcp": {
"url": f"https://go.allmcp.co/mcp/?user_id={user_id}",
"transport": "streamable_http",
"headers": {"X-API-Key": "YOUR_API_KEY"},
}
})
tools = await client.get_tools()
agent = create_react_agent(ChatAnthropic(model="claude-sonnet-4-6"), tools)
result = await agent.ainvoke({"messages": [{"role": "user", "content": prompt}]})
return result["messages"][-1].content

agent.py
from langgraph.checkpoint.memory import MemorySaver
client = MultiServerMCPClient({...})
tools = await client.get_tools()
agent = create_react_agent(
ChatAnthropic(model="claude-sonnet-4-6"),
tools,
checkpointer=MemorySaver(),
)
config = {"configurable": {"thread_id": "session-1"}}
# Turn 1
await agent.ainvoke({"messages": [{"role": "user", "content": "Connect Bitrix24"}]}, config)
# Turn 2 — agent remembers the previous turn
result = await agent.ainvoke({"messages": [{"role": "user", "content": "Now list my deals"}]}, config)

agent.py
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4o")
agent = create_react_agent(model, tools)