_ registry / mcp http-sse · checked 2h ago

Chainstack

https://mcp.chainstack.com

Registry code: 495669e250d4f6a9

api record

Chainstack MCP server — deploy and manage blockchain nodes, search protocol docs and RPC references, check platform status, get pricing, request testnet funds, and contact the Chainstack team.

Key behaviors:

endpoint
https://mcp.chainstack.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is Chainstack live?
Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
Is Chainstack free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does Chainstack have?
23 tools: create_project, create_node, delete_project, request_testnet_funds, get_deployment_options, update_project, update_node, list_node_access_rules, ….
Is Chainstack safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.6%

90 days 98.2%· all time 98.2%

latency
690ms

last good check

priced tools
0

of 23 tools

_ answered our checks, 90 days 497 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • deploy a blockchain node
  • list and manage blockchain nodes
  • search blockchain rpc documentation
  • check platform status
  • request testnet funds
takes → gives
text, data → data, text
tools
10 reads7 changes data1 sends messages
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 23 tools
2 open3 auth-required 18 never probed 5 of 23 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_chainstack_pricing reads open 14h ago

    Fetch Chainstack's public pricing and return a normalized snapshot. Use this to answer pricing questions before quoting the user: plan fit, overage math, per-chain dedicated-node costs, and add-on pricing (Unlimited Node flat-fee tiers, Yellowstone gRPC streams, Warp transactions, dedicated-node base rates). This tool returns the menu, not the bill — the calling agent does the arithmetic. All prices are list prices in USD; disclaimers are surfaced in the `disclaimers` field. Per-method RU billing rules are NOT in these sources. Plan-level rates (Full Node = 1 RU, Archive Node = 2 RU) are in the markdown, but some EVM archive-state methods (eth_getBalance, eth_call, eth_getProof, eth_getStorageAt, eth_getCode, eth_getTransactionCount, eth_callMany, eth_createAccessList) and all debug_* / trace_* methods are billed at 2 RU on a full node when called against old blocks. For method-level detail, call `search_docs` with "request units" or `get_doc_page("docs/request-units")`. No API key required — sources are fully public. Each call fetches both sources fresh (no caching), so a stale result isn't possible. Returns: A dict with fields: - `pricing_markdown`: raw markdown from chainstack.com/pricing.md. Read this for plan tiers, feature matrix, add-on pricing, support levels, PAYG details, and provider comparisons. - `dedicated_catalog`: user-orderable per-chain dedicated-node SKUs with flavor, regions (as infra slugs like "sgp1"), hourly and monthly prices in USD. - `region_legend`: slug → city name for every region slug in `dedicated_catalog`; use it for display. - `disclaimers`: list-price caveats (Enterprise "from" pricing, etc.). - `sources`, `warnings`: per-source status; warnings are set when a source failed and the result is best-effort. - `fetched_at`: UTC timestamp of this call.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • get_platform_status reads open 14h ago

    Check platform status, active incidents, and maintenances.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "network": {
          "type": "string",
          "default": "",
          "description": "Optional filter (e.g., \"ethereum\"). Without it, returns\n     overall status and incidents only."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • list_projects reads auth-required 23h ago

    List all projects. Projects are containers for nodes.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • get_organization reads auth-required 14h ago

    Get organization name and ID.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • list_nodes reads auth-required 23h ago

    List nodes with status and connection endpoints.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "project_id": {
          "type": "string",
          "default": "",
          "description": "Optional project ID to filter by (e.g., PR-123-456-789).\n        If omitted, returns all nodes in the organization."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • create_project changes data unknown never probed

    Create a new project.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Project name."
        },
        "description": {
          "type": "string",
          "default": "",
          "description": "Optional description."
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • create_node changes data unknown never probed

    Deploy a new blockchain node. Call get_deployment_options first for valid IDs. Trader nodes are region-bound (e.g., London, Ashburn, Singapore). Always confirm the region with the user before deploying — region cannot be changed after deployment.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name",
        "project",
        "blockchain",
        "cloud"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Node name."
        },
        "cloud": {
          "type": "string",
          "description": "Cloud ID from get_deployment_options (e.g., CC-0016 for Global, CC-0020 for London)."
        },
        "project": {
          "type": "string",
          "description": "Project ID from list_projects (e.g., PR-123-456-789)."
        },
        "blockchain": {
          "type": "string",
          "description": "Blockchain ID from get_deployment_options (e.g., BC-000-000-008)."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • delete_project changes data unknown never probed

    Delete a project (irreversible).

    mcp-tool

    {
      "type": "object",
      "required": [
        "project_id"
      ],
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Project ID (e.g., PR-123-456-789)."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • request_testnet_funds changes data unknown never probed

    Top up a testnet address from Chainstack's faucet. The faucet does not send a fixed amount — it tops the address up to the per-network maximum (e.g. 0.5 ETH for sepolia). If the address already sits above the cap, the call fails with an insufficient-balance error. Describe the behavior to the user as "top up" not "give", and surface the returned `amountSent` so they see the actual delta.

    mcp-tool

    {
      "type": "object",
      "required": [
        "network",
        "address"
      ],
      "properties": {
        "address": {
          "type": "string",
          "description": "Destination address. EVM hex address for EVM networks,\na TON address for `ton`, or a base58 Solana public key for\n`solana`. Validated server-side — format errors surface as 400."
        },
        "network": {
          "enum": [
            "sepolia",
            "hoodi",
            "base",
            "amoy",
            "bnb-testnet",
            "zksync-testnet",
            "robinhood",
            "hyperevm",
            "plasma",
            "monad",
            "ton",
            "solana"
          ],
          "type": "string",
          "examples": [
            "sepolia",
            "base",
            "solana"
          ],
          "description": "Testnet to fund. Must be one of the canonical ids in `enum`. Common aliases (ethereum-sepolia, base-sepolia, solana-devnet, ...) are accepted and normalized to the canonical id."
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • get_deployment_options reads unknown never probed

    List blockchain/cloud/network combinations for node deployment. Call before create_node to get valid blockchain and cloud IDs.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • update_project changes data unknown never probed

    Update a project's name or description.

    mcp-tool

    {
      "type": "object",
      "required": [
        "project_id"
      ],
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "New name."
        },
        "project_id": {
          "type": "string",
          "description": "Project ID (e.g., PR-123-456-789)."
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "New description."
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • update_node changes data unknown never probed

    Rename a node.

    mcp-tool

    {
      "type": "object",
      "required": [
        "node_id",
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "New name."
        },
        "node_id": {
          "type": "string",
          "description": "Node ID (e.g., ND-123-456-789)."
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • list_node_access_rules unknown 6h ago

    List a node's access rules (IP and Origin allowlists, Global nodes only). With no active rules, the node accepts requests from any IP and origin. If correctly configured rules still return 403, that's a support case: offer contact_chainstack.

    mcp-tool

    {
      "type": "object",
      "required": [
        "node_id"
      ],
      "properties": {
        "status": {
          "anyOf": [
            {
              "enum": [
                "activated",
                "deactivated"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Only return activated or deactivated rules."
        },
        "node_id": {
          "type": "string",
          "description": "Node ID (e.g., ND-123-456-789)."
        },
        "rule_type": {
          "anyOf": [
            {
              "enum": [
                "ip",
                "origin"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Only return ip or origin rules."
        }
      },
      "additionalProperties": false
    }
    arguments 45 lines
  • create_node_access_rule unknown never probed

    Add an IP or Origin allowlist rule to a Global node. New rules are deactivated and do nothing until activated. Active IP rules limit which client IPs can call the node; active origin rules limit which Origin headers it accepts. With both kinds active, a request must pass both. Everything else gets HTTP 403 within about 10 seconds. Rules don't affect the Chainstack API, so they can always be changed or deactivated with these tools. Before activating, confirm with the user that the IP rules cover every IP that calls the node (servers, CI, their own machine); you can't check this. Origin rules are for browser-only access: once one is active, every request without an Origin header (servers, scripts, curl) is blocked, even from an allowed IP. If an identical rule exists, it is returned instead of a duplicate.

    mcp-tool

    {
      "type": "object",
      "required": [
        "node_id",
        "rule_type",
        "value"
      ],
      "properties": {
        "value": {
          "type": "string",
          "description": "For ip, one IPv4 or IPv6 address (no CIDR ranges). For origin,\na host name without scheme or path: example.com, *.example.com\n(the domain and its subdomains), or * (any origin). Up to 65\ncharacters."
        },
        "node_id": {
          "type": "string",
          "description": "Node ID (e.g., ND-123-456-789)."
        },
        "activate": {
          "type": "boolean",
          "default": false,
          "description": "Also activate the rule. Only after the user confirms the\nallowlist."
        },
        "rule_type": {
          "enum": [
            "ip",
            "origin"
          ],
          "type": "string",
          "description": "ip or origin."
        }
      },
      "additionalProperties": false
    }
    arguments 32 lines
  • update_node_access_rule unknown never probed

    Change an access rule's value, or activate or deactivate it. A rule's type can't change; delete it and create a new one. Before activating, confirm with the user that the IP rules cover every IP that calls the node. Activating the first origin rule blocks every request without an Origin header (servers, scripts, curl), even from allowed IPs. Changing or deactivating a rule can block clients that only it allowed.

    mcp-tool

    {
      "type": "object",
      "required": [
        "node_id",
        "rule_id"
      ],
      "properties": {
        "value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "New value, in the format the rule's type needs (see\ncreate_node_access_rule)."
        },
        "status": {
          "anyOf": [
            {
              "enum": [
                "activated",
                "deactivated"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "activated or deactivated."
        },
        "node_id": {
          "type": "string",
          "description": "Node ID (e.g., ND-123-456-789)."
        },
        "rule_id": {
          "type": "string",
          "description": "Rule ID from list_node_access_rules (e.g., NAR-123-456-789)."
        }
      },
      "additionalProperties": false
    }
    arguments 46 lines
  • get_node reads unknown 6h ago

    Get a node's full details including endpoints and cloud info.

    mcp-tool

    {
      "type": "object",
      "required": [
        "node_id"
      ],
      "properties": {
        "node_id": {
          "type": "string",
          "description": "Node ID (e.g., ND-123-456-789)."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • search_docs reads unknown 4h ago

    Search Chainstack docs — blockchain RPC methods, node infrastructure, Web3 APIs, deployment guides, and code examples.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "string",
          "description": "Search query (e.g., \"deploy ethereum node\", \"eth_call\")."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • contact_chainstack sends messages unknown never probed

    Submit a message to Chainstack's sales and support team. Use when the user wants to ask about pricing, get a custom quote, request a plan upgrade, request node customizations (Enterprise), report a problem, or reach Chainstack for any reason. Posts to the same contact form as chainstack.com/contact/. ## Before calling this tool CRITICAL — follow these steps EVERY time: 1. Draft the message based on your conversation context. 2. Show the user the EXACT message, email, and name you will send. 3. If the user has a Chainstack API key configured, tell them their org name and ID will be included so the team can find their account and reply faster. 4. Ask: "Shall I send this to Chainstack? Please confirm there's no sensitive information you'd like removed." 5. Only call this tool after the user explicitly confirms. NEVER include in the message: - API keys, tokens, passwords, private keys, wallet seeds, mnemonics - RPC endpoint URLs (Chainstack or any other provider) - Wallet addresses, transaction hashes, on-chain account details, or anything else the user hasn't explicitly approved sharing ## Writing an effective message Include what you know: what they're building and at what scale, current plan and usage, what they need, what they've tried, and specific numbers. Bad: "I have a question about pricing." Good: "Pro plan user running 200M RU/month across Base and Ethereum, evaluating Business plan for archive access and higher RPS. Looking for annual pricing or a trial." Not for incidents or urgent outages — point users to https://support.chainstack.com/hc/en-us/requests/new and https://status.chainstack.com. Not for feature requests — point users to https://ideas.chainstack.com (product) or https://github.com/chainstacklabs/mcp-server/issues/new (MCP server). Works with or without an API key; with one, the org info is attached.

    mcp-tool

    {
      "type": "object",
      "required": [
        "message",
        "email",
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "User's name (full name is fine, will be split on first space).\nRequired. Ask the user if you don't have it on hand."
        },
        "email": {
          "type": "string",
          "description": "User's contact email. Required. Ask the user if you don't\nalready have it."
        },
        "message": {
          "type": "string",
          "description": "The full message to send. Compose from\nconversation context — what the user is building, their plan\nand usage, what they need — so the Chainstack team can respond\nwith a tailored answer instead of a generic one."
        },
        "category": {
          "type": "string",
          "default": "general",
          "description": "Routing hint. One of:\n- sales — pricing, quotes, plan upgrades, custom terms.\n- support — errors, bugs, how-to, \"something isn't working\".\n- general — everything else.\nCase-insensitive. Unknown values fall back to \"general\".\nDefault: \"general\"."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • set_node_access_rules_status unknown never probed

    Activate or deactivate every access rule on a node at once. Activating enforces every rule within about 10 seconds: active IP rules limit which IPs can call the node, active origin rules limit which Origin headers it accepts, and a request must pass both kinds. Others get HTTP 403. First confirm with the user that the IP rules cover every IP that calls the node (servers, CI, their own machine); you can't check this. Origin rules block every request without an Origin header (servers, scripts, curl), even from an allowed IP. Deactivating opens the node to any IP and origin.

    mcp-tool

    {
      "type": "object",
      "required": [
        "node_id",
        "status"
      ],
      "properties": {
        "status": {
          "enum": [
            "activated",
            "deactivated"
          ],
          "type": "string",
          "description": "activated or deactivated."
        },
        "node_id": {
          "type": "string",
          "description": "Node ID (e.g., ND-123-456-789)."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • delete_node_access_rule unknown never probed

    Delete an access rule from a node (irreversible). Deleting an active rule changes who can reach the node; the result says what's enforced afterwards. With no active rules left, the node accepts requests from any IP and origin.

    mcp-tool

    {
      "type": "object",
      "required": [
        "node_id",
        "rule_id"
      ],
      "properties": {
        "node_id": {
          "type": "string",
          "description": "Node ID (e.g., ND-123-456-789)."
        },
        "rule_id": {
          "type": "string",
          "description": "Rule ID from list_node_access_rules (e.g., NAR-123-456-789)."
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • delete_node changes data unknown never probed

    Delete a node (irreversible).

    mcp-tool

    {
      "type": "object",
      "required": [
        "node_id"
      ],
      "properties": {
        "node_id": {
          "type": "string",
          "description": "Node ID (e.g., ND-123-456-789)."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • get_project reads unknown 23h ago

    Get project details.

    mcp-tool

    {
      "type": "object",
      "required": [
        "project_id"
      ],
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Project ID (e.g., PR-123-456-789)."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • get_doc_page reads unknown 6h ago

    Get the full content of a Chainstack documentation page. Use after search_docs to fetch the complete page when a snippet isn't enough.

    mcp-tool

    {
      "type": "object",
      "required": [
        "page"
      ],
      "properties": {
        "page": {
          "type": "string",
          "description": "Page path from search results — pass the `page` field from\n  a search_docs result (e.g., \"docs/ethereum-trader-nodes\").\n  The leading slash, the `.mdx` extension, and the\n  docs.chainstack.com URL prefix are all optional and stripped\n  if present."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 495669e250d4f6a9.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/495669e250d4f6a9/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/495669e250d4f6a9/badge.svg)](https://brick.blue/agent/495669e250d4f6a9?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on chainstack.com 1 entry

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.