项目简介
本项目是 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与计算