Cardano MCP — transactions, addresses, UTxOs, balances, ADAHandles & stake delegation
MCP server for interacting with the Cardano blockchain from AI agents and automation systems via the Model Context Protocol.
Part of the Indigo AI Stack — use alongside Indigo MCP for full Cardano DeFi capabilities.
# Install
npm install -g @indigoprotocol/cardano-mcp
# Setup (interactive)
npx @indigoprotocol/cardano-mcp setup
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ ██████╗ █████╗ ██████╗ ██████╗ █████╗ ███╗ ██╗ ██████╗ ║
║ ██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗████╗ ██║██╔═══██╗ ║
║ ██║ ███████║██████╔╝██║ ██║███████║██╔██╗ ██║██║ ██║ ║
║ ██║ ██╔══██║██╔══██╗██║ ██║██╔══██║██║╚██╗██║██║ ██║ ║
║ ╚██████╗██║ ██║██║ ██║██████╔╝██║ ██║██║ ╚████║╚██████╔╝ ║
║ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ║
║ ║
║ ███╗ ███╗ ██████╗██████╗ ║
║ ████╗ ████║██╔════╝██╔══██╗ ║
║ ██╔████╔██║██║ ██████╔╝ ║
║ ██║╚██╔╝██║██║ ██╔═══╝ ║
║ ██║ ╚═╝ ██║╚██████╗██║ ║
║ ╚═╝ ╚═╝ ╚═════╝╚═╝ ║
║ ║
║ 6 wallet tools for Cardano ║
║ ║
╚═══════════════════════════════════════════════════════════════╝
That's it — 6 wallet tools configured for Claude Desktop, Claude Code, Cursor, or Windsurf.
Run the interactive setup to automatically configure your MCP client:
npx @indigoprotocol/cardano-mcp setup
This will:
Install globally:
npm install -g @indigoprotocol/cardano-mcp
Or run directly with npx:
npx @indigoprotocol/cardano-mcp
docker build -t cardano-mcp .
docker run -p 8000:8000 \
-e PORT=8000 \
-e SEED_PHRASE="your seed phrase here" \
-e BLOCKFROST_PROJECT_ID="your_blockfrost_key" \
cardano-mcp
| Variable | Required | Description |
|---|---|---|
SEED_PHRASE | Yes | Your wallet seed phrase (comma-separated). Never exposed to LLMs. |
BLOCKFROST_PROJECT_ID | Yes* | Blockfrost API key from blockfrost.io |
KUPO_URL | Alt | Kupo endpoint URL (alternative to Blockfrost) |
OGMIOS_URL | Alt | Ogmios endpoint URL (alternative to Blockfrost) |
PORT | No | HTTP server port (default: 8000) |
*Either BLOCKFROST_PROJECT_ID or both KUPO_URL + OGMIOS_URL are required.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"cardano": {
"command": "npx",
"args": ["-y", "@indigoprotocol/cardano-mcp"],
"env": {
"SEED_PHRASE": "word1,word2,word3,...",
"BLOCKFROST_PROJECT_ID": "mainnetXXXXXXXXXXXXXXX"
}
}
}
}
Add to ~/.claude/settings.json or .claude/settings.json in your project:
{
"mcpServers": {
"cardano": {
"command": "npx",
"args": ["-y", "@indigoprotocol/cardano-mcp"],
"env": {
"SEED_PHRASE": "word1,word2,word3,...",
"BLOCKFROST_PROJECT_ID": "mainnetXXXXXXXXXXXXXXX"
}
}
}
}
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project-level):
{
"mcpServers": {
"cardano": {
"command": "npx",
"args": ["-y", "@indigoprotocol/cardano-mcp"],
"env": {
"SEED_PHRASE": "word1,word2,word3,...",
"BLOCKFROST_PROJECT_ID": "mainnetXXXXXXXXXXXXXXX"
}
}
}
}
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"cardano": {
"command": "npx",
"args": ["-y", "@indigoprotocol/cardano-mcp"],
"env": {
"SEED_PHRASE": "word1,word2,word3,...",
"BLOCKFROST_PROJECT_ID": "mainnetXXXXXXXXXXXXXXX"
}
}
}
}
Install Cardano skills for OpenClaw:
openclaw skills add IndigoProtocol/cardano-skills
Skills are automatically configured — start using Cardano wallet tools immediately.
For full Cardano DeFi capabilities, use both Cardano MCP and Indigo MCP together:
{
"mcpServers": {
"indigo": {
"command": "npx",
"args": ["-y", "@indigoprotocol/indigo-mcp"],
"env": {
"BLOCKFROST_API_KEY": "your-blockfrost-project-id"
}
},
"cardano": {
"command": "npx",
"args": ["-y", "@indigoprotocol/cardano-mcp"],
"env": {
"SEED_PHRASE": "word1,word2,word3,...",
"BLOCKFROST_PROJECT_ID": "your-blockfrost-project-id"
}
}
}
}
| Tool | Description | Parameters |
|---|---|---|
submit_transaction | Sign and submit a Cardano transaction from the connected wallet | cbor: unsigned transaction CBOR hex string |
Output: { transactionHash: string, timestamp: number }
| Tool | Description | Parameters |
|---|---|---|
get_addresses | Retrieve all Cardano addresses for the connected wallet | None |
Output: { addresses: string[] }
| Tool | Description | Parameters |
|---|---|---|
get_utxos | Retrieve all UTxOs for the connected wallet in raw CBOR format | None |
Output: { utxos: string[] } (CBOR hex encoded)
| Tool | Description | Parameters |
|---|---|---|
get_balances | Retrieve all token balances for the connected wallet | None |
Output:
{
"balances": [
{
"name": "ADA",
"policyId": "",
"nameHex": "",
"amount": 1500000000
},
{
"name": "INDY",
"policyId": "533bb94...",
"nameHex": "494e4459",
"amount": 100000000
}
]
}
| Tool | Description | Parameters |
|---|---|---|
get_adahandles | Retrieve all ADAHandles (handle.me) owned by the connected wallet | None |
Output: { adaHandles: string[] } (e.g., ["$myhandle", "$another"])
| Tool | Description | Parameters |
|---|---|---|
get_stake_delegation | Retrieve stake pool delegation and available ADA rewards | None |
Output:
{
"poolId": "pool1...",
"availableAdaRewards": 12.5
}
"What's my ADA balance?"
Claude will use get_balances and respond with your ADA and token holdings.
"Submit this transaction: 84a400..."
Claude will use submit_transaction to sign and submit the CBOR transaction, returning the transaction hash.
"How much staking rewards do I have available?"
Claude will use get_stake_delegation to show your staked pool and claimable rewards.
"What ADAHandles do I own?"
Claude will use get_adahandles to list all your handle.me handles.
If you use nvm and Claude Desktop shows "server disconnected", you need to use full paths since Claude Desktop doesn't inherit your shell's nvm setup:
{
"mcpServers": {
"cardano": {
"command": "/Users/YOU/.nvm/versions/node/v22.x.x/bin/npx",
"args": ["-y", "@indigoprotocol/cardano-mcp"],
"env": {
"PATH": "/Users/YOU/.nvm/versions/node/v22.x.x/bin:/usr/local/bin:/usr/bin:/bin",
"SEED_PHRASE": "word1,word2,...",
"BLOCKFROST_PROJECT_ID": "mainnetXXX"
}
}
}
}
Find your node path with: which npx
If tools fail after an update, clear the npm cache:
rm -rf ~/.npm/_npx
Then restart Claude Desktop.
| Platform | Status | Notes |
|---|---|---|
| macOS | ✅ Full support | Intel & Apple Silicon |
| Windows | ✅ Full support | Windows 10/11 |
| Linux | ✅ Full support | x64 & ARM64 |
⚠️ Important: Your seed phrase is stored locally and used only for wallet operations. It is never exposed to LLMs or external services.
By using this Cardano MCP Server and all related tools and technology ("MCP"), you acknowledge and agree that:
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @indigoprotocol/cardano-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-indigoprotocol-cardano-mcp": {
"command": "npx",
"args": [
"-y",
"@indigoprotocol/cardano-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@indigoprotocol/cardano-mcpnpmio.github.IndigoProtocol/cardano-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.