Koskamo

BSVKey Inference MCP

An MCP server that provides pay-per-token inference for Claude and Grok models, with settlement in Bitcoin BSV via micropayments or x402. It exposes tools for listing models, running inference, managing funding channels, and handling payments without requiring a traditional account or credit card.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

BSVKey Inference MCP logo, by BSVKeyCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by BSVKey
You need:Fund a channel once at https://inference.bsvkey.com (BRC-100 wallet, or load a key in-page).
MCP endpoint (Streamable HTTP)
https://inference.bsvkey.com/mcp
Vendor documentation

What you can do with it

  • Run AI inference using Claude or Grok models
  • Pay for tokens using BSV micropayments
  • Manage funding channels for agent usage
  • Integrate pay-per-token billing into MCP agents

Source and maintenance

Community listingRegistry 1.3.6
Maintenance checked

Protocol and capabilities

Server
bsvkey-inference 1.0.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Buy Claude and Grok inference metered per token, settled in Bitcoin BSV. list_models and open_channel are free. infer and channel_balance need a prepaid channel key sent as "Authorization: Bearer channelId:channelSecret" (fund one at https://inference.bsvkey.com). x402_infer (Bitcoin BSV) and xrp_infer (XRP) pay per call with no channel: call once for the quote, sign it in your own wallet, call again with payment. This server never takes a private key.

Tools

6 advertised

list_models
Advertised by the server during the last successful anonymous check.

List the models this BSV inference gateway sells, with LIVE retail price (satoshis per 1,000 tokens) at the current BSV/USD rate. No key needed. Call first to choose a model.

list_models input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
infer
Advertised by the server during the last successful anonymous check.

Run one metered inference (OpenAI-compatible), paid per token in Bitcoin BSV from your prepaid channel. Returns the completion plus a receipt: satoshis charged, model routed to, remaining balance, and the broker-signed usage receipt. Needs a funded channel key: send the HTTP header "Authorization: Bearer channelId:channelSecret" with the MCP request, or pass apiKey. Thinking models (claude-sonnet-5, claude-opus-5, claude-opus-5-5, claude-fable-5-1) bill their hidden reasoning as output, and maxTokens is raised to at least 1024 for them. On failure the tool returns isError with text "error: <code> (<http status>): <message>". Codes: no_channel_key (no Authorization header and no apiKey); invalid_channel (401: channel not found, bad secret, or closed; open a new one); insufficient_balance (402: the channel cannot cover the worst case for this call; the text includes requiredSats and balanceSats; top up at the website, or lower maxTokens / turn off webSearch); invalid_request (400: unknown model or policy, a model whose provider is not enabled, or a malformed prompt; call list_models); upstream_failed (502: the model provider failed; nothing is charged, retry or pick another model). Nothing is charged on any error. This server does not verify its own receipt: check usageReceipt offline with @bsvkey/x402-bsv-client (verifyReceipt, verifyCharge, verifyMeter) against the key at /v1/receipt-key.

infer input schema
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "model": {
      "type": "string",
      "default": "auto",
      "description": "Model id or policy: auto|cheapest|best, claude-*, grok-*."
    },
    "apiKey": {
      "type": "string",
      "description": "channelId:channelSecret for a funded channel. Omit to use the Authorization header (preferred)."
    },
    "prompt": {
      "type": "string",
      "description": "The user prompt."
    },
    "system": {
      "type": "string",
      "description": "Optional system prompt."
    },
    "maxTokens": {
      "type": "integer",
      "default": 512,
      "description": "Max output tokens."
    },
    "webSearch": {
      "type": "boolean",
      "default": false,
      "description": "Let the model search the live web (adds a per-search fee)."
    }
  },
  "additionalProperties": false
}
channel_balance
Advertised by the server during the last successful anonymous check.

Check a prepaid channel’s remaining Bitcoin BSV balance, spend, and request count. Uses the Authorization header or apiKey. On failure returns isError "error: <code> (<status>): <message>": no_channel_key, or invalid_channel (401/404: not found, bad secret, or closed).

channel_balance input schema
{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "channelId:channelSecret. Omit to use the Authorization header (preferred)."
    }
  },
  "additionalProperties": false
}
open_channel
Advertised by the server during the last successful anonymous check.

Explains how to open + fund a prepaid channel. Funding is a real Bitcoin BSV payment signed by a wallet, so it is done once at the website; you then send the returned channel key as "Authorization: Bearer channelId:channelSecret" (or pass it as apiKey).

open_channel input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
x402_infer
Advertised by the server during the last successful anonymous check.

Run one inference paid PER CALL in Bitcoin BSV via x402, no prepaid channel. Non-custodial, two steps: (1) call without payment to get the 402 quote (status payment_required, accepts[]); nothing is spent. (2) Build and sign a BSV payment for that quote in your own wallet (for example fetchWithX402 / buildPayment in @bsvkey/x402-bsv-client) and call again with the same prompt, model, maxTokens and webSearch plus payment = the base64 X-PAYMENT value. Returns the completion plus the on-chain settlement txid. This server never takes a private key: a wif argument is refused. On failure returns isError "error: <code> (<status>): <message>". Codes: key_refused (a private key was sent; it was not used or forwarded); payment_failed (402: the payment did not settle; nothing is spent); invalid_request (400: unknown model or bad input; nothing is spent); upstream_failed (502: the payment SETTLED but the model provider then failed; the text includes the settlement txid. There is no automatic refund: contact embryospace@gmail.com with that txid).

x402_infer input schema
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "model": {
      "type": "string",
      "default": "grok-4.3",
      "description": "Model id or policy: auto|cheapest|best, claude-*, grok-*."
    },
    "prompt": {
      "type": "string",
      "description": "The user prompt."
    },
    "system": {
      "type": "string",
      "description": "Optional system prompt."
    },
    "payment": {
      "type": "string",
      "description": "The base64 X-PAYMENT header value your wallet signed for the quote from step 1. Omit to get the quote."
    },
    "maxTokens": {
      "type": "integer",
      "default": 512,
      "description": "Max output tokens."
    },
    "webSearch": {
      "type": "boolean",
      "default": false,
      "description": "Let the model search the live web (adds a per-search fee to the quote)."
    }
  },
  "additionalProperties": false
}
xrp_infer
Advertised by the server during the last successful anonymous check.

Run one inference paid PER CALL in XRP on the XRP Ledger via x402, no channel. Non-custodial, two steps: (1) call without payment to get the 402 quote (exact drops, destination, destination tag, signed quote; priced from the XRP Ledger's own XRP/RLUSD market); nothing is spent. (2) Sign one XRP Payment for exactly that in your own wallet and call again with the same prompt, model and maxTokens plus payment = base64 of {"x402Version":1,"scheme":"exact","network":<from quote>,"payload":{"txBlob":<signed blob>,"quote":<accepts[0].extra.quote>}}. The broker checks the payment before broadcasting it, waits for validation (a few seconds), and returns the completion, the settlement tx hash, and a signed receipt. This server never takes a wallet seed: an xrpSeed argument is refused. On failure returns isError "error: <code> (<status>): <message>". Codes: key_refused; pending (202: submitted but not validated yet; call again with the same payment); payment_failed (402: the payment was refused before broadcast or did not settle; nothing is spent unless the text includes a settlement tx); invalid_request (400); upstream_failed (502: the payment SETTLED but the model provider then failed; the text includes the settlement tx. No automatic refund: contact embryospace@gmail.com with it).

xrp_infer input schema
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "model": {
      "type": "string",
      "default": "claude-haiku-4-5",
      "description": "Model id or policy: auto|cheapest|best, claude-*, grok-*."
    },
    "prompt": {
      "type": "string",
      "description": "The user prompt."
    },
    "system": {
      "type": "string",
      "description": "Optional system prompt."
    },
    "payment": {
      "type": "string",
      "description": "The base64 X-PAYMENT value carrying your signed XRP Payment for the quote from step 1. Omit to get the quote."
    },
    "maxTokens": {
      "type": "integer",
      "default": 512,
      "description": "Max output tokens."
    }
  },
  "additionalProperties": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
917 ms
95th percentile latency
917 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 917 ms · metadata changed · 6 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http bsvkey-inference-mcp https://inference.bsvkey.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add bsvkey-inference-mcp --url https://inference.bsvkey.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable bsvkey-inference-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "bsvkey-inference-mcp": {
      "url": "https://inference.bsvkey.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "bsvkey-inference-mcp": {
      "type": "streamableHttp",
      "url": "https://inference.bsvkey.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start bsvkey-inference-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "bsvkey-inference-mcp": {
      "type": "http",
      "url": "https://inference.bsvkey.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http bsvkey-inference-mcp https://inference.bsvkey.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "bsvkey-inference-mcp": {
      "url": "https://inference.bsvkey.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "bsvkey-inference-mcp": {
      "serverUrl": "https://inference.bsvkey.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like BSVKey Inference MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.