使用说明

项目简介

本项目是 Simona AI Computer Operator 仓库的一部分,实现了一个简单的 Todo MCP Server。它基于 Model Context Protocol (MCP) 协议,旨在演示如何构建一个能够为大型语言模型 (LLM) 客户端提供待办事项管理功能的后端服务。该服务器定义了一系列 工具 (Tools),允许 LLM 客户端通过标准化的 JSON-RPC 接口创建、查询、更新和删除待办事项。

主要功能点

  • 待办事项管理: 提供创建、查看、更新和删除待办事项的功能。
  • MCP 服务器: 实现了 MCP 协议,可以作为 LLM 客户端的上下文服务提供者。
  • 工具 (Tools) 注册: 通过 '@server.tool' 装饰器注册了多个工具,例如 'create_todo', 'list_todos', 'get_todo', 'update_todo', 'delete_todo'。
  • JSON-RPC 接口: 使用 JSON-RPC 协议与客户端通信,接收请求并返回响应。
  • 本地运行: 服务器可以在本地运行,方便开发和测试。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/hiper2d/simona-ai-computer-operator
    cd simona-ai-computer-operator
  2. 安装依赖: 确保你的Python环境中安装了必要的依赖。虽然仓库中没有明确的 'requirements.txt' 文件,但根据代码内容,你可能需要安装 'pydantic' 和 'fastapi' (如果 'FastMCP' 基于 FastAPI 的话)。你可以尝试手动安装:

    pip install pydantic fastapi uvicorn

    注意:更完整的依赖安装步骤可能需要查看 'simona-ai-computer-operator' 项目的更上层目录,或者参考其文档。这里假设 'FastMCP' 依赖于 'pydantic' 和 'fastapi'。

  3. 运行服务器: 进入 'mcp' 目录,并运行 'server.py' 文件:

    cd mcp
    python server.py

    服务器默认会在 'http://127.0.0.1:5000' 启动。

服务器配置

以下 JSON 配置信息可以用于 MCP 客户端连接到此 Todo MCP Server。请注意,客户端需要能够执行 'python mcp/server.py --host 127.0.0.1 --port 5000' 命令来启动服务器。

{
  "server_name": "todo-server",  // MCP 服务器的名称,与 server.py 中 FastMCP 构造函数的 name 参数一致
  "command": "python",         // 启动服务器的命令,这里使用 python 解释器
  "args": [                    // 启动命令的参数列表
    "mcp/server.py",          // 服务器脚本的路径
    "--host", "127.0.0.1",     // 服务器监听的主机地址
    "--port", "5000"          // 服务器监听的端口号
  ]
}

基本使用方法

  1. 启动 MCP 客户端: 你需要一个兼容 MCP 协议的客户端,例如实现了 MCP 客户端功能的 LLM 应用。
  2. 配置客户端: 在 MCP 客户端中配置上述提供的服务器配置信息,以便客户端知道如何启动和连接到 Todo MCP Server。
  3. 调用工具: 客户端启动并连接到服务器后,可以向服务器发送 JSON-RPC 请求来调用已注册的工具,例如 'create_todo', 'list_todos' 等,以实现待办事项的管理。具体的工具调用方式和参数需要参考 MCP 协议和客户端的文档。

示例工具调用 (概念性,非实际代码):

假设客户端要调用 'create_todo' 工具创建一个新的待办事项,它会向服务器发送一个符合 JSON-RPC 规范的请求,类似如下结构:

{
  "jsonrpc": "2.0",
  "method": "call_tool",
  "params": {
    "tool_name": "create_todo",
    "tool_arguments": {
      "title": "Buy groceries"
    }
  },
  "id": "1"
}

服务器收到请求后,会执行 'create_todo' 函数,并将结果以 JSON-RPC 响应的形式返回给客户端。

信息

分类

生产力应用