项目简介

本项目是 Ephemera AI 项目中的一个子模块,专门用作符合 Model Context Protocol (MCP) 标准的服务端实现。它的设计目标是为连接到它的 LLM 客户端提供访问 Ephemera AI 系统的长期记忆、工具和预定义Prompt模板的能力,作为 AI 获取外部上下文和执行外部动作的标准接口层。

主要功能点

  • 上下文能力声明: 声明支持资源 (Resources)、工具 (Tools) 和 Prompt 模板 (Prompts) 三种主要 MCP 能力。
  • 资源访问 (Resources): 提供方法允许 LLM 客户端列出和读取预定义的上下文资源(例如,示例性的文件路径和内存片段)。
  • 工具注册与执行 (Tools): 注册名为 'add' 和 'recall' 的工具,旨在未来实现记忆的添加和检索功能。目前工具实现为待完成的逻辑,但已定义了工具的接口和描述。
  • Prompt 模板 (Prompts): 提供名为 'example_prompt' 的Prompt模板,客户端可以通过提供参数来渲染该模板,获取用于与LLM交互的结构化文本。
  • 会话管理: 基于 MCP 协议处理来自客户端的请求和响应。
  • 传输协议: 支持基于 Server-Sent Events (SSE) 的传输方式。

安装步骤

请参考仓库的 'README.md' 文件。目前安装说明标记为 'TODO',尚待完善。

服务器配置

MCP 客户端需要以下信息来连接到 Ephemera AI 上下文服务器。这些信息通常在客户端的配置文件中以 JSON 格式表示:

{
  "name": "ephemera-mcp-server", // 服务器的标识名称
  "command": "ephemera-mcp",     // 启动服务器的可执行文件名 (假设构建后生成此名称)
  "args": [],                    // 启动服务器所需的命令行参数列表 (当前代码中无额外参数)
  "transport": {                 // 传输协议配置
    "sse": {                     // 使用 Server-Sent Events (SSE) 协议
      "address": "127.0.0.1:8000"// 服务器监听的地址和端口
    }
  }
}

请注意: 上述 'command' 字段的实际值取决于项目的构建过程,您可能需要根据实际生成的可执行文件名称进行调整。'address' 字段与 'ephemera-mcp/src/main.rs' 中定义的 'BIND_ADDRESS' 常量一致。

基本使用方法

连接MCP客户端到本服务器后,客户端可以:

  • 调用 'getServerInfo' 方法获取服务器的能力声明和服务信息。
  • 调用 'listResources' 方法获取服务器提供的资源列表。
  • 调用 'readResource' 方法读取特定URI资源的详细内容。
  • 调用 'listPrompts' 方法获取可用的Prompt模板列表。
  • 调用 'getPrompt' 方法提供参数来渲染指定的Prompt模板内容。
  • 调用 'listTools' 方法(尽管代码中未直接展示此方法,但因声明了工具能力,MCP客户端会尝试调用)获取工具列表。
  • 调用 'callTool' 方法,指定工具名称(如 'add' 或 'recall')并提供参数来尝试执行工具功能(目前执行逻辑为待完成)。

请注意,目前服务器实现的资源和Prompt是预设的示例数据,工具的实际功能也待完善。这部分代码主要展示了如何构建一个符合MCP协议的服务端框架。

信息

分类

AI与计算