About mgo
mgo is an x402-enabled MCP server that compares current gas prices across EVM chains and identifies the cheapest option. It serves trading agents and DeFi bots, with free demo access and paid tiers that add recommendations and savings estimates.
Key features
- 01Live gas prices across up to nine EVM chains
- 02Cheapest-chain recommendations
- 03Savings percentage and cost estimates
- 04Free demo and x402-paid API tiers
- 05Native-token USD price endpoint
Use cases
- 01Choose a lower-cost chain before a transaction
- 02Compare current gas across supported networks
- 03Estimate transaction-cost savings for a trading bot
MCP support
Provides a remote Streamable HTTP MCP endpoint with tools for gas data and chain recommendations. Paid tools use x402 payments.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://api.mgo.chain-ops.xyz/mcpclaude mcp add --transport http xyz-chain-ops-mgo https://api.mgo.chain-ops.xyz/mcp{"mcpServers":{"xyz-chain-ops-mgo":{"type":"http","url":"https://api.mgo.chain-ops.xyz/mcp"}}}Open in Cursor{"servers":{"xyz-chain-ops-mgo":{"type":"http","url":"https://api.mgo.chain-ops.xyz/mcp"}}}Open in VS Code{"mcpServers":{"xyz-chain-ops-mgo":{"type":"http","url":"https://api.mgo.chain-ops.xyz/mcp"}}}{"mcpServers":{"xyz-chain-ops-mgo":{"serverUrl":"https://api.mgo.chain-ops.xyz/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
4This tool takes no parameters.
Details
From the project READMEMGO — Multi-chain Gas Optimizer
An x402-native API that compares real-time gas prices across up to 9 EVM chains and recommends the cheapest one. Built for trading agents, DeFi bots, and any AI agent that needs to optimize transaction costs.
Quick Start
# 1. Install dependencies
npm install
# 2. Set environment variables
cp .env.example .env
# Set WALLET_ADDRESS (USDC receiving wallet on Base) and CDP_API_KEY_ID/SECRET (facilitator auth)
# 3. Run locally (same entry point as production)
npm start
# 4. Test
# Open in browser: http://localhost:3000/gas/demo
Tiers
| Feature | Demo (Free) | Basic ($0.001) | Premium ($0.002) |
|---|---|---|---|
| Chains | 4 | 4 | 9 |
| Gas prices | Yes | Yes | Yes |
| Cheapest chain recommendation | No | Yes | Yes |
| Savings % calculation | No | Yes | Yes |
| Cost savings estimate | No | Yes | Yes |
| BNB, Polygon, Avalanche, zkSync, Hyperliquid | No | No | Yes |
| Rate limit | 10/hr, 100/day | Unlimited | Unlimited |
Endpoints
| Endpoint | Payment | Description |
|---|---|---|
GET /gas/demo | Free | Raw gas prices only (10/hr rate limit) |
GET /gas/basic | $0.001 USDC (x402) | 4-chain comparison + recommendation + savings |
GET /gas/premium | $0.002 USDC (x402) | 9-chain full comparison |
GET /prices | Free | Native token USD prices (ETH, BNB, POL, AVAX, HYPE), 60s cache |
POST /mcp | Free / x402 | MCP Streamable HTTP endpoint (tools: get_gas_demo, get_cheapest_chain, get_gas_basic, get_gas_premium) |
GET /openapi.json | Free | OpenAPI 3.1 spec |
GET /llms.txt, /skill.md | Free | AI agent discovery files |
GET /.well-known/x402, /.well-known/x402.json, /.well-known/mcp.json, /.well-known/agent-card.json | Free | Discovery metadata |
GET /health | Free | Server health check |
Payment Flow (x402 v2)
GET /gas/basicor/gas/premium→402with requirements in thePAYMENT-REQUIREDheader (base64 JSON). A v1-shaped copy is also in the body for legacy clients.- Client signs an EIP-3009 USDC authorization on Base (
eip155:8453) - Resend with
PAYMENT-SIGNATUREheader → facilitator (Coinbase CDP) verifies → data response withPAYMENT-RESPONSEreceipt → USDC settled on-chain
If the upstream RPC / price feed is unavailable the API answers 503 and no payment is settled.
// Client example (@x402/fetch, x402 v2)
const { wrapFetchWithPayment } = require("@x402/fetch");
const { x402Client } = require("@x402/core/client");
const { ExactEvmScheme } = require("@x402/evm/exact/client");
const { privateKeyToAccount } = require("viem/accounts");
const client = new x402Client().register("eip155:*", new ExactEvmScheme(privateKeyToAccount(process.env.EVM_PRIVATE_KEY)));
const paidFetch = wrapFetchWithPayment(fetch, client);
const res = await paidFetch("https://api.mgo.chain-ops.xyz/gas/basic");
MCP (Claude / Cursor / any MCP client)
Remote Streamable HTTP server, no install:
{
"mcpServers": {
"mgo-gas": { "url": "https://api.mgo.chain-ops.xyz/mcp" }
}
}
Also published as npm package chain-ops-mgo and in the official MCP Registry (xyz.chain-ops/mgo). Paid tools return the decoded x402 payment requirements; pay with an x402 client against the resource URL.
Operations
- Access log +
/stats(Upstash Redis, key viaSTATS_KEY; send it asx-stats-keyheader) - Demo rate limit and the CoinGecko price cache are shared through the same Redis
- Secrets never live in this repo: see
.env.example
Deploy to Vercel
npm i -g vercel
vercel --prod
Platform Registration
- BlockRun — Register MCP server URL
- Dexter — One-line facilitator config
- x402.org — Automatic llms.txt crawling
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.