@solstream-test/solstice-mcp
v1.0.7
Published
MCP server for Solstice — Solana RPC, Solstream gRPC real-time data, and USX stablecoin payments. Authenticate with your Solana wallet; subscription is purchased automatically.
Maintainers
Readme
Solstice MCP
Model Context Protocol server for Solstice — giving AI agents authenticated access to Solana infrastructure: JSON-RPC, real-time gRPC data streams, and USX stablecoin payments.
No API key required. Authenticate with your Solana wallet. Subscription is purchased automatically on first use.
What it does
| Tool | Description |
|------|-------------|
| agent_authenticate | One-step wallet auth — challenge, sign, verify, JWT stored automatically |
| agent_list_plans | Browse available subscription plans and pricing |
| agent_buy_plan | Purchase a plan on-chain with USX (automatic on first use) |
| agent_subscribe | Auto-subscribe to the cheapest available plan |
| solana_rpc | 51 Solana JSON-RPC methods via the Solstice authenticated endpoint |
| solstream | Real-time gRPC streams — slots, accounts, transactions, blocks, blockMeta, entries |
| usx | USX stablecoin wallet — balance, transfer, swap (Jupiter), and pay |
| usx_payment | x402 payment gating — create intents, verify payments, check status |
Quickstart
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"solstice": {
"command": "npx",
"args": ["-y", "@solstream-test/solstice-mcp"],
"env": {
"WALLET_SECRET_KEY": "<your-base58-or-json-array-secret-key>"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project root or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"solstice": {
"command": "npx",
"args": ["-y", "@solstream-test/solstice-mcp"],
"env": {
"WALLET_SECRET_KEY": "<your-base58-or-json-array-secret-key>"
}
}
}
}Any MCP-compatible client
{
"command": "npx",
"args": ["-y", "@solstream-test/solstice-mcp"],
"env": {
"WALLET_SECRET_KEY": "<your-base58-or-json-array-secret-key>"
}
}Configuration
Only two environment variables are relevant to end users:
| Variable | Required | Description |
|----------|----------|-------------|
| WALLET_SECRET_KEY | Yes | Your Solana wallet secret key — base58 string or JSON byte array (both accepted) |
| AGENT_JWT | No | Pre-obtained JWT to skip the auth challenge flow (30-day validity) |
All backend URLs, network endpoints, and token addresses are managed by Solstice — no additional configuration needed.
Authentication
Solstice MCP uses wallet-based authentication — no dashboard, no API key copy-paste.
On first use the server automatically:
- Requests a challenge message from the Solstice backend
- Signs it with your wallet
- Exchanges the signature for a JWT
- Checks for an active subscription
- If no subscription exists, purchases the cheapest available plan using USX from your wallet
Everything happens in the background before the first tool call returns.
Tools
solana_rpc
Call any of the 51 supported Solana JSON-RPC methods via the Solstice authenticated endpoint.
# Examples
method: getSlot
method: getBalance, publicKey: <address>
method: getTransaction, signature: <sig>
method: getProgramAccounts, publicKey: <programId>, filters: [...]
method: getTokenAccountsByOwner, publicKey: <wallet>, mint: <mint>
method: sendRawTransaction, transaction: <base64>Method groups: Account & Balance · Token · Transactions · Blocks & Slots · Epoch & Inflation · Network & Validators · Performance & Fees · Supply
solstream
Subscribe to a live Solana data stream and collect a batch of updates.
Stream types:
| Type | What you get |
|------|-------------|
| slots | Slot numbers as the chain produces them |
| accounts | Account state changes — filter by address, owner program, lamports, data pattern, token state |
| transactions | Matched transactions — filter by account, program, include/exclude/require logic |
| blocks | Full block objects with transactions, account updates, and entries |
| blockMeta | Lightweight block metadata (slot, hash, time, tx count, rewards) |
| entries | Raw ledger entries / PoH hashes |
Example — watch all transactions for a program:
type: transactions
programIds: ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"]
maxUpdates: 5
timeoutMs: 10000Example — monitor a specific account:
type: accounts
accountAddresses: ["<wallet-address>"]
maxUpdates: 3Example — stream confirmed blocks with transactions:
type: blocks
withTransactions: true
commitment: confirmed
maxUpdates: 2usx
USX is a fully collateralized, fully redeemable stablecoin on Solana pegged to $1 USD, built by Solstice for everyday use and institutional reliability.
| Action | Description |
|--------|-------------|
| balance | SOL + USX balance for any wallet, ATA info |
| transfer | Send USX to a recipient (creates token account if needed) |
| quote | Jupiter swap price without executing — shows output amount and price impact |
| swap | Execute a Jupiter swap (SOL/USDC ↔ USX or any pair), returns Solscan link |
| pay | Full payment: swap sender token → recipient token → transfer to recipient |
Accepts SOL, USDC, USX as shorthand — no raw mint addresses needed.
usx_payment
Programmatic payment gating using the x402 protocol.
| Action | Description |
|--------|-------------|
| create_intent | Create a USX payment request for a resource |
| verify | Settle a payment by validating a signed x402 payload on-chain |
| check_status | Look up payment intent status (PENDING / PAID / EXPIRED) |
Requirements
- Node.js 18+
- A Solana wallet with enough USX to purchase a subscription plan (or a free plan if available)
License
MIT
