如何使用开源 MCP 工具?

May 15, 2026 · View on GitHub

在使用 MCP 的过程中,您可能希望使用外部工具。OxyGent 支持如同本地工具一样集成外部的开源工具,您可以使用基于 MCP 协议的 oxy.StdioMCPClient 引入外部工具。

什么是 MCP?

MCP(Model Context Protocol)是一个开放标准协议,用于将 AI 智能体连接到外部工具和数据源。通过 MCP,您可以让智能体使用文件系统、数据库、搜索引擎、浏览器等各种外部功能,而无需自己编写工具代码。

OxyGent 原生支持 MCP 协议,提供三种 MCP 客户端:

  • oxy.StdioMCPClient — 通过标准输入/输出连接本地 MCP 服务器(最常用)
  • oxy.SSEMCPClient — 通过 SSE 连接远程 MCP 服务器
  • oxy.StreamableMCPClient — 通过 Streamable HTTP 连接远程 MCP 服务器

前置要求:安装 uv

本文档中的示例使用 uvx 命令运行 MCP 工具。uvxuv 包管理器提供的命令,可以直接运行 Python 包而无需全局安装。

安装 uv:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

在哪里找到 MCP 工具?

例如,如果您希望使用工具获取时间,您可以使用mcp-server-time工具:

oxy.StdioMCPClient(
    name="time_tools",
    params={
        "command": "uvx",
        "args": ["mcp-server-time", "--local-timezone=Asia/Shanghai"],
    },
),

完整的可运行样例

以下是可运行的完整代码示例:

import asyncio

from oxygent import MAS, oxy, Config
import os
from oxygent import preset_tools

Config.set_agent_llm_model("default_llm")

oxy_space = [
    oxy.HttpLLM(
        name="default_llm",
        api_key=os.getenv("DEFAULT_LLM_API_KEY"),
        base_url=os.getenv("DEFAULT_LLM_BASE_URL"),
        model_name=os.getenv("DEFAULT_LLM_MODEL_NAME"),
        llm_params={"temperature": 0.01},
        semaphore=4,
        timeout=240,
    ),
    oxy.StdioMCPClient(
        name="time_tools",
        params={
            "command": "uvx",
            "args": ["mcp-server-time", "--local-timezone=Asia/Shanghai"],
        },
    ),
    preset_tools.file_tools,
    oxy.ReActAgent(
        name="master_agent",
        is_master=True,
        tools=["file_tools","time_tools"],
    ),
]


async def main():
    async with MAS(oxy_space=oxy_space) as mas:
        await mas.start_web_service(
            first_query="Hello!"
        )


if __name__ == "__main__":
    asyncio.run(main())

上一章:注册一个工具 下一章:使用 MCP 自定义工具 回到首页


相关示例