| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- """
- 第 2 步测试:连接本地 MCP Server,并直接调用 MCP 工具。
- 这一步还不接大模型,只验证:
- 1. MCP Client 能发现工具
- 2. MCP Client 能调用工具
- 3. MCP Server 能返回结果
- 运行:
- python step2_call_tool.py
- """
- from __future__ import annotations
- import asyncio
- import sys
- from pathlib import Path
- from langchain_mcp_adapters.client import MultiServerMCPClient
- async def main() -> None:
- server_file = Path(__file__).with_name("my_mcp_demo.py").resolve()
- client = MultiServerMCPClient(
- {
- "travel-tools": {
- "transport": "stdio",
- "command": sys.executable,
- "args": [str(server_file)],
- }
- }
- )
- tools = await client.get_tools()
- hotel_tool = next(tool for tool in tools if tool.name == "search_hotels")
- # 调用这个mcp工具
- result = await hotel_tool.ainvoke(
- {
- "city": "重庆",
- "nights": 2,
- "budget_per_night": 400,
- }
- )
- print("MCP 工具调用结果:")
- print(result)
- if __name__ == "__main__":
- asyncio.run(main())
|