test_mcp.py 1.3 KB

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