BackPow MCP Server
Provides live Bitcoin mining data, including network difficulty and hashrate, solo-mining probability and expected block time, cost of production, and hardware profitability.
Provides live Monero mining data, including network difficulty and hashrate, cost of production versus spot price, gross margin, and hardware profitability.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BackPow MCP ServerHow long to solo mine a Bitcoin block at 100 TH/s?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BackPow MCP Server
The official Model Context Protocol server for BackPow — The Proof of Work Oracle.
It gives an AI assistant live mining data for 126+ Proof of Work networks and 770+ hardware models: network difficulty and hashrate, Poisson solo-mining probabilities, Cost of Production, and hardware profitability.
Endpoint: https://mcp.backpow.com/mcp — Streamable HTTP, no API key, no
account, no rate-limit gate.
Install
Claude Code
claude mcp add --transport http backpow https://mcp.backpow.com/mcpClaude Desktop / claude.ai
Settings → Connectors → Add custom connector → https://mcp.backpow.com/mcp
VS Code
{
"servers": {
"backpow": { "type": "http", "url": "https://mcp.backpow.com/mcp" }
}
}Cursor
Settings → MCP → Add, or in ~/.cursor/mcp.json:
{
"mcpServers": {
"backpow": { "url": "https://mcp.backpow.com/mcp" }
}
}Local stdio
Not published to npm yet, so there is deliberately no npx command here to
copy — it would fail. The remote endpoint above is the supported path and works
in every client listed.
To run it locally from a clone in the meantime:
npm install && npm run build{
"mcpServers": {
"backpow": { "command": "node", "args": ["/absolute/path/to/backpow-mcp-server/dist/cli.js"] }
}
}Related MCP server: CryptoQuant MCP Server
Tools
Tool | Answers |
| "How long to solo mine a Bitcoin block at 100 TH/s?" — mean time, Poisson probability over 1/7/30/90/365 days, the luck spread, and what the electricity costs while you wait |
| "Is mining Monero profitable?" — CoP vs spot, gross margin, the reference machine and tariff, 30-day trend |
| "What is Kaspa's current difficulty?" — live network state with a confidence block |
| Browse or filter the tracked networks by algorithm or profitability |
| "What should I mine with an RTX 4090 at $0.10/kWh?" — coins ranked by net USD/day |
| Recent mining and network events, quoted as third-party content |
All six are read-only and annotated readOnlyHint, so hosts that support
auto-approval will not prompt on every call.
How results are shaped
Every successful result is an envelope:
{
"warnings": [ /* plain prose caveats, e.g. a stale-collector or reward-status note */ ],
"source": {
"as_of_utc": "2026-09-18T08:12:00Z",
"data_age_seconds": 30,
"served_from": "live",
"url": "https://backpow.com/Bitcoin",
"cite_as": "BackPow — The Proof of Work Oracle, \"BTC solo mining odds\", retrieved 2026-09-18 — https://backpow.com/Bitcoin",
"methodology": "…"
},
"data": { /* the figures */ }
}Mining numbers move continuously, so a figure quoted without its date can be wrong within hours. Every result therefore carries its measurement timestamp and a citation line.
Two deliberate behaviours worth knowing:
Ambiguity is refused, not guessed. Several tickers are shared by multiple tracked chains (DGB by 5, XVG by 5).
get_coin_oracle {"coin_id": "DGB"}returns an error listing the candidates rather than picking one.Dead telemetry is refused, not zeroed. A network whose collectors are stalled or unreachable returns an error. It never returns
0 H/sas if that were a measurement.
Data and licence
Figures derive from BackPow's stratum collector nodes and market data, and are published under CC BY 4.0 — see backpow.com/llms.txt. Citation is requested, permission is not required.
This is a calculator and data source, not financial advice. No tool executes a transaction.
Development
npm install
npm run typecheck # tsc --noEmit
npm test # unit + integration, no network
npm run dev # wrangler dev on :8787
npm run conformance -- http://127.0.0.1:8787 # protocol probe against a running server
npm run deploy # Cloudflare Workersscripts/conformance.mjs drives a live endpoint through the transport and
security behaviours the unit tests structurally cannot reach. CI runs it against
a wrangler dev instance on every push.
Transport
Streamable HTTP on a single endpoint, POST /mcp. The server is stateless: it
mints no session ids, GET and DELETE answer 405, and notifications get
202 with no body. Protocol revisions 2025-11-25 through 2024-11-05 are
negotiated at initialize; server/discover reports the supported set.
The deprecated HTTP+SSE transport has been removed. /sse and /message answer
410 pointing at /mcp.
Licence
MIT — see LICENSE.
Available Tools
6 toolscalculate_solo_mining_oddsSolo mining oddsARead-onlyIdempotent
Probability of a solo miner finding a block, computed as a Poisson process over live network difficulty and hashrate, plus the electricity cost of the attempt. Returns mean time to a block, the chance of at least one block over 1/7/30/90/365 days, and lucky-vs-unlucky waiting times (5th, 50th and 95th percentile) — variance dominates at small hashrates, so the average alone is misleading. Use for questions like "how long would it take to solo mine a Bitcoin block with 100 TH/s", "what are my odds solo mining Kaspa", or "is solo mining worth it with this rig". For pooled mining economics or whether a coin is profitable at all, use get_cost_of_production. For raw network state without a miner, use get_coin_oracle.
| Name | Required | Description | Default |
|---|---|---|---|
| coin_id | Yes | Coin name or ticker, e.g. "Bitcoin", "BTC", "Kaspa", "bitcoin cash", "Monero". Ambiguous input is rejected with the list of matching networks rather than resolved to a guess: several tickers are shared by multiple tracked chains (DGB by 5, XVG by 5, TARI by 4). | |
| hashrate | Yes | The miner's rate, as a number. The unit goes in hashrate_unit. | |
| power_watts | No | Miner power draw in watts, e.g. 3500 for an ASIC or 320 for a GPU. Optional. | |
| hashrate_unit | Yes | Unit for hashrate. Most networks measure in hashes per second (H/s…EH/s). Cuckoo-family chains measure graphs per second (gps) and Aleo measures proofs per second — an unrecognised unit is rejected rather than assumed, because assuming H/s can be wrong by a factor of 10^12. | |
| electricity_cost_usd_kwh | No | Electricity price in USD per kWh. Defaults to 0.069, an industrial hosting tariff; residential rates are commonly 3-5x higher and change profitability conclusions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is read-only, idempotent, and non-destructive, so the bar for added value is met well. The description discloses the statistical model (Poisson process), live inputs, the specific computed outputs, and the caveat that variance dominates at small hashrates, making the average misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and output, then gives concrete use cases and sibling routing. Every sentence earns its place, including the variance caveat and alternative tool references, without unnecessary repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately enumerates return values: mean time, probabilities over standard horizons, and percentile waiting times. It also covers when to use the tool, when not to, and what distinguishes it from related tools, making it complete for agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already thoroughly documents coin_id, hashrate, hashrate_unit, power_watts, and electricity_cost_usd_kwh. The description adds useful conceptual framing by connecting parameters to the Poisson model and electricity cost, but it does not add substantial syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb and resource: computing solo mining odds via a Poisson process over network difficulty and hashrate. It clearly distinguishes itself from siblings by naming get_cost_of_production and get_coin_oracle as alternatives for different questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit example questions that should route to this tool, such as 'how long would it take to solo mine a Bitcoin block with 100 TH/s'. It also states exclusions: pooled mining economics or general profitability should use get_cost_of_production, and raw network state should use get_coin_oracle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_oracleLive network stateARead-onlyIdempotent
Current network state for one Proof of Work chain, measured by BackPow's stratum collector nodes: difficulty, derived network hashrate, block height, block reward, protocol block-time target versus the latest observed interval, and the source pool. Every response carries a confidence block — how many independent pool operators agreed, whether the reward figure is live or a static fallback, and how old the observation is. Networks whose collectors are stalled or unreachable return an error rather than zeros. Use for "what is Kaspa's current difficulty", "network hashrate of Monero", "current block reward". For economics use get_cost_of_production; for mining probability use calculate_solo_mining_odds.
| Name | Required | Description | Default |
|---|---|---|---|
| coin_id | Yes | Coin name or ticker, e.g. "Bitcoin", "BTC", "Kaspa", "bitcoin cash", "Monero". Ambiguous input is rejected with the list of matching networks rather than resolved to a guess: several tickers are shared by multiple tracked chains (DGB by 5, XVG by 5, TARI by 4). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond that: data provenance from stratum collector nodes, the confidence block fields (pool agreement count, live/static fallback, observation age), and the explicit error-rather-than-zeros policy for stalled collectors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences front-load the return fields, then explain reliability semantics, give usage examples, and route to alternatives. Every sentence earns its place and there is no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one well-documented required parameter and no output schema, the description supplies sufficient information about the return payload, confidence metadata, error behavior, and sibling alternatives. Nothing an agent needs to invoke this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single coin_id parameter, including format, examples, and ambiguous-input handling. The description does not add parameter-specific details, but with full schema coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource ('network state for one Proof of Work chain') and enumerates the fields returned, making the tool's purpose unmistakable. It explicitly contrasts with sibling tools get_cost_of_production and calculate_solo_mining_odds, so an agent can tell them apart without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete query examples ('what is Kaspa's current difficulty', 'network hashrate of Monero', 'current block reward') and explicit routing guidance: use get_cost_of_production for economics and calculate_solo_mining_odds for mining probability. This is clear, actionable when-to-use information with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_of_productionCost of productionARead-onlyIdempotent
Cost of Production (CoP) for one Proof of Work coin: the all-in electricity cost of mining one unit on the most efficient hardware BackPow tracks for that algorithm, compared against spot price. Returns CoP in USD, spot, gross margin, whether miners are currently above or below water, the reference machine and tariff behind the figure, and a 30-day trend including whether the reference machine changed (which indicates the efficiency frontier moved). Accepts a custom electricity rate. Use for "is mining X profitable", "what does it cost to produce one Monero", "are miners underwater", or "break-even electricity price". For a specific rig rather than a coin, use get_hardware_benchmarks. For block-finding probability, use calculate_solo_mining_odds.
| Name | Required | Description | Default |
|---|---|---|---|
| coin_id | Yes | Coin name or ticker, e.g. "Bitcoin", "BTC", "Kaspa", "bitcoin cash", "Monero". Ambiguous input is rejected with the list of matching networks rather than resolved to a guess: several tickers are shared by multiple tracked chains (DGB by 5, XVG by 5, TARI by 4). | |
| electricity_cost_usd_kwh | No | Electricity price in USD per kWh. Defaults to 0.069, an industrial hosting tariff; residential rates are commonly 3-5x higher and change profitability conclusions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description doesn't need to restate safety. It adds useful behavioral detail: the return fields, the meaning of a reference-machine change indicating the efficiency frontier moved, and the effect of a custom electricity rate. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: a crisp definition, the output fields, an optional-input note, concrete use cases, and sibling routing. The definition is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description enumerates the return values (CoP in USD, spot, gross margin, above/below water, reference machine and tariff, 30-day trend). It also covers usage context, parameter semantics via schema, and alternative tools, so an agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents coin_id and electricity_cost_usd_kwh. The description adds interpretive context by explaining that CoP is computed on the most efficient hardware and that a custom electricity rate is accepted, but it intentionally leaves parameter-level details to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it computes the all-in electricity cost of mining one unit of a Proof of Work coin on the most efficient tracked hardware, compared to spot price. It clearly distinguishes itself from siblings by naming the object of interest (a coin's production cost) and explicitly pointing to get_hardware_benchmarks and calculate_solo_mining_odds as different tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit use cases ('is mining X profitable', 'what does it cost to produce one Monero', 'are miners underwater', 'break-even electricity price'). It also gives explicit exclusions and alternatives: use get_hardware_benchmarks for a specific rig and calculate_solo_mining_odds for block-finding probability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hardware_benchmarksMining hardware economicsARead-onlyIdempotent
Mining hardware matched to the coins it can mine, ranked by net USD per day at a given electricity rate. Covers ASICs, GPUs and CPUs, with hashrate and power draw per coin, gross revenue, net profit, and market price including whether that price is an observed listing or a model estimate. Use for "what should I mine with an RTX 4090", "best ASIC for Scrypt", "is an Antminer S21 still profitable", or "how much does a Bitaxe make". Coins are ranked by profitability, not alphabetically, and results are capped — ask for a higher limit rather than assuming the list is complete. For a coin's economics independent of any particular rig, use get_cost_of_production.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Restrict to one hardware class. | |
| limit | No | Devices to return, 1-25. Defaults to 5. | |
| query | Yes | Hardware model or keyword, at least 2 characters, e.g. "RTX 4090", "Antminer S21", "Bitaxe", "Ryzen 9 7950X". Short or generic queries match hundreds of devices, so pair them with type and limit. | |
| coin_id | No | Restrict the per-device coin rows to one network, e.g. to answer "how much does this rig make on Kaspa". Optional. | |
| electricity_cost_usd_kwh | No | Electricity price in USD per kWh. Defaults to 0.069, an industrial hosting tariff; residential rates are commonly 3-5x higher and change profitability conclusions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds behavioral context beyond that: results are ranked by profitability, results are capped (with a hint to request a higher limit), and market price may be an observed listing or a model estimate. These are useful traits not present in annotations. It doesn't add rate limits or error behavior, but with annotations covering safety, the extra detail is sufficient. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is slightly long but every sentence adds value: first sentence states purpose and key features, second gives example queries, third explains ranking and capping, fourth routes to an alternative. It's front-loaded with the core purpose and well-structured. It's not overly verbose, though it could be trimmed slightly; still, the density is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lists the return fields (hashrate, power draw, gross revenue, net profit, market price, price type), explains ranking and capping, provides example queries, and gives an alternative tool for other use cases. With 5 parameters, this description covers all essential aspects an agent needs to call it correctly: what it does, when to use it, key behaviors, and alternatives. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 5 parameters, so the schema already documents each parameter thoroughly (type enum, limit range and default, query min length, coin_id pattern, electricity cost default and impact). The tool description adds only marginal semantic value, e.g., mentioning that electricity rate affects profitability and hinting at the limit cap. Baseline for high coverage is 3, and the description doesn't significantly exceed that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (get hardware benchmarks), and clearly defines what it does: matches mining hardware to coins, ranks by net USD/day, and covers ASICs/GPUs/CPUs. It explicitly distinguishes itself from get_cost_of_production, which is a sibling, by stating the alternative use case. The purpose is unambiguous and unique among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives multiple concrete example queries ('what should I mine with an RTX 4090', 'best ASIC for Scrypt', etc.), explains the ranking basis (profitability, not alphabetical), warns about result capping and advises asking for a higher limit, and explicitly directs to get_cost_of_production when the user wants coin economics independent of hardware. This is explicit when-to-use and when-not-to-use guidance with an alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pow_newsPoW mining newsARead-onlyIdempotent
Recent news items about Proof of Work mining and network events, optionally filtered to one coin. Items are aggregated from third-party feeds and are returned as quoted external content with their publisher and a relevance score, not as BackPow statements of fact. Use when a question turns on recent events — a halving, a difficulty swing, a pool outage, a chain upgrade. For numbers rather than narrative, use get_coin_oracle or get_cost_of_production.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return, 1-20. Defaults to 5. | |
| coin_id | No | Optional coin filter, e.g. "Bitcoin", "Zcash", "Kaspa". | |
| include_low_signal | No | Include items scored 0 for relevance by the upstream triage model. Excluded by default; about a third of raw feed items score 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond that: results are aggregated from third-party feeds, returned as quoted external content with publisher and relevance score, and not represented as BackPow statements of fact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well structured: it states what the tool returns, clarifies the nature of the content, gives concrete usage guidance, and names alternatives. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still tells the agent what to expect: quoted external content, publisher, and relevance score. Along with schema-defined parameters and safety annotations, this is sufficient for correct invocation. Minor gap: no explicit mention of ordering or time window, but 'recent' plus relevance scoring reasonably implies the behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters, so the schema carries the explanatory burden. The description adds only a brief mention of the optional coin filter, which aligns with coin_id but does not substantially extend parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's resource ('news items about Proof of Work mining and network events') and the optional coin filter. It also differentiates the tool from its siblings by noting it returns quoted external content with relevance scores, not first-party factual statements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance with concrete examples ('a halving, a difficulty swing, a pool outage, a chain upgrade') and points to alternative tools for numeric questions ('For numbers rather than narrative, use get_coin_oracle or get_cost_of_production').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pow_coinsBrowse PoW networksARead-onlyIdempotent
Paginated index of the Proof of Work networks BackPow tracks, with algorithm, network rate, collector status and canonical page URL. Optionally filtered by algorithm or restricted to coins currently mining above cost. Returns the distinct algorithm list so valid filter values are discoverable. Use to find which networks exist for an algorithm, to browse the catalogue, or to resolve an ambiguous coin reference. Results are paginated: request a larger limit or a later offset rather than expecting the full catalogue in one response.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return, 1-100. Defaults to 25. | |
| offset | No | Rows to skip for pagination. Defaults to 0. | |
| sort_by | No | Ordering. "suffering" ranks by how far Cost of Production exceeds spot price. Defaults to name. | |
| algorithm | No | Case-insensitive substring filter on algorithm, e.g. "SHA-256", "Scrypt", "KawPow", "RandomX", "Autolykos". The response lists every algorithm present. | |
| profitable_only | No | Restrict to coins whose spot price currently exceeds Cost of Production. Profitability is resolved for the returned page only, and the response reports how many of those coins have CoP coverage, so a small result set can be distinguished from missing data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive, and the description adds important behavior beyond that: pagination expectations, the fact that profitable_only is resolved only for the returned page, and that the response includes the algorithm list for discoverability. This directly helps the agent interpret small or partial results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: definition, optional filters, output hint, use cases, and a necessary pagination warning. Each sentence earns its place, and the core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description explains what the response will contain, how filtering and pagination work, and what edge cases to expect (e.g., small result sets from profitable_only). The tool is fully callable with the provided guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented with meaningful descriptions. The description reinforces the roles of algorithm and profitable_only but does not add substantive new parameter meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence immediately identifies a specific verb ('Paginated index') and resource ('Proof of Work networks BackPow tracks') plus the returned fields. It also differentiates from siblings by framing this as the catalogue/browsing tool, not a calculation, cost, benchmark, or news tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases: find networks for an algorithm, browse the catalogue, or resolve an ambiguous coin reference. It does not explicitly name when not to use it or list sibling alternatives, but the context is clear enough that an agent can choose it appropriately.
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.
6 tool updates
v1.0.0- First observed
calculate_solo_mining_odds - First observed
get_coin_oracle - First observed
get_cost_of_production - First observed
get_hardware_benchmarks - First observed
get_pow_news - First observed
list_pow_coins
TDQS
Scored across 6 tools
Each tool targets a distinct aspect of PoW mining: odds, cost, network state, catalog, hardware benchmarks, and news. There is no overlap; even get_cost_of_production and get_hardware_benchmarks are clearly separated by coin-level vs rig-level economics.
All tool names follow a consistent verb_noun snake_case pattern (calculate_, get_, list_). The verbs are specific and the nouns clearly indicate the subject. No mixed conventions or vague verbs.
Six tools is a well-scoped set for a PoW mining information server. Each tool serves a distinct function without redundancy, and the count is appropriate for the domain.
The surface covers the core workflows: network state, economics, hardware profitability, odds, catalog, and news. Minor gaps exist (e.g., no historical data or pool-specific details) but they are outside the apparent scope and do not hinder agent workflows.
Maintenance
Related MCP Connectors
Live crypto prices, conversion, gas tracker, portfolio tools, and calculators for AI agents.
Bitcoin and YouTube video intelligence for AI agents. Pay-per-call via x402 USDC on Base.
52 paid x402 API endpoints for AI agents — crypto, data, DeFi, market intelligence.
Crypto yield data for AI agents: lending, savings, staking, borrowing & stablecoin rates. 18 tools.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to access crypto-related information including latest news, prices, and market trends through ChainGPT capabilities.324 npm5MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to access real-time on-chain crypto analytics, whale tracking, and market metrics through natural language queries. It provides access to over 245 endpoints for comprehensive data analysis of assets like Bitcoin, Ethereum, and stablecoins.76 npm7MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to access comprehensive cryptocurrency market analysis, including real-time prices, 35+ technical indicators, market sentiment, futures data, and economic events.502MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to fetch real-time cryptocurrency market data including prices, tickers, exchange data, and OHLCV candles from CoinPaprika with zero configuration.3032 npmMIT