Skip to main content

Seamlessly connect MCP tools to LangChain Agents.

Project description

🚀 Easy MCP — 让 MCP 工具像本地函数一样简单

一行代码集成任意 MCP 服务 自动管理子进程生命周期 · 零配置接入 LangChain / LangGraph Agent

✨ 特性

  • 自动资源管理:无需手动启动/关闭 MCP 服务
  • 零侵入集成:返回标准 LangChain Tool 列表
  • 多服务支持:高德地图、天气、数据库 MCP 一次性接入
  • 生产可用:异常安全、子进程隔离、异步非阻塞

🚀 快速开始

1. 安装

pip install easy-mcp

2. 🧪「5 行代码」调用高德地图 MCP

from src.easy_mcp import MCPToolLoader
import asyncio


async def main():
    async with MCPToolLoader([{
        "command": "npx",
        "args": ["-y", "@amap/amap-maps-mcp-server"],
        "env": {"AMAP_MAPS_API_KEY": "你的密钥"}
    }]) as tools:
        search = next(t for t in tools if t.name == "maps_text_search")
        print(await search.ainvoke({"keywords": "西湖", "city": "杭州"}))


asyncio.run(main())

输出示例

{
  "pois": [
    {"name": "杭州西湖", "location": "120.1551,30.2741", ...}
  ]
}

🤖 构建 MCP-Powered Agent

from langgraph.graph import StateGraph
from src.easy_mcp import MCPToolLoader

async with MCPToolLoader([高德配置]) as tools:
    graph = StateGraph(MessagesState)
    graph.add_node("agent", create_agent_node(tools))
    # ... 添加更多工具结点 ...
    app = graph.compile()
    await app.ainvoke({"messages": [("user", "西湖附近有什么酒店?")]})

👉 查看完整示例:examples/full_agent_demo.py

🔧 支持的 MCP 服务

服务 安装命令 必需环境变量
高德地图 npx @amap/amap-maps-mcp-server AMAP_MAPS_API_KEY
天气 API npx @weather/mcp-server WEATHER_API_KEY
自定义 MCP 任意符合 MCP 协议的进程 -

📂 项目结构

easy-mcp/
├── examples/
│   ├── quickstart.py          # 5 行上手示例
│   └── full_agent_demo.py     # 完整 LangGraph Agent 示例
├── src/easy_mcp/
│   ├── __init__.py            # 导出 MCPToolLoader
│   ├── bridge.py              # MCP ↔ LangChain 适配器
│   └── client.py              # MCP 客户端封装
└── README.md

❓ 常见问题(FAQ)

Q: 如何添加新的 MCP 服务?

只需在 MCPToolLoader([...]) 的列表中添加一个新的配置:

{
    "command": "python",
    "args": ["my_mcp_server.py"],
    "env": {"API_KEY": "..."}
}

Q: 子进程会残留吗?

不会。 MCPToolLoader 使用 AsyncExitStack 和自动回收机制保证:

  • MCP 子进程 100% 自动退出
  • 不留下僵尸进程
  • 异常情况下仍可安全清理

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easy_mcp_langchain-0.1.2.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easy_mcp_langchain-0.1.2-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file easy_mcp_langchain-0.1.2.tar.gz.

File metadata

  • Download URL: easy_mcp_langchain-0.1.2.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for easy_mcp_langchain-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d27a38be8e191b8afbbfbfdea59dc8a6b8dd0aeb44ebe73a83d3a9e561980210
MD5 6661fc1d9682831b3a51b8ccf4319623
BLAKE2b-256 3703128f0751c5d7dcf6da511574d52d180e17cbb89610c3df362596e42099cd

See more details on using hashes here.

File details

Details for the file easy_mcp_langchain-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for easy_mcp_langchain-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cb74268c04d151837edf5cc96c6730bcdbb0ac5a6a66b46e8cced5504a5ce52d
MD5 336ae3aa07d013d0b9c511d8853348a6
BLAKE2b-256 59e7bf3f8b5dca803f1f4d381ec9851aa9e565676a0918260e7e5056bc7d50d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page