MCP server for interacting with Penumbra blockchain - providing privacy-preserving tools for chain interaction
MCP server for interacting with Penumbra blockchain - providing privacy-preserving tools for chain interaction. That is what the penumbra mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.
An MCP server providing tools for interacting with the Penumbra blockchain. This server enables privacy-preserving interactions with Penumbra's core features including transaction queries, validator set information, DEX state, and governance proposals.
The server publishes 5 tools. What each one is for:
get_validator_set — Get the current validator set informationget_chain_status — Get current chain status including block height and chain IDget_transaction — Get details of a specific transactionget_dex_state — Get current DEX state including latest batch auction resultsget_governance_proposals — Get active governance proposalsInstallation goes through your MCP client rather than a global install: point it at @timeheater/penumbra-mcp on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.
Configuration is passed through the environment: PENUMBRA_NODE_URL, PENUMBRA_NETWORK, PENUMBRA_CHAIN_ID, PENUMBRA_REQUEST_TIMEOUT, PENUMBRA_REQUEST_RETRIES, PENUMBRA_BLOCK_TIME, PENUMBRA_EPOCH_DURATION, PENUMBRA_DEX_BATCH_INTERVAL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Penumbra's toolset — get_validator_set, get_chain_status, get_transaction and 2 more — is a fair guide to whether it matches your workflow. It is maintained by bmorphism; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| get_validator_set | Get the current validator set information |
| get_chain_status | Get current chain status including block height and chain ID |
| get_transaction | Get details of a specific transaction |
| get_dex_state | Get current DEX state including latest batch auction results |
| get_governance_proposals | Get active governance proposals |
{
"mcpServers": {
"penumbra": {
"command": "npx",
"args": ["-y", "@timeheater/penumbra-mcp"],
"env": {
"PENUMBRA_NODE_URL": "your-value",
"PENUMBRA_NETWORK": "your-value",
"PENUMBRA_CHAIN_ID": "your-value",
"PENUMBRA_REQUEST_TIMEOUT": "your-value",
"PENUMBRA_REQUEST_RETRIES": "your-value",
"PENUMBRA_BLOCK_TIME": "your-value",
"PENUMBRA_EPOCH_DURATION": "your-value",
"PENUMBRA_DEX_BATCH_INTERVAL": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| PENUMBRA_NODE_URL | Endpoint or connection string the server talks to. | Yes |
| PENUMBRA_NETWORK | Configuration value read at startup. | Optional |
| PENUMBRA_CHAIN_ID | Configuration value read at startup. | Optional |
| PENUMBRA_REQUEST_TIMEOUT | Configuration value read at startup. | Optional |
| PENUMBRA_REQUEST_RETRIES | Configuration value read at startup. | Optional |
| PENUMBRA_BLOCK_TIME | Configuration value read at startup. | Optional |
| PENUMBRA_EPOCH_DURATION | Configuration value read at startup. | Optional |
| PENUMBRA_DEX_BATCH_INTERVAL | Configuration value read at startup. | Optional |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.