使用说明

项目简介

本项目是一个基于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身份验证服务,保障用户数据安全。

安装步骤

  1. 创建Stytch账户: 访问 Stytch官网 创建账户,并启用 Consumer Authentication。
  2. 配置Stytch项目:
    • 启用 Frontend SDKs。
    • 启用 Dynamic Client Registration。
    • 获取 Project IDPublic token,后续配置需要使用。
  3. 克隆仓库: 在本地机器上克隆 GitHub 仓库:
    git clone https://github.com/stytchauth/mcp-stytch-consumer-todo-list.git
    cd mcp-stytch-consumer-todo-list
  4. 安装依赖: 使用 'pnpm' 安装项目依赖:
    pnpm i
  5. 配置环境变量:
    • 复制 '.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
  6. 创建KV命名空间: 在Cloudflare控制台中创建 KV 命名空间用于存储TODO数据,并记录下命名空间的 ID
    wrangler kv:namespace create TODOS
  7. 更新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格式)。

基本使用方法

  1. 本地运行: 启动本地开发服务器:
    pnpm run dev
    访问 'http://localhost:3000' 可以查看TODO应用Web界面,MCP服务器端点为 'http://localhost:3000/sse'。
  2. 部署到Cloudflare Workers: 执行部署命令将应用发布到Cloudflare Workers:
    pnpm run deploy
    部署成功后,控制台会输出Worker的URL,请将该URL添加到Stytch Dashboard的 Redirect URLs 和 Authorized Applications 配置中。
  3. 使用MCP Inspector测试: 可以使用 MCP Inspector 工具测试MCP服务器,在 Inspector 中配置上述服务器配置信息,并连接到服务器端点。
  4. 集成到MCP客户端: 将上述服务器配置信息集成到任何兼容MCP协议的客户端应用中,即可通过客户端与本TODO应用MCP服务器进行交互,例如查询TODO列表或调用工具创建、完成、删除TODO。

信息

分类

开发者工具