使用说明

项目简介

本仓库实现了一个基于 Model Context Protocol (MCP) 的 OKR (Objectives and Key Results) 管理服务器。它允许 AI Agent 通过标准化的 MCP 协议,安全访问和操作组织内的 OKR 数据。该服务器集成了 Stytch B2B 认证服务,支持多租户和 RBAC 权限控制,适用于企业级 SaaS 应用的 AI 扩展。

主要功能点

  • 资源 (Resources) 管理:
    • Objectives 资源: 提供组织OKR目标的结构化数据访问,包括目标列表和目标详情。
    • Key Result 资源: 提供OKR关键结果的结构化数据访问,包括关键结果列表和关键结果详情。
  • 工具 (Tools) 注册和执行:
    • listObjectives: 列出组织的所有 Objectives 和 Key Results,方便 AI Agent 快速了解全局 OKR 概况。
    • addObjective: 允许 AI Agent 创建新的组织级 Objectives。
    • deleteObjective: 允许 AI Agent 删除组织级 Objectives。
    • addKeyResult: 允许 AI Agent 在特定 Objective 下创建新的 Key Results。
    • setKeyResultAttainment: 允许 AI Agent 更新 Key Result 的完成度 (attainment)。
    • deleteKeyResult: 允许 AI Agent 删除特定 Objective 下的 Key Results。
  • 安全认证和授权:
    • 集成 Stytch B2B 认证,支持用户身份验证和会话管理。
    • 实施基于角色的访问控制 (RBAC),确保只有授权的 AI Agent 才能访问和操作资源和工具。
  • 传输协议:
    • 支持 SSE (Server-Sent Events) 协议,用于 MCP 客户端与服务器的实时通信。
  • 数据存储:
    • 使用 Cloudflare Workers KV 存储 OKR 数据,保证数据持久化和快速访问。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/stytchauth/mcp-stytch-b2b-okr-manager.git
    cd mcp-stytch-b2b-okr-manager
  2. 安装依赖:
    npm install
  3. 配置 Stytch 账户:
    • 访问 Stytch 官网 创建账户并选择 B2B Authentication
    • 在 Stytch Dashboard 中配置 Frontend SDKs, Connected Apps, 和 Roles and Permissions (具体步骤请参考仓库 README.md 的 "In the Stytch Dashboard" 部分)。
    • 获取 Project IDAPI keys
  4. 配置环境变量:
    • 复制 '.env.template' 文件创建 '.env.local' 文件:
      cp .env.template .env.local
      编辑 '.env.local' 文件,设置 'VITE_STYTCH_PUBLIC_TOKEN'。
    • 复制 '.dev.vars.template' 文件创建 '.dev.vars' 文件:
      cp .dev.vars.template .dev.vars
      编辑 '.dev.vars' 文件,设置 'STYTCH_PROJECT_ID' 和 'STYTCH_PROJECT_SECRET'。
  5. 部署到 Cloudflare Workers (可选):
    • 按照 README.md 的 "Deploy to Cloudflare Workers" 部分进行部署,或者使用 "Deploy to Cloudflare" 按钮快速部署。
    • 部署后需要在 Cloudflare Workers 控制台中配置环境变量 'STYTCH_PROJECT_ID' 和 'STYTCH_PROJECT_SECRET' 以及 KV 命名空间绑定 'OKRManagerKV'。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下信息以连接到 OKR Manager MCP 服务器。以下是配置示例 (JSON 格式):

{
  "serverName": "OKRManagerMCP",
  "command": "npx @modelcontextprotocol/inspector@latest",
  "args": [
    "--serverUrl",
    "http://localhost:3000/sse",
    "--protocol",
    "sse"
  ],
  "description": "OKR Manager MCP Server",
  "transmissionMode": "SSE",
  "protocol": "json-rpc"
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': MCP 服务器的启动命令,这里使用 MCP Inspector 工具作为客户端进行测试,实际应用中应替换为 LLM 客户端的启动命令。
  • 'args': 启动命令的参数列表。
    • '--serverUrl': OKR Manager MCP 服务器的 SSE 地址,本地运行时为 'http://localhost:3000/sse',部署到 Cloudflare Workers 后需替换为实际部署地址 (例如: 'https://your-worker-domain/sse')。
    • '--protocol': 指定传输协议为 'sse' (Server-Sent Events)。
  • 'description': MCP 服务器的描述信息,可以自定义。
  • 'transmissionMode': 指定传输模式为 'SSE'。
  • 'protocol': 指定通信协议为 'json-rpc'。

基本使用方法

  1. 本地运行服务器:
    npm run dev
    服务器将在 'http://localhost:3000' 启动,MCP 服务器地址为 'http://localhost:3000/sse'。
  2. 使用 MCP Inspector 测试:
    npx @modelcontextprotocol/inspector@latest
    在 MCP Inspector 中配置上述 服务器配置 (MCP 客户端配置) 中的 JSON 信息,即可连接到 OKR Manager MCP 服务器并测试其功能。
  3. 通过 AI Agent 调用:
    • 将上述 服务器配置 (MCP 客户端配置) 中的 JSON 信息配置到您的 MCP 客户端 (例如 AI Agent 应用) 中。
    • AI Agent 即可通过 MCP 协议与 OKR Manager MCP 服务器进行交互,调用工具和访问资源,实现 OKR 数据的管理和利用。

信息

分类

生产力应用