更新时间:2026-06-10 GMT+08:00
分享

调用MCP服务

智能体运行时支持部署和运行MCP服务器。本章节介绍如何创建、测试并部署MCP服务器。

步骤1:创建MCP服务器

步骤2:在本地测试MCP服务器

步骤3:将MCP服务器部署到AgentArts

步骤4:调用已部署的MCP服务器

前提条件

  • 操作系统:Linux ARM64,服务器可访问公网。

    需使用ARM64系统制作的Agent镜像,使用X86系统制作的镜像在调用智能体运行时时会调用失败。

  • 安装Python:请确保Python 3.10及以上版本已安装。

    大多数Linux发行版(如Ubuntu)都预装了Python,您可以先通过python3 --version检查。如未安装,可以使用如下命令安装:

    sudo apt update
    sudo apt install python3

步骤1:创建MCP服务器

  1. 安装MCP软件包。

    pip install mcp

  2. 创建MCP服务器。

    参考以下代码示例创建名为mcp_test.py的服务器。

    # mcp_test.py
    from mcp.server.fastmcp import FastMCP
    mcp = FastMCP(host="0.0.0.0", stateless_http=True, port=8000)
    @mcp.tool()
    def add(a: float, b: float) -> float:
        """Add two numbers"""
        return a + b
    @mcp.tool()
    def subtract(a: float, b: float) -> float:
        """Subtract two numbers"""
        return a - b
    @mcp.tool()
    def multiply(a: float, b: float) -> float:
        """Multiply two numbers"""
        return a * b
    @mcp.tool()
    def divide(a: float, b: float) -> float:
        """Divide two numbers"""
        if abs(b) < 1e-9:
            raise ValueError("Division by zero")
        return a / b
    if __name__ == "__main__":
        mcp.run(transport="streamable-http")

    代码解释

    • FastMCP:创建可以托管工具的MCP服务器。
    • @mcp.tool() : 将Python函数转换为MCP工具的装饰器。
    • Tools:工具,展示不同类型的操作。
    • stateless_http=True:将服务器配置为无状态模式。

步骤2:在本地测试MCP服务器

  1. 启动MCP服务器。

    python mcp_test.py

    看到输出信息后,表明服务器正在8000端口上运行。

  2. 使用curl命令进行客户端测试。

    示例如下:

    # 获取工具列表
    curl -X POST http://127.0.0.1:8000/mcp \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
    
    # 调用工具
    curl -X POST http://127.0.0.1:8000/mcp \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
          "name": "add",
          "arguments": {"a": 3, "b": 5}
        }
      }'
    注意
    Streamable HTTP 要求客户端 Accept 头必须同时包含 application/json 和 text/event-stream,否则服务器返回 406 Not Acceptable。

步骤3:将MCP服务器部署到AgentArts

  1. 在本地自主开发MCP并打包成镜像,并将打包的镜像上传至容器镜像服务。
  2. 部署智能体运行时,部署时“入栈协议”请选择为“MCP”,具体请参考通过控制台部署智能体运行时

    图1 部署智能体运行时

步骤4:调用已部署的MCP服务器

  1. 登录AgentArts智能体平台
  2. 在左侧导航栏选择“部署运行 > 智能体运行时 ”。
  3. 在列表单击已创建好的智能体运行时名称,进入智能体运行时详情页。
  4. 在“基本信息”区域即可查看“访问域名”。

    图2 获取访问域名

  5. 使用API调用智能体运行时

    使用API调用智能体运行时的操作,请参考调用智能体运行时

    Streamable HTTP 要求客户端 Accept 头必须同时包含 application/json 和 text/event-stream,否则服务器返回 406 Not Acceptable。

相关文档