repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | --- |
| #2 | name: pump-mcp-server |
| #3 | description: "Model Context Protocol server exposing 53 tools, 3 resource types, and 3 prompts for AI agent consumption — quoting, building transactions, fee management, analytics, AMM operations, social fees, wallet operations over stdio transport." |
| #4 | metadata: |
| #5 | openclaw: |
| #6 | homepage: https://github.com/nirholas/pump-fun-sdk |
| #7 | --- |
| #8 | |
| #9 | # MCP Server — Model Context Protocol for Solana Wallet Operations |
| #10 | |
| #11 | Model Context Protocol server exposing tools, resources, and prompts for AI agent consumption over stdio transport with session keypair management. |
| #12 | |
| #13 | ## Architecture |
| #14 | |
| #15 | ``` |
| #16 | AI Agent (Claude, etc.) |
| #17 | │ |
| #18 | stdio transport |
| #19 | │ |
| #20 | SolanaWalletMCPServer |
| #21 | │ |
| #22 | ┌────┼────────┬──────────┐ |
| #23 | │ │ │ │ |
| #24 | Tools Resources Prompts Session |
| #25 | │ │ │ State |
| #26 | 7 3 3 │ |
| #27 | tools types prompts Keypair |
| #28 | ``` |
| #29 | |
| #30 | ## Tools (7) |
| #31 | |
| #32 | | Tool | Description | |
| #33 | |------|-------------| |
| #34 | | `generate_keypair` | Generate a new random Solana keypair | |
| #35 | | `generate_vanity` | Generate vanity address with prefix/suffix | |
| #36 | | `estimate_vanity_time` | Estimate time for vanity pattern | |
| #37 | | `validate_address` | Validate a Solana Base58 address | |
| #38 | | `sign_message` | Sign a message with session keypair | |
| #39 | | `verify_signature` | Verify a signed message | |
| #40 | | `restore_keypair` | Restore keypair from secret key bytes | |
| #41 | |
| #42 | ## Resources (3) |
| #43 | |
| #44 | | URI Pattern | Description | |
| #45 | |-------------|-------------| |
| #46 | | `solana://keypair/current` | Current session keypair info | |
| #47 | | `solana://keypair/{id}` | Specific keypair by ID | |
| #48 | | `solana://address/{address}` | Address validation details | |
| #49 | |
| #50 | ## Prompts (3) |
| #51 | |
| #52 | | Prompt | Description | |
| #53 | |--------|-------------| |
| #54 | | `generate-wallet` | Guide user through wallet generation | |
| #55 | | `vanity-address` | Guide vanity address generation with difficulty estimate | |
| #56 | | `security-review` | Review security of wallet operations | |
| #57 | |
| #58 | ## Session State Management |
| #59 | |
| #60 | ```typescript |
| #61 | class SolanaWalletMCPServer { |
| #62 | private sessionKeypair: Keypair | null = null; |
| #63 | |
| #64 | generateKeypair(): KeypairInfo { |
| #65 | if (this.sessionKeypair) { |
| #66 | this.sessionKeypair.secretKey.fill(0); // zeroize old |
| #67 | } |
| #68 | this.sessionKeypair = Keypair.generate(); |
| #69 | return this.getKeypairInfo(); |
| #70 | } |
| #71 | } |
| #72 | ``` |
| #73 | |
| #74 | ## Security Model |
| #75 | |
| #76 | - Session keypair is zeroized when replaced or server shuts down |
| #77 | - No network calls for key generation |
| #78 | - All crypto uses `@solana/web3.js` only |
| #79 | - Zod schemas validate all tool inputs |
| #80 | - Secret key bytes are never logged or exposed in resources |
| #81 | |
| #82 | ## Patterns to Follow |
| #83 | |
| #84 | - Validate all inputs with Zod schemas before processing |
| #85 | - Zeroize secret keys when replaced or on shutdown |
| #86 | - Return structured JSON for all tool responses |
| #87 | - Use descriptive error messages for validation failures |
| #88 | - Keep session state minimal — one active keypair at a time |
| #89 | |
| #90 | ## Common Pitfalls |
| #91 | |
| #92 | - Session keypair is ephemeral — lost when server restarts |
| #93 | - `generate_vanity` is single-threaded — long prefixes will be slow |
| #94 | - `sign_message` requires an active session keypair — `generate_keypair` first |
| #95 | - Resource URIs are case-sensitive |
| #96 | |
| #97 |