{
  "markdown": "<p align=\"center\">\n  <a href=\"https://noves.fi\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"assets/noves-logo-white.svg\">\n      <img src=\"assets/noves-logo-primary.svg\" alt=\"Noves\" width=\"260\">\n    </picture>\n  </a>\n</p>\n\n<h1 align=\"center\">canton-mcp</h1>\n\n<p align=\"center\"><strong>Ask your AI about the Canton Network.</strong></p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@noves/canton-mcp\"><img src=\"https://img.shields.io/npm/v/%40noves%2Fcanton-mcp?label=npm&color=cb3837\" alt=\"npm version\"></a>\n  <a href=\"https://github.com/Noves-Inc/canton-mcp/actions/workflows/ci.yml\"><img src=\"https://github.com/Noves-Inc/canton-mcp/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"></a>\n  <a href=\"https://registry.modelcontextprotocol.io\"><img src=\"https://img.shields.io/badge/MCP_Registry-listed-6e56cf\" alt=\"MCP Registry\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/npm/l/%40noves%2Fcanton-mcp?color=blue\" alt=\"MIT license\"></a>\n</p>\n\nAn [MCP](https://modelcontextprotocol.io) server for the\n[Noves Canton API](https://docs.noves.fi/reference/welcome-canton-apis) — balances, rewards,\nclassified transactions, CC prices, identity, and the network directory, queryable from\nClaude Code, Claude Desktop, Cursor, or any MCP-capable agent.\n\n```text\nYou: How has the CC price moved over the last 7 days? Chart it.\nAI:  → get_price(startDate, endDate, interval: \"daily\")\n     CC closed at $0.1462 today, up 4.2% on the week (low $0.1402, high $0.1521).\n     [renders an interactive price chart]\n```\n\n## Quick start\n\nGet your free API key at **https://app.noves.fi/register/free**.\n\n### Claude Desktop — one click\n\nDownload `canton-mcp.mcpb` from the\n[latest release](https://github.com/Noves-Inc/canton-mcp/releases/latest),\ndouble-click it (or drag into Claude Desktop), and paste your API key in the\nsettings form that appears. The key is stored in your OS keychain. Done.\n\n### Claude Code\n\n```bash\nnpx -y @noves/canton-mcp init   # one-time: prompts for your key, validates it, saves it\nclaude mcp add canton -- npx -y @noves/canton-mcp\n```\n\nOr in one line, passing the key explicitly:\n\n```bash\nclaude mcp add canton --env NOVES_API_KEY=<your-key> -- npx -y @noves/canton-mcp\n```\n\n### Cursor / other MCP clients\n\nAfter `npx -y @noves/canton-mcp init`, no env var is needed:\n\n```json\n{\n  \"mcpServers\": {\n    \"canton\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@noves/canton-mcp\"]\n    }\n  }\n}\n```\n\n(Or skip `init` and add `\"env\": { \"NOVES_API_KEY\": \"<your-key>\" }`.)\n\n**Key resolution order:** `NOVES_API_KEY` env var → `--api-key` flag →\n`~/.config/canton-mcp/config.json`. The key is sent only to\n`api.canton.noves.fi` and never logged.\n\n## Tools\n\nEvery tool that takes a `party` accepts an **ANS name**, a **display name**, or a\n**raw party ID** (`name::hash`) — resolution is automatic, and ambiguous names\nreturn a candidate list to choose from.\n\nExamples:\n\n- \"Who are the super validators on Canton?\" → `search_directory(orgType: \"sv\")`\n- \"What's Noves' current CC balance?\" → `get_balance(party: \"noves.unverified.cns\")`\n- \"Chart Noves' balance over the last 30 days.\" → `get_balance_history(party, startDate, endDate)`\n- \"Show recent traffic purchases for this validator.\" → `get_transactions(party, txType: \"buyTraffic\")`\n\n| Tool | What it answers |\n|---|---|\n| `resolve_party` | \"Who is this party?\" — canonical party ID, org type, balance, ANS names |\n| `search_directory` | \"Who are the super validators?\" — browse/filter the network directory |\n| `get_balance` | \"What's this party's balance?\" — current **or at any point in time** (`date`) |\n| `get_balance_history` | \"Chart its balance over last month\" — daily end-of-day snapshots |\n| `get_rewards` | \"What did it earn?\" — summary metrics, per-day totals, or individual payouts |\n| `get_transactions` | \"Show its recent traffic purchases\" — classified history (transfer, buyTraffic, …) |\n| `get_transfer_stats` | \"How active is it?\" — counts, volumes, unique counterparties |\n| `get_price` | \"CC price trend this month?\" — spot, historical spot, hourly/daily OHLC |\n| `get_transaction` | Full classified payload of one update by ID |\n\nSee [examples/PROMPTS.md](examples/PROMPTS.md) for questions to try.\n\n### Notes & limits\n\n- **Read-only.** The server only reads data; it can't change anything on the network or in your account.\n- Date inputs accept ISO dates (`2026-06-01`), ISO datetimes, or unix timestamps.\n- Daily rewards are fetched in ≤30-day windows upstream; the server merges up to 90 days per call.\n- List outputs are capped (default 25 rows) with `hasMore` hints to keep agent context lean.\n- `get_transactions` returns 25 rows by default and accepts `limit` up to 100; use\n  `includeCount` for the total count in a date window, and `get_transaction` for one full update.\n- Chains/txTypes (1h), directory & identity lookups (5m), and spot price (60s) are cached\n  in-process, keeping typical agent sessions comfortably inside the free tier.\n\n## License\n\n[MIT](LICENSE) © Noves Inc.\n",
  "bytes": 5023,
  "sha": "27b0d71e5269ea4ebe43e64989f933adf4da7a5c0ac97516a5190eeb0f834979",
  "repo_slug": "noves-inc/canton-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_noves_inc_canton_mcp_d4c416db/readme"
}