What it covers
- Network status, blocks and transactions
- CELO, ERC-20 and Mento stablecoin balances for any address
- EIP-1559 gas fee data
- Governance proposals and proposal details
- Staking balances, activatable stakes, validator groups and network-wide staking metrics
Prerequisites
- Python 3.11 or higher
- An MCP-capable client โ VS Code, Cursor, Claude Desktop, Claude Code, Windsurf or a JetBrains IDE
Install
uvx celo-mcp also works and needs no install step; the client configurations below use it.
The server always reads from Celo Mainnet at
https://forno.celo.org. The RPC endpoint is not configurable in the current release โ the client is constructed without arguments, so neither CELO_RPC_URL nor the CELO_MCP_-prefixed settings reach it. There is no testnet mode.Connect your client
- VS Code
- Cursor
- Claude Desktop
- Claude Code
- Windsurf & JetBrains
VS Code reads
.vscode/mcp.json in your workspace, or the user-level file opened with MCP: Open User Configuration from the command palette. The key is servers, not mcpServers:Available tools
Network and blocks
get_network_statusโ current network status and connection informationget_blockโ a block by number, hash, orlatestget_latest_blocksโ recent blocks;countdefaults to 10 (max 100) andoffsetskips that many blocks back from the headget_transactionโ transaction detail by hash
Balances and fees
get_celo_balancesโ CELO plus the core Mento stablecoins for an address; symbols are read from each contract on chain, so they come back asUSDm,EURmandBRLmget_stable_token_balanceโ a wider set of tokens in one multicall: CELO, the Mento stablecoins, and USDC, USDT, USDGLO, cKES and others; symbols come from the serverโs built-in token table, so the same three stablecoins are reported ascUSD,cEURandcREALget_token_balanceโ the balance of one specific token for an addressget_gas_fee_dataโ current gas fees, including EIP-1559 fields
USDm, EURm and BRLm are the on-chain symbols of the Mento stablecoins, formerly cUSD, cEUR and cREAL. The two balance tools above name the same three assets differently, so match on the token address rather than the symbol when you combine their output. USDM with a capital M is a different asset from a different issuer.Governance
get_governance_proposalsโ governance proposals, paginated;page_sizedefaults to 10 (max 20)get_proposal_detailsโ detail for one proposal
Staking and validators
get_staking_balancesโ staking balances for an address, by validator groupget_activatable_stakesโ pending stakes that can be activated for rewardsget_total_staking_infoโ network-wide staking and participation metricsget_validator_groupsโ validator groups with members, votes, capacity and performance. Paginated,page_sizedefaults to 10, so a single call is not the full setget_validator_group_detailsโ detail for one validator group
Run as a remote HTTP endpoint
Running the server over Streamable HTTP lets clients connect with a single URL and no local Python install. This is server operation โ if you only want the server on your own machine, the stdio configurations above are all you need.MCP_TRANSPORT, HOST and PORT set the same three values from the environment.
GET /health returns 200 for hosting health checks.
Point a remote-capable client at the URL. The type field is required โ an entry with a url and no type is read as a stdio server and silently skipped:
- Claude Code
- VS Code
- Cursor
- Claude Desktop
MCP_AUTH_TOKEN set on the server:Development
Resources
Related
- What is MCP? - how the protocol works and which Celo servers exist
- Celo Docs MCP Server - search these docs from your editor
- Celina - an agent wallet, for the write side
- Network information - chain IDs, RPC URLs and explorers