使用说明
项目简介
本项目是一个基于Cloudflare Workers构建的TODO应用,它不仅提供了一个传统的Web界面和REST API用于管理TODO列表,还实现了一个Model Context Protocol (MCP) 服务器。该MCP服务器允许AI Agent通过标准化的MCP协议与TODO应用后端进行交互,从而实现诸如查询TODO列表、创建新的TODO项、标记完成状态以及删除TODO项等功能。用户身份验证和客户端授权由Stytch提供,确保应用的安全性。
主要功能点
- 资源管理 (Resources): 通过MCP协议暴露TODO列表作为资源,允许AI Agent查询和访问用户的TODO数据。
- 工具注册和执行 (Tools): 注册了创建TODO、标记TODO完成和删除TODO等工具,AI Agent可以调用这些工具来操作TODO列表。
- Prompt模板 (Prompts): 虽然仓库描述中未明确提及Prompt模板,但MCP服务器已具备资源和工具管理能力,可以作为构建更复杂Prompt应用的基础。
- 基于SSE的MCP协议通信: 使用Server-Sent Events (SSE) 作为MCP服务器的传输协议,支持与MCP客户端进行实时通信。
- 用户身份验证: 集成Stytch身份验证服务,保障用户数据安全。
安装步骤
- 创建Stytch账户: 访问 Stytch官网 创建账户,并启用 Consumer Authentication。
- 配置Stytch项目:
- 启用 Frontend SDKs。
- 启用 Dynamic Client Registration。
- 获取 Project ID 和 Public token,后续配置需要使用。
- 克隆仓库: 在本地机器上克隆 GitHub 仓库:
git clone https://github.com/stytchauth/mcp-stytch-consumer-todo-list.git cd mcp-stytch-consumer-todo-list - 安装依赖: 使用 'pnpm' 安装项目依赖:
pnpm i - 配置环境变量:
- 复制 '.env.template' 文件并重命名为 '.env.local':
cp .env.template .env.local - 编辑 '.env.local' 文件,设置 'VITE_STYTCH_PUBLIC_TOKEN' 为你在Stytch Dashboard获取的 Public token。
- 编辑 'wrangler.jsonc' 文件,设置 'vars.STYTCH_PROJECT_ID' 为你在Stytch Dashboard获取的 Project ID。
- 复制 '.env.template' 文件并重命名为 '.env.local':
- 创建KV命名空间: 在Cloudflare控制台中创建 KV 命名空间用于存储TODO数据,并记录下命名空间的 ID。
wrangler kv:namespace create TODOS - 更新wrangler配置: 编辑 'wrangler.jsonc' 文件,将步骤6中获取的 KV 命名空间 ID 填入 'kv_namespaces' 配置项中。
服务器配置
以下是MCP客户端连接本MCP服务器时所需的配置信息,请复制以下JSON配置到您的MCP客户端中,并根据实际部署情况修改 'serverUrl' 字段。
{ "serverName": "TODO应用MCP服务器", "serverUrl": "http://localhost:3000/sse", "protocol": "sse", "description": "基于Cloudflare Workers和Stytch的TODO应用MCP服务器,提供TODO资源管理和工具调用能力。", "requiresAuth": true, "capabilities": [ "resources", "tools" ], "resources": [ { "name": "Todos", "uri": "todoapp://todos/{id}", "description": "用户的TODO列表资源", "methods": ["list", "get"] } ], "tools": [ { "name": "createTodo", "description": "添加一个新的TODO任务", "parameters": { "type": "object", "properties": { "todoText": { "type": "string", "description": "TODO任务的文本内容" } }, "required": ["todoText"] } }, { "name": "markTodoComplete", "description": "标记一个TODO为已完成", "parameters": { "type": "object", "properties": { "todoID": { "type": "string", "description": "要标记为完成的TODO ID" } }, "required": ["todoID"] } }, { "name": "deleteTodo", "description": "删除一个TODO任务", "parameters": { "type": "object", "properties": { "todoID": { "type": "string", "description": "要删除的TODO ID" } }, "required": ["todoID"] } } ] }
参数注释:
- 'serverName': MCP服务器的名称,用于在客户端界面上标识服务器。
- 'serverUrl': MCP服务器的SSE端点URL,客户端通过此URL建立连接。 请注意,本地运行时为 'http://localhost:3000/sse',部署到Cloudflare Workers后需要替换为实际的Worker URL,例如 'https://your-worker-name.workers.dev/sse'。
- 'protocol': 使用的MCP协议传输方式,这里是 'sse' (Server-Sent Events)。
- 'description': 对MCP服务器的简要描述,帮助用户理解服务器的功能。
- 'requiresAuth': 指示连接此服务器是否需要身份验证,本例中为 'true',表示需要Stytch JWT进行身份验证。
- 'capabilities': 服务器声明支持的MCP核心能力,包括 'resources' 和 'tools'。
- 'resources': 服务器提供的资源列表,包括 'Todos' 资源,及其URI格式、描述和支持的方法 ('list', 'get')。
- 'tools': 服务器注册的工具列表,每个工具包含 'name' (工具名称)、 'description' (工具描述) 和 'parameters' (工具参数定义,使用JSON Schema格式)。
基本使用方法
- 本地运行: 启动本地开发服务器:
访问 'http://localhost:3000' 可以查看TODO应用Web界面,MCP服务器端点为 'http://localhost:3000/sse'。pnpm run dev - 部署到Cloudflare Workers: 执行部署命令将应用发布到Cloudflare Workers:
部署成功后,控制台会输出Worker的URL,请将该URL添加到Stytch Dashboard的 Redirect URLs 和 Authorized Applications 配置中。pnpm run deploy - 使用MCP Inspector测试: 可以使用 MCP Inspector 工具测试MCP服务器,在 Inspector 中配置上述服务器配置信息,并连接到服务器端点。
- 集成到MCP客户端: 将上述服务器配置信息集成到任何兼容MCP协议的客户端应用中,即可通过客户端与本TODO应用MCP服务器进行交互,例如查询TODO列表或调用工具创建、完成、删除TODO。
信息
分类
开发者工具