Skip to main content
Glama
JamesANZ

Bitcoin MCP Server

by JamesANZ

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose with no ambiguity: decode_invoice and decode_tx handle decoding different data types, generate_key creates new keys, get_latest_block and get_transaction retrieve blockchain data, pay_invoice processes payments, and validate_address checks addresses. The descriptions reinforce these distinct roles, making misselection unlikely.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with snake_case throughout, such as decode_invoice, get_transaction, and validate_address. This predictability makes the tool set easy to navigate and understand at a glance, with no deviations in naming style.

    Tool Count5/5

    With 7 tools, this server is well-scoped for Bitcoin and Lightning operations, covering key areas like transaction handling, address management, and invoice processing. Each tool earns its place without feeling excessive or insufficient for the domain.

    Completeness4/5

    The tool set provides strong coverage for core Bitcoin and Lightning workflows, including decoding, retrieval, generation, validation, and payment. A minor gap exists in lifecycle operations, such as creating or broadcasting transactions, but agents can likely work around this with the existing tools.

  • Average 2.9/5 across 7 of 7 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get transaction details' implies a read-only operation, but it doesn't specify if this requires authentication, has rate limits, returns specific data formats, or handles errors. For a tool with zero annotation coverage, this is a significant gap in describing how it behaves beyond basic functionality.

    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 extremely concise with just three words, front-loading the core purpose without any wasted text. It's appropriately sized for a simple tool, making it easy to parse quickly, though this conciseness comes at the cost of missing contextual details.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'transaction details' include, how results are structured, or any behavioral aspects like error handling. For a tool that likely returns complex data (transaction details), this leaves significant gaps in understanding its full context and usage.

    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?

    The input schema has 100% description coverage, with the 'txid' parameter clearly documented as 'Transaction ID'. The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles parameter documentation adequately.

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

    Purpose3/5

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

    The description 'Get transaction details' clearly states the verb ('Get') and resource ('transaction details'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'decode_tx' or 'get_latest_block', leaving ambiguity about when to use this specific tool versus others that might also retrieve transaction-related information.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a transaction ID), exclusions, or comparisons to siblings like 'decode_tx' or 'decode_invoice', which could be relevant for transaction-related tasks. This leaves the agent with no context for tool selection.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but reveals nothing about its behavior: whether it's read-only, what output format to expect, if it requires network access, or if there are rate limits. For a tool with zero annotation coverage, this is a significant gap in transparency.

    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 a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose, making it immediately clear what the tool does without unnecessary elaboration.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns structured data about an invoice. It doesn't hint at what information is decoded (e.g., amount, destination, expiry) or the format of the response, leaving the agent unprepared for the tool's behavior and output.

    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 description coverage is 100%, with the single parameter 'invoice' documented as a 'BOLT11 Lightning invoice'. The description adds no additional semantic context beyond this, such as examples of valid invoices or common errors. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('decode') and target resource ('a Lightning invoice'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'decode_tx' or 'validate_address', which might also involve decoding or validation operations in the Lightning context.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With siblings like 'decode_tx', 'validate_address', and 'pay_invoice' available, there's no indication of whether this tool is for validation, analysis, or preparation for payment, leaving the agent to guess about appropriate contexts.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the action ('decode') but doesn't disclose traits like whether it's read-only (implied but not explicit), performance characteristics (e.g., speed, computational cost), error handling, or output format (no output schema exists). This leaves the agent guessing about critical operational aspects.

    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 a single, clear sentence with zero wasted words—'Decode a Bitcoin transaction' directly conveys the core function. It's front-loaded and appropriately sized for a simple tool, making it easy for an agent to parse quickly without unnecessary elaboration.

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

    Completeness2/5

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

    Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is incomplete. It lacks context on what 'decode' entails (e.g., returns structured data vs. plain text), potential errors (e.g., invalid hex), or integration with siblings (e.g., 'get_transaction' might provide the hex). For a tool with no annotations or output schema, more detail is needed to guide the agent effectively.

    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 description coverage is 100%, with the parameter 'rawHex' well-documented as 'Transaction hex'. The description adds no additional parameter semantics beyond the schema, such as format details (e.g., hex string requirements), examples, or validation rules. However, with only one parameter and high schema coverage, the baseline score of 3 is appropriate as the schema adequately handles the parameter documentation.

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

    Purpose4/5

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

    The description clearly states the verb ('decode') and resource ('a Bitcoin transaction'), making the purpose immediately understandable. It distinguishes from siblings like 'get_transaction' (which likely retrieves transaction data) and 'validate_address' (which validates addresses rather than decoding transactions). However, it doesn't specify what aspects of the transaction are decoded (e.g., inputs, outputs, scripts), which prevents a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing raw transaction hex), contrast with 'get_transaction' (which might fetch from a blockchain), or indicate use cases (e.g., debugging, analysis). The agent must infer usage from the name and parameter alone, which is insufficient for clear decision-making.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get') but doesn't describe what 'latest block' entails—e.g., whether it returns metadata, full data, or requires specific permissions. For a tool with zero annotation coverage, this is a significant gap in transparency.

    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 a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse without unnecessary elaboration.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., block data format) or behavioral aspects like error handling. For a tool that likely interacts with blockchain data, more context is needed to ensure proper usage.

    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?

    The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is applied since the schema fully handles the parameter semantics, and the description doesn't need to compensate.

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

    Purpose3/5

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

    The description states the tool's purpose ('Get the latest block'), which is a clear verb+resource combination. However, it doesn't distinguish this from sibling tools like 'get_transaction', which might also retrieve blockchain data, leaving the scope vague. It's adequate but lacks specificity about what type of block or context.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. Given sibling tools like 'get_transaction' and 'decode_tx', it's unclear if this is for blockchain headers, full blocks, or a specific network. No exclusions or prerequisites are mentioned, leaving usage ambiguous.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Pay a Lightning invoice' implies a financial transaction with real-world consequences, but the description doesn't disclose critical traits like whether it's irreversible, requires specific permissions, has rate limits, or what happens on failure. This leaves significant gaps for a tool handling payments.

    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 a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place, adhering perfectly to conciseness standards.

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

    Completeness2/5

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

    Given the complexity of a payment tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., idempotency, error handling), return values, or integration context. For a financial operation, this leaves the agent with critical unknowns about execution and outcomes.

    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?

    The input schema has 100% description coverage, with the 'invoice' parameter documented as a 'BOLT11 Lightning invoice'. The description adds no additional meaning beyond this, as it doesn't explain invoice format, validation, or usage context. With high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Pay') and the resource ('a Lightning invoice'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'decode_invoice' or 'get_transaction', but the verb 'Pay' implies a transactional operation rather than informational retrieval.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing funds or authentication), when not to use it, or how it relates to sibling tools like 'decode_invoice' (which might be a precursor). Usage is implied by the action but lacks explicit context.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'validate' implies a read-only, non-destructive operation, the description doesn't specify what validation entails (checksum verification, format validation, network compatibility), what happens with invalid addresses, or any rate limits or authentication requirements.

    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 a single, efficient sentence with zero wasted words. It's appropriately sized for a simple validation tool and gets straight to the point without unnecessary elaboration.

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

    Completeness2/5

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

    For a validation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what constitutes successful validation, what format the result takes, or what happens with invalid addresses. Given the technical nature of Bitcoin address validation, more context would be helpful.

    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 description coverage is 100%, with the single parameter 'address' clearly documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema, so the baseline score of 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the verb ('validate') and resource ('Bitcoin address'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential sibling tools that might also validate addresses in different contexts or for different cryptocurrencies.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. Given the sibling tools include 'decode_invoice', 'decode_tx', and 'get_transaction', there's no indication whether address validation is a prerequisite for those operations or when validation should be performed independently.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states what happens (generation of key pair and address) but doesn't mention security implications, whether this is a local or remote operation, format of the output, or any side effects. For a cryptographic tool with zero annotation coverage, this is insufficient.

    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 a single, efficient sentence that communicates the core functionality without any wasted words. It's appropriately sized for a simple tool with no parameters.

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

    Completeness2/5

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

    Given the cryptographic nature of the tool and absence of both annotations and output schema, the description is incomplete. It doesn't explain what format the key pair and address are returned in, security considerations, or how this integrates with other Bitcoin operations represented by sibling tools.

    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?

    The tool has zero parameters, and schema description coverage is 100% (since there are no parameters to describe). The description appropriately doesn't discuss parameters, which aligns with the schema. Baseline for zero parameters is 4.

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

    Purpose4/5

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

    The description clearly states the action ('generate') and the resource ('new Bitcoin key pair and address'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'validate_address' or 'decode_tx' beyond the obvious functional difference.

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

    Usage Guidelines2/5

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

    No guidance is provided about when to use this tool versus alternatives. While the purpose is clear, there's no mention of prerequisites, typical use cases, or how this relates to sibling tools like 'pay_invoice' or 'validate_address'.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

bitcoin-mcp MCP server

Copy to your README.md:

Score Badge

bitcoin-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JamesANZ/bitcoin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server