💻 源码
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client


async def main():
    # 定义服务端参数:假设服务端脚本为 server.py
    server_params = StdioServerParameters(
        command=r"C:\Users\foxba\.conda\envs\langgraph2\python",
        args=["mcpServer.py"],
        env=None
    )

    # 使用 stdio_client 连接到服务端
    async with stdio_client(server_params) as (stdio, write):
        # 创建客户端会话
        async with ClientSession(stdio, write) as session:
            # 初始化会话
            await session.initialize()

            # 列出可用工具
            tools_response = await session.list_tools()
            print("可用工具:", [tool.name for tool in tools_response.tools])

            available_tools = [{
                "type":"function",
                "function":{
                    "name":tool.name,
                    "description":tool.description,
                    "input_schema":tool.inputSchema
                },
            } for tool in tools_response.tools]
            print(available_tools)

            # 调用 getTrainSchedule 工具
            result = await session.call_tool("getTrainSchedule", {"queryDate": "2025-10-15", "start": "青岛","end":"北京"})
            print("工具调用结果:", result)

# 运行异步客户端
if __name__ == "__main__":
    asyncio.run(main())