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())