使用说明

项目简介

Python A2A 是一个全面的 Python 库,旨在简化 Agent-to-Agent (A2A) 系统的构建,并深度集成了 Model Context Protocol (MCP)。该库的核心组件 'FastMCP' 允许开发者快速创建兼容 MCP 协议的服务器,以便为大型语言模型(LLM)驱动的智能体提供标准化的工具和数据访问接口。

主要功能点

  • MCP 服务器实现: 提供 'FastMCP' 类,用于快速搭建 MCP 服务器,遵循 MCP 协议标准。
  • 工具注册: 通过装饰器 '@mcp.tool()' 轻松注册 Python 函数作为 MCP 工具,并支持定义工具的名称、描述和参数。
  • 资源管理: 使用 '@mcp.resource()' 装饰器注册资源,支持静态资源和 URI 模板资源,方便智能体访问外部数据。
  • FastAPI 传输: 内置基于 FastAPI 的 HTTP 传输层,易于部署和扩展。
  • 示例丰富: 提供详细的代码示例,展示如何创建 MCP 服务器、定义工具和资源,以及如何与 A2A 智能体集成。

安装步骤

  1. 确保已安装 Python 3.9 或更高版本。

  2. 安装 Python A2A 库,包含 MCP 支持的 extras 组件:

    pip install "python-a2a[mcp]"

    或者安装包含所有可选依赖的完整版本:

    pip install "python-a2a[all]"

服务器配置

MCP 服务器主要通过启动命令和参数进行配置。以下是一个基于 'examples/mcp/fastmcp_example.py' 示例生成的 MCP 客户端配置信息,用于连接一个简单的数学和实用工具 MCP 服务器:

{
  "serverName": "MathUtilsMCP",  // 自定义 MCP 服务器名称,用于客户端识别
  "command": "python",         // MCP 服务器的启动命令,这里使用 python 解释器
  "args": [                    // 启动参数列表
    "-m",                       // 运行模块
    "examples.mcp.fastmcp_example", // 指定要运行的 Python 模块为 fastmcp_example.py
    "--port",                   // 指定端口参数
    "5000"                      // 设置服务器监听端口为 5000
  ]
}

基本使用方法

  1. 定义 MCP 服务器:
    参考 'examples/mcp/fastmcp_example.py' 创建 Python 脚本,使用 'FastMCP' 类定义 MCP 服务器,并使用 '@mcp.tool()' 和 '@mcp.resource()' 装饰器注册工具和资源。

  2. 运行 MCP 服务器:
    在命令行中执行 Python 脚本,启动 MCP 服务器。例如,运行 'examples/mcp/fastmcp_example.py' 示例:

    python examples/mcp/fastmcp_example.py --port 5000
  3. MCP 客户端连接:
    MCP 客户端(例如,基于 Python A2A 库构建的 MCPClient)可以使用服务器配置信息连接到运行中的 MCP 服务器,并调用已注册的工具或访问资源。

    from python_a2a.mcp import MCPClient
    import asyncio
    
    async def main():
        client = MCPClient("http://localhost:5000")  # 假设服务器运行在本地 5000 端口
    
        # 获取可用工具列表
        tools = await client.get_tools()
        print("Available tools:", [tool['name'] for tool in tools])
    
        # 调用名为 "add" 的工具
        result = await client.call_tool("add", a=5, b=3)
        print("Tool 'add' result:", result)
    
    if __name__ == "__main__":
        asyncio.run(main())

通过以上步骤,您可以快速搭建和使用 Python A2A MCP 服务器,为您的 AI 智能体提供强大的扩展能力。

信息

分类

AI与计算