员工 + Stytch OKR 管理员 MCP 服务器
这是一个由三个函数组成的Workers服务器:
- 一个使用React和Vite构建的静态网站,基于(某个平台或框架,此处原文未指明具体平台或框架,故保留原意) 工人资产
- 基于Hono构建的REST API 工作者 KV
- A. 模型上下文协议 基于(某技术/框架)构建的服务器 持久化对象的工作者(或:持久对象工作者)
成员、租户和客户端身份通过(某种方式)进行管理 Stytch综上所述,这三个特性展示了如何将一个传统的全栈CRUD应用程序扩展以供AI代理使用。
这个演示使用了 Stytch B2B(注:这通常指的是一个专注于B2B(企业对企业)领域的身份验证或安全服务提供商,但“Stytch”并非一个广为人知的中文词汇,因此直接保留原名,实际翻译时可能需要根据具体上下文或品牌宣传语来确定更贴切的中文名称,此处仅为直译) 该产品专为满足B2B SaaS(软件即服务)的认证需求而设计,包括多租户、多因素认证(MFA)和基于角色的访问控制(RBAC)等功能。

建立/设置
按照以下步骤操作,使用您自己的Stytch凭据使此应用程序完全功能启用并运行。
我们将创建一个复杂的基于角色的访问控制(RBAC)策略,该策略涉及3个角色,这些角色能够与Stytch定义的资源以及应用程序管理的自定义资源进行交互。 最后我们将得到:
- A.
stytch_admin在组织内部,拥有对所有资源普遍访问权限的角色。他们将对……拥有控制权objectives,key_results以及所有预定义的Stytch资源,如成员、身份验证设置和单点登录(SSO)配置。 - A.
manager具有对大部分资源部分访问权限的角色——他们可以邀请新成员并进行管理key_results,但无法设置顶级公司objectives - A.
stytch_member拥有对大多数资源有限访问权限的角色——他们可能会查看objectives并更新他们取得进展的情况key_results
我们还将创建一组范围(scopes),用户可以将这些范围授予第三方应用程序。为了让用户能够将某个范围授予某个应用程序,他们必须拥有该范围所包含的所有权限。例如
- 该
read:okrs仅请求范围read访问资源,并且所有成员均可授予访问权限 - 该
manage:krs范围请求写入访问权限到key_results资源,并且可以由成员授予(或:成员可以授予该资源)manager或者stytch_admin角色,但不包括具有(某种)角色的成员stytch_user角色 - 这个(或“该”)
manage:objectives范围请求写入访问权限到objectives并且只能由具有(相应权限/资格)的成员授予stytch_admin角色
在Stytch仪表板中
- 创建一个 Stytch 账户 在注册流程中选择 B2B认证 作为您感兴趣的认证类型。一旦您的账户设置完成,系统将自动为您创建一个名为“我的第一个项目”的项目。
- 导航至 前端SDK(软件开发工具包) 在测试环境中启用前端SDK
- 导航至 连接的应用程序 以启用动态客户端注册
- 导航至 项目设置 查看您的项目ID和API密钥。稍后您将需要这些值。
- 导航至 管理API 并创建一个新的工作区管理密钥。复制密钥ID和密钥,稍后您会需要这些值。
在您的机器上
- 在你的终端中,克隆项目并安装依赖项:
git clone https://github.com/cloudflare/agents.git
cd agents/demos/mcp-stytch-b2b-okr-manager
npm i- 创建一个
.env.local通过运行以下命令来复制文件内容:.env.template.
cp .env.template .env.local
cp .dev.vars.template .dev.vars- 开放
.env.local在您选择的文本编辑器中,使用(以下方法)设置环境变量:public_token和project domain发现于 项目设置。
# This is what a completed .env.local file will look like
VITE_STYTCH_PUBLIC_TOKEN=public-token-test-abc123-abcde-1234-0987-0000-abcd1234
VITE_STYTCH_DOMAIN=https://project-domain.customers.stytch.dev- 开放
.dev.vars在你选择的文本编辑器中,使用以下方法设置环境变量:Project ID,Project Domain并且Secret发现于 项目设置。
// This is what a completed .dev.vars file will look like
STYTCH_PROJECT_ID=project-test-6c20cd16-73d5-44f7-852c-9a7e7b2ccf62
STYTCH_PROJECT_SECRET=secret-test-.....
STYTCH_DOMAIN=https://project-domain.customers.stytch.dev- 使用工作区管理功能,通过运行以下命令来更新您的Stytch基于角色的访问控制(RBAC)策略
Key ID和Secret你之前创建的,以及Project ID发现于 项目设置您可以查看和编辑已创建的基于角色的访问控制(RBAC)角色、资源和范围 角色与权限。
// Using example credentials, replace with your own
npm run update-policy -- --key-id "workspace-key-prod-4881b817-6336-410a-a953-6eceabaf5xc9" --secret "6ZcNGH7v9Oxxxxxxxxxx" --project-id "project-test-6c20cd16-73d5-44f7-852c-9a7e7b2ccf62"在本地运行
完成上述所有设置步骤后,可以使用以下命令运行应用程序:
npm run dev该应用程序将在 http://localhost:3000 并且MCP服务器将在 http://localhost:3000/sse。
使用以下方法测试您的MCP服务器 MCP 检查员
npx @modelcontextprotocol/inspector@latest导航至Inspector正在运行的URL,并输入以下值:
- 运输方式:
SSE - URL:
http://localhost:3000/sse
点击“连接”以测试授权流程,并通过您的MCP服务器与目标和关键结果进行交互!
部署到 Cloudflare Workers
点击按钮 - 在初始部署完成后,您需要配置环境变量.

或者,如果你想手动完成这些步骤:
- 为OKR Manager应用程序创建一个KV命名空间以供使用
npx wrangler kv namespace create OKRManagerKV- 更新KV命名空间ID在
wrangler.jsonc使用您收到的ID:
"kv_namespaces": [
{
"binding": "OKRManagerKV",
"id": "your-kv-namespace-id"
}
]- 上传您的Stytch项目ID和密钥环境变量,以便工作者使用
npx wrangler secret bulk .dev.vars- 部署工作节点
npm run deploy- 授予您的部署权限以访问您的Stytch项目。假设您的Stytch项目已部署在
https://mcp-stytch-b2b-okr-manager.$YOUR_ACCOUNT_NAME.workers.dev:
1. 添加 https://mcp-stytch-b2b-okr-manager.$YOUR_ACCOUNT_NAME.workers.dev/authenticate 作为被允许的(事物/行为) 重定向URL 1. 添加 https://mcp-stytch-b2b-okr-manager.$YOUR_ACCOUNT_NAME.workers.dev 作为被允许的授权应用程序 前端SDK(软件开发工具包) 配置
寻求帮助并加入社区
:speech_balloon: Stytch 社区 Slack
参与讨论,提出问题,并在我们的(平台/社区)中建议新功能 Slack社区!
