> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Server

> 53 OrbitFlare tools exposed via the Model Context Protocol. Works in Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Gemini CLI, and Codex CLI.

The OrbitFlare MCP server exposes Shredstream-optimized Solana RPC, gRPC streaming, dedicated nodes, and validator infrastructure as tools your AI assistant can call directly. Each capability is its own tool with a focused input schema: no internal action routers, no result-id pagination dance.

<Tip>
  Pair the MCP server with the [Skill](/agents/skills) for the best experience. The skill teaches the agent *how* OrbitFlare works; the MCP server lets it actually call OrbitFlare without leaving the chat.
</Tip>

## Install

Most hosts take the same JSON shape; only the file location differs:

```json theme={null}
{
  "mcpServers": {
    "orbitflare": {
      "command": "npx",
      "args": ["@orbitflare/mcp@latest"],
      "env": {
        "ORBITFLARE_API_KEY": "your-license-key",
        "ORBITFLARE_NETWORK": "mainnet"
      }
    }
  }
}
```

| Host           | Where to put it                                                                                                                     |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) · `%APPDATA%\Claude\claude_desktop_config.json` (Windows) |
| Claude Code    | run `claude mcp add orbitflare -- npx @orbitflare/mcp@latest`, or drop a `.mcp.json` at your project root                           |
| Cursor         | `~/.cursor/mcp.json` (global) or `<project>/.cursor/mcp.json`                                                                       |
| Gemini CLI     | `~/.gemini/settings.json` (global) or `<project>/.gemini/settings.json`                                                             |
| Windsurf       | `~/.codeium/windsurf/mcp_config.json`                                                                                               |
| VS Code        | depends on extension (Continue, Cline, GitHub Copilot agent mode)                                                                   |

**Codex CLI** uses TOML at `~/.codex/config.toml` (or `<project>/.codex/config.toml`):

```toml theme={null}
[mcp_servers.orbitflare]
command = "npx"
args = ["@orbitflare/mcp@latest"]
```

### Get a license key

Sign up at [orbitflare.com](https://orbitflare.com) and copy your license key from the **Licenses** section of the dashboard. The Free plan gives you 10 RPS, enough to start building immediately.

If you'd rather not put the key in the host config, leave the env var unset and call `setApiKey` from chat:

> Set my OrbitFlare API key to `xxxx-xxxx-xxxx`.

## Configuration

| Env var                       | Purpose                                                                                                                                             |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ORBITFLARE_API_KEY`          | RPC license key (used as `?api_key=` for JSON-RPC)                                                                                                  |
| `ORBITFLARE_LICENSE_KEY`      | Alias for `ORBITFLARE_API_KEY`                                                                                                                      |
| `ORBITFLARE_CUSTOMER_API_KEY` | Customer API v2 key (`X-ORBIT-KEY` header). Falls back to `ORBITFLARE_API_KEY` if unset                                                             |
| `ORBITFLARE_NETWORK`          | `mainnet` (default) or `devnet`                                                                                                                     |
| `ORBITFLARE_RPC_URL`          | Optional explicit RPC endpoint URL (overrides region/network). Useful for dedicated nodes.                                                          |
| `ORBITFLARE_BEARER_TOKEN`     | Bearer token for the Customer API. Auto-populated by `pollDeviceToken` / `verifyWalletSignature` and persisted at `~/.orbitflare/mcp-session.json`. |

All values can be overridden at runtime via the `setApiKey` tool, which is handy when switching networks or pinning a region without restarting the host.

### Regional endpoints

`mainnet` (auto-routed) is the default. To pin a region, call `setApiKey` with one of: `ash`, `ny`, `la`, `slc`, `ams`, `fra`, `lon`, `dub`, `siau`, `tok`, `sgp`.

## Tools

53 tools, grouped by domain. Every tool is independently callable.

### RPC reads

| Tool                                | What it does                                                                    |
| ----------------------------------- | ------------------------------------------------------------------------------- |
| `getBalance`                        | SOL balance for a pubkey, in lamports and SOL                                   |
| `getAccountInfo`                    | Full account info with `jsonParsed` decoding when available                     |
| `getMultipleAccounts`               | Batch up to 100 accounts in one call                                            |
| `getProgramAccounts`                | Accounts owned by a program (filters + dataSlice required for popular programs) |
| `getTokenAccountsByOwner`           | All SPL token accounts a wallet owns                                            |
| `getTokenAccountBalance`            | Balance of a specific SPL token account                                         |
| `getTokenSupply`                    | Total supply for an SPL mint                                                    |
| `getTransaction`                    | Parsed transaction by signature                                                 |
| `getSignaturesForAddress`           | Recent signatures (paginated via `before` / `until`)                            |
| `getBlock`                          | Block metadata + transactions at a slot                                         |
| `getSlot`                           | Current slot                                                                    |
| `getEpochInfo`                      | Epoch number, slot index, slots-in-epoch, progress                              |
| `getNetworkStatus`                  | Health + version + identity + slot in one call                                  |
| `getLatestBlockhash`                | Recent blockhash + lastValidBlockHeight                                         |
| `getFeeForMessage`                  | Lamport fee for a compiled message                                              |
| `getMinimumBalanceForRentExemption` | Min lamports for rent exemption                                                 |
| `getStakeActivation`                | Active/inactive lamports + state for a stake account                            |
| `getRecentPrioritizationFees`       | Priority-fee samples + P50/P75/P90/P99 percentiles                              |
| `simulateTransaction`               | Simulate a tx; returns logs + units consumed                                    |
| `sendTransaction`                   | Submit an already-signed base-64 transaction                                    |

### Account, profile, and plans

| Tool            | What it does                                                                       |
| --------------- | ---------------------------------------------------------------------------------- |
| `setApiKey`     | Store an RPC or Customer API key for the session, optionally switch network/region |
| `getProfile`    | Authenticated user profile + account balance                                       |
| `updateProfile` | Update name, email, payment wallet                                                 |
| `listLicenses`  | All RPC licenses on the account                                                    |
| `listRpcPlans`  | Catalog of available plans with pricing                                            |

### Auth (device code + wallet challenge)

| Tool                     | What it does                                                              |
| ------------------------ | ------------------------------------------------------------------------- |
| `requestDeviceCode`      | Start device-authorization flow; returns `verification_uri` + `user_code` |
| `pollDeviceToken`        | Poll for completion; auto-stores Bearer token on success                  |
| `revokeToken`            | Logout / clear Bearer token                                               |
| `requestWalletChallenge` | Get a one-time challenge string for a Solana wallet                       |
| `verifyWalletSignature`  | Sign in an existing account by signature                                  |
| `registerWithWallet`     | Create a new account from a wallet signature                              |

### API keys and licenses

| Tool                   | What it does                                       |
| ---------------------- | -------------------------------------------------- |
| `listApiKeys`          | List all API keys (masked)                         |
| `createApiKey`         | Create a new API key (full key returned **once**)  |
| `regenerateApiKey`     | Regenerate by id (old key invalidated immediately) |
| `deleteApiKey`         | Permanently delete an API key                      |
| `addLicenseIp`         | Whitelist an IP on an IP-mode license              |
| `removeLicenseIp`      | Remove a whitelisted IP                            |
| `regenerateLicenseKey` | Rotate a license's RPC key                         |

### Billing

| Tool              | What it does                                                               |
| ----------------- | -------------------------------------------------------------------------- |
| `prepareTopUp`    | Build an unsigned USDC top-up transaction                                  |
| `confirmTopUp`    | Submit the signed top-up; OrbitFlare verifies on-chain and credits balance |
| `listInvoices`    | Paginated invoice list                                                     |
| `purchaseRpcPlan` | Purchase or `validateOnly`-dry-run a plan from your account balance        |

### Streaming, staking, swap

| Tool                    | What it does                                                                                  |
| ----------------------- | --------------------------------------------------------------------------------------------- |
| `subscribeTransactions` | Build a ready-to-use Jetstream or Yellowstone gRPC config for the OrbitFlare CLI              |
| `getStakeInfo`          | OrbitFlare validator identity, vote account, commission, est. APY, optional reward calculator |
| `getSwapQuote`          | Jupiter Metis routing quote (auto-resolves `SOL` / `USDC` / `USDT` symbols)                   |

### Wallet and write

| Tool                     | What it does                                                                       |
| ------------------------ | ---------------------------------------------------------------------------------- |
| `generateKeypair`        | Generate Ed25519 keypair, optionally persist to `~/.orbitflare/mcp-keypair.json`   |
| `loadKeypair`            | Load from base58 secret or Solana CLI keypair file                                 |
| `clearKeypair`           | Remove from session (and optionally disk)                                          |
| `getWalletAddress`       | Returns the loaded wallet's address                                                |
| `signMessage`            | Ed25519-sign an arbitrary message (utf8 / base58 / base64)                         |
| `buildSolTransfer`       | Build an unsigned versioned tx transferring SOL                                    |
| `buildStakeDelegation`   | Build an unsigned tx delegating to OrbitFlare's vote account (or any vote account) |
| `signAndSendTransaction` | Sign with the session keypair, broadcast via OrbitFlare RPC                        |

## Flows

### Auth (device code)

<Steps>
  <Step title="Request a device code">
    `requestDeviceCode` returns `verification_uri` + `user_code`. The model shows them to you.
  </Step>

  <Step title="Approve in browser, then poll">
    `pollDeviceToken { device_code }` repeats every `interval` seconds until success. The Bearer token is stored automatically and used for subsequent Customer API calls.
  </Step>

  <Step title="Logout">
    `revokeToken` clears the Bearer token.
  </Step>
</Steps>

### Auth (wallet)

<Steps>
  <Step title="Load a keypair">
    `generateKeypair` (creates fresh) or `loadKeypair` (from base58 / Solana CLI file).
  </Step>

  <Step title="Request a challenge">
    `requestWalletChallenge { wallet_address }`.
  </Step>

  <Step title="Sign and verify">
    `signMessage { message: <challenge> }` then `verifyWalletSignature` (existing account) or `registerWithWallet` (new account).
  </Step>
</Steps>

### Wallet send

<Steps>
  <Step title="Load a keypair">
    `generateKeypair` or `loadKeypair`.
  </Step>

  <Step title="Build the transfer">
    `buildSolTransfer { recipient, amountSol }` returns a base64 unsigned tx.
  </Step>

  <Step title="Sign and broadcast">
    `signAndSendTransaction { transaction }` signs with the session keypair, broadcasts, and returns signature + Solscan link.
  </Step>
</Steps>

### Top-up

<Steps>
  <Step title="Prepare the top-up">
    `prepareTopUp { amount, wallet_address }` returns a base64 unsigned USDC transfer + memo.
  </Step>

  <Step title="Sign it">
    Sign with the loaded wallet via `signAndSendTransaction`, or sign externally.
  </Step>

  <Step title="Confirm">
    `confirmTopUp { transaction: <signed-base64> }`. OrbitFlare verifies on-chain and credits your balance.
  </Step>
</Steps>

## Resources

The server exposes OrbitFlare's documentation as MCP resources, so the model can pull current docs on demand:

| URI                                | Page                                            |
| ---------------------------------- | ----------------------------------------------- |
| `orbitflare://docs/index`          | Documentation index (`llms.txt`)                |
| `orbitflare://docs/quickstart`     | Quickstart                                      |
| `orbitflare://docs/authentication` | Auth, endpoints, rate limits, connection limits |
| `orbitflare://docs/products`       | Products & pricing                              |
| `orbitflare://docs/rpc-http`       | HTTP RPC reference                              |
| `orbitflare://docs/jetstream`      | Jetstream streaming                             |
| `orbitflare://docs/yellowstone`    | Yellowstone gRPC                                |
| `orbitflare://docs/staking`        | Validator staking                               |
| `orbitflare://docs/metis-swap`     | Metis Swap API                                  |
| `orbitflare://docs/cli`            | OrbitFlare CLI                                  |
| `orbitflare://docs/customer-api`   | Customer API v2                                 |

## System prompts

Pre-built system / developer prompts ship in the [`system-prompts/orbitflare/`](https://github.com/orbitflare/orbitflare-mcp/tree/main/system-prompts/orbitflare) directory:

* `claude.system.md`: concise system prompt for Claude
* `openai.developer.md`: concise developer message for OpenAI models
* `full.md`: long-form operator playbook (auth flows, top-up, hard guardrails)

Drop one into your host config to give the model end-to-end guidance on when to reach for which tool.

## Try it

Once installed, the model picks the right tool automatically:

> "What is the SOL balance of `Gh9ZwEm…`?"

> "Show me the last 20 transactions for `7xKXt…`."

> "What's a competitive priority fee right now for an account that touches Raydium?"

> "Build me a Yellowstone gRPC config that streams Jupiter swap transactions from Frankfurt."

> "Quote 1 SOL → USDC with 0.3% slippage."

> "What is OrbitFlare's validator vote account, and what would 250 SOL earn per year?"

## Source

* MCP server: [github.com/orbitflare/orbitflare-mcp](https://github.com/orbitflare/orbitflare-mcp)
* npm: [`@orbitflare/mcp`](https://www.npmjs.com/package/@orbitflare/mcp)
