模型上下文协议服务器与客户端

一个基于Agno框架的自定义模型上下文协议(MCP)服务器和客户端实现,支持工具调用和异步管理。

  • by Ashrokss
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Ashrokss/Custom-Mcp-with-Agno

使用说明

带Agno的定制MCP

此存储库演示了如何构建自定义 模型上下文协议(MCP) 服务器和客户端使用 硝酸银 代理框架。它的特点是:

  • ✅ A工作 MCP服务器 (自定义工具实现)
  • ✅ 蟒蛇 MCP客户端 由...驱动 Agno/Agno.tools
  • ✅ 示例代理工作流、处理工具调用和异步管理
  • ✅ 干净的示例架构,依赖性最小

📘 建筑

  1. MCP服务器(mcp_server.py):服务于工具端点,例如网络搜索。
  2. 客户(mcp_client.py):代理侧运行器使用 agno.tools.MCPTools
  3. 代理逻辑:处理查询、调用工具和处理结果。

特性

  • 通过异步上下文管理 anyio 和 async with MCPTools(...).
  • 代理重试和错误处理(包括处理“设备上没有剩余空间”问题)。
  • 用于添加新工具或扩展MCP接口的模板。
  • 中包含的代理运行循环示例 mcp_client.py.

📁 编码结构

文件 描述
mcp_server.py 带有示例工具实现的Python MCP服务器
mcp_client.py 代理客户端发出查询并处理代理响应
requirements.txt Python依赖关系: agno, anyio等等。
.venv/ (可选)虚拟环境目录
config/config 环境变量,如 SERPER_API_KEY & GROQ_API_KEY

🔑 设置配置

在 config.py,定义:

class Config:
    GROQ_API_KEY = "<your_groq_api_key>"
    SERPER_API_KEY = "<your_serper_api_key>"