docs(mcp): refresh Celo MCP Server page for remote HTTP transport and current tool set - #2288
Conversation
|
The reconciliation itself checks out: I verified the 15-tool list against upstream The PR body says the commands were verified against Worth fixing in the same pass:
Smaller:
|
|
Reproduced the release blocker independently before touching anything — you are right, and the page cannot ship as written.
I have not rewritten the page, because the fix depends on a call that is not mine to make:
I would rather not guess between "documentation for unreleased software, labelled" and "wait" on a page whose job is install instructions. @GigaHierz — which one? The rest of your list is unambiguous and I will apply it in whichever direction is chosen. Flagging two that change what gets written rather than just how:
Also noting your conflict warning: #2287 touches the same list block in |
58eddf6 to
34dcd64
Compare
|
Unblocked — 0.4.1 is on PyPI and the page is rewritten against the published wheel, not upstream main. Every run command on the page now works from On the RPC variables — you were right, and it is worse than "nothing reads these". I traced it rather than just deleting the section: So Tool list. Diffed rather than re-read: Exact match with the page. This also settles your card point: The rest as you listed: Structure: remote is its own H2 (it is server operation, not client integration), the run command appears once instead of three times, headings are sentence case, the changelog aside is gone, and the page has Resources and Related — it had no internal links at all before. Rebased on main, so the #2287 conflict in |
… current tool set Reconcile the Celo MCP Server page with the upstream celo-org/celo-mcp repository, which has drifted from the docs: - Document the remote Streamable HTTP transport (added upstream), including the HTTP run commands, URL-based client config, and env-var configuration table (MCP_TRANSPORT, HOST/PORT, MCP_ALLOWED_HOSTS, auth token, etc.). - Replace the Available Tools list with the server's actual 15 tools: drop tools no longer registered (get_account, get_token_info, both NFT tools, both contract tools, estimate_transaction) and add the missing balances/staking/validator tools (get_stable_token_balance, get_staking_balances, get_activatable_stakes, get_total_staking_info, get_validator_groups, get_validator_group_details). - Correct Key Features and the intro to match read-only capabilities (remove NFT/smart-contract/simulation claims that no longer apply). - Update the run command to the current entry point (celo-mcp-server) and the Code Quality section to ruff (replacing isort/flake8). - Refresh the summary bullet on the MCP index page. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Match the four local examples so readers see one server key throughout. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
celo-mcp 0.4.1 is on PyPI (2026-08-31) with the `celo-mcp-server` entry point and starlette/uvicorn, so the HTTP transport this page documents is now installable. Verified against the published wheel rather than upstream main. Corrections, each checked against 0.4.1: - The RPC endpoint is not configurable. `CELO_RPC_URL` and `CELO_TESTNET_RPC_URL` are read by nothing; settings use a `CELO_MCP_` prefix, and even those never arrive, because BlockchainDataService constructs `CeloClient()` with no arguments. The server always uses forno mainnet. The page said the opposite and offered a testnet variable whose Alfajores default no longer resolves. - `get_validator_groups` is paginated with `page_size` defaulting to 10. Read as "all validator groups", an assistant using this page as tool documentation reports the first 10 as the complete set. - `get_celo_balances` and `get_stable_token_balance` read as duplicates. The first covers CELO plus the core Mento stablecoins; the second multicalls the wider registry. The USDm/EURm/BRLm note is back, since this page is where the symbols first appear. - The remote client config omitted `"type": "http"`, which Claude Code reads as a stdio server and skips, and used `mcpServers` for VS Code, which wants `servers`. Both are now per-client tabs, matching use-docs-with-ai. - The VS Code stdio section pointed at `~/.vscode/mcp.json`, which VS Code does not read. - `MCP_TRUST_PROXY` was missing. Without it, rate limiting behind a load balancer keys on the proxy IP and every client shares one bucket. - `MCP_AUTH_TOKEN` had no client half; the bearer header is now shown. - The quickstart bound 127.0.0.1 with localhost-only allowed hosts, so a remote client hits connection refused and then HTTP 421 with nothing mapping those symptoms to HOST and MCP_ALLOWED_HOSTS. Now a Warning that names both. - The NFT claim on the use-docs-with-ai card was wrong: the server registers 15 tools and none of them are NFT tools, despite the module existing. Structure: the remote section is server operation, so it is its own H2 rather than a subsection of client integration, and the run command appears once instead of three times. Headings are sentence case, the changelog aside is gone, and the page gains Resources and Related sections — it previously had no internal links at all. Verified: mintlify broken-links green. Tool list diffed against `grep -oE 'name="[a-z_]+"' celo_mcp/server.py` in the 0.4.1 wheel: 15, exact match. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
34dcd64 to
7ac9513
Compare
|
The release landed — this needs a re-read rather than a re-review of what you saw. You reviewed on 2026-08-28, when PyPI's latest So Your other points look addressed in the same rewrite — spot-checked against the current head:
I have not re-verified the tool list or the Also worth knowing: #2287 merged, and it edited the same list block in CI is green on the current head. |
|
Re-verified against the published 0.4.1 wheel rather than upstream Both things you left open hold up. The tool list is an exact 1:1: fifteen The HTTP guidance matches One thing left, and it is the first round's failure mode in a new place. The note at lines 118-120 tells the reader these tools return # tokens/service.py:507
token_symbol=token_info["symbol"], # "cUSD" / "cEUR" / "cREAL"So the two tools report different symbols for the same three assets, and the note sits under both bullets. An agent reading this page as tool documentation will look for The rest:
Two optional ones, not defects: Separately, the body has not kept up with the branch. It still says the commands were verified against the current Fix line 114 and rewrite the body and I will approve. |
…pagination defaults get_celo_balances reads symbol() from each contract on chain and returns USDm, EURm and BRLm. get_stable_token_balance never calls symbol(); it builds each result from the server's built-in token table, which still says cUSD, cEUR and cREAL. The note under both bullets implied one set of symbols for both tools, so an agent reading the page as tool documentation would look for USDm in get_stable_token_balance output and read the balance as missing. Also record the count/offset parameters on get_latest_blocks and the page_size default on get_governance_proposals. All three checked against the published celo-mcp 0.4.1 wheel (server.py inputSchema, tokens/service.py). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Both done in Line 114. Each balance bullet now says where its symbols come from: The two optional ones, taken since both are one clause and checkable in The body is rewritten against the branch as it is: verified against the published 0.4.1 wheel rather than upstream
|
What & why
The Celo MCP Server page described the server as it was several releases ago: local stdio only, a tool list that no longer matched what the server registers, and setup guidance for an entry point that had been renamed. This rewrites the page against the published
celo-mcp0.4.1 wheel on PyPI, which is whatpipx install celo-mcpand theuvxclient configs on the page actually install. An earlier revision of this PR was written against upstreammainahead of that release; the branch was rewritten once 0.4.1 shipped.Separate from #2287 (Celina pages), which only cross-links this page and has since merged.
Changes
build-on-celo/build-with-ai/mcp/celo-mcp.mdxhttps://forno.celo.org. The endpoint is not configurable in 0.4.1 and there is no testnet mode; the page says so instead of documenting aCELO_RPC_URLthat nothing reads.<Tabs>block per client for the local stdio setup, with thecelo-mcpentry point andpipx/uvxinstall paths.celo-mcp-serverentry point and Streamable HTTP at/mcp, with a table of the environment variables it honours:MCP_TRANSPORT,HOST/PORT,MCP_ALLOWED_HOSTS,MCP_CORS_ORIGINS,MCP_RATE_LIMIT/MCP_RATE_WINDOW,MCP_TRUST_PROXY,MCP_AUTH_TOKEN, plus the/healthroute and the 421 you get when the Host header is not allow-listed. Client config for the remote case is a second<Tabs>block.get_account,get_token_info,get_nft_info,get_nft_balance,call_contract_function,estimate_contract_gas,estimate_transaction); six that were missing are added (get_stable_token_balance,get_staking_balances,get_activatable_stakes,get_total_staking_info,get_validator_groups,get_validator_group_details). Pagination parameters are noted where a tool has them.get_celo_balancesreadssymbol()on chain and returnsUSDm/EURm/BRLm;get_stable_token_balanceuses the server's built-in token table and reports the same three assets ascUSD/cEUR/cREAL. Each bullet says which, and the note tells readers to match on token address when combining the two.src/layout andruff(the dev extra), replacingisort/flake8.## Resourcesand## Relatedadded per AGENTS.md.build-on-celo/build-with-ai/mcp/index.mdx: the Celo MCP Server summary bullet now says balances, governance, staking and validators, local or remote.build-on-celo/build-with-ai/use-docs-with-ai.mdx: the card no longer claims NFT support.Verification
Against the published wheel, not the repository:
celo_mcp-0.4.1-py3-none-any.whlfrom PyPI.entry_points.txtcarriescelo-mcpandcelo-mcp-server;http_app.pyships in the wheel;requires_distlistsstarletteanduvicorn. Every run command on the page resolves frompipx install celo-mcp.Tool(name=...)registrations inserver.py, fifteen on the page, nothing extra either way.http_app.pyandserver.py:cli, including the defaults.CeloClient()is constructed with no arguments and the settings object never reachesrpc_url.tokens/service.py:186callssymbol()on chain forget_celo_balances;:508buildsget_stable_token_balanceresults from the table at:82-96.mint broken-linksgreen on the branch head. All internal links resolve,celinaincluded now that docs(build-with-ai): add Celina SDK, MCP, hosted MCP, and API pages #2287 has merged.