Satstream MCP Server
OfficialThe Satstream MCP Server provides comprehensive access to real-time Bitcoin blockchain data through the Satstream API, with capabilities including:
Bitcoin Address Data: Retrieve balance information, transaction history, UTXOs, and validate addresses
Blockchain Information: Access block details by hash or height, raw and decoded block data, and network statistics
Transaction Data: Get transaction details including raw, decoded, and prevout data
Mempool Monitoring: View statistics and unconfirmed transactions in real-time
Ordinals & Inscriptions: Fetch data about Ordinals inscriptions, including latest, paginated lists, and child inscriptions
Runes Tokens: Access information about Runes by name or ID, with listing options
UTXO Analysis: Retrieve and filter unspent outputs by various types (cardinal, inscribed, runic)
Satoshi Tracking: Get information about specific satoshis by their index
Advanced Features: Support for pagination, raw data retrieval, and server status monitoring
Provides comprehensive access to Bitcoin blockchain data, including address information, balances, transaction history, block details, mempool statistics, and support for Bitcoin-specific features like Ordinals inscriptions and Runes tokens.
The server is built using Bun as its JavaScript runtime environment, allowing for fast execution of the MCP server that interfaces with the Bitcoin data API.
Click on "Install 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., "@Satstream MCP Serverget the balance for address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
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.
Satstream MCP Server
A Model Context Protocol (MCP) server that provides access to Satstream Bitcoin data API.
Setup
To install dependencies:
bun installTo run with an API key:
export SATSTREAM_API_KEY="your-api-key-here"
bun run index.tsOr pass the API key as a command line argument:
bun run index.ts your-api-key-hereRelated MCP server: MCP Blockchain Query Server
About Satstream
Satstream is a comprehensive Bitcoin blockchain API service that provides access to real-time blockchain data, including transactions, addresses, blocks, and specialized data like Ordinals inscriptions and Runes tokens.
Getting an API Key
To use this MCP server, you'll need a Satstream API key. You can obtain one by:
Visiting Satstream Documentation
Signing up for an account
Generating an API key from your dashboard
The free tier provides access to basic functionality with rate limits, while paid plans offer higher rate limits and additional features.
Available MCP Functions
The following MCP functions are available for Bitcoin data queries:
Address Functions
Function Name | Description | Parameters |
| Get detailed information about a Bitcoin address |
|
| Get balance for a Bitcoin address |
|
| Get transaction history for an address |
|
| Validate a Bitcoin address |
|
| Get UTXOs for a Bitcoin address |
|
| Get rune token history for an address |
|
Blockchain Functions
Function Name | Description | Parameters |
| Get information about a block by hash or height |
|
| Get current blockchain stats and network info |
|
| Get details about a transaction |
|
Mempool Functions
Function Name | Description | Parameters |
| Get mempool statistics |
|
| List unconfirmed transactions | Optional pagination params |
Ordinals and Runes Functions
Function Name | Description | Parameters |
| Get data about an ordinals inscription |
|
| Get information about a specific rune |
|
| Get latest runes (first 100) |
|
| Get a specific page of runes |
|
Usage Examples
Get address information
address_get({ address: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" })Validate a Bitcoin address
address_validate({ address: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" })Get block information
block_get({ identifier: "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f" })Get blockchain stats
blockchain_info({ random_string: "dummy" })Get address balance
address_balance_get({ address: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" })Get UTXOs for an address, filtered by type
address_outputs_get({
address: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
type: "cardinal"
})Get information about a specific rune
rune_get({ identifier: "UNCOMMON•GOODS" })Get latest runes
runes_latest_get({ random_string: "dummy" })MCP Integration
This server is designed to be used with Cursor or other environments supporting the Model Context Protocol. For detailed function descriptions and usage guidelines, see function-descriptions.json.
This project was created using Bun, a fast all-in-one JavaScript runtime.
Available Tools
37 toolsaddress_balance_getA
Get the total Bitcoin balance (in satoshis) of an address by summing all its deltas. Use this when you only need the balance information without the full address details.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes that the balance is computed 'by summing all its deltas', which adds transparency beyond a simple get. However, with no annotations, it does not disclose read-only nature or potential side effects. For a simple read tool, this is adequate but not fully transparent.
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?
Two concise sentences. First sentence explains what it does, second provides usage guidance. No unnecessary words or redundant information.
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?
For a tool with low complexity (one parameter, no output schema), the description covers purpose and usage context. However, it does not mention error handling, return format (expected number), or address validation, leaving some gaps for an agent.
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 description does not add any detail beyond the schema for the single parameter 'address'. It does not specify expected format (e.g., legacy, bech32) or validation rules. The 0% schema description coverage means the description carries full burden, but it provides no extra semantic information.
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?
Clearly states verb 'Get', resource 'total Bitcoin balance of an address' in satoshis, and explicitly distinguishes from sibling tools by saying 'Use this when you only need the balance information without the full address details.'
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?
Provides clear context for when to use ('only need the balance information'), but does not explicitly specify when not to use or list alternative tool names. The sibling differentiation is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_deltas_getA
Get transaction deltas (inputs and outputs) for a specific Bitcoin address with pagination. Use this to analyze the transaction history of an address with filtering by block height.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| address | Yes | ||
| page_size | No | ||
| end_height | No | ||
| start_height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It mentions pagination and filtering by block height, but lacks details on rate limits, error handling, or what happens for nonexistent addresses. It adds some value but is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no redundant information. It front-loads the core functionality and adds usage guidance efficiently.
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?
The tool has 5 parameters and no output schema, yet the description does not describe the return format or structure of the deltas. Given the complexity and lack of output schema, this is a significant gap that leaves the agent guessing about what data it will receive.
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 0%, so the description must compensate. It connects 'pagination' to cursor and page_size, and 'filtering by block height' to start_height and end_height, but does not explain each parameter individually (e.g., how cursor works, default page_size). The address parameter is obvious from context.
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 states 'Get transaction deltas (inputs and outputs) for a specific Bitcoin address with pagination.' It identifies the specific resource (transaction deltas for an address) and verb (get), distinguishing it from sibling tools like address_balance_get or address_get.
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 includes 'Use this to analyze the transaction history of an address with filtering by block height,' which provides clear context for when to use this tool. However, it does not explicitly state when not to use it or mention alternative tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_getA
Get detailed information about a specific Bitcoin address, including transaction history and UTXO details. Use this when you need comprehensive data about an address.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must handle transparency. It indicates a read operation with no destructive behavior, but lacks details on latency, pagination, or authentication requirements. For a simple get, this is adequate but not exhaustive.
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?
Two sentences, front-loaded with purpose, no redundant words. Every sentence earns its place.
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?
Covers purpose and output scope (transaction history, UTXO details), but for a tool with no output schema, more detail on return structure or limits would improve completeness. Given low complexity, it's minimally adequate.
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 0% and the description does not add any meaning to the 'address' parameter beyond its type. No mention of expected format (e.g., bech32) or validation rules, offering no extra value.
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?
Clearly states the verb 'Get', the resource 'specific Bitcoin address', and what is included ('transaction history and UTXO details'). This distinguishes it from siblings like address_balance_get which only returns balance.
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?
Explicitly says 'Use this when you need comprehensive data about an address', providing clear context. Does not specify when not to use, but the sibling list implies alternatives for narrower queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_outputs_getA
Retrieve UTXOs (unspent transaction outputs) held by a specific Bitcoin address with optional type filtering. Use this to get detailed information about available UTXOs for spending or analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description implies read-only operation but does not explicitly disclose behavior such as pagination, rate limits, or output structure. Lacks depth for a retrieval tool.
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?
Two sentences, front-loaded with key action and resource, no extraneous text. Efficient but could benefit from a hint about output 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?
Given 2 params, no output schema, and 37 sibling tools, description covers basic purpose and filtering but lacks information about return value (e.g., txid, vout, amount) and any constraints or defaults.
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 0%; description mentions 'address' and 'optional type filtering' but does not explain that address is required, enum values for type, or add meaning 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?
Description clearly states the verb 'Retrieve' and resource 'UTXOs held by a specific Bitcoin address', distinguishing it from sibling tools like address_balance_get or address_deltas_get.
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?
Provides a use case ('for spending or analysis') but does not explicitly state when not to use or compare with alternatives like address_balance_get or output_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_rune_deltas_getA
Get rune deltas (changes in rune balances) for a specific Bitcoin address with pagination. Use this to analyze the history of rune token transfers for an address.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| address | Yes | ||
| page_size | No | ||
| end_height | No | ||
| start_height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions pagination and implies filtering via start/end height but does not explain response format, permissions, side effects, or rate limits. This is insufficient for a read tool with no output schema.
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 two concise sentences, front-loaded with the action and resource, followed by usage context. Every sentence adds value without 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 5 parameters, no output schema, and no annotations, the description is incomplete. It omits details on pagination mechanics, delta structure, parameter ranges, and prerequisites. For a tool of this complexity, more context is necessary for correct 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 0%, so the description must compensate. It only references 'address' and 'pagination' but does not explain cursor, page_size, start_height, or end_height semantics. Parameter names provide hints but lack details on defaults, ranges, or behavior.
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 states the tool retrieves rune deltas for a specific Bitcoin address with pagination, using a specific verb and resource. It distinguishes itself from sibling tools like address_balance_get and address_deltas_get by focusing on rune token changes.
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 includes 'Use this to analyze the history of rune token transfers for an address,' providing clear usage context. However, it does not explicitly mention when not to use this tool or name alternatives, which would be helpful given the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_validateA
Validate a Bitcoin address and retrieve information about its format, type, and validity. Use this to check if an address is valid before sending or receiving transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It implies a read-only validation operation but does not explicitly state behavioral traits like no side effects, idempotency, or network calls.
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?
Two concise sentences, front-loaded with purpose and usage guidance. No wasted words.
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?
For a simple validation tool with no output schema, the description omits return value details (e.g., what 'information about format, type, and validity' is provided). It also does not specify supported address types or network scope.
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 schema has 0% description coverage for the single 'address' parameter. The description adds it is a 'Bitcoin address' but lacks format examples or constraints (e.g., base58, bech32).
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 states the tool validates a Bitcoin address and retrieves format, type, and validity information. It distinguishes from sibling address tools like balance, outputs, or deltas.
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 explicitly tells when to use the tool (before sending/receiving transactions). It does not name alternative tools, but the sibling context implies others for different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blockchain_infoA
Get current blockchain information including chain height, latest block details, and network status. Use this for obtaining overall Bitcoin network statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It indicates a read-only operation and lists the information returned. No contradictory or missing safety information is apparent, though it does not address potential rate limits or access restrictions.
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 two sentences, front-loading purpose and content, then providing usage guidance. Every sentence adds value 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?
While the description adequately covers the tool's purpose and return content, the unexplained parameter undermines completeness. Given no output schema, the description should still address all inputs; it fails to do so.
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 schema includes a single parameter 'random_string' with 0% description coverage, but the description does not reference or explain it. This is a significant gap: the description should clarify whether the parameter is optional, ignored, or required for functionality.
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?
Description clearly states the tool retrieves current blockchain information, listing specific details like chain height and block details. It distinguishes itself from more specific sibling tools (e.g., block_count_get, latest_block_height_get) by being a general overview.
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 explicitly says 'Use this for obtaining overall Bitcoin network statistics,' providing clear context for when to use it. However, it does not mention when not to use it or suggest alternative tools for specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_count_getC
Get the current block height of the Bitcoin blockchain. This returns the height of the latest block that has been processed.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it returns block height. It does not disclose any behavioral traits such as idempotency, authentication needs, or data freshness. For a read operation, the burden is partially met 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that front-load the purpose. However, the second sentence is somewhat redundant. No wasted words, but could be more efficient by combining.
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?
The description explains the return value (height), which is sufficient for a simple integer output without a schema. However, it ignores the parameter and does not specify data type or format. Completeness is adequate but has gaps.
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?
There is one parameter 'random_string' with 0% schema description coverage. The description does not mention any parameters or explain its purpose. The parameter name is meaningless and likely a placeholder, making it confusing for agents.
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 states it returns the current block height of Bitcoin. It is specific but has a sibling 'latest_block_height_get' which is nearly identical, so differentiation is weak.
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?
No guidance on when to use this tool vs alternatives like 'latest_block_height_get' or other block tools. The description does not mention use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_getA
Get detailed information about a specific Bitcoin block by its hash or height. Use this to retrieve block header data, transaction IDs, and mining details.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It correctly implies a read operation but does not explicitly state that it is non-destructive, has no side effects, or mention any rate limits or authentication needs. The description is adequate for a simple getter but lacks explicit transparency.
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?
One sentence of 17 words, front-loaded with the action, no filler. Every word contributes to understanding the tool's purpose and output.
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?
For a simple tool with one parameter and no output schema, the description provides sufficient context: what it returns (header, tx IDs, mining details) and how to specify the block (hash or height). It does not detail the response structure, but that is acceptable given the straightforward nature.
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 coverage is 0% with a single string parameter 'identifier'. The description adds meaning by stating that the identifier can be a block hash or height, clarifying the format beyond the schema's generic string type. This helps the agent choose the correct input.
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 states the verb 'Get' and the resource 'detailed information about a specific Bitcoin block'. It specifies the input can be hash or height, and lists what is returned (header data, transaction IDs, mining details). This distinguishes it from sibling tools like block_raw_hex_get or blocks_get.
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 advises using this tool to retrieve block details, but it does not provide explicit guidance on when not to use it or mention alternative tools for raw hex, raw decoded, or other formats. Usage context is implied but not contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blockhash_by_height_getB
Get the hash of a specific Bitcoin block by its height. Use this to convert a block height to its corresponding block hash.
| Name | Required | Description | Default |
|---|---|---|---|
| block_height | Yes |
TDQS
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 describes a safe read operation (getting a hash) with no side effects mentioned. For a simple lookup, the behavioral disclosure is adequate, but it does not mention what happens for invalid heights (e.g., error response) or any input validation constraints beyond the schema's type requirement.
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?
Two sentences: the first states the core function, the second adds the use-case context. No unnecessary words. The most important information is front-loaded. Perfectly concise.
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?
Given the tool's simplicity (one parameter, no output schema), the description covers the key functionality. However, it lacks error handling details (e.g., what if the block height does not exist) and does not mention the output format (presumably a string hash). For a complete description given the context, a bit more would be ideal.
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 0%, and the description only mentions 'block_height' without adding meaning beyond its name. It does not specify valid ranges (e.g., from 0 to current chain tip), format (integer vs number), or units. For a single parameter, some additional context would be helpful to ensure correct invocation.
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 states 'Get the hash of a specific Bitcoin block by its height' and adds 'Use this to convert a block height to its corresponding block hash.' It specifies both the action (get) and the resource (block hash). It distinguishes from siblings like block_get (getting full block data) or latest_blockhash_get (getting latest hash) by indicating the conversion purpose, but doesn't explicitly contrast with them.
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 says 'Use this to convert a block height to its corresponding block hash,' which implies when to use it (when you need a hash from a height). However, it does not explicitly state when not to use it or mention alternatives among the many block-related sibling tools (e.g., block_get, latest_blockhash_get). The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_raw_decoded_getA
Get the full decoded (verbose) representation of a specific Bitcoin block by its hash or height. This provides extensive details about the block structure and contained transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It states that the output is a 'full decoded (verbose) representation' with 'extensive details', which is adequate but lacks specifics on rate limits, authentication, or the exact structure of the response. No contradiction with annotations (none exist).
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 two sentences long, front-loaded with the core purpose, and contains no redundant or unnecessary words. Every piece of information earns its place.
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?
Given the tool's simplicity (one parameter, no output schema) and the context of sibling tools, the description sufficiently explains what the tool does and what input it expects. It omits potential caveats (e.g., verbosity, performance for large blocks) but is largely complete for an agent to decide to use it.
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 one parameter 'identifier' with 0% description coverage. The description adds value by explaining that 'identifier' can be a block hash or height, which the schema alone does not convey. However, it does not specify formatting requirements (e.g., hex string for hash, integer for height), leaving ambiguity.
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 states the verb 'Get', the resource 'full decoded (verbose) representation of a specific Bitcoin block', and the identification method 'by its hash or height'. It effectively distinguishes from sibling tools like block_raw_hex_get or block_raw_summary_get by emphasizing 'extensive details'.
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 a general indication of when to use (when extensive details are needed) but provides no explicit guidance on when not to use this tool or how it compares to alternatives like block_get, block_raw_prevout_get, or block_raw_summary_get. This lack of comparative guidance forces the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_raw_hex_getA
Get the raw hexadecimal representation of a specific Bitcoin block by its hash or height. This provides the complete serialized block data in hexadecimal format.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are missing, so the description carries full burden. It only states it returns raw hex data, but lacks disclosure of side effects, permissions, or error behaviors. Minimal behavioral insight.
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?
Two sentences, concise and front-loaded. No redundant information. Every phrase adds value.
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?
For a simple tool with one parameter and no output schema, the description explains input format and output nature. Could mention error handling or fallback, but adequate overall.
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 schema has one string parameter 'identifier' with 0% description coverage. The description adds meaning by specifying that identifier can be a block hash or height, clarifying acceptable input 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 clearly states the verb 'Get' and resource 'raw hexadecimal representation of a specific Bitcoin block', and specifies inputs by hash or height. It effectively distinguishes from sibling tools like block_get or block_raw_decoded_get.
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?
No explicit guidance on when to use this tool versus alternatives. Siblings include many block-related tools, but the description does not provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_raw_prevout_getA
Get the full decoded representation of a specific Bitcoin block with prevout information by its hash or height. This provides extensive details about the block including input and output data.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states it returns 'full decoded representation' and 'extensive details', but does not mention read-only nature, potential size of response, authentication needs, or performance implications. Adequate but lacking full transparency.
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?
Two sentences, front-loaded with purpose, no filler. Every sentence adds value without 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?
Given complexity (Bitcoin block with prevout), no output schema, and sparse param description, the description could elaborate on what 'prevout information' includes or the structure of the response. It does not reference output schema or provide enough detail for an agent to fully understand the tool's capabilities.
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 only parameter 'identifier' has 0% schema coverage. The description adds that the identifier can be 'by its hash or height', which provides crucial context beyond the schema. However, it does not specify format or constraints like length or encoding, limiting full semantic clarity.
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 states the verb 'Get', the resource 'full decoded representation of a specific Bitcoin block', and distinguishes it by 'with prevout information'. This differentiates it from sibling tools like block_raw_decoded_get or block_raw_summary_get.
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 implies usage when prevout data is needed, but does not explicitly state when to use this tool over siblings like block_raw_decoded_get. No direct guidance on when not to use or alternatives is provided, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_raw_summary_getA
Get a summary of a specific Bitcoin block by its hash or height. This provides a condensed view of block data without full transaction details.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides minimal behavioral context: only that it returns a summary without transaction details. It does not disclose error handling, rate limits, or any other behavioral traits.
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?
Two concise sentences, fully front-loaded with the action and resource, 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?
The description explains the purpose and input but lacks specifics about the summary contents or error conditions. Given no output schema, more detail on return value would improve completeness.
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 schema only defines a string identifier with no description (0% coverage). The description adds that identifier can be a hash or height, providing critical context for the value to supply, which compensates for the schema's lack of documentation.
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 states the tool retrieves a summary of a Bitcoin block by hash or height, explicitly contrasting with 'without full transaction details', which helps distinguish it from siblings like block_get or block_raw_decoded_get.
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 implies the tool is for a condensed view but does not explicitly state when to use this vs. other block tools (e.g., when full details are needed) or provide any alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blocks_getA
Get information about the last 100 Bitcoin blocks. Use this for obtaining an overview of recent blockchain activity including block heights, hashes, and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses that the tool returns info about the last 100 blocks, including heights, hashes, timestamps. It does not mention any side effects, rate limits, or pagination, but for a simple read operation, this is acceptable.
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 two sentences, front-loaded with the core purpose, and every sentence adds value. No wasted words.
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?
Given the tool's simplicity (no output schema, one parameter), the description covers the main behavior and return values. However, the unexplained parameter leaves a gap in completeness.
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 0%, and the sole parameter 'random_string' is not explained in the description. The parameter appears irrelevant to the tool's purpose, and the description does not add any meaning beyond the schema, leaving the agent confused about its purpose.
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 'Get information about the last 100 Bitcoin blocks,' clearly specifying the verb 'Get' and the resource 'last 100 Bitcoin blocks.' This distinguishes it from sibling tools like block_get (specific block) and latest_blockhash_get (just hash).
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 adds 'Use this for obtaining an overview of recent blockchain activity including block heights, hashes, and timestamps,' providing clear context on when to use. It does not explicitly list when not to use or mention alternatives, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscription_child_getA
Get information about a specific child of a Bitcoin Ordinals inscription. Use this to retrieve metadata about nested or child inscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| child_index | Yes | ||
| inscription_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the action (get info, retrieve metadata) which implies a read operation, but it doesn't disclose any behavioral traits such as error handling, prerequisites, or what happens if the child doesn't exist. The description is adequate for a simple retrieval but lacks depth.
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 two sentences long and to the point, with no unnecessary words. It could be slightly improved by incorporating parameter hints, but overall it is efficient.
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?
For a tool with two specific parameters, no output schema, and no annotations, the description is too minimal. It does not explain what constitutes a 'child', how child_index works, or what the return data looks like. More context is needed for correct usage.
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 0%, and the description provides no additional meaning for parameters beyond their names. It does not explain that 'child_index' refers to the index of the child within the parent inscription or that 'inscription_id' identifies the parent. The description fails to compensate for the lack of schema documentation.
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 states it gets information about a specific child inscription, using the verb 'Get' and specifying the resource 'child of a Bitcoin Ordinals inscription'. It distinguishes from sibling tools like 'ordinals_inscription_get' by focusing on nested/child inscriptions.
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 explicitly says 'Use this to retrieve metadata about nested or child inscriptions', providing clear context for when to use. It doesn't include exclusion criteria or alternatives, but the context is sufficient given the tool's specific purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscriptions_block_getA
Get all Bitcoin Ordinals inscriptions in a specific block. Use this to analyze the inscriptions created in a particular block height.
| Name | Required | Description | Default |
|---|---|---|---|
| block_height | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states it gets all inscriptions in a block, but does not disclose potential behavioral traits like performance impact for large blocks, rate limits, or what data exactly is returned (e.g., inscription IDs vs. full details).
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 extremely concise with two sentences: the first states the action, and the second provides a usage scenario. No extraneous information, front-loaded with the key purpose.
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?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description adequately explains what it does and when to use it. However, it lacks details about the return format (e.g., list of inscription IDs or full objects) and does not contrast with paginated sibling tools, leaving some completeness gaps.
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 schema has 0% description coverage, so the description must compensate. It clarifies that 'block_height' refers to a specific block height, which matches the parameter name. While no additional constraints like min/max are given, the parameter is simple and the description is sufficient to understand its purpose.
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 states the tool retrieves all Bitcoin Ordinals inscriptions in a specific block, using a specific verb and resource. However, it does not explicitly differentiate from siblings like inscriptions_block_page_get, which likely serves a similar but paginated purpose.
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 provides guidance to use this tool for analyzing inscriptions at a particular block height, but it does not mention when to avoid it or suggest alternatives such as the paginated version or other inscription-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscriptions_block_page_getA
Get a specific page of Bitcoin Ordinals inscriptions in a particular block. Use this for paginated access to the inscriptions created in a specific block height.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | ||
| block_height | Yes |
TDQS
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 mentions pagination and block height but does not disclose behaviors like ordering, default page size, error handling for invalid page numbers, or rate limits. Minimal transparency.
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?
Two sentences: first states the action, second provides usage guidance. No fluff, front-loaded, and every sentence is essential.
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?
Given the tool's simplicity (2 numeric params, no output schema, no annotations), the description is fairly complete. It covers what it does and when to use it. However, it omits details like default page numbering or return format. Since no output schema, a hint about the return structure would be helpful.
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 has 0% description coverage for parameters. The description adds context by naming 'block_height' as the specific block and 'page' for pagination, but provides no additional constraints or formatting details beyond the schema's type definition. Some value added but not fully compensating for the lack of schema descriptions.
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?
Description clearly states the action 'Get' and resource 'a specific page of Bitcoin Ordinals inscriptions in a particular block'. It distinguishes from siblings like 'inscriptions_block_get' (likely returns all inscriptions in a block) and 'inscriptions_page_get' (likely global pagination), specifying pagination and block height.
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?
Explicitly says 'Use this for paginated access to the inscriptions created in a specific block height', implying when to use. However, it does not mention when not to use it or explicitly suggest alternatives, though the sibling names provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscriptions_latest_getC
Get the latest Bitcoin Ordinals inscriptions. Use this to retrieve recently created NFT-like inscriptions on the Bitcoin blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It does not specify behavioral traits such as pagination, limits, or what 'latest' means (e.g., by block height or time).
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 concise with two sentences, front-loading the core action. However, it is slightly under-specified for a tool with an unexplained parameter.
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?
Given no output schema, no parameter descriptions, and no annotations, the description is severely lacking. It does not explain how to use the parameter or what the response looks like.
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 schema has one parameter 'random_string' with 0% schema coverage and no explanation in the description. The parameter's purpose is completely unexplained.
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 states the action ('Get') and resource ('latest Bitcoin Ordinals inscriptions'), and adds 'latest' to distinguish from other inscription retrieval tools 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 implies when to use ('to retrieve recently created NFT-like inscriptions') but lacks explicit guidance on when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inscriptions_page_getB
Get a specific page of Bitcoin Ordinals inscriptions. Use this for paginated access to the complete list of inscriptions on the blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks behavioral traits such as page numbering scheme (0- vs 1-indexed), page size, ordering, or rate limits. It also fails to state that the operation is read-only. For a paginated tool, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no extraneous words. It is front-loaded with the core purpose and usage hint, making it easy to parse quickly.
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?
The tool lacks an output schema, and the description does not explain what the response contains (e.g., list of inscriptions, pagination metadata). Given the sibling tools and the need for correct pagination, more details are needed about the return format and page size.
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 coverage is 0% for the single 'page' parameter. The description merely says 'specific page' without adding details like valid range, default value, or whether indexing starts at 0 or 1. The parameter type is just 'number' with no constraints.
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 states it gets a specific page of Bitcoin Ordinals inscriptions, and mentions paginated access to the complete list. However, it doesn't explicitly contrast with sibling tools like inscriptions_block_page_get, leaving some ambiguity.
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 says 'Use this for paginated access,' giving a clear intended use case. But it does not specify when not to use it or mention alternatives among the many sibling tools, so guidance is only partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latest_blockhash_getC
Get the hash of the latest block in the Bitcoin blockchain. Use this to retrieve the most recent block hash.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., read-only, authentication needs, parameter effects). The purpose implies a read operation but this is not explicit.
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 short (two sentences) but repetitive; the second sentence adds no new content. It could be more concise without 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 parameter explanations, no output schema, and no annotations, the description is incomplete. It does not cover the unexpected parameter or expected return value.
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 a parameter 'random_string' with zero description in both schema and description. The description does not mention or explain this parameter, leaving the agent uninformed.
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 uses the specific verb 'get' and resource 'hash of the latest block', accurately distinguishing it from siblings like latest_block_height_get and blockhash_by_height_get.
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 second sentence suggests usage ('Use this to retrieve...'), but provides no exclusions or alternatives despite clear sibling tools for different block hashes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latest_block_height_getB
Get the current height of the Bitcoin blockchain. This returns the height of the latest block that has been processed.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present; description is straightforward but does not disclose edge cases or any special behavior beyond the obvious read operation.
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?
Two concise sentences, no redundant information, front-loaded with key action.
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?
Tool is simple, but the irrelevant parameter undermines completeness. No output schema or parameter explanation provided.
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 schema has an unrelated parameter 'random_string' with 0% coverage. Description adds no meaning, leaving the parameter unexplained and potentially misleading.
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 states the tool returns the current Bitcoin blockchain height with a specific verb and resource. It distinguishes from sibling tools like latest_blockhash_get and latest_blocktime_get.
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?
No guidance on when to use this tool versus alternatives, nor exclusion criteria. With 36 sibling tools, usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latest_blocktime_getB
Get the timestamp of the latest block in the Bitcoin blockchain. This returns the UNIX timestamp of when the latest block was mined.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it returns a UNIX timestamp, but no annotations exist to provide safety cues. It does not explain behavior for the optional random_string parameter or mention any side effects, network behavior, or error conditions.
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?
Two sentences with no redundant information. Front-loaded verb and resource, followed by return value. Every sentence is essential.
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?
The description is adequate for a simple read operation but lacks explanation of the random_string parameter, output format, and error handling. Given no output schema, more context on return structure would help.
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 one parameter 'random_string' with 0% description coverage, and the tool description does not mention it at all. No meaning is added beyond the schema, leaving the parameter's purpose entirely unclear.
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 states the tool gets the timestamp of the latest Bitcoin block, with a specific verb 'Get' and resource 'timestamp of the latest block'. It distinguishes from sibling tools like latest_blockhash_get and latest_block_height_get.
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?
No guidance on when to use this tool versus alternatives. The description does not mention scenarios, prerequisites, or exclude cases. Sibling tools are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mempool_info_getB
Get current Bitcoin mempool statistics including size, transaction count, and fee estimates. Use this to understand the current state of unconfirmed transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only indicates a read operation but does not disclose any side effects, authorization requirements, rate limits, or how the data is returned.
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 two concise sentences that front-load the core purpose and provide a brief usage context, with no unnecessary words.
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?
The tool has an undocumented parameter and no output schema. While the description mentions the types of statistics included, it lacks details on the return format, parameter explanation, and behavioral context, making it incomplete for an agent to confidently invoke 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?
The input schema has one parameter 'random_string' with no description coverage. The description does not explain this parameter at all, leaving the agent unable to determine its purpose or usage.
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 states it retrieves current Bitcoin mempool statistics including size, transaction count, and fee estimates. It distinguishes from the sibling tool 'mempool_transactions_get' which likely focuses on individual transactions.
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 mentions using this to understand the state of unconfirmed transactions, providing context. However, it does not give explicit guidance on when to use it versus alternatives, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mempool_transactions_getB
List unconfirmed transactions in the Bitcoin mempool with pagination. Use this to monitor incoming transactions before they are included in a block.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden for behavioral disclosure. It only mentions listing and pagination, but omits details like read-only nature, rate limits, or response format. The description is insufficient for understanding tool behavior.
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 concise: two sentences, no wasted words. It efficiently states function and usage context.
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?
Given no output schema and missing parameter details, the description is incomplete for an agent to effectively use the tool. It provides purpose but lacks practical invocation details.
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 0%, and the description does not explain the two parameters (cursor, page_size) beyond mentioning pagination. The description adds minimal meaning 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 clearly states it lists unconfirmed Bitcoin mempool transactions with pagination. The verb 'list' and resource 'mempool transactions' are specific, but it does not explicitly distinguish from sibling tools like 'transaction_get' or 'mempool_info_get', though the context makes it clear.
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 a usage context: 'Use this to monitor incoming transactions before they are included in a block.' This implies when to use, but does not mention when to avoid or what alternative tools exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ordinals_inscription_getA
Get information about a specific Bitcoin Ordinals inscription by its ID. Use this to retrieve metadata about NFT-like inscriptions on Bitcoin, including content type and ownership details.
| Name | Required | Description | Default |
|---|---|---|---|
| inscription_id | Yes |
TDQS
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 describes a read operation ('Get information') and hints at return content, but does not explicitly state that it is read-only, safe, or what happens on invalid IDs. This is acceptable for a simple get tool, but lacks explicit safety assurances.
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 two sentences long, with no redundant information. The first sentence states the core purpose, and the second adds what metadata can be retrieved. It is efficiently structured and 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?
Given the single required parameter and no output schema, the description is largely complete: it states the input (inscription ID) and output (metadata, content type, ownership). It could be improved by noting that the tool is specifically for Bitcoin Ordinals and by clarifying the difference from other inscription-related siblings, but it covers essential details.
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 only one parameter (inscription_id) with no description in the schema. The tool description provides the meaning of this parameter ('by its ID'), which adds value beyond the bare schema. However, it could specify the expected format or example of the ID.
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?
Description clearly states the tool gets information about a specific Bitcoin Ordinals inscription by its ID, and distinguishes it from other inscription tools that list or retrieve children. It specifies the resource (inscription) and the action (get), making the purpose unambiguous.
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 says to use this tool to retrieve metadata about a single inscription, implying it is appropriate for that specific use case. However, it does not explicitly compare it to sibling tools like inscription_child_get or inscriptions_page_get, which would help an agent decide when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
output_getA
Get detailed information about a specific Bitcoin UTXO (unspent transaction output) by its outpoint in the format 'txid:vout'. Use this to retrieve spend status, value, and script details of an output.
| Name | Required | Description | Default |
|---|---|---|---|
| outpoint | Yes |
TDQS
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 indicates a read-only operation (retrieve) without any side effects, which is appropriate for a GET-style tool. Additional behavioral traits like error handling or rate limits are not mentioned, but the simplicity of the tool reduces the need.
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?
Two sentences: first defines purpose and format, second states what info is retrieved. No unnecessary words; every sentence adds value.
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?
For a simple tool with one parameter and no output schema, the description covers the purpose, identifier format, and returned information. It provides sufficient context for an agent to understand when and how to use it.
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 description specifies the outpoint format as 'txid:vout', which adds critical semantic meaning beyond the schema's type string. This is essential for correct invocation, and it compensates for the 0% schema coverage.
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 states the verb 'get', the resource 'Bitcoin UTXO', and the specific identifier format 'txid:vout'. It lists what information is retrieved (spend status, value, script details), distinguishing it from sibling tools that deal with addresses, blocks, or transactions.
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 explicitly says to use this tool to retrieve UTXO information by outpoint, providing clear positive guidance. It does not include when-not-to-use or alternatives, but the context and sibling tool names imply when other tools are appropriate, making the guidance adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rune_getA
Retrieve information about a specific Bitcoin Rune by name or ID (e.g., "UNCOMMON•GOODS" or "1:0"). Use this to get details about a specific rune token, including supply, minting status, and transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Retrieve information', implying a read-only operation. It mentions expected return fields (supply, minting status, transactions) but lacks any disclosure of side effects, authentication needs, rate limits, or error behavior.
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 extremely concise, consisting of two short sentences that immediately convey the tool's purpose without extraneous information. It front-loads the verb and resource.
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?
Given the tool's low complexity (one parameter, no output schema), the description adequately covers what it retrieves (details, supply, minting status, transactions). It could be enhanced by mentioning potential error conditions or response format, but it is largely complete for a simple lookup.
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 schema has 0% description coverage for the required 'identifier' parameter. The description compensates by explaining it accepts a rune name or ID and provides concrete examples ('UNCOMMON•GOODS', '1:0'), which adds significant meaning beyond the schema's bare type definition.
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 states the tool retrieves information about a specific Bitcoin Rune by name or ID, with examples. It differentiates from sibling tools that list runes or get address-related rune data, but does not explicitly contrast them.
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 indicates when to use this tool (to get details about a specific rune token), but does not specify when not to use it or mention alternative sibling tools like runes_latest_get or address_rune_deltas_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runes_latest_getA
Retrieve information about the last 100 inscribed Bitcoin Runes (first page). Use this to get an overview of the most recently created rune tokens on the Bitcoin blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the tool retrieves the first page of the last 100 runes, implying a read operation. However, it does not mention pagination or future pages.
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?
Two concise sentences, front-loaded with key information. 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?
Tool is simple with no output schema or annotations. Description covers purpose and pagination, but lacks documentation for the random_string parameter, leaving the tool partially underdescribed.
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 has one param 'random_string' with 0% coverage; description does not explain its purpose or usage. This is a significant gap.
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?
Verb 'Retrieve' and resource 'last 100 inscribed Bitcoin Runes (first page)' are specific. Distinguishes from siblings like rune_get (single rune) and runes_page_get (paginated list).
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?
Explicitly states 'Use this to get an overview of the most recently created rune tokens', giving a clear use case. No exclusion of when not to use or alternative tools, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runes_page_getB
Retrieve a specific page of 100 inscribed Bitcoin Runes. Use this for paginated access to the complete list of rune tokens on the blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states '100 runes per page' but omits critical details like out-of-range page handling, whether response includes total pages or next page indicator, or any side effects. This leaves significant ambiguity for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loaded with the action and purpose. No wasted words; every sentence contributes meaning. Appropriate length for the tool's simplicity.
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?
Given no output schema and no annotations, the description is too brief. A paginated tool should specify response structure (e.g., array of runes, next page token) and total page count. Without this, the agent cannot fully understand how to use the tool effectively.
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 0% (no description for 'page' parameter). The description adds no meaning beyond the raw schema, failing to explain valid ranges (e.g., starting from 1), data type constraints, or the relationship between page number and rune ordering.
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?
Description clearly states the verb 'Retrieve', the resource 'a specific page of 100 inscribed Bitcoin Runes', and the purpose 'pagination access to the complete list'. This distinguishes it from siblings like 'rune_get' (single rune) and 'runes_latest_get' (latest only).
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?
Description says 'Use this for paginated access', implying appropriate usage for iterating through all runes, but it does not explicitly mention when not to use it (e.g., for single rune lookup) or alternatives. The sibling list provides context but the description itself lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sat_getA
Get information about a specific satoshi by its absolute number (index). Use this to retrieve details about a particular satoshi, including its rarity, block of creation, and inscription status.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It discloses that the tool returns rarity, block of creation, and inscription status, which implies a read operation. It does not mention any side effects, permissions, or error conditions, but for a simple retrieval, this is adequate.
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 consists of two concise sentences with no redundant information. It is front-loaded with the primary action and resource, and every sentence provides necessary context. This is an ideal length for a simple tool.
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?
Given the simple nature of the tool (one parameter, no output schema) and the absence of annotations, the description covers the essential aspects: what it does and what information it returns. It lacks details on error handling or response structure, but for a retrieval tool, it is largely complete.
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 schema has one parameter 'number' with no description (0% coverage). The description clarifies it is the 'absolute number (index)' of the satoshi, adding meaning beyond the bare schema. However, it does not specify the expected range or format, so it partially compensates for the lack of schema documentation.
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 states the tool retrieves information about a specific satoshi using its absolute number. It specifies the action (get), resource (satoshi), and identifier (index), and lists the type of details returned (rarity, block, inscription status). This effectively distinguishes it from sibling tools focused on addresses, blocks, or transactions.
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 advises using the tool to retrieve satoshi details but does not specify when to avoid it or mention alternative tools. While there are no direct siblings for satoshi queries, the lack of explicit usage exclusion or alternative guidance keeps it from a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_getA
Get the current status of the Satstream API server, including uptime, version information, and performance metrics. Use this to check if the API is functioning properly.
| Name | Required | Description | Default |
|---|---|---|---|
| random_string | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read-only operation but does not explicitly state non-destructiveness, auth needs, or other behavioral traits. The details about returned metrics are helpful but incomplete.
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 two sentences long, front-loaded with the main purpose and specific details, and contains no filler or redundant information.
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?
For a simple status check tool with no output schema or annotations, the description covers purpose and usage but misses explaining the optional parameter and lacks behavioral transparency. It is adequate but not fully complete.
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 one parameter 'random_string' with 0% schema description coverage. The description does not mention this parameter at all, providing no guidance on its purpose or effect. This is a significant gap.
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 states the verb 'Get', the resource 'status of the Satstream API server', and specifies details like uptime, version, and performance metrics. This distinguishes it from siblings which focus on blockchain data.
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 explicitly says 'Use this to check if the API is functioning properly,' indicating when to use it. It does not mention when not to use it or alternatives, but given the sibling tools are for different purposes, the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transaction_getA
Get detailed information about a specific Bitcoin transaction by its transaction ID (txid). Use this to retrieve comprehensive data about inputs, outputs, fees, and confirmation status.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the tool is a read operation returning comprehensive data, but does not mention error handling, authentication needs, or what happens if the txid is invalid. This is adequate but not fully transparent.
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 consists of two sentences that front-load the purpose and key details. Every word is essential and no extraneous information is included.
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?
Given the tool's simplicity (one input, no output schema), the description covers the purpose and the type of data returned. It does not mention system prerequisites or edge cases, but remains reasonably complete for a basic get tool.
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 schema has 0% description coverage for the single parameter 'txid'. The description adds meaning by calling it a 'transaction ID' and explaining its purpose, which compensates for the schema gap, though it does not describe format or constraints.
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 states the verb 'Get' and the resource 'detailed information about a specific Bitcoin transaction' with the input 'transaction ID (txid)'. It differentiates from sibling tools like 'tx_raw_decode_get' and 'tx_raw_hex_get' by specifying it retrieves comprehensive data including inputs, outputs, fees, and confirmation status.
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 implies this is the general-purpose tool for transaction details but does not explicitly state when to use alternative sibling tools. It could provide more guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_inscriptions_getA
Get all Bitcoin Ordinals inscriptions contained in a specific transaction. Use this to analyze the inscriptions created or transferred in a particular transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits (e.g., read-only, rate limits, pagination, auth requirements). For a tool with no annotations, the description should offer more transparency.
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 two sentences, front-loaded with action, and no unnecessary words. It effectively earns its place.
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?
Given the low complexity (one parameter, no output schema), the description is adequate but misses parameter detail and behavioral context, leaving gaps for an AI agent.
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 coverage is 0%, and the description only says 'a specific transaction' without explaining the txid format or providing examples. This does not add meaningful guidance 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 uses a specific verb ('Get') and resource ('inscriptions contained in a specific transaction'), clearly distinguishing it from sibling tools like 'inscription_get' or 'address_*' 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?
The description explicitly states when to use the tool ('to analyze inscriptions created or transferred in a particular transaction'), but does not include when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_raw_decode_getB
Get a raw Bitcoin transaction with basic decoded information by its transaction ID. This provides the transaction structure and decoded script data.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions 'basic decoded information' but does not specify idempotence, safety, or what 'basic' entails. For a read-only tool, explicit statement of safety is missing.
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?
Two concise sentences with no redundant information. Every word contributes to the purpose.
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?
No output schema exists, but the description only vaguely mentions 'transaction structure and decoded script data'. Given the complexity of Bitcoin transactions and the many sibling tools, more details about the output content are necessary for an agent to correctly use the tool.
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 0%. The description adds that 'txid' is a 'transaction ID', but no format, constraints, or examples are given. The schema only defines it as a string, so the description adds minimal value beyond the parameter name.
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 states the verb 'Get' and the resource 'raw Bitcoin transaction with basic decoded information' using 'transaction ID' as input. It distinguishes from sibling tools like 'tx_raw_hex_get' by mentioning 'decoded script data'.
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?
No guidance on when to use this tool versus alternatives such as 'tx_raw_hex_get', 'tx_raw_prevout_get', or 'transaction_get'. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_raw_hex_getA
Get the raw hexadecimal representation of a Bitcoin transaction by its transaction ID. This provides the complete serialized transaction data in hexadecimal format.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read operation returning raw hex, but lacks details on error handling, size limitations, or idempotency. Basic behavioral info is present but could be more comprehensive.
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 uses two concise sentences with no extraneous information. It is front-loaded with the action verb 'Get' and the resource 'raw hexadecimal representation', making it efficient and easy to parse.
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?
Given the tool's simplicity (one parameter, no output schema) and the presence of sibling tools, the description adequately explains what the tool returns. However, it could be more complete by noting the return format (a hex string) and the length of the txid.
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 0% coverage (no parameter descriptions) and the description only mentions the transaction ID generically. It does not specify the expected format (e.g., 64-character hex string) or provide any validation hints, adding minimal value 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 clearly states the tool retrieves the raw hexadecimal representation of a Bitcoin transaction by its transaction ID. It specifies 'complete serialized transaction data in hexadecimal format', distinguishing it from sibling tools that return decoded or other formats.
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 provides no guidance on when to use this tool versus alternatives like transaction_get or tx_raw_decoded_get. No explicit context or use cases are given, leaving the agent to infer that it's for raw hex retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_raw_prevout_getB
Get a raw Bitcoin transaction with prevout information by its transaction ID. This provides the transaction with details about the previous outputs being spent.
| Name | Required | Description | Default |
|---|---|---|---|
| txid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should disclose behavioral traits. It only states what the tool returns without mentioning side effects, permissions, rate limits, or potential destructive actions. The description is insufficient for an agent to understand behavioral implications.
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 two sentences, concise and front-loaded with the core purpose. No extraneous information. Could be slightly improved by mentioning output format, but it is efficiently structured.
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?
Given the single required parameter and no output schema, the description adequately explains the tool's purpose and what it returns. However, it lacks details on output format (e.g., JSON or hex) and does not mention pagination or limits, leaving minor gaps for a complete understanding.
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 0% description coverage and only defines txid as a string. The description mentions 'transaction ID' but adds no format validation, example, or constraints beyond the schema. It contributes minimal additional meaning.
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 states the tool retrieves a raw Bitcoin transaction with prevout information by transaction ID. It specifies the resource (raw transaction with prevout) and the verb (get), distinguishing it from siblings like tx_raw_hex_get that likely return hex without prevout.
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?
No guidance is provided on when to use this tool versus alternatives such as transaction_get or tx_raw_hex_get. The description does not mention prerequisites, limitations, or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Many tools have distinct purposes, but there is significant overlap among multiple block retrieval tools (block_get, block_raw_decoded_get, block_raw_hex_get, etc.) and inscription tools, which could confuse an agent despite clear descriptions.
All tool names follow a consistent noun_verb or noun_get pattern in snake_case, with no camelCase or mixed conventions. Singular and plural forms are used predictably.
With 37 tools, the count exceeds the 25+ threshold described as 'too many'. While the domain is broad, several tools are redundant variants (e.g., multiple block detail levels), making the set feel bloated.
The tools cover address data, blocks, inscriptions, runes, transactions, mempool, and status thoroughly. Missing transaction creation/signing, but for a read-only data API this is nearly complete. Minor gap: no fee estimation.
Maintenance
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
Read-only Bitcoin blockchain, mempool, mining, market, and on-chain analytics; no API key.
Bitcoin and YouTube video intelligence for AI agents. Pay-per-call via x402 USDC on Base.
Bitcoin intelligence API. Pay per call via L402 Lightning (10-200 sats). No accounts needed.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseBqualityDmaintenanceFacilitates interaction with the Bitcoin network via the Model Context Protocol, enabling key generation, address validation, transaction decoding, and blockchain data retrieval.76176MIT
- FlicenseNot gradedqualityCmaintenanceA Model Context Protocol server providing tools for querying Bitcoin blockchain data via Blockchain Data and Query APIs, supporting various BTC information retrieval functions.1

Blockscout MCP Serverofficial
FlicenseAqualityBmaintenanceA server that exposes blockchain data (balances, tokens, NFTs, contract metadata) via the Model Context Protocol, enabling AI agents and tools to access and analyze blockchain information contextually.1844- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables interaction with Bitcoin Stamps data via the Stampchain API, providing tools for querying stamp information, collections, and blockchain data without requiring authentication.13MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/satstream/ss-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server