关于 Workers + Stytch TODO App MCP Server
这是一个基于 Cloudflare Workers 的 TODO 应用示例,由 React 与 Vite 构建的静态网站、Hono REST API 和 MCP 服务组成。用户与客户端身份由 Stytch Consumer 认证管理,适合希望把全栈应用扩展给 AI Agent 使用的开发者。
主要功能
- 01静态网站、REST API 与 MCP 服务合并在一个 Worker 中
- 02REST API 基于 Hono 与 Workers KV 实现
- 03MCP 服务运行在 Workers Durable Objects 上
- 04使用 Stytch Consumer 进行用户与客户端认证
- 05提供 Streamable HTTP 方式的 /mcp 端点
适用场景
- 01为已有全栈应用增加 AI Agent 访问能力的参考实现
- 02学习在 Cloudflare Workers 上组合网站、API 与 MCP 服务
- 03基于 Stytch 认证测试 MCP 服务的 TODO 操作
MCP 相关
该项目是 MCP 服务,通过 /mcp 端点向 MCP 客户端提供服务,并使用 Stytch 管理访问身份。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Workers + Stytch TODO 应用 MCP 服务
这是一个 Workers 服务,组合了三个功能:
- 基于 Worker Assets 使用 React 和 Vite 构建的静态网站
- 基于 Workers KV 使用 Hono 构建的 REST API
- 基于 Workers Durable Objects 构建的 Model Context Protocol 服务
用户和客户端身份由 Stytch 管理。结合这三个功能,可以展示如何扩展传统的全栈应用,以供 AI Agent 使用。
此演示使用 Stytch Consumer 产品,该产品专为 Consumer SaaS 身份验证需求打造。 如果你对 Stytch 的 B2B 产品更感兴趣,请参阅此演示。
设置
按照以下步骤,使用你自己的 Stytch 凭据完成应用配置并运行。
在 Stytch 控制面板中
-
创建一个 Stytch 账户。在注册流程中,将 Consumer Authentication 选为你感兴趣的身份验证类型。账户设置完成后,系统会自动为你创建一个名为“My first project”的项目。
-
前往 Frontend SDKs,在 Test 环境中启用 Frontend SDK。
-
前往 Connected Apps,启用 Dynamic Client Registration。
-
前往 Project Settings,查看你的 Project ID 和 API 密钥。稍后会用到这些值。
在你的计算机上
在终端中克隆项目并安装依赖项:
git clone https://github.com/stytchauth/mcp-stytch-consumer-todo-list.git
cd mcp-stytch-consumer-todo-list
npm i
接下来,运行以下命令,从 .env.template 复制内容以创建 .env.local 文件。
cp .env.template .env.local
使用你选择的文本编辑器打开 .env.local,并使用 Project Settings 中的 public_token 设置环境变量。
# This is what a completed .env.local file will look like
VITE_STYTCH_PUBLIC_TOKEN=public-token-test-abc123-abcde-1234-0987-0000-abcd1234
运行以下命令,从 .dev.vars.template 复制内容以创建 .dev.vars 文件。
cp .dev.vars.template .dev.vars
使用你选择的文本编辑器打开 .dev.vars,并使用 Project Settings 中的 Project ID、Secret 和 Project Domain 设置环境变量。
// This is what a completed .dev.vars file will look like
STYTCH_PROJECT_ID=project-test-6c20cd16-73d5-44f7-852c-9a7e7b2ccf62
STYTCH_SECRET=your-stytch-secret-key
STYTCH_DOMAIN=https://cname-word-1234.customers.stytch.dev
在本地运行
完成上述所有设置步骤后,可以运行以下命令启动应用:
npm run dev
应用将在 http://localhost:3000 上提供,MCP 服务将在 http://localhost:3000/mcp 上提供。
使用 MCP Inspector 测试你的 MCP 服务
npx @modelcontextprotocol/inspector@latest
前往 Inspector 运行的 URL,并输入以下值:
- 传输类型:
Streamable HTTP - URL:
http://localhost:3000/mcp
部署到 Cloudflare Workers
点击按钮——首次部署后,你需要配置环境变量。
或者,如果你想手动操作,请按以下步骤进行:
- 为 TODO 应用创建一个 KV 命名空间
wrangler kv namespace create TODOS
- 使用你收到的 ID 更新
wrangler.jsonc中的 KV 命名空间 ID:
"kv_namespaces": [
{
"binding": "TODOS",
"id": "your-kv-namespace-id"
}
]
- 上传 Stytch 环境变量,供 Worker 使用
npx wrangler secret bulk .dev.vars
- 部署 Worker
npm run deploy
- 授予你的部署访问 Stytch 项目的权限。假设你的 Stytch 项目部署在
https://mcp-stytch-consumer-todo-list.$YOUR_ACCOUNT_NAME.workers.dev:- 将
https://mcp-stytch-consumer-todo-list.$YOUR_ACCOUNT_NAME.workers.dev/authenticate添加为允许的重定向 URL - 在 Frontend SDKs 配置中,将
https://mcp-stytch-consumer-todo-list.$YOUR_ACCOUNT_NAME.workers.dev添加为允许的 Authorized Application
- 将
获取帮助并加入社区
:speech_balloon: Stytch 社区 Slack
加入讨论、提出问题,并为我们的新功能提供建议,欢迎访问 Slack 社区!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。