Chainstack
by chainstack.com · remote · no sign-in to list tools · v1.11.1 · published by com.chainstack
Deploy and manage blockchain nodes across 70+ protocols, search docs, request testnet funds.
23 tools: 10 can delete or cancel things, 2 change things and 11 only read.
Scanned Oct 21, 2026
- Deletes or cancels10Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads11Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http chainstack https://mcp.chainstack.com/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
23 tools
Deletes or cancels 10Claude Code: deny
contact_chainstackSubmit a message to Chainstack's sales and support team.No findings
Why it is in this group
- The description's first verb is "submit": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
create_node_access_ruleAdd an IP or Origin allowlist rule to a Global node.No findings
Why it is in this group
- The name "create_node_access_rule" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
delete_nodeDelete a node (irreversible).No findings
Why it is in this group
- The name "delete_node" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a node (irreversible).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
delete_node_access_ruleDelete an access rule from a node (irreversible).No findings
Why it is in this group
- The name "delete_node_access_rule" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
delete_projectDelete a project (irreversible).No findings
Why it is in this group
- The name "delete_project" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a project (irreversible).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
request_testnet_fundsTop up a testnet address from Chainstack's faucet.No findings
Why it is in this group
- The name "request_testnet_funds" says "request": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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. One top-up per network every 24 hours: a repeat call for the same network is refused (429) if the same organization or the same address got funds there in the last 24 hours, and the error says when the next top-up is available. Other networks have separate cooldowns. A success is final even if the balance hasn't updated yet; track the returned `transaction` instead of calling again.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
set_node_access_rules_statusActivate or deactivate every access rule on a node at once.No findings
Why it is in this group
- The name "set_node_access_rules_status" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
update_nodeRename a node.No findings
Why it is in this group
- The name "update_node" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Rename a node.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
update_node_access_ruleChange an access rule's value, or activate or deactivate it.No findings
Why it is in this group
- The name "update_node_access_rule" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
update_projectUpdate a project's name or description.No findings
Why it is in this group
- The name "update_project" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update a project's name or description.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
Changes things 2Claude Code: ask
create_nodeDeploy a new blockchain node.No findings
Why it is in this group
- The name "create_node" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: true
create_projectCreate a new project.No findings
Why it is in this group
- The name "create_project" says "create": a word for a change.
Description, as the server wrote it Create a new project.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: true
Only reads 11Claude Code: allow
get_chainstack_pricingFetch Chainstack's public pricing and return a normalized snapshot.No findings
Why it is in this group
- The name "get_chainstack_pricing" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
get_deployment_optionsList blockchain/cloud/network combinations for node deployment.No findings
Why it is in this group
- The name "get_deployment_options" says "get": a word for reading.
Description, as the server wrote it List blockchain/cloud/network combinations for node deployment. Call before create_node to get valid blockchain and cloud IDs.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
get_doc_pageGet the full content of a Chainstack documentation page.No findings
Why it is in this group
- The name "get_doc_page" says "get": a word for reading.
Description, as the server wrote it Get the full content of a Chainstack documentation page. Use after search_docs to fetch the complete page when a snippet isn't enough.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
get_nodeGet a node's full details including endpoints and cloud info.No findings
Why it is in this group
- The name "get_node" says "get": a word for reading.
Description, as the server wrote it Get a node's full details including endpoints and cloud info.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
get_organizationGet organization name and ID.No findings
Why it is in this group
- The name "get_organization" says "get": a word for reading.
Description, as the server wrote it Get organization name and ID.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
get_platform_statusCheck platform status, active incidents, and maintenances.No findings
Why it is in this group
- The name "get_platform_status" says "get": a word for reading.
Description, as the server wrote it Check platform status, active incidents, and maintenances.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
get_projectGet project details.No findings
Why it is in this group
- The name "get_project" says "get": a word for reading.
Description, as the server wrote it Get project details.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
list_node_access_rulesList a node's access rules (IP and Origin allowlists, Global nodes only).No findings
Why it is in this group
- The name "list_node_access_rules" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
list_nodesList nodes with status and connection endpoints.No findings
Why it is in this group
- The name "list_nodes" says "list": a word for reading.
Description, as the server wrote it List nodes with status and connection endpoints.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
list_projectsList all projects.No findings
Why it is in this group
- The name "list_projects" says "list": a word for reading.
Description, as the server wrote it List all projects. Projects are containers for nodes.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
search_docsSearch Chainstack docs — blockchain RPC methods, node infrastructure, Web3 APIs, deployment guides, and code examples.No findings
Why it is in this group
- The name "search_docs" says "search": a word for reading.
Description, as the server wrote it Search Chainstack docs — blockchain RPC methods, node infrastructure, Web3 APIs, deployment guides, and code examples.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.11.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http chainstack https://mcp.chainstack.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__chainstack__get_organization",
"mcp__chainstack__get_deployment_options",
"mcp__chainstack__list_projects",
"mcp__chainstack__list_nodes",
"mcp__chainstack__get_node",
"mcp__chainstack__get_project",
"mcp__chainstack__list_node_access_rules",
"mcp__chainstack__search_docs",
"mcp__chainstack__get_doc_page",
"mcp__chainstack__get_platform_status",
"mcp__chainstack__get_chainstack_pricing"
],
"ask": [
"mcp__chainstack__create_project",
"mcp__chainstack__create_node"
],
"deny": [
"mcp__chainstack__update_project",
"mcp__chainstack__delete_project",
"mcp__chainstack__update_node",
"mcp__chainstack__delete_node",
"mcp__chainstack__create_node_access_rule",
"mcp__chainstack__update_node_access_rule",
"mcp__chainstack__delete_node_access_rule",
"mcp__chainstack__set_node_access_rules_status",
"mcp__chainstack__contact_chainstack",
"mcp__chainstack__request_testnet_funds"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as chainstack. Review it before you use it.