{"_id":"@bolttx/mcp-server","_rev":"3-9e81a63d72e145febfdb9679da4d6458","name":"@bolttx/mcp-server","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@bolttx/mcp-server","version":"0.1.0","keywords":["mcp","model-context-protocol","bolttx","solana","solana-rpc","transaction","ai-agent"],"author":{"name":"BoltTx","email":"contact@bolttx.io"},"license":"MIT","_id":"@bolttx/mcp-server@0.1.0","maintainers":[{"name":"wzn669","email":"wzn669@gmail.com"},{"name":"bolttx-team","email":"contact@bolttx.io"}],"homepage":"https://bolttx.io","bugs":{"email":"contact@bolttx.io"},"bin":{"bolttx-mcp-server":"dist/index.js"},"dist":{"shasum":"51f25181003aa8f7ddad4ea0d63c5c567f7aae20","tarball":"https://registry.npmjs.org/@bolttx/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":23,"integrity":"sha512-YD0njVW5jvEaFikbnxToV7kM5YYLYHjqwmAglqb/ZuV+PhQh2J99IGx6SshjT1LUWESN05OiLqvfykKyYpjkPQ==","signatures":[{"sig":"MEUCIQD6HWA7Fs4sYAiF3qpBgt5mUEkgG6i7l55KzSuXVeqWQQIgKGjqW042H4DGZGxsFdTLctpdaNYDmskQlYY4GktcX+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68092},"type":"module","engines":{"node":">=18"},"scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","prepublishOnly":"tsc"},"_npmUser":{"name":"bolttx-team","email":"contact@bolttx.io"},"_npmVersion":"11.6.2","description":"MCP server for BoltTx — submit Solana transactions and use BoltTx as your RPC through any MCP-compatible AI agent.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1777247776290_0.6114354215937572","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bolttx/mcp-server","version":"0.2.0","description":"MCP server for BoltTx — submit Solana transactions and use BoltTx as your RPC through any MCP-compatible AI agent.","keywords":["mcp","model-context-protocol","bolttx","solana","solana-rpc","transaction","ai-agent"],"author":{"name":"BoltTx","email":"contact@bolttx.io"},"homepage":"https://bolttx.io","bugs":{"email":"contact@bolttx.io"},"license":"MIT","type":"module","bin":{"bolttx-mcp-server":"dist/index.js"},"scripts":{"build":"tsc","prepublishOnly":"tsc","start":"node dist/index.js","dev":"tsc --watch"},"publishConfig":{"access":"public"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.5.0"},"_id":"@bolttx/mcp-server@0.2.0","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-DxO6ixn+1gRXLacL52piJvtt99JQnev1+aJRK+5swRn6msuG7IlAvLeZjgqRHkd/SVak11MaJHrc6UwvlrOfdg==","shasum":"f5d3286197f58b7ffd1a0b88371a9ec7c2777194","tarball":"https://registry.npmjs.org/@bolttx/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":23,"unpackedSize":61335,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCUDPJUGqddxI9MNz9c73pcZEz/VhYStuljUfPpzOqivAIhALRSSZHUBbuzRJql/Iu/N0VEY4OrRzP5qZ6NYQmtg36t"}]},"_npmUser":{"name":"bolttx-team","email":"contact@bolttx.io"},"directories":{},"maintainers":[{"name":"bolttx-team","email":"contact@bolttx.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.2.0_1777576193692_0.1581416087014178"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-26T23:56:16.118Z","modified":"2026-04-30T19:09:53.974Z","0.1.0":"2026-04-26T23:56:16.465Z","0.2.0":"2026-04-30T19:09:53.843Z"},"bugs":{"email":"contact@bolttx.io"},"author":{"name":"BoltTx","email":"contact@bolttx.io"},"license":"MIT","homepage":"https://bolttx.io","keywords":["mcp","model-context-protocol","bolttx","solana","solana-rpc","transaction","ai-agent"],"description":"MCP server for BoltTx — submit Solana transactions and use BoltTx as your RPC through any MCP-compatible AI agent.","maintainers":[{"name":"bolttx-team","email":"contact@bolttx.io"}],"readme":"# @bolttx/mcp-server\n\nMCP (Model Context Protocol) server for [BoltTx](https://bolttx.io). Submit Solana transactions and use BoltTx as your Solana RPC through any MCP-compatible AI agent.\n\n> Tell your AI agent in plain English: \"Send 0.1 SOL to `<address>` via BoltTx with the minimum tip.\"\n> The agent builds the transaction, your wallet signs it, BoltTx delivers it on-chain with sub-second confirmation.\n\n---\n\n## What is this?\n\n[MCP](https://modelcontextprotocol.io) is an open protocol that lets AI agents call external tools at runtime — like a \"USB for AI\". Any MCP-compatible agent can use this server natively.\n\nThis package is the MCP server for BoltTx. Once installed, your AI agent gains these capabilities:\n\n- `bolttx_get_my_account` — inspect your BoltTx plan, TPS budget, cumulative tip\n- `bolttx_get_tip_amount` — look up minimum tip for a given plan\n- `bolttx_list_tip_addresses` — get the 9 canonical tip addresses\n- `bolttx_send_transaction` — submit a signed transaction to BoltTx\n- `bolttx_send_batch` — submit up to 100 transactions in one call\n- `bolttx_get_status` — query BoltTx delivery telemetry for a signature\n\nPlus static resources the agent can read:\n\n- `bolttx://plans` — full plan table\n- `bolttx://tip-addresses` — tip address list\n- `bolttx://quickstart` — minimum working example\n- `bolttx://rpc` — how to use BoltTx as a drop-in Solana RPC URL\n\n## Two ways to send\n\n1. **MCP tools** (this package) — let the agent drive everything end-to-end: reason about plan, pick a tip, build, submit, poll status.\n2. **Drop-in RPC URL** — if you already have Solana SDK code, just swap the `sendTransaction` RPC endpoint to `https://bolttx.io/?api-key=...` and keep the rest of your code untouched. See `bolttx://rpc` or the [RPC section below](#use-bolttx-as-a-solana-rpc-url) for details.\n\n## Safety\n\n**This server never touches your private keys.** Transactions must be signed by your local wallet / keypair BEFORE being passed to `bolttx_send_transaction`. The MCP protocol is used only for:\n- Building transaction structure (recipient, amount, tip)\n- Submitting already-signed base64 bytes\n- Querying status of transactions you submitted\n\nYour private keys stay in whatever signing workflow you already use (Phantom, Solflare, local keypair file, hardware wallet, etc.).\n\n---\n\n## Installation\n\n### 1. Get a BoltTx API key\n\n- Sign up at [bolttx.io](https://bolttx.io/signup)\n- Create an API key in the [dashboard](https://bolttx.io/dashboard/api-keys)\n- Save the key (shown only once — format: `btx_live_xxx...`)\n\n### 2. Add to your MCP client\n\nAdd the `bolttx` server to your agent's MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"bolttx\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@bolttx/mcp-server\"],\n      \"env\": {\n        \"BOLTTX_API_KEY\": \"btx_live_your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\nThe configuration file location depends on your agent. Check your agent's documentation for the MCP settings path. Restart the agent after editing.\n\n---\n\n## Usage examples\n\nOnce installed, just ask your AI agent in plain English.\n\n### Example 1 — inspect account\n\n> **You**: What's my current BoltTx plan?\n>\n> **Agent** (calls `bolttx_get_my_account`): You're on the Growth plan with 30 TPS. You've paid 2.34 SOL in cumulative tips — 77.66 SOL to go until auto-upgrade to Pro.\n\n### Example 2 — send SOL\n\n> **You**: Send 0.05 SOL to `J1k1L1X5AfgJrsWhQ1EGJmKcEFmtJd21Xq8hJQK5dYNc` using BoltTx with minimum tip. Use my `~/.config/solana/id.json` keypair.\n>\n> **Agent** (internally):\n> 1. Calls `bolttx_get_my_account` → learns plan=growth, min tip = 500,000 lamports\n> 2. Calls `bolttx_list_tip_addresses` → picks `BoLt3D1LXn3ne9t569Csq373xoau1fFbFpU6SSc6QaH2`\n> 3. Fetches blockhash from your Solana RPC\n> 4. Builds tx: [SystemProgram.transfer(recipient, 50_000_000), SystemProgram.transfer(tip_addr, 500_000)]\n> 5. Signs locally with your keypair (via the host agent's shell / filesystem tools)\n> 6. Serializes to base64\n> 7. Calls `bolttx_send_transaction(transaction_base64=...)` → returns signature\n> 8. Calls `bolttx_get_status(signature)` after a short wait → confirms it landed in 412ms\n>\n> **Result**: `5xKnR8qXeVm3pN...` landed in slot 234567890, 412ms after submission.\n\n### Example 3 — batch\n\n> **You**: I have 20 transactions pre-signed in `~/txs.json`. Submit them all.\n>\n> **Agent**: *(reads file, extracts base64 array, calls `bolttx_send_batch`)*\n\n### Example 4 — troubleshoot\n\n> **You**: Did my transaction `5xKn...` land?\n>\n> **Agent** (calls `bolttx_get_status`): Yes, confirmed in slot 234567890, 412ms after submission. API key: `prod-bot-1`.\n\n---\n\n## Environment variables\n\n| Variable | Required | Default | Purpose |\n|---|---|---|---|\n| `BOLTTX_API_KEY` | **yes** | — | Your API key from the BoltTx dashboard |\n| `BOLTTX_BASE_URL` | no | `https://bolttx.io` | Alternative BoltTx endpoint |\n\n---\n\n## Endpoint\n\nBoltTx exposes a single endpoint at `https://bolttx.io` — auto-routed to the fastest landing path. Both HTTPS and HTTP are supported.\n\nAvailable routes (all on the same host):\n- `POST /v1/send` — single signed transaction\n- `POST /v1/send/batch` — up to 100 signed transactions\n- `POST /?api-key=...` — Solana JSON-RPC compatible (`sendTransaction` only)\n\nRate limits and tip rules are enforced per-account.\n\n---\n\n## Use BoltTx as a Solana RPC URL\n\nInstead of (or in addition to) the MCP tools, BoltTx is also a **drop-in Solana RPC endpoint** for `sendTransaction`. If you already have Solana SDK code, swap the RPC URL and keep everything else:\n\n```\nhttps://bolttx.io/?api-key=<YOUR_API_KEY>\n```\n\nSupported method: **`sendTransaction` only** (everything else — `getAccountInfo`, `getLatestBlockhash`, … — must still go to a regular Solana RPC). Default encoding is `base58`; pass `{ \"encoding\": \"base64\" }` as the second `params` element to send base64-encoded bytes.\n\n### @solana/web3.js\n\n```ts\nimport { Connection, Transaction, SystemProgram, PublicKey } from \"@solana/web3.js\";\n\nconst readRpc = new Connection(\"https://api.mainnet-beta.solana.com\");\nconst sendRpc = new Connection(\n  \"https://bolttx.io/?api-key=\" + process.env.BOLTTX_API_KEY,\n  \"confirmed\",\n);\n\nconst tx = new Transaction().add(\n  // ... your instructions ...\n  // MANDATORY tip transfer — BoltTx rejects txs without one (HTTP 402).\n  SystemProgram.transfer({\n    fromPubkey: payer.publicKey,\n    toPubkey: new PublicKey(\"BoLt1A77XnXgmLPTWFXztQ9oZRrTPuQHV7cChFCt35g6\"),\n    lamports: 800_000, // >= your plan's minimum\n  }),\n);\ntx.recentBlockhash = (await readRpc.getLatestBlockhash()).blockhash;\ntx.sign(payer);\nconst sig = await sendRpc.sendRawTransaction(\n  tx.serialize(),\n  { skipPreflight: true },\n);\n```\n\n### solana-py\n\n```py\nfrom solana.rpc.api import Client\nfrom solana.rpc.types import TxOpts\n\nclient = Client(\"https://bolttx.io/?api-key=\" + BOLTTX_API_KEY)\nresponse = client.send_raw_transaction(\n    signed_tx.serialize(),\n    opts=TxOpts(skip_preflight=True),\n)\n```\n\n### Rust\n\n```rust\nuse solana_client::nonblocking::rpc_client::RpcClient;\nuse solana_sdk::commitment_config::CommitmentConfig;\n\nlet rpc = RpcClient::new_with_commitment(\n    \"https://bolttx.io/?api-key=YOUR_API_KEY\".to_string(),\n    CommitmentConfig::confirmed(),\n);\nlet sig = rpc.send_transaction(&signed_tx).await?;\n```\n\nThe tip rule applies to both paths: the MCP tool and the RPC URL. A transaction without a BoltTx tip transfer is rejected regardless of how you submit it. Full reference with error codes: [bolttx.io/docs/api/rpc](https://bolttx.io/docs/api/rpc).\n\n---\n\n## Troubleshooting\n\n**\"BoltTx MCP server requires BOLTTX_API_KEY\"**\nSet `BOLTTX_API_KEY` in the `env` block of your MCP client config. Restart the agent.\n\n**Agent says \"bolttx tool is not available\"**\nConfirm the server appears in your agent's MCP server list. Check the startup log for parse errors.\n\n**\"Rate limit exceeded\"**\nYou've hit your plan's TPS cap. Either wait (the error includes `retry_after_ms`) or upgrade your plan at [bolttx.io/dashboard](https://bolttx.io/dashboard).\n\n**\"Transaction must include a tip transfer\"**\nYour transaction is missing the mandatory SystemProgram transfer to a BoltTx tip address. Call `bolttx_list_tip_addresses` and add a transfer instruction before submitting.\n\n---\n\n## Links\n\n- BoltTx dashboard: https://bolttx.io/dashboard\n- Full API docs: https://bolttx.io/docs\n- LLM-friendly reference: https://bolttx.io/llms-full.txt\n- MCP protocol spec: https://modelcontextprotocol.io\n- Issues / feedback: contact@bolttx.io\n\n## License\n\nMIT — see LICENSE.\n","readmeFilename":"README.md"}