This is the repository for the Chainstack Developer Portal.
The Developer Portal runs on Mintlify.
You can use the Developer Portal by just browsing and searching through it as you would normally. Note that the RPC node API reference is interactive, so feel free to play around with the calls.
Since we are in the age of AI and LLMs, here are additional ways to use the Developer Portal with agents:
- This repository is public, so your agents can just ingest it.
- llms-full.txt is automatically generated and published on every change.
- skill.md is auto-generated with structured capabilities for AI agents.
- Any page is available as markdown by appending
.mdto its URL (e.g.,https://docs.chainstack.com/docs/platform-introduction.md). - Hosted MCP server — available at
https://docs.chainstack.com/mcp(streamable HTTP, not SSE).
Note that the Developer Portal MCP server is a docs project and is different from an RPC node MCP server that we are also building.
The Chainstack Developer Portal provides a hosted MCP (Model Context Protocol) server at https://docs.chainstack.com/mcp.
This is a streamable HTTP MCP server (not SSE). It provides AI models with access to search and navigate through all Chainstack documentation.
- Claude Code:
claude mcp add --transport http Chainstack-Developer-Portal https://docs.chainstack.com/mcp - Cursor: Click the "Connect to Cursor" button on any docs page
- VS Code: Click the "Connect to VS Code" button on any docs page
- Windsurf: Add to
~/.codeium/windsurf/mcp_config.json:{ "mcpServers": { "chainstack-developer-portal": { "serverUrl": "https://docs.chainstack.com/mcp" } } }
The docs use Mintlify's product switcher with two products:
- Cloud — managed blockchain infrastructure (docs in
docs/) - Self-Hosted — deploy on your own infrastructure (docs in
docs/self-hosted/)
Both products share the same docs.json for navigation.
Just contribute as you normally would—PRs, Issues, Discussions, whatever works best for you. We welcome every and all builders.
The repository includes a CLAUDE.md file with comprehensive project context and style guidelines for AI-assisted contributions.
The documentation has two products with separate release notes:
- Cloud —
changelog.mdx+changelog/directory - Self-Hosted —
docs/self-hosted/release-notes.mdx+docs/self-hosted/changelog/
The structure:
dev-portal/
├── changelog.mdx
├── docs.json
└── changelog/
├── chainstack-updates-may-30-2025.mdx
├── chainstack-updates-april-1-2025.mdx
└── [previous entries...]
You need to work with each of these files to create proper release notes (order is not important):
- In
changelog.mdx, copy the previous entry within the<Update...> </Update>tags (and including these tags) and paste it on top of the previous entry.
Example:
<Update label="Chainstack updates: May 30, 2025" description=" by Ake" >
**Protocols**. Now, you can deploy [Global Nodes](/docs/global-elastic-node) for Unichain Mainnet. See also [Unichain tooling](/docs/unichain-tooling) and a [tutorial](/docs/unichain-collecting-uniswapv4-eth-usdc-trades).
<Button href="/changelog/chainstack-updates-may-30-2025">Read more</Button>
</Update>
Edit the entry to make it your piece of the release notes.
Make sure you change the dates properly in the update label and in the button label.
- In the
changelog/directory, copy or create a file in the proper format. Examplechainstack-updates-may-30-2025.mdx. In the file, paste in the same entry (without the<Update>tags) that you did in thechangelog.mdxfile. - In
docs.json, in the Cloud product'sRelease notestab, add the newly created file name (without.mdx) betweenchangelogand the previous release notes entries. This will let the docs pick up the release notes file and properly display it.
Example:
"tab": "Release notes",
"pages": [
"changelog",
"changelog/chainstack-updates-may-30-2025",
"changelog/chainstack-updates-may-16-2025",
The structure:
dev-portal/
└── docs/self-hosted/
├── release-notes.mdx
└── changelog/
├── chainstack-self-hosted-v1-0-0-january-28-2026.mdx
└── [version entries...]
- In
docs/self-hosted/release-notes.mdx, add a new<Update>entry at the top.
Example:
<Update label="Chainstack Self-Hosted v1.0.0: January 28, 2026" description="">
**Initial beta release**. Your update content here.
<Button href="/docs/self-hosted/changelog/chainstack-self-hosted-v1-0-0-january-28-2026">Read more</Button>
</Update>
- Create file in
docs/self-hosted/changelog/using formatchainstack-self-hosted-v1-0-0-month-day-year.mdx. The page title should match the label. - In
docs.json, in the Self-Hosted product'sRelease notestab, add the new changelog page.
Run mintlify dev and do a quick local visual check.
Run mint broken-links for a quick links check.
And submit your PR.
Install the Mintlify CLI to preview the documentation changes locally. To install, use the following command
npm i -g mintlify
Run the following command at the root of your documentation (where docs.json is)
mintlify dev
If a reference page renders without the Try it button or throws an error like:
Error: no matching OpenAPI operation object found with path "/evm" and method "post"
check the referenced OpenAPI spec for invalid null types. OpenAPI 3.0 does not support "type": "null". Use "nullable": true on the actual schema instead. For example, replace:
"result": {
"oneOf": [
{ "type": "null" },
{ "type": "object" }
]
}with:
"result": {
"type": "object",
"nullable": true
}After fixing the spec, restart mintlify dev and the Try it button should appear.
node-options-master-list.json is the main file for this Developer Portal where all the available node options are kept up to date. If you need a custom table with whatever options you want, you feed the master list to an LLM and generate your own table.
Relevant tables (updated on every master list change):
nodes-clouds-regions-and-locations.mdxprotocols-networks.mdx
| Command | Purpose |
|---|---|
mintlify dev |
Start local preview server |
mint validate |
Validate documentation build locally (strict mode) |
mint broken-links |
Check for broken links |
mint a11y |
Check accessibility (color contrast, alt text) |
mint openapi-check <file> |
Validate OpenAPI specifications |
mintlify install |
Re-install dependencies if issues |
A CI job will also check each PR and warn on dead links.
- Mintlify dev isn't running — run
mintlify installto re-install dependencies. - Page loads as a 404 — make sure you are running in a directory with
docs.json.