Skip to main content
Glama
dzucconi
by dzucconi

damonzucconi-mcp

用于通过其 GraphQL API 管理 damonzucconi.com 的远程 MCP 服务器。

生产环境端点:https://damonzucconi-mcp.damonzucconi.workers.dev/mcp

该服务器是一个无状态的 Cloudflare Worker,没有存储绑定。一个静态的 bearer token 保护 MCP 端点。Worker 使用现有的管理员凭据登录 GraphQL API,并将生成的 JWT 缓存到即将过期之前。

它公开了用于艺术品、展览、标签、嵌套实体和排序的工具。艺术品和展览的删除功能有意不可用;请手动执行这些操作。

本地开发

需要 Node.js 20+ 和 npm。

npm install
cp .dev.vars.example .dev.vars

在 .dev.vars 中设置这三个 secret:

openssl rand -hex 32
MCP_AUTH_TOKEN=<paste-generated-value>
ADMIN_USERNAME=your-api-admin-username
ADMIN_PASSWORD=your-api-admin-password

MCP_AUTH_TOKEN 是一个共享 secret,而不是用户名或登录令牌。Worker 存储一份副本,每个 MCP 客户端都将相同的值作为 bearer token 发送。拥有该值即可访问服务器。

没有自动同步:

  • .dev.vars 为本地 Worker 提供配置,也是 npm run secrets:push 使用的来源。

  • npm run secrets:push 将该值复制到 Cloudflare 的加密 Worker secrets 中用于生产环境。

  • Cursor 和 ChatGPT 从客户端环境变量 DAMONZUCCONI_MCP_TOKEN 读取相同的值。

如果你更改了 MCP_AUTH_TOKEN,请运行 npm run secrets:push,更新 DAMONZUCCONI_MCP_TOKEN,然后重启客户端。使用不同值的客户端将收到 401 Unauthorized。

npm run codegen
npm run typecheck
npm run dev

本地 MCP 端点为 http://127.0.0.1:8787/mcp。在另一个终端中:

npm run smoke

如果要改为测试生产环境:

MCP_URL=https://damonzucconi-mcp.damonzucconi.workers.dev npm run smoke

Related MCP server: Cloudflare MCP Server

从 Cursor 连接

将此内容添加到本项目的 .cursor/mcp.json,或全局的 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "damonzucconi": {
      "url": "https://damonzucconi-mcp.damonzucconi.workers.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${env:DAMONZUCCONI_MCP_TOKEN}"
      }
    }
  }
}

在 Cursor 继承的环境中设置 DAMONZUCCONI_MCP_TOKEN,使用与 .dev.vars 中 MCP_AUTH_TOKEN 相同的值,然后重启 Cursor。远程服务器不支持 envFile。

从 ChatGPT 桌面版连接

ChatGPT 桌面版与 Codex 共享 ~/.codex/config.toml 中的 MCP 配置。添加:

[mcp_servers.damonzucconi]
url = "https://damonzucconi-mcp.damonzucconi.workers.dev/mcp"
bearer_token_env_var = "DAMONZUCCONI_MCP_TOKEN"
default_tools_approval_mode = "writes"

在 macOS 上,让从 Finder 或 Dock 启动的应用可以访问该令牌:

read -s "DAMONZUCCONI_MCP_TOKEN?MCP token: "
echo
launchctl setenv DAMONZUCCONI_MCP_TOKEN "$DAMONZUCCONI_MCP_TOKEN"
unset DAMONZUCCONI_MCP_TOKEN

在 read 提示时粘贴与 MCP_AUTH_TOKEN 相同的值。该令牌不会被写入 config.toml 或 shell 历史记录。

完全退出并重新打开 ChatGPT,然后打开 设置 → MCP 服务器 并选择 重启。在 composer 中输入 /mcp 以确认 damonzucconi 已连接。如果桌面 UI 发生变化,请参阅 OpenAI 的 MCP 文档。

部署

Wrangler 身份验证会打开浏览器:

npx wrangler login

对于首次部署:

npm run deploy
npm run secrets:push

secrets:push 从 .dev.vars 上传这三个条目。在后续部署中,除非 secret 发生变化,否则只需运行 npm run deploy。

在部署更改之前:

npm run codegen
npm run typecheck
npm run smoke
npm run deploy
MCP_URL=https://damonzucconi-mcp.damonzucconi.workers.dev npm run smoke

GraphQL 代码生成

查询和变更操作位于 src/graphql/。npm run codegen 会检查实时 API 并刷新:

  • schema.graphql

  • src/generated/

不要编辑生成的文件。如果在 API 更改后 codegen 或类型检查失败,请在部署前更新 .graphql 操作或它们的 Zod 工具 schema。

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to manage Cloudflare resources through natural language, including DNS records, zone management, Workers KV storage, cache purging, and analytics. Supports comprehensive Cloudflare operations with secure API token authentication.
    13
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Cloudflare infrastructure including DNS records, cache purging, SSL settings, Workers, and analytics through the Cloudflare API. Eliminates dashboard context-switching by allowing natural language control of domain management and infrastructure operations.
    -