| 1234567891011121314151617181920212223242526272829303132333435363738 |
- """
- 同时获取多个MCP工具
- 使用获取资源的函数
- 使用自己的MCP stdio 与 sse
- """
- import asyncio
- from langchain_mcp_adapters.client import MultiServerMCPClient
- #1. 配置MCP客户端
- mcp_config = {
- "amap": {
- "url": "https://mcp.api-inference.modelscope.net/6ae8935632f641/sse",
- "transport": "sse",
- },
- "mcp_tools": {
- "url": "http://localhost:8000/sse", # 指向上面启动的 FastMCP 服务
- "transport": "sse",
- },
- }
- client = MultiServerMCPClient(mcp_config)
- async def get_mcp_tools():
- # 获取MCP工具
- tools = await client.get_tools()
- print(f"当前可用工具:{[t.name for t in tools]}")
- # 从指定 MCP Server 的 Resource 中读取数据
- # 每个 Resource 通过 URI 定位,就像访问一个 RESTful 端点
- async with client.session("mcp_tools") as session:
- # 拉取三条公司制度作为增强上下文
- leave_policy = await session.read_resource("knowledge://请假流程")
- expense_policy = await session.read_resource("knowledge://报销标准")
- print(f"[知识库] 请假流程: {leave_policy.contents[0].text}")
- print(f"[知识库] 报销标准: {expense_policy.contents[0].text}")
-
- if __name__ == "__main__":
- asyncio.run(get_mcp_tools())
|