异步模型上下文协议实现

AioMCP是一个轻量级的异步模型上下文协议(MCP)实现,用于AI助手与外部数据源和工具的连接。

  • by Matvey1109
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Matvey1109/AioMCP

使用说明

AioMCP(注:此词可能为特定领域或产品名称,直接翻译无具体含义,故保留原样)

一个基于Python的轻量级、异步的模型上下文协议(MCP)实现,使用asyncio构建。

什么是MCP?

这个(或“该”) 模型上下文协议(MCP) 这是一个开放协议,使人工智能助手能够连接到外部数据源和工具。可以将其视为人工智能模型与您的应用程序、数据库、API和服务进行交互的一种标准化方式。

📚 书籍 了解更多关于MCP的信息:

  • https://modelcontextprotocol.io/docs/getting-started/intro 的中文翻译为:“https://modelcontextprotocol.io/文档/入门/简介”
  • https://en.wikipedia.org/wiki/模型上下文协议(Model Context Protocol)

特点/特性

  • 🚀 这个符号本身没有直接的中文翻译,它通常代表火箭、快速移动或加速等概念。在中文语境中,可以简单地描述为“火箭”或根据上下文翻译为“飞速前进”、“加速”等。如果直接作为表情符号使用,可以保留原样或用“🚀(火箭)”来表示。 设计上异步 - 基于asyncio构建,以实现高性能
  • 🔧 修理工具/扳手(根据上下文,也可翻译为“修理”、“工具”等) 可扩展工具系统 - 轻松添加自定义工具和服务
  • 📡(天线/卫星天线) 简单协议 - 基于TCP的干净JSON通信
  • 🔌 表示“电源插头”或“充电/连接”的符号。 客户端与服务器 - 双方的全面实施

快速入门

运行示例

启动服务器:

python main.py server

在另一个终端中,运行客户端:

python main.py client

项目结构

aiomcp/
├── protocol.py         # Message types and serialization
├── tool_services.py    # Abstract tool service classes
├── tool_manager.py     # Tool registration and management
├── server.py           # MCP server implementation
├── client.py           # MCP client implementation
main.py                 # Entry point for examples

可用工具

AioMCP 随附三个示例工具:

  1. echo - 将输入文本回显
  2. add - 加两个数
  3. say_hello - 生成问候语

创建自定义工具

1. 创建一个工具服务

from aiomcp.tool_services import ToolService

class CustomToolService(ToolService):
    async def execute(self, arguments: dict[str, Any]) -> Any:
        # Your tool logic here
        return "Result"

2. 注册您的工具

from aiomcp.tool_manager import ToolManager
from aiomcp.protocol import Tool

tool_manager = ToolManager()
tool_manager.register_tool(
    Tool(
        name="custom_tool",
        description="My custom tool",
        parameters={
            "type": "object",
            "properties": {
                "param1": {"type": "string", "description": "First parameter"}
            },
            "required": ["param1"]
        }
    ),
    CustomToolService()
)

用例

  • 机器人🤖 AI助手集成 - 将大型语言模型(LLMs)连接到您的工具
  • 🔌(电源插头) 插件系统 - 动态工具发现与执行
  • 🏗 代表“建筑工地”或“正在建造中”的意思。 微服务 - 服务之间的轻量级远程过程调用(RPC)
  • 🧪 试管/实验器材 测试 - 在测试中模拟外部服务