使用说明

  • 项目简介

    • 该仓库实现了一组基于 MCP(Model Context Protocol)的后端服务器,核心能力是以统一的接口向 LLM 客户端暴露资源、工具和可渲染的提示模板等上下文功能,便于 LLM 调用外部能力、获取数据并渲染对话模板。
    • 主要组件包含 MemoryMCPServer(内存/记忆相关操作)、RAGMCPServer(RAG/语义检索相关操作)等服务器实现,以及共用的 MCP 基类与工具/资源注册机制。
  • 主要功能点

    • 资源管理(Resources):注册、列出、获取资源等能力,便于 LLM 访问外部数据或服务。
    • 工具注册与执行(Tools):注册工具、执行工具的能力,LLM 可以通过调用工具实现外部功能。
    • 服务清单与协议支持:提供服务器清单、工具/资源列表,以及针对 MCP 客户端的 manifest 信息。
    • 基础服务器能力:MP/JSON-RPC 风格的请求处理、异步调用、错误处理、扩展性接口(get_resource、call_tool、list_tools、list_resources、get_manifest 等)。
    • 简单示例服务器:MemoryMCPServer 提供记忆/搜索相关工具,RAGMCPServer 提供语义检索与生成相关工具。
  • 安装步骤

    • 将代码克隆到本地或部署到服务器环境中。
    • 按需安装 Python 环境并安装依赖(如需要的异步框架、JSON 处理、以及 MCP 相关依赖)。
    • 将 MCP 服务端作为独立进程启动(参见下方服务器配置示例),确保服务器能够暴露 JSON-RPC 风格的接口供 MCP 客户端访问。
  • 服务器配置(MCP 客户端需要的最小信息) 注:以下配置用于 MCP 客户端建立与 MCP 服务器的连接。每个服务器实例需在客户端配置中指向对应的后端服务。

    • MemoryMCPServer(内存记忆相关) { "server": "devteam6-memory", "command": "python", "args": ["-m", "local_ai.mcp.memory_server"] }

    • RAGMCPServer(RAG 相关) { "server": "devteam6-rag", "command": "python", "args": ["-m", "local_ai.mcp.rag_server"] }

    说明:

    • server 字段表示 MCP 服务器的名称,应与代码中暴露的名称一致(MemoryMCPServer 对应 memory,RAGMCPServer 对应 rag)。
    • command 与 args 指定运行服务器进程的命令与参数,客户端在初始化时通过该信息启动或连接服务器。
    • MCP 客户端不需要在这里执行具体的业务逻辑,仅需要启动并通过 JSON-RPC 与服务器交互。
  • 基本使用方法

    • 启动阶段
      • 启动 MemoryMCPServer:确保内存相关操作服务可用,后续可以通过 MCP 客户端发起 memory 相关请求。
      • 启动 RAGMCPServer:确保语义检索与生成能力可用,后续通过 MCP 客户端发起 rag 相关请求。
    • 客户端交互阶段
      • 读取资源:通过 MCP 请求读取资源信息,获取资源的元数据或具体内容。
      • 调用工具:通过 MCP 请求调用已注册的工具(如 memory 的 store_memory、query_memory 等),获得处理结果。
      • 获取和渲染 Prompt/模板:通过相应接口获取 Prompt 模板并进行渲染(如果实现中添加了,请求 Prompts 的渲染信息)。
    • 服务器扩展阶段
      • 可以在 MemoryMCPServer/RAGMCPServer 的基础上,注册更多的工具、资源,并实现自定义的 get_resource/call_tool 行为,以满足具体应用场景。
  • 基本注意事项

    • MCP 的客户端实现应遵循官方 MCP 规范的请求格式、响应格式和错误处理策略,确保与服务器端的 call_tool、get_resource、get_manifest 等方法对接。
    • 服务器端实现应关注并发、错误处理、权限控制等实际生产场景的需求,当前仓库提供了骨架与核心对接点,实际部署时可按需要扩展。

信息

分类

AI与计算