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.
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 proposals
- Transaction submission
- Private staking operations
- DEX trading (sealed-bid batch auctions)
- Private governance voting
- Liquidity position management
You can install the package via npm:
npm install @timeheater/penumbra-mcpOr using yarn:
yarn add @timeheater/penumbra-mcp- Install dependencies:
npm install- Build the server:
npm run build- Run in development mode:
npm run watchTo integrate with Claude desktop, add the following configuration to your Claude desktop settings file (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"penumbra-mcp": {
"command": "node",
"args": ["/Users/barton/infinity-topos/penumbra-mcp/build/index.js"],
"env": {
"PENUMBRA_NODE_URL": "https://rpc.penumbra.zone",
"PENUMBRA_NETWORK": "mainnet",
"PENUMBRA_CHAIN_ID": "penumbra-1",
"PENUMBRA_REQUEST_TIMEOUT": "30000",
"PENUMBRA_REQUEST_RETRIES": "5",
"PENUMBRA_BLOCK_TIME": "6000",
"PENUMBRA_EPOCH_DURATION": "100",
"PENUMBRA_DEX_BATCH_INTERVAL": "60000",
"PENUMBRA_DEX_MIN_LIQUIDITY": "1000",
"PENUMBRA_DEX_MAX_PRICE_IMPACT": "0.05",
"PENUMBRA_GOVERNANCE_VOTING_PERIOD": "1209600000",
"PENUMBRA_GOVERNANCE_MIN_DEPOSIT": "100000"
}
}
}
}Replace /path/to/penumbra-mcp with the actual path where you've installed the server.
Once configured, you can interact with Penumbra through Claude using the following tools:
- Query validator set:
Tell Claude: "Show me the current Penumbra validator set"
- Check chain status:
Tell Claude: "What's the current status of the Penumbra chain?"
- Get transaction details:
Tell Claude: "Look up Penumbra transaction [HASH]"
- View DEX state:
Tell Claude: "Show me the current Penumbra DEX state"
- List governance proposals:
Tell Claude: "List active Penumbra governance proposals"
npm run watch: Watch mode for developmentnpm run inspector: Run MCP inspector for testingnpm test: Run test suite
PENUMBRA_NODE_URL: URL of the Penumbra node (default: https://rpc.penumbra.zone)PENUMBRA_REQUEST_TIMEOUT: HTTP request timeout in milliseconds (default: 30000)PENUMBRA_REQUEST_RETRIES: Number of request retries (default: 5)
PENUMBRA_NETWORK: Network to connect to (default: mainnet)PENUMBRA_CHAIN_ID: Chain ID (default: penumbra-1)PENUMBRA_BLOCK_TIME: Block time in milliseconds (default: 6000)PENUMBRA_EPOCH_DURATION: Number of blocks per epoch (default: 100)
PENUMBRA_DEX_BATCH_INTERVAL: Batch auction interval in milliseconds (default: 60000)PENUMBRA_DEX_MIN_LIQUIDITY: Minimum liquidity amount (default: 1000)PENUMBRA_DEX_MAX_PRICE_IMPACT: Maximum price impact as decimal (default: 0.05)
PENUMBRA_GOVERNANCE_VOTING_PERIOD: Voting period duration in milliseconds (default: 1209600000 - 14 days)PENUMBRA_GOVERNANCE_MIN_DEPOSIT: Minimum proposal deposit amount (default: 100000)
The server is built using TypeScript and implements the Model Context Protocol (MCP) for standardized tool interfaces. It currently provides mock implementations for core functionality, with plans to integrate directly with Penumbra's client libraries and node API endpoints.
All interactions respect Penumbra's privacy-preserving design:
- Shielded transactions
- Private staking operations
- Sealed-bid batch auctions
- Anonymous governance voting
Contributions are welcome! Please feel free to submit a Pull Request.
ISC