Reading governance data needs nothing but the connection. Write actions (voting, proposing, following) require a wallet you can sign with, authorized once. See Authentication.
Connect
- Claude.ai
- Claude Desktop
- Claude Code
- ChatGPT
- Cursor
- VS Code
- Codex CLI
Add to Claude.ai
- Open Settings > Integrations > Add integration.
- Paste the URL:
https://mcp.snapshot.box - In any chat, click the integration and select Connect.
Try it
Once connected, ask your assistant in plain language. Start simple, then move to actions:- “What proposals are active in
ens.ethright now?” (read) - “What’s the current voting power of
vitalik.ethinens.eth?” (read) - “Summarize the last 5 closed proposals on
aave.ethand tell me which passed.” (read) - “Follow
gitcoindao.ethfor me.” (write) - “Vote ‘For’ on proposal
0xabc...inens.eth.” (write)
snapshot-query to discover data, then snapshot-vote, snapshot-propose, or snapshot-follow to act. Read actions run instantly. Write actions ask you to authorize once (see Authentication).
Authentication
All write operations (voting, proposing, following) are signed by a Snapshot alias, a lightweight signer wallet that can act on your behalf without exposing your main private key. The first time the AI calls a write tool, an OAuth window opens so you can authorize an alias. This is a one-time step. The alias is created and managed by Coinbase CDP. You can revoke an alias at any time from Settings > Aliases.Available tools
The server exposes 5 tools. The AI selects them automatically based on your prompt.| Tool | Description | Auth |
|---|---|---|
snapshot-query | Run any GraphQL query against Snapshot. Auto-binds your address as $user. | No |
snapshot-schema | Return the GraphQL schema. Used when a query fails on an unknown field. | No |
snapshot-vote | Cast a vote. Voting type and privacy are auto-detected. Re-calling replaces the previous vote. | Yes |
snapshot-propose | Create a proposal. Only space, title, and body are required. | Yes |
snapshot-follow | Follow a space. | Yes |
How it works
- Discover. The client fetches
/.well-known/oauth-authorization-serverand the MCP manifest to learn endpoints and tools. - Connect. OAuth 2.0 with PKCE. The server creates a CDP-managed alias wallet, redirects you to Snapshot to authorize it, then issues a JWT.
- Read.
snapshot-queryandsnapshot-schemaproxy to Snapshot Hub. No wallet needed. - Write. Write tools build the EIP-712 envelope, ask CDP to sign with your alias, and submit to the Snapshot sequencer.
Security
| Property | Detail |
|---|---|
| Your main key never leaves your wallet | Writes are signed by an alias that can only sign Snapshot governance messages. |
| Isolated aliases | Each connection provisions its own Coinbase CDP-managed alias. The server never sees the private key. |
| Scoped tokens | Stateless JWTs (HS256). A stolen token can act as that alias but cannot touch your main wallet. Rotating JWT_SECRET invalidates all tokens. |
| OAuth with PKCE | Standards-compliant Authorization Code + PKCE. No client secret required. |
| Stateless | Zero session state. Every request is processed from the JWT alone. |
| Revocable | Revoke the alias at any time from the Snapshot UI. |
Local mode (stdio)
For local development or scripting, you can run the server in stdio mode with your own Snapshot alias key instead of using the hosted server.| Variable | Description |
|---|---|
ALIAS_PRIVATE_KEY | Your Snapshot alias private key. Not your main wallet. |
SNAPSHOT_API_KEY | Optional. API key for higher rate limits. |
ALIAS_PRIVATE_KEY must be authorized as an alias on Snapshot before it can sign. If it isn’t, the tool will return a URL to authorize it.
FAQ
Do I need to give the AI my private key?
Do I need to give the AI my private key?
No. You authorize a Snapshot alias, a separate signer managed by the MCP server. Your main wallet key stays in your wallet.
Can the AI drain my funds?
Can the AI drain my funds?
No. The alias can only sign Snapshot governance messages (votes, proposals, follows). It cannot move tokens or call other contracts.
How do I revoke access?
How do I revoke access?
Revoke the alias from Settings > Aliases on Snapshot. This immediately stops the server from acting on your behalf. See Authentication for a walkthrough.
Is the read API rate-limited?
Is the read API rate-limited?
Yes, the standard Snapshot rate limit applies. Self-host with your own
SNAPSHOT_API_KEY for higher throughput.What does the server store?
What does the server store?
Nothing. The server is stateless. Tokens are self-verifiable JWTs.