Skip to main content
Glama

Broadcast Raw Transaction

broadcast_raw_transaction
Read-onlyIdempotent

Relay an already-signed raw transaction to the network through our own full node (non-custodial: we never see a private key). When to use: an agent signed a transaction locally and wants a high-availability broadcast path into the Bitcoin network. Do not use: to build or sign a transaction (we never hold keys), or to look up a payment (that is btc_get_transaction / ltc_get_transaction). Returns: {accepted, txid, chain, relayed} on success, or {accepted:false, reason} - a rejected transaction is never relayed. Availability: disabled by default on this deployment; the operator enables it with RB_ENABLE_BROADCAST=1.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "chain": "<chain>",
      "signed_raw_tx_hex": "<signed_raw_tx_hex>"
    },
    "name": "broadcast_raw_transaction"
  }
}

Input Schema

NameRequiredDescriptionDefault
chainYes
signed_raw_tx_hexYesRaw signed transaction hex

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true and openWorldHint=false, but the description describes an operation that pushes a transaction into a live P2P network, which is a side-effecting, open-world action. The description's own text ("Relay... to the network", "a rejected transaction is never relayed") contradicts the read-only and closed-world hints, so an agent trusting the annotations would badly misjudge the side effects. The rest of the behavioral detail (return shape, rejection semantics, RB_ENABLE_BROADCAST=1 gating) is genuinely strong, but the annotation conflict is disqualifying here.

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 carries distinct weight: purpose, when-to-use, when-not-to-use with alternatives, return contract, and deployment availability. The structure is front-loaded with labeled clauses ("When to use:", "Do not use:", "Returns:", "Availability:") and contains no filler.

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?

For a two-parameter tool with no output schema, the description covers the return shape, the failure shape, and a critical operational prerequisite (disabled unless RB_ENABLE_BROADCAST=1). The only shortfall is that it does not reconcile its network-facing behavior with the readOnly/closed-world hints it ships alongside.

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

Parameters3/5

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

Schema coverage is 50%: signed_raw_tx_hex is documented in-schema, while chain is only constrained by an enum (btc). The description adds meaningful semantics by stressing "already-signed" and "we never see a private key", clarifying that the payload must be signed elsewhere, but it adds no format or chain-selection detail beyond the schema.

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 ("Relay an already-signed raw transaction to the network through our own full node") and immediately scopes it with the non-custodial constraint. It explicitly distinguishes itself from sibling readers like btc_get_transaction and ltc_get_transaction, so an agent can route correctly without opening another schema.

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?

Usage is stated both positively ("an agent signed a transaction locally and wants a high-availability broadcast path") and negatively ("Do not use: to build or sign a transaction... or to look up a payment"), with the replacement tools named. This is explicit when/when-not/alternatives guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.