Skip to main content
Glama

ArcBox

一个类似 PayBox 的远程 MCP 服务器,专为 ChatGPT 设计:每个 ChatGPT 用户通过 OAuth 登录,获得一个 Circle 开发者控制钱包(位于 Arc Testnet 上),并通过 Circle App Kit 发送 USDC。

功能

  1. ChatGPT 通过 OAuth(而非“无认证”)连接到 https://<your-host>/mcp。

  2. 用户创建 ArcBox 账户或登录。

  3. ArcBox 为该用户在 ARC-TESTNET 上创建一个 Circle 钱包(或复用现有钱包)。

  4. ChatGPT 随后可调用:

    • get_wallet — 地址、浏览器、水龙头

    • get_balance — Arc Testnet 上的 USDC

    • estimate_send_usdc — 费用预览

    • send_usdc — App Kit 的 kit.send()(需要 confirm: true)

    • list_transfers — 该应用最近发送的记录

Related MCP server: circle-agent-stack-mcp

前提条件

  • Node.js 22+

  • 一个 Circle Console 测试网 API 密钥

  • 一个已注册的 实体密钥

  • 一个公开的 HTTPS 地址,以便 ChatGPT 能访问此服务器(Cloudflare Tunnel 或 ngrok)

设置

cd arcbox
copy .env.example .env

编辑 .env:

PUBLIC_URL=https://your-tunnel-host
PORT=8787
COOKIE_SECRET=a-long-random-string
CIRCLE_API_KEY=TEST_API_KEY:...
CIRCLE_ENTITY_SECRET=your-64-char-entity-secret
npm install
npm run dev

在浏览器中打开 PUBLIC_URL 并创建一个账户。确认 /dashboard 页面上出现钱包地址。通过 Circle 水龙头 为该地址充值(Arc Testnet USDC)。

连接 ChatGPT

  1. 复制 https://<your-host>/mcp

  2. 在 ChatGPT 网页版 中,打开设置并开启 开发者模式

  3. 插件 → 浏览插件 → + → 新建插件

  4. 名称:ArcBox

  5. 服务器 URL:即 /mcp 的 URL

  6. 认证方式:OAuth — 不要选择“无认证”

  7. 保存,连接,并完成 ArcBox 登录

然后在对话中:

我的 Arc Testnet 钱包和 USDC 余额是多少?

发送 1.00 USDC 到 0x…

除非 ChatGPT 传递 confirm: true,否则 send_usdc 会先返回一个预览。

认证模型

  • OAuth 2.1 授权码 + PKCE(S256)

  • 动态客户端注册 以及 客户端 ID 元数据文档

  • 刷新令牌(ChatGPT 要求)

  • resource / 受众绑定到 /mcp

  • 每个 ArcBox 用户对应一个 Circle EOA,位于同一个共享钱包集中

这是开发者控制托管:Circle 持有密钥,你的服务器使用实体密钥进行签名。请勿将其视为非托管型 PayBox 克隆。

部署到 Vercel

  1. 将此仓库推送到 GitHub。

  2. 在 Vercel 中导入该仓库。

  3. 在 Vercel 项目中设置以下环境变量:

PUBLIC_URL=https://your-project.vercel.app
COOKIE_SECRET=
CIRCLE_API_KEY=
CIRCLE_ENTITY_SECRET=
MCP_DANGEROUSLY_ALLOW_INSECURE_ISSUER_URL=false

PUBLIC_URL 必须是一个完整的 https:// 来源(末尾无斜杠)。首次部署后,将 Vercel 提供的 URL 复制到 PUBLIC_URL,必要时重新部署。

  1. ChatGPT 插件 URL:https://your-project.vercel.app/mcp

Vercel 函数是无状态的。本地的 JSON 用户/钱包存储位于 /tmp 目录,因此账户在冷启动后不会保留。适用于快速测试;如需正式使用,请添加数据库。

仅本地模式的注意事项

ChatGPT 不会与 http://localhost 通信。请使用隧道或 Vercel 的 HTTPS URL,并将 PUBLIC_URL 设置为该来源。

安全性

  • 仅限测试网

  • 每日发送上限可通过 SEND_DAILY_LIMIT_USDC 设置(默认 100)

  • 发送操作需要显式的工具参数 confirm: true

Related MCP Connectors

Related MCP Servers