Skip to main content
Glama
bridgenode-ai

@bridgenode/mcp

Official

@bridgenode/mcp

npm version npm downloads License: MIT-0 CI Website BridgeNode on x402-list GitHub Stars

Built for AI agents — no API keys, no registration, pay-as-you-go with Solana USDC via x402. Start free: free models and 2 free calls on paid models per client, no wallet required.

BridgeNode MCP wrapper — stdio MCP server that proxies requests to the remote https://bridgenode.cc/mcp (streamable-HTTP) with automatic x402 payment (Solana USDC). No API keys, no registration.

Installation (one-command)

claude mcp add bridgenode -s user -- npx -y @bridgenode/mcp@latest

Or manually (Claude Code, Cursor, other MCP clients):

{
  "mcpServers": {
    "bridgenode": {
      "command": "npx",
      "args": ["-y", "@bridgenode/mcp@latest"]
    }
  }
}

Related MCP server: x402 Payment Gateway MCP Server

Configuration (.env)

# Solana wallet private key (base58) — agent's payment wallet
# Optional — Solana wallet private key (base58). Needed only for PAID calls:
# free models and the 2 free trials work without it.
BRIDGENODE_WALLET_KEY=

# Spending policy (fail-closed)
BRIDGENODE_MAX_PER_CALL=0.05
BRIDGENODE_DAILY_CAP=1.0

Tools

  • chat_completions — AI inference (free models run without payment; the first 2 calls to a PAID model are free per client, then x402 payment is automatic)

  • list_models — model list (free)

  • get_price_estimate — estimate cost of a chat request (free)

How it works

  1. Local MCP client launches the wrapper via stdio

  2. Wrapper connects to https://bridgenode.cc/mcp (streamable HTTP)

  3. On tools/call receiving 402 (payment required) — the wrapper automatically signs the payment with BRIDGENODE_WALLET_KEY and retries the request

  4. Spending policy checks every payment BEFORE signing (fail-closed)

Python packages

Prefer Python? The same BridgeNode toolkit is on PyPI:

Community

Star this repo — it helps AI agents discover BridgeNode.

Available Tools

3 tools
chat_completionsChat completions with x402 paymentAInspect

Send a chat completion request to any supported model. Free models are served without payment; the first calls to a PAID model are also free per client (free trials), after which x402 payment (Solana USDC) is required — an unpaid call returns 402 with the exact price; retry with _meta["x402/payment"]. Responses are non-streaming. Pass either mode (auto/eco/premium) or model (explicit id) — one of the two is required; model wins if both are sent. Use this tool to generate text; inspect models and prices first with the free list_models tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoSmart routing profile (auto/eco/premium).
modelNoExplicit model id (see list_models / /v1/models). Mutually exclusive with mode.
messagesYesChat messages (text content only).
max_tokensNoMax output tokens (billed upfront, §4.2). MCP calls are non-stream: cap per config.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
modelNo
usageNo
objectNo
choicesNo
createdNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses significant behavioral details beyond the annotations: free tiers, free trials for first calls, payment requirement (x402 Solana USDC), the 402 response with exact price, retry instructions via _meta['x402/payment'], and non-streaming responses. Since annotations provide no behavioral hints (all false), the description carries the full burden and does so thoroughly, leaving no surprises for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is several sentences long but every clause carries signal: free/paid behavior, 402/retry, non-streaming, mutual exclusion, model selection precedence, and usage guidance. There is no fluff or redundancy. It is front-loaded with the core purpose. It is somewhat longer than strictly necessary, but for a payment-bearing tool, the trade-off is appropriate; still not as lean as the two-sentence ideal, so a 4 is fair.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex: four parameters, payment logic, model-selection ambiguity, and non-streaming constraints. The description covers the crucial behaviors (free/payment/402/retry, model/mode precedence) while leaning on the schema for parameter definitions and on the output schema for return values. It does not mention how to obtain a payment token or what happens after the retry, but those could be inferred from the 402 response with the exact price. Overall, it is sufficiently complete for the MCP context, so it's a high 'adequate' score rather than an exhaustive one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds important semantic detail beyond the schema: the mutual exclusivity of model and mode, the explicit 'model wins if both are sent' rule, and the significance of max_tokens in non-streaming mode. It also clarifies that messages are text-only. This clearly adds value beyond the input schema, justifying a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Send a chat completion request'), and later reinforces the purpose ('Use this tool to generate text'). It also positions this tool against its siblings: list_models is for inspecting models and prices, while chat_completions is for actually generating text. This makes the tool's role clear and distinguishes it without needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use the tool: to generate text, and to inspect models/prices first via the free list_models tool. It also gives implicit guidance on when not to use if the agent follows the 'inspect first' instruction. The main gap is it does not explicitly mention get_price_estimate as an alternative for pricing queries, though 'inspect models and prices' implies that separate inspection path. It's clear context but lacks an explicit exclusion statement, so a 4 (clear context, no explicit exclusions) is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_price_estimateEstimate the cost of a chat requestA
Read-onlyIdempotent
Inspect

Estimate the USDC cost of a chat completion request before paying — free, no payment, no authentication required. Read-only: no state changes and no external calls; the estimate is computed locally from server pricing config, so repeated calls with identical inputs return identical results (idempotent). Use this tool to check the exact price for a given model/mode, messages, and max_tokens before calling the paid chat_completions tool. Provide either mode (auto/eco/premium routing) or model (explicit id, mutually exclusive with mode); one of the two is required — if both are sent, model wins. mode values: auto = cheapest model fitting the context, eco = cheapest available, premium = best model.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoSmart routing profile (auto/eco/premium).
modelNoExplicit model id (see list_models / /v1/models). Mutually exclusive with mode.
messagesYesChat messages (text content only).
max_tokensNoMax output tokens to estimate (billed upfront, §4.2).

Output Schema

ParametersJSON Schema
NameRequiredDescription
modelNo
amount_usdcNo
input_tokensNo
amount_atomicNo
max_tokens_clampedNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant context beyond the annotations: 'no state changes and no external calls,' 'computed locally from server pricing config,' 'free, no payment, no authentication required,' and 'repeated calls with identical inputs return identical results.' These details clarify side effects, network behavior, and prerequisites, which annotations alone do not convey. No contradiction with the readOnly/idempotent/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three dense, well-structured sentences with no filler: what it does, safety/behavior, and invocation guidance. It front-loads purpose and money implications before diving into behavioral details, and every clause adds operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is an output schema, the description need not detail return values. It covers the required input contracts (model vs mode, messages, max_tokens), the behavioral/read-only path, the cost/auth implications, and points to related tools (chat_completions, list_models). Nothing an agent needs to call it correctly on HTTP is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each property described, so the baseline is already strong. The description goes further by defining mode values ('auto = cheapest model fitting the context, eco = cheapest available, premium = best model') and by clarifying the relationship between model and mode: 'one of two required — if both are sent, model wins.' This resolution semantic is critical and not fully captured by the schema's anyOf.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Estimate the USDC cost of a chat completion request before paying.' It clearly scopes what the tool does and implicitly distinguishes it from chat_completions (the paid execution tool) and list_models (the model-listing tool), reducing ambiguity without even checking sibling schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool: 'Use this tool to check the exact price for a given model/mode, messages, and max_tokens before calling the paid chat_completions tool.' It also gives usage constraints: one of model/mode required, mutually exclusive, and 'if both are sent, model wins.' This tells an agent exactly when and with which arguments to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsList available models and pricesA
Read-onlyIdempotent
Inspect

List available models and their prices — free, no payment, no authentication required. Read-only: no state changes; data is served from the server's local config, so repeated calls return identical results (idempotent). Accepts no parameters: the input schema is an empty object, and any arguments passed are ignored. Calling it without arguments returns the complete catalog with per-token prices; there is no filtering, pagination, or configuration. Use this tool to inspect models and prices before calling the paid chat_completions tool. Same data as GET /v1/models (§5.2). Do not use it to generate text (use chat_completions) or to estimate a specific request's cost (use get_price_estimate).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
objectNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnly, idempotent, and non-destructive behavior, and the description adds substantial context beyond that: no authentication or payment required, arguments are ignored, data comes from local config, repeated calls return identical results, and there is no filtering or pagination. This gives an agent a complete behavioral picture with no surprises.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence adds distinct value: scope, authentication/read-only/idempotency, parameter handling, absence of filtering, recommended usage, API equivalence, and exclusions. Although it is a longer description, it is tightly packed with actionable information and remains highly scannable because each sentence addresses a separate concern.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, a trivial input schema, and a true output schema, the description fully addresses everything an agent needs to know: cost model, authentication, side effects, behavior with no arguments, and clear routing versus sibling tools. There are no meaningful gaps in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and the description expands on this by explicitly stating that the input schema is an empty object and that any arguments passed are ignored. This is more informative than simply inheriting the schema. A 0-parameter baseline is already strong, and the extra clarity about ignored arguments earns a slightly higher score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List available models and their prices.' It clearly distinguishes itself from siblings by stating it does not generate text (chat_completions) and does not estimate request costs (get_price_estimate). The purpose is unambiguous and fully captures the tool's scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when to use this tool: 'Use this tool to inspect models and prices before calling the paid chat_completions tool.' It also explicitly says when not to use it, naming the alternatives for text generation and cost estimation. This leaves no ambiguity about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.4
    • First observedchat_completions
    • First observedget_price_estimate
    • First observedlist_models

TDQS

A4.7/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: list_models for catalog inspection, get_price_estimate for cost calculation, and chat_completions for actual generation. The descriptions explicitly cross-reference each other to prevent confusion.

Naming Consistency4/5

All names use snake_case with a verb_noun pattern (list_models, get_price_estimate, chat_completions). The only minor deviation is chat_completions being a noun phrase rather than a verb_noun construction, but it remains clear and consistent in style.

Tool Count5/5

Three tools is a well-scoped set for a focused LLM gateway server: inspect models, estimate cost, and generate text. Each tool earns its place with no redundancy.

Completeness5/5

The tool surface covers the full workflow: discover models, check pricing, and execute completions. The free/paid payment flow is supported via the 402 retry mechanism described in chat_completions, so there are no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers