ArcBox
Enables ChatGPT users to create and manage Circle developer-controlled wallets on Arc Testnet, check USDC balances, estimate and send USDC using Circle App Kit, and view transaction history.
README
Onix
A PayBox-style remote MCP server for ChatGPT: each ChatGPT user signs in with OAuth, gets a Circle developer-controlled wallet on Arc Testnet, and can send USDC through Circle App Kit.
What it does
- ChatGPT connects to
https://<your-host>/mcpwith OAuth (not “No Auth”). - The user signs in with Google or an email code.
- Onix creates one Circle wallet on
ARC-TESTNETfor that user (or reuses the existing one). - ChatGPT can then call:
get_wallet— address, explorer, faucetget_balance— USDC on Arc Testnetestimate_send_usdc— fee previewsend_usdc— App Kitkit.send()(requiresconfirm: true)list_transfers— recent sends from this app
Prerequisites
- Node.js 22+
- A Circle Console testnet API key
- A registered entity secret
- A public HTTPS URL so ChatGPT can reach this server (Cloudflare Tunnel or ngrok)
Setup
cd arcbox
copy .env.example .env
Edit .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
Open PUBLIC_URL in a browser and create an account. Confirm a wallet address appears on /dashboard. Fund it from the Circle faucet (Arc Testnet USDC).
Connect ChatGPT
- Copy
https://<your-host>/mcp - On ChatGPT web, open Settings and turn on Developer mode
- Plugins → Browse plugins → + → New Plugin
- Name:
Onix - Server URL: the
/mcpURL - Authentication: OAuth — do not leave No Auth selected
- Save, connect, and complete the Onix login
Then in chat:
What’s my Arc Testnet wallet and USDC balance?
Send 1.00 USDC to 0x…
send_usdc first returns a preview unless ChatGPT passes confirm: true.
Auth model
- OAuth 2.1 authorization code + PKCE (
S256) - Dynamic client registration and Client ID Metadata Documents
- Refresh tokens (required by ChatGPT)
resource/ audience bound to/mcp- One Circle EOA per Onix user, inside one shared wallet set
This is developer-controlled custody: Circle holds the keys, your server signs with the entity secret. Do not treat this as a non-custodial PayBox clone.
Firebase auth
Sign-in is Google or email + 6-digit code. Firebase Auth holds the user; Firestore maps email / uid to the Circle wallet.
- Create a Firebase project and enable Authentication → Google.
- Create a Firestore database (production mode is fine — the Admin SDK bypasses rules).
- Deploy
firestore.rules(clients have no direct access). - Add
onixmpc.vercel.appandlocalhostunder Authentication → Settings → Authorized domains. - Project settings → service account → generate a private key.
- Project settings → Your apps → Web app: copy apiKey, authDomain, appId.
For email codes, set RESEND_API_KEY (or install the Firebase Trigger Email extension, which reads the mail collection).
Deploy on Vercel
- Push this repo to GitHub.
- Import the repo in Vercel.
- Set these environment variables in the Vercel project:
PUBLIC_URL=https://onixmpc.vercel.app
COOKIE_SECRET=
CIRCLE_API_KEY=
CIRCLE_ENTITY_SECRET=
MCP_DANGEROUSLY_ALLOW_INSECURE_ISSUER_URL=false
FIREBASE_PROJECT_ID=
FIREBASE_CLIENT_EMAIL=
FIREBASE_PRIVATE_KEY=
FIREBASE_WEB_API_KEY=
FIREBASE_AUTH_DOMAIN=
FIREBASE_APP_ID=
RESEND_API_KEY=
EMAIL_FROM=
PUBLIC_URL must be the live https:// origin (no trailing slash). After the first deploy, copy the Vercel URL into PUBLIC_URL and redeploy if needed.
- ChatGPT plugin URL:
https://your-project.vercel.app/mcp
User accounts and email→wallet maps live in Firestore once Firebase is configured.
Local-only note
ChatGPT will not talk to http://localhost. Use a tunnel, or the Vercel HTTPS URL, and set PUBLIC_URL to that origin.
Safety
- Testnet only
- Daily send cap via
SEND_DAILY_LIMIT_USDC(default 100) - Sends require an explicit
confirm: truetool argument
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.