ArcBox

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.

Category
Visit Server

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

  1. ChatGPT connects to https://<your-host>/mcp with OAuth (not “No Auth”).
  2. The user signs in with Google or an email code.
  3. Onix creates one Circle wallet on ARC-TESTNET for that user (or reuses the existing one).
  4. ChatGPT can then call:
    • get_wallet — address, explorer, faucet
    • get_balance — USDC on Arc Testnet
    • estimate_send_usdc — fee preview
    • send_usdc — App Kit kit.send() (requires confirm: 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

  1. Copy https://<your-host>/mcp
  2. On ChatGPT web, open Settings and turn on Developer mode
  3. Plugins → Browse plugins → + → New Plugin
  4. Name: Onix
  5. Server URL: the /mcp URL
  6. Authentication: OAuth — do not leave No Auth selected
  7. 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.

  1. Create a Firebase project and enable Authentication → Google.
  2. Create a Firestore database (production mode is fine — the Admin SDK bypasses rules).
  3. Deploy firestore.rules (clients have no direct access).
  4. Add onixmpc.vercel.app and localhost under Authentication → Settings → Authorized domains.
  5. Project settings → service account → generate a private key.
  6. 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

  1. Push this repo to GitHub.
  2. Import the repo in Vercel.
  3. 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.

  1. 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: true tool argument

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured