项目简介
EpicMe MCP 服务器是一个功能丰富的Model Context Protocol (MCP) 应用示例,它作为日记应用的后端,通过标准化的方式向大型语言模型(LLM)客户端提供上下文信息和功能。这个项目不仅展示了MCP的核心能力,还特别突出了其UI扩展,允许服务器向支持的LLM客户端发送用户界面元素,从而实现超越纯文本交互的更丰富、更直观的AI聊天体验。
主要功能点
- 日记资源管理: 托管和管理用户日记中的“条目(entries)”和“标签(tags)”数据。LLM客户端可以请求、查询和访问这些资源,获取最新的日记内容和分类信息。
- AI工具集: 提供一系列可供LLM调用的外部功能,包括:
- 日记条目操作: 创建、查看、更新和删除日记条目。
- 标签管理: 创建、查看、更新和删除标签,以及为日记条目添加或移除标签。
- 可视化日记: 一个独特的工具,允许服务器向支持的LLM客户端发送一个包含嵌入式UI(如iframe)的响应,以可视化方式展示日记内容或标签详情,增强AI聊天的交互性。
- Prompt 模板: 定义可重用的Prompt模板,例如用于AI自动为日记条目推荐相关标签,从而帮助用户更好地组织其思绪。
- 上下文交互: 服务器通过JSON-RPC协议与LLM客户端进行通信,处理资源请求、工具调用和Prompt获取,同时负责会话管理、能力声明,并支持多种传输协议。
安装步骤
在本地运行EpicMe MCP服务器和配套的UI应用程序,请遵循以下步骤:
- 克隆仓库: 打开终端或命令行工具,执行以下命令克隆项目仓库:
git clone --depth 1 https://github.com/epicweb-dev/mcp-ui.git - 进入项目目录: 切换到新克隆的项目目录:
cd mcp-ui - 安装依赖并设置: 运行以下命令安装所有必要的项目依赖,并进行初始设置。这可能需要一些时间,请耐心等待:
npm run setup - 运行开发服务器: 执行以下命令启动EpicMe应用程序的开发服务器。这将同时启动前端UI应用、MCP服务器和MCP Inspector(一个用于调试MCP通信的工具):
服务器成功启动后,您将在终端看到类似 'EpicMeApp running at http://localhost:7787' 和 '🐨 Proxy server running: http://localhost:3000' 的输出信息。npm run dev
服务器配置
MCP客户端连接EpicMe MCP服务器时,需要配置以下信息:
- 服务器端点 (Server Endpoint): 'http://localhost:3000/mcp'
- 说明: 这是MCP开发代理服务器的默认URL。您的MCP客户端应连接到此URL,通过Streamable HTTP或其他兼容的传输协议与EpicMe MCP服务器进行通信。
- 服务器名称 (Server Name): 'epicme'
- 说明: 在MCP协议中用于唯一标识此服务器的名称。
- 协议版本 (Protocol Version): '1.0.0'
- 说明: 服务器实现的MCP协议版本。
- 认证令牌 (Auth Token):
- 说明: 在开发环境中,MCP Inspector会生成一个会话令牌。实际生产环境中,这通常是用于身份验证和授权的凭据。
- 能力声明 (Capabilities):
- 说明: 客户端应声明并支持'tools'(工具)、'resources'(资源)、'completions'(补全)、'logging'(日志)、'prompts'(Prompt模板)以及'sampling'(采样)等功能,以充分利用此服务器提供的所有特性,特别是用于UI渲染和AI推荐等高级功能。
基本使用方法
- 启动服务器: 确保您已按照“安装步骤”中的说明,成功运行了EpicMe MCP服务器 ('npm run dev')。
- 连接MCP客户端: 使用任何兼容MCP协议的AI客户端(例如,Model Context Protocol SDK提供的客户端或自定义客户端),连接到服务器端点 'http://localhost:3000/mcp'。
- 探索和交互:
- 调用工具: 客户端可以发送JSON-RPC请求来调用服务器上注册的工具,例如调用 'create_entry' 工具创建新的日记条目,或调用 'list_tags' 工具列出所有标签。
- 访问资源: 客户端可以通过URI访问服务器托管的资源,例如获取 'epicme://tags' 来查看所有标签,或通过 'epicme://entries/{id}' 获取特定日记条目。
- 使用Prompt模板: 客户端可以请求 'suggest_tags' 等Prompt模板,让AI帮助生成内容或执行特定任务。
- 体验UI交互: 尤其值得注意的是,当AI客户端调用 'view_journal' 工具时,服务器将返回一个嵌入了UI的响应,允许您在AI聊天界面中直接查看日记的图形化展示,实现更丰富的交互体验。
信息
分类
生产力应用