python直接获取mcp服务所有工具tools并单独调用单个tools代码

代码语言:python

所属分类:其他

代码描述:python直接获取mcp服务所有工具tools并单独调用单个tools代码,无需大模型参与。

代码标签: python 直接 获取 mcp 服务 所有 工具 tools 单独 调用 单个 tools

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*-
import asyncio
import sys
import json
import re
from typing import Optional
from contextlib import AsyncExitStack
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

class MCPClient:
    def __init__(self):
        """初始化 MCP 客户端"""
        self.exit_stack = AsyncExitStack()
        self.session: Optional[ClientSession] = None

    async def connect_to_server(self):
        """连接到 MCP 服务器并列出可用工具"""
        # 定义 MCP 命令
        mcp_command = "npx"
        mcp_args = [
            "@smithery/cli@latest",
            "run",
            "fetch-mcp",
            "--key",
            "47e63351-1723-4ca2-b492-9c9a8cd6620f"
        ]
        full_command = [mcp_command] + mcp_args
        print(f"执行命令: {' '.join(full_command)}")

        # 设置服务器参数
        server_params = StdioServerParameters(
            command=mcp_command,
            args=mcp_args,
            env=None
        )

        # 启动 MCP 服务器并建立通信
        try:
            stdio_transport = await self.exit_stack.enter_async_context(
                stdio_client(server_params)
    .........完整代码请登录后点击上方下载按钮下载查看

网友评论0