Skip to main content
Glama
Ethosbtc

mcp-mempool

by Ethosbtc

mcp-mempool

MCP (Model Context Protocol) server for the mempool.space Bitcoin API. No API key required.

Lets any MCP client (Claude Code, Claude Desktop, etc.) query live Bitcoin data: recommended fees, mempool state, blocks, transactions, addresses, price.

Tools

Tool

Arguments

Returns

get_recommended_fees

Fee estimates in sat/vB (fastest, 30 min, 1 h, economy, minimum)

get_mempool_stats

Unconfirmed tx count, total vsize, total pending fees

get_tip

Current block height and hash

get_recent_blocks

limit (1-10, default 5)

Recent blocks: height, time, tx count, median fee, mining pool

get_transaction

txid (64 hex chars)

Confirmation status, fee, fee rate, inputs/outputs

get_address

address

Confirmed balance, received total, tx counts, pending delta

get_price

BTC price in USD, EUR, GBP, CAD, CHF, AUD, JPY

Related MCP server: mcp-l402-gate-example

Install and build

npm install
npm run build

Try it

examples/client.mjs spawns the server over stdio and calls each tool:

npm run example

Use with Claude Code

claude mcp add mempool -- node /path/to/mcp-mempool/dist/index.js

Then ask, for example: "quels frais je mets pour une transaction confirmée dans l'heure ?"

Use with Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "mempool": {
      "command": "node",
      "args": ["/path/to/mcp-mempool/dist/index.js"]
    }
  }
}

Other networks / self-hosted instance

Set MEMPOOL_API_BASE to point elsewhere (default: https://mempool.space/api):

{
  "mcpServers": {
    "mempool-testnet": {
      "command": "node",
      "args": ["/path/to/mcp-mempool/dist/index.js"],
      "env": { "MEMPOOL_API_BASE": "https://mempool.space/testnet4/api" }
    }
  }
}

Works with any mempool.space-compatible instance (e.g. a self-hosted one on your own node).

Notes

  • Uses the public REST API; heavy usage should point MEMPOOL_API_BASE at a self-hosted instance (mempool.space rate-limits aggressively).

  • API errors are returned as MCP tool errors (isError: true) with the upstream message, so the model can react to them.

License

MIT

Available Tools

7 tools
get_addressAddress statsA

Get stats for a Bitcoin address: confirmed balance, total received/spent, and transaction counts (on-chain and in mempool).

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesBitcoin address (base58 or bech32)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It transparently lists the returned data categories including mempool transaction counts, indicating a read-only stats operation with no side effects. While it doesn't mention error conditions or unit conventions, it gives a solid picture of what the tool does.

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, front-loaded sentence that conveys all essential information without redundancy. Every phrase contributes meaning.

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 simple one-parameter tool without an output schema, the description adequately explains the returned information and scope. It could specify units or field names, but for most use cases the listed metrics are sufficient.

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 fully documents the 'address' parameter (base58 or bech32, length constraints) with 100% coverage. The description adds no further parameter semantics, so the baseline score of 3 is appropriate.

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 clearly states the tool's function: 'Get stats for a Bitcoin address' and enumerates specific metrics (confirmed balance, total received/spent, transaction counts). This distinguishes it from sibling tools like get_transaction or get_mempool_stats, which target different resources.

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 provides clear context for when to use this tool – whenever address-level statistics are needed. It doesn't explicitly name alternatives or exclusions, but the resource definition ('Bitcoin address') makes the use case unambiguous.

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

get_mempool_statsMempool statisticsA

Get the current state of the Bitcoin mempool: number of unconfirmed transactions, total virtual size (vBytes), and total pending fees in satoshis. Useful to judge network congestion.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/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. It discloses the core return data (transaction count, vSize, fees) and indicates it is the 'current state', but does not elaborate on data freshness, response format, or absence of side effects. For a simple read-only getter, this is adequate but minimal.

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 two concise sentences that front-load the purpose and immediately mention the returned statistics. No filler or redundant information.

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?

For a parameterless tool with no output schema, the description fully covers what the tool returns and why it is used. It mentions all key output elements and a practical use case, leaving no notable gaps.

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, so there is no parameter documentation burden. The description appropriately focuses on output semantics rather than input syntax, which is sufficient given the empty 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 clearly states the tool's function: 'Get the current state of the Bitcoin mempool' and enumerates the specific statistics returned (unconfirmed transactions, virtual size, pending fees). This differentiates it from sibling tools like get_recommended_fees and get_transaction.

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 provides a clear use case: 'Useful to judge network congestion.' However, it does not explicitly mention when not to use this tool or compare it to alternatives, so it lacks explicit exclusions or alternative recommendations.

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

get_priceBitcoin priceA

Get the current Bitcoin price in USD, EUR, GBP, CAD, CHF, AUD, and JPY.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/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. It discloses the core behavior—fetching current prices—and lists the currencies, but does not mention return format, update frequency, or potential network dependencies. This is moderately transparent for a simple read-only tool, but not comprehensive.

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?

A single, well-structured sentence front-loads the action and resource, and the currency list is concise and pertinent. No filler words or redundant information; every element earns its place.

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 simple zero-parameter price lookup tool, the description is largely complete: it names the exact data returned and the currencies. The lack of an output schema or return format description is a minor gap, but the tool's simplicity and the enumerated currencies make the output predictable.

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 the schema coverage is 100% (trivially). The description adds semantic value by specifying which currency prices are returned, which is effectively the parameter space. With no params to document, the description adequately conveys the tool's inputs.

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 clearly states the tool's function with a specific verb 'Get' and resource 'current Bitcoin price', and enumerates the supported currencies. This distinguishes it from sibling tools like get_recommended_fees or get_transaction, which cover different blockchain data areas.

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 implies when to use this tool: whenever a current Bitcoin price is needed. It provides a clear context without explicitly mentioning alternatives, but the simple, specialized scope makes the usage obvious. No exclusions or alternative tool references are provided, but they are unnecessary given the tool's specificity.

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

get_recent_blocksRecent blocksA

Get a summary of the most recent Bitcoin blocks: height, hash, timestamp, transaction count, size, and median fee. Returns up to 10 blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of blocks to return (1-10)

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the return contents (height, hash, timestamp, transaction count, size, median fee) and the upper bound of 10 blocks. This is sufficient for a simple read-only tool, though it doesn't explicitly state that it's non-mutating.

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 exactly two sentences, front-loaded with the primary action, and every word adds value. No redundancy or filler.

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?

For a simple tool with one optional parameter and no output schema, the description fully covers what the tool does, what it returns, and its limit. The lack of output schema is compensated by listing all returned fields.

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 100% for the single 'limit' parameter, including default, min, max, and description. The description adds no new parameter details beyond reinforcing the 'up to 10' cap, so a baseline score of 3 is appropriate.

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 clearly states the tool's purpose with a specific verb ('Get') and resource ('recent Bitcoin blocks'), and lists the exact fields returned. This distinguishes it from sibling tools like get_tip, get_transaction, and get_mempool_stats.

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

Usage Guidelines3/5

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

The description implies usage for retrieving recent block summaries, but offers no explicit guidance on when to choose this tool over siblings or any exclusions. It's clear enough for straightforward use, but lacks explicit comparative context.

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

get_tipChain tipA

Get the current Bitcoin chain tip: block height and block hash.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It accurately describes the return values and implies a read-only operation via the word 'Get'. It does not discuss side effects, but none are expected for this simple query.

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, focused sentence that immediately conveys the tool's purpose and output. No word is wasted.

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?

For a simple parameterless tool, the description fully explains what the tool returns (block height and hash). With no output schema, this fulfills the need to document return values. The tool's complexity is low, so this is sufficient.

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 the description does not need to explain any. The empty schema provides all necessary information, earning the baseline score of 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 clearly identifies the tool's function: retrieving the current Bitcoin chain tip with its height and hash. This specific verb-resource pair distinguishes it from sibling tools that focus on fees, mempool stats, blocks, transactions, addresses, or prices.

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 implies the tool is used when you need the current chain tip, but it does not explicitly state when to use it over alternatives. However, given the distinct purpose, the context is clear and there are no exclusions.

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

get_transactionTransaction detailsA

Get details for a Bitcoin transaction by txid: confirmation status, block height, fee, size, and inputs/outputs summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
txidYesTransaction ID (64 hex chars)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It transparently lists the types of data returned (confirmation status, block height, fee, size, inputs/outputs), giving the agent a clear expectation of the operation's output. It does not mention error cases, but as a read-only getter, this is sufficient.

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, well-structured sentence that leads with the action and resource, then lists specific data points. No unnecessary words or repetition.

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?

For a simple single-parameter getter without an output schema, the description sufficiently covers what the agent needs to know: what the tool does and what information will be returned. The low complexity does not require additional details.

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 'txid' parameter already described as a 64-character hex string. The tool description adds minimal semantic value (only 'by txid'), so a baseline score of 3 is appropriate.

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 clearly states the tool's function: retrieving Bitcoin transaction details by txid. It enumerates specific fields (confirmation status, block height, fee, size, inputs/outputs), distinguishing it from sibling tools that handle fees, mempool, blocks, addresses, and prices.

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 implies the appropriate context: use when you have a transaction ID and need its details. It does not explicitly mention exclusions or alternatives, but given the distinct resource, the usage context is clear and unambiguous.

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

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct data resource: fees, mempool stats, chain tip, recent blocks, a specific transaction, an address, and price. No two tools overlap in purpose, making selection unambiguous.

Naming Consistency5/5

All tools follow a consistent 'get_' verb + noun pattern (get_recommended_fees, get_mempool_stats, get_tip, get_recent_blocks, get_transaction, get_address, get_price). The naming scheme is uniform and predictable.

Tool Count5/5

Seven tools is well-scoped for a mempool/blockchain information server. Each tool addresses a common need without redundancy, and the count is within the ideal 3-15 range.

Completeness4/5

The server covers fees, mempool state, chain tip, recent blocks, transactions, addresses, and price—covering the primary read-only use cases. A notable minor gap is the lack of a way to fetch a specific block by height or hash, but this is not critical for typical mempool queries.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides AI agents with real-time and historical Bitcoin network data by wrapping the mempool.space WebSocket and REST APIs. It enables tracking addresses, monitoring blocks, and retrieving transaction details or fee estimates through natural language.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Minimal MCP server demonstrating L402 pay-per-call with Depth-of-Identity reputation gating, providing a bitcoin data tool that fetches BTC price and mempool fees.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for Bitcoin block explorer and mempool/fee statistics, providing tools to query fees, mempool stats, blocks, transactions, addresses, hashrate, and mining pools.
    16
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server offering 26 Lightning-paid tools for Bitcoin mempool intelligence and sovereign on-prem AI inference, with no third-party APIs and pay-per-call in sats.
    26
    23
    1
    MIT

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/Ethosbtc/mcp-mempool'

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