About Agent Tollgate
Agent Tollgate is a pay-per-call trading intelligence and swap-routing service for autonomous agents, running on Cloudflare Workers. It supports x402 micropayments and embeds platform fees in swap quotes; it holds no keys or funds.
Key features
- 01Accept USDC micropayments per call
- 02Offer order-book imbalance and token audits
- 03Build Solana swap quotes
- 04Build cross-chain swap quotes
- 05Verify on-chain payments and prevent replay
Use cases
- 01Retrieve trading intelligence per call
- 02Audit a token
- 03Build a fee-bearing Solana swap
- 04Build a fee-bearing cross-chain swap
MCP support
It provides an MCP server at https://skinwinking.com/mcp, accessible over HTTP or stdio. The server exposes trading intelligence and swap-routing capabilities as tools for MCP clients.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://skinwinking.com/mcpclaude mcp add --transport http com-skinwinking-agent-tollgate https://skinwinking.com/mcp{"mcpServers":{"com-skinwinking-agent-tollgate":{"type":"http","url":"https://skinwinking.com/mcp"}}}Open in Cursor{"servers":{"com-skinwinking-agent-tollgate":{"type":"http","url":"https://skinwinking.com/mcp"}}}Open in VS Code{"mcpServers":{"com-skinwinking-agent-tollgate":{"type":"http","url":"https://skinwinking.com/mcp"}}}{"mcpServers":{"com-skinwinking-agent-tollgate":{"serverUrl":"https://skinwinking.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
3| Parameter | Type | Required | Description |
|---|---|---|---|
| pair | string | Yes | Trading pair such as SOL-USDT, BTC-USDT, ETH-USDT |
| paymentProof | string | No | Payment proof: USDC tx hash on Polygon or Base (0x...) or Solana tx signature. Omit on the first call to receive the 402 payment instructions, pay, then call again with the proof. |
Details
From the project READMEagent-tollgate-engine
Live at https://skinwinking.com. Machine-readable: /llms.txt, /openapi.json, MCP at https://skinwinking.com/mcp.
Pay-per-call trading intelligence and fee-bearing swap routing for autonomous agents, on Cloudflare Workers.
Revenue paths:
- x402 micropayments in USDC (Polygon or Solana) for
orderbook-imbalance(0.02 USDC) andtoken-audit(0.20 USDC). - 30 bps platform fee on swaps built by
quote-and-build(Jupiter on Solana, LI.FI cross-chain/EVM).
All payments go straight to the merchant addresses in wrangler.toml. The server holds no keys and no funds.
Layout
| Package | Role |
|---|---|
packages/core | config, route catalog, on-chain payment verification (EVM, Solana, x402 facilitator), replay protection interface |
packages/api-worker | Hono Worker, x402PaymentGate middleware, Durable Object nonce store, route handlers |
packages/omni-router | Jupiter (Solana) and LI.FI (cross-chain) quote builders with fee embedding |
packages/discovery | /llms.txt, /openapi.json, MCP server (HTTP at /mcp, stdio via npm run mcp) |
packages/simulation-agent | end-to-end simulated agent |
Local run
npm install
cp .env.example .dev.vars # then set SOLANA_RPC_URL and EVM_RPC_URL to private endpoints
npm run dev # http://127.0.0.1:8787, simulation receipts enabled
npm run dev sets SIM_SECRET, which enables HMAC simulation receipts (Bearer sim_...). Never set SIM_SECRET in production.
If port 8787 is busy: npx wrangler dev --port 8799 --var SIM_SECRET:dev-simulation-secret and BASE_URL=http://127.0.0.1:8799.
Simulation
With npm run dev running in another terminal:
npm run simulate
Steps: unpaid call returns 402, simulated payment succeeds, replay is rejected, a Solana swap quote proves the fee account is inside the built transaction, a Polygon to Base quote proves the LI.FI integrator fee.
Production prerequisites
- RPC: public endpoints are rate-limited or blocked. Use private ones.
npx wrangler secret put SOLANA_RPC_URL npx wrangler secret put EVM_RPC_URL - LI.FI integrator: register
LIFI_INTEGRATORat https://portal.li.fi, set the fee wallet to the EVM payout address, and set the fee to 0.3%. Without it LI.FI rejects quotes that carryfee. - Solana fee token accounts: the Jupiter fee is paid in the output token to the merchant's associated token account for that mint. The route returns
FEE_ACCOUNT_MISSINGuntil that account exists. Receiving a small amount of the token (or creating the ATA in Phantom) creates it. USDC and wSOL cover the main pairs. - Optional
X402_FACILITATOR_URLenablesX-402-Signaturesettlement through an x402 facilitator.
Deploy
npx wrangler deploy
Attach the domain under Workers & Routes in the Cloudflare dashboard (custom domain on the worker).
Payment proofs
| Header | Meaning |
|---|---|
Authorization: Bearer 0x<64 hex> | Polygon USDC transfer to the merchant, at least the route price, at least EVM_MIN_CONFIRMATIONS deep, younger than PAYMENT_MAX_AGE_SEC |
Authorization: Bearer <base58 signature> | Solana USDC transfer, confirmed commitment |
X-402-Signature: <base64 payload> | x402 payload verified and settled via the facilitator |
Each proof is accepted once (Durable Object, 7 day TTL).
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.