项目简介
这是一个功能丰富的待办事项应用 Agenda 的后端服务,同时也实现了 Model Context Protocol (MCP) 的一部分功能。它通过 MCP 标准暴露了一些核心的待办事项管理能力,允许兼容 MCP 的 LLM 客户端直接与用户的待办事项数据进行交互,如创建任务或标记任务完成。
主要功能点
- 添加待办事项: 允许 LLM 客户端创建新的待办事项,可指定标题、截止日期和优先级。
- 完成待办事项: 允许 LLM 客户端将现有的待办事项标记为已完成。
- 添加评论: 允许 LLM 客户端为待办事项添加评论。
- 数据持久化: 管理用户、待办事项、工作区等数据,并将其存储在 PostgreSQL 数据库中。
- 用户认证: 集成用户认证机制,确保只有授权用户才能访问和修改其数据。
安装步骤
该 MCP 服务是 Agenda 应用后端的一部分,需要部署整个应用。
- 克隆仓库: 获取 Agenda 应用的源代码。
- 安装依赖: 使用 Node.js 或 Bun 安装项目所需的依赖库。
- 设置环境变量: 复制 '.env.example' 文件为 '.env',并填入数据库连接字符串、认证密钥、第三方服务(如 Google OAuth, Stripe, Resend, PostHog)的凭据。请确保 'DATABASE_URL' 和 'BETTER_AUTH_SECRET' 等关键变量已设置。
- 初始化数据库: 运行数据库迁移脚本以创建必要的表结构。
- 运行服务: 启动 Next.js 应用,这会同时启动包括 MCP 接口在内的后端服务。通常使用 'bun dev' 或 'npm run dev' 启动开发服务器,或进行生产构建后启动。
服务器配置 (供 MCP 客户端使用)
该 MCP 服务通过 Next.js API 路由 '/api/[transport]' 暴露功能。MCP 客户端需要连接到已部署的 Agenda 应用的此端点。
请注意,MCP 客户端通常不会直接“运行”这个服务器代码。它们会通过网络连接到已经运行的服务。
MCP 客户端连接此服务时,可能需要以下配置信息:
- 服务名称 (server name): 'agenda' (或其他自定义名称)
- 连接协议 (transport): 通常使用 HTTP POST 请求。客户端需要知道完整的 API 端点 URL,例如部署后域名下的 '/api/http' 或 '/api/stdio'(具体取决于 MCP Adapter 的配置和支持)。
- 认证 (authentication): 服务要求用户认证。客户端需要通过 MCP 协议传递有效的认证信息(通常在请求头中,如 'Authorization: Bearer <token>')。认证令牌需通过 Agenda 应用自身的认证流程获取。
- 启动命令 (command) 和参数 (args): 对于连接到 HTTP 端点的 MCP 客户端,通常不需要指定启动命令和参数,因为服务是预先运行的。这些字段可能留空或用于其他目的,具体取决于客户端的实现。
例如,一个 JSON 格式的客户端配置片段可能看起来像这样(这是一个示例,具体字段名和结构取决于客户端应用):
{ "server_name": "agenda", "protocol": "http", "endpoint_url": "https://your-agenda-app-domain.com/api/http", // 请替换为实际部署的URL "auth_method": "bearer", "auth_token": "USER_SESSION_TOKEN" // 需要从Agenda应用获取的用户会话令牌 // "command": "", // 连接HTTP服务时通常留空 // "args": [] }
基本使用方法
MCP 客户端连接并认证成功后,可以通过 JSON-RPC 请求调用服务器暴露的工具:
- 添加待办事项 (add_todo): 向服务器发送 JSON-RPC 请求,方法名为 'add_todo',参数包含待办事项的 'name' (string), 'date' (string), 'time' (string), 'urgency' (number 1-5)。
- 完成待办事项 (complete_todo): 方法名为 'complete_todo',参数包含待办事项的 'todoId' (string)。
- 添加评论 (add_comment): 方法名为 'add_comment',参数包含 'todoId' (string) 和 'text' (string)。
LLM 客户端会根据用户的指令,识别需要调用的工具,并构造相应的 JSON-RPC 请求发送给该 MCP 服务端点。
信息
分类
生产力应用