MCP server for the Noves Canton API — query Canton Network balances, rewards, classified transactions, prices, identity, and the network directory from any AI agent.
Strong tool naming (all verb_noun pattern), comprehensive descriptions (avg 180 chars, well within 10-1024 range), and complete input schemas with types and descriptions. All 9 tools follow consistent patterns. Output schemas are documented in descriptions. Error handling is present but generic. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. Missing output schema documentation in formal JSON Schema format, descriptions mention what's returned but no structured schema definition visible in code.
Get a Canton party's CC balance (total, locked, unlocked) with USD values — current, or at any point in time via the optional date. "What was X's balance on January 1?" → date: "2026-01-01".
Get a Canton party's daily CC balance series. Each row is the end-of-day (UTC) snapshot for that date. Defaults to the last 30 days when no range is given.
Get the Canton Coin (CC) USD price. No arguments → current spot price. timestamp → historical spot at that moment. startDate+endDate → OHLC series (interval: "hourly" or "daily", default daily). Good for "what's the CC price trend over the past month?".
Get a Canton party's mining/validator rewards. Three granularities: "summary" (default) — current earnings metrics (latest round, 1h avg, 24h avg, incl. post-traffic-cost CC/USD); "daily" — per-day totals over a date range (max 90 days per call); "transfers" — individual reward transfers. Optionally filter by rewardType.
Get the full classified detail of a single Canton update (transaction) by its update ID, including the complete payload: classification, all parties and roles, transfers, values, and raw transaction data. Use after get_transactions when you need everything about one update.
No tool annotations despite all tools being READ_ONLY. Missing readOnlyHint declarations in tool registration.
Output schemas not formally documented in JSON Schema format. Descriptions mention return fields but no structured schema definition visible in tool registration code.
Date/timestamp parameters accept multiple formats (ISO date, ISO datetime, unix timestamp) but lack explicit format constraints in schema. LLMs may pass invalid formats.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Get a Canton party's transaction history, classified into human-readable types (transfer, mergeSplit, validatorRewards, appRewards, svRewards, buyTraffic, issueCoupon, redeemCoupon, paySubscription, validatorLicenseActivityReport, …). Returns compact rows (id, time, type, roles, transfer summary) sorted newest-first. Use get_transaction for the full payload of one update. Set includeCount: true to also get the total update count for the window.
Get aggregate CC transfer statistics for a Canton party: total/sent/received counts, volumes, and unique counterparty count — optionally over a date range.
Resolve a human-friendly query (ANS name, display name, or raw party ID) to a canonical Canton party. Returns the party ID, display name, org type (validator / app / sv / unknown), current CC balance, ANS names, and update count. If the query is ambiguous, returns a candidate list to choose from. Use this first whenever the user refers to a party by name.
Browse or search the Canton network directory of known parties (validators, apps, super validators). Filter by orgType and/or a free-text query. Returns party ID, display name, org type, and current CC balance. Ask "who are the super validators?" → orgType: "sv".
Error handling present but generic. No recovery guidance in error responses (e.g., 'Try search_directory() if party not found'). No error categorization (retryable vs user-fixable).
Pagination parameters (limit, startDate/endDate) present but no explicit documentation of max values or total count return. Unclear if results include total_count or next_cursor for chaining.