Chainstack
REMOTE · MCP.CHAINSTACK.COM · SCANNED AUG 18
Deploy and manage blockchain nodes across 70+ protocols, search docs, request testnet funds.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security66
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_project). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability79
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3563 tokens (~178/item across 20 items; 18 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage73
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 4% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.chainstack.com
claude mcp add --transport http com-chainstack-chainstack https://mcp.chainstack.com/mcp
[mcp_servers.com-chainstack-chainstack] url = "https://mcp.chainstack.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-chainstack-chainstack": {
"type": "remote",
"url": "https://mcp.chainstack.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-chainstack-chainstack --url https://mcp.chainstack.com/mcp --transport streamable-http
mcp_servers:
com-chainstack-chainstack:
url: "https://mcp.chainstack.com/mcp" {
"mcpServers": {
"com-chainstack-chainstack": {
"type": "http",
"url": "https://mcp.chainstack.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 17 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Aug 26 0
- Stability: unverified → 0.03 ▲ functional
- 11 Aug 26 65
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 18 Aug 2026 · Probed https://mcp.chainstack.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=chainstack.com | CN=YE1,O=Let's Encrypt,C=US | 14 Jul 2026 | 12 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 5f204ddcefbfac86ddc69c3eda5766c71ca |
| SANs: *.chainstack.com, *.core.chainstack.com, chainstack.com | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC secure
Validation of mcp.chainstack.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| chainstack.com. | present | 2371 | 13 | Verified |
| mcp.chainstack.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | same-origin |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.chainstack.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.chainstack.com/mcp | HTTPS enforced | 301 | https://mcp.chainstack.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
contact_chainstack ~775
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: "I'll also include your Chainstack account info (org name and ID) so the team can pull up your account immediately — this means significantly faster handling and a more tailored response." 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, or on-chain account details the user hasn't approved sharing - Any information the user hasn't explicitly approved sharing If the user shared sensitive data during the conversation, do NOT include it unless they specifically approve it in the review step. ## Writing an effective message A great message gets the user a faster, more tailored response. Include what you already know from the conversation: - What they're building and at what scale - Current plan and usage (e.g., "Pro plan, ~80M RU/month on Base") - What they need (upgrade, custom pricing, migration help, etc.) - What they've tried or what's not working - Specific numbers when available 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 prici…
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| string | yes | – | |
| message | string | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| alternative_channels | array | yes | – |
| estimated_response_time | string | yes | – |
| lead_source | string | yes | – |
| submitted | boolean | yes | – |
No examples provided.
create_node ~164
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. Args: name: Node name. project: Project ID from list_projects (e.g., PR-123-456-789). blockchain: Blockchain ID from get_deployment_options (e.g., BC-000-000-008). cloud: Cloud ID from get_deployment_options (e.g., CC-0016 for Global, CC-0020 for London).
| Name | Type | Req | Description |
|---|---|---|---|
| blockchain | string | yes | – |
| cloud | string | yes | – |
| name | string | yes | – |
| project | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| api_namespaces | array | – | – |
| beacon_endpoint | string | – | – |
| blockchain | string | – | – |
| cloud | string | – | – |
| https_endpoint | string | – | – |
| id | string | yes | – |
| name | string | yes | – |
| network | string | yes | – |
| node_tier | string | yes | – |
| project | string | yes | – |
| protocol | string | yes | – |
| region | string | yes | – |
| status | – | yes | – |
| wss_endpoint | string | – | – |
No examples provided.
create_project ~41
Create a new project. Args: name: Project name. description: Optional description.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| created_at | string | – | – |
| creator | object | – | – |
| description | – | – | – |
| id | string | yes | – |
| name | string | yes | – |
| networks | integer | – | – |
| type | – | – | – |
No examples provided.
delete_node ~43
Delete a node (irreversible). Args: node_id: Node ID (e.g., ND-123-456-789).
| Name | Type | Req | Description |
|---|---|---|---|
| node_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
delete_project ~43
Delete a project (irreversible). Args: project_id: Project ID (e.g., PR-123-456-789).
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_chainstack_pricing ~663
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. Design: we pass pricing.md through as raw markdown. Marketing owns that file and its structure changes freely; parsing it server-side would couple us to heading text and table column names we don't control. The LLM reads markdown natively, so handing the raw text to the agent keeps us correct regardless of how the page is restructured. pricing_current.json is parsed into `dedicated_catalog` because it has a stable engineering-owned schema, and the catalog benefits from filtering (to user-orderable SKUs only), unit conversion (cents → USD, milli-cores → cores), and region humanization (via `region_legend`). 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`: us…
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| dedicated_catalog | – | yes | – |
| disclaimers | array | yes | – |
| fetched_at | string | yes | – |
| pricing_markdown | – | yes | – |
| region_legend | – | yes | – |
| sources | object | yes | – |
| warnings | array | yes | – |
No examples provided.
get_deployment_options ~31
List blockchain/cloud/network combinations for node deployment. Call before create_node to get valid blockchain and cloud IDs.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
get_doc_page ~111
Get the full content of a Chainstack documentation page. Use after search_docs to fetch the complete page when a snippet isn't enough. Args: page: Page path from search results — pass the `page` field from a search_docs result (e.g., "docs/ethereum-trader-nodes"). The leading slash, the `.mdx` extension, and the docs.chainstack.com URL prefix are all optional and stripped if present.
| Name | Type | Req | Description |
|---|---|---|---|
| page | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_node ~48
Get a node's full details including endpoints and cloud info. Args: node_id: Node ID (e.g., ND-123-456-789).
| Name | Type | Req | Description |
|---|---|---|---|
| node_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| api_namespaces | array | – | – |
| beacon_endpoint | string | – | – |
| blockchain | string | – | – |
| cloud | string | – | – |
| https_endpoint | string | – | – |
| id | string | yes | – |
| name | string | yes | – |
| network | string | yes | – |
| node_tier | string | yes | – |
| project | string | yes | – |
| protocol | string | yes | – |
| region | string | yes | – |
| status | – | yes | – |
| wss_endpoint | string | – | – |
No examples provided.
get_organization ~15
Get organization name and ID.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| name | string | yes | – |
No examples provided.
get_platform_status ~54
Check platform status, active incidents, and maintenances. Args: network: Optional filter (e.g., "ethereum"). Without it, returns overall status and incidents only.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| components | array | – | – |
| incidents | array | yes | – |
| maintenances | array | yes | – |
| status | string | yes | – |
No examples provided.
get_project ~40
Get project details. Args: project_id: Project ID (e.g., PR-123-456-789).
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| created_at | string | – | – |
| creator | object | – | – |
| description | – | – | – |
| id | string | yes | – |
| name | string | yes | – |
| networks | integer | – | – |
| type | – | – | – |
No examples provided.
list_nodes ~59
List nodes with status and connection endpoints. Args: project_id: Optional project ID to filter by (e.g., PR-123-456-789). If omitted, returns all nodes in the organization.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
list_projects ~18
List all projects. Projects are containers for nodes.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
request_testnet_funds ~548
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. Supported networks and their native assets: - sepolia, hoodi — Ethereum testnets (ETH) - base — Base Sepolia (ETH) - amoy — Polygon Amoy (POL) - bnb-testnet — BNB Smart Chain testnet (BNB) - zksync-testnet — zkSync Sepolia (ETH) - robinhood — Robinhood Chain testnet (ETH) - hyperevm — HyperEVM testnet (HYPE) - plasma — Plasma testnet (XPL) - monad — Monad testnet (MON) - ton — TON testnet (TON) - solana — Solana devnet (SOL) Per-address cooldown applies after each successful drip. On cooldown the faucet returns a `nextFaucetAvailable` timestamp (ISO 8601) that this tool surfaces in the error message. Requires a Chainstack API key. The key is also the rate-limiting identity — the faucet tracks usage per organization. Get a key at https://console.chainstack.com/user/settings/api-keys and add it as `Authorization: Bearer <key>` in the MCP client config. Never ask the user to paste their API key in chat. Args: network: Canonical testnet id (the schema `enum` advertises the set). Case-insensitive; common aliases are normalized to the canonical id. address: Destination address. EVM hex address for EVM networks, a TON address for `ton`, or a base58 Solana public key for `solana`. Validated server-side — format errors surface as 400. Returns: On success: `{network, amountSent, transaction}`. `amountSent` is a string in the network's native unit (not wei/lamports).
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| network | string | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| amountSent | string | – | – |
| network | string | yes | – |
| transaction | – | – | – |
No examples provided.
search_docs ~58
Search Chainstack docs — blockchain RPC methods, node infrastructure, Web3 APIs, deployment guides, and code examples. Args: query: Search query (e.g., "deploy ethereum node", "eth_call").
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
update_node ~53
Rename a node. Args: node_id: Node ID (e.g., ND-123-456-789). name: New name.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| node_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| api_namespaces | array | – | – |
| beacon_endpoint | string | – | – |
| blockchain | string | – | – |
| cloud | string | – | – |
| https_endpoint | string | – | – |
| id | string | yes | – |
| name | string | yes | – |
| network | string | yes | – |
| node_tier | string | yes | – |
| project | string | yes | – |
| protocol | string | yes | – |
| region | string | yes | – |
| status | – | yes | – |
| wss_endpoint | string | – | – |
No examples provided.
update_project ~65
Update a project's name or description. Args: project_id: Project ID (e.g., PR-123-456-789). name: New name. description: New description.
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | – |
| name | – | – | – |
| project_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| created_at | string | – | – |
| creator | object | – | – |
| description | – | – | – |
| id | string | yes | – |
| name | string | yes | – |
| networks | integer | – | – |
| type | – | – | – |
No examples provided.