Bitcoin Staking MCP
The Bitcoin Staking MCP server is a read-only intelligence server that provides structured, evidence-gated access to current facts, on-chain state, and analytical tools for discovering, researching, and planning native Bitcoin staking on Stacks. It cannot construct, sign, or broadcast transactions.
Core Capabilities:
Market Snapshot: Get a deterministic front-door view combining bond registry, routes, protocol state, on-chain bonds, prices, and evidence precedence.
Protocol Status: Read live PoX-5 state, reward cycles, and activation schedule.
On-Chain Bonds: Scan the PoX-5 window for bonds actually configured on-chain, with phase and registration details.
Security Guidance: Retrieve sourced security diligence on audits, timelock construction, wallet safety, recovery, and early exit, with explicit evidence boundaries.
Diligence Reports: Generate comprehensive reports covering bond availability, economics, routes, risks, fit, and next steps.
Bond Listings: List reviewed public bond manifests, optionally including synthetic demo data.
Custody Paths: List current custody options for native-L1 participation with attestation and review status.
Participation Routes: Detail direct native-L1 and pool-based routes, including LST capabilities.
Bond Details: Retrieve a normalized bond manifest reconciled with on-chain configuration.
Participant Status: Check public staking and bond membership for a given address.
Compatibility Checks: Verify wallet/custodian support for a specific bond route.
Yield Simulation: Project gross and net yield scenarios using current prices and fee structures.
Path Comparison: Compare direct vs. pool routes based on participant profile, highlighting fit and tradeoffs.
Participation Plans: Build a read-only plan covering fit, dependencies, gaps, and safe next steps.
Fact Search: Search across current projects, products, notices, partners, and integrations.
Resources & Concierge: Access capability catalog, glossary, methodology, and bond manifests via
bitcoin-staking://URIs; a guided conversational entry point helps users get started.
Design Properties: All tools are strictly read-only. Every response carries explicit data provenance (live, published, derived, or demo) and source citations. Demo data is clearly labeled and segregated from live data. When evidence is insufficient, the server explicitly states the gap rather than inferring from memory. Registry data is revalidated frequently and fails closed after review windows expire.
Provides tools for discovering, understanding, and planning native Bitcoin staking on Stacks, including protocol status, bond manifests, security guidance, compatibility checks, yield simulation, and participation planning.
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., "@Bitcoin Staking MCPI want yield, must keep BTC on Bitcoin L1, and can lock for six months."
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.
Scout — the Bitcoin Staking Concierge
Scout helps people find the right Bitcoin Staking path, understand the tradeoffs, and prepare to participate using current mainnet evidence.
Ask a question in plain language. Scout checks live protocol state, reviewed product records, custody evidence, and sourced terms before it answers. It shows where the information came from, when it was verified, and what still needs confirmation.
Scout is powered by the Bitcoin Staking MCP, a read-only intelligence layer for Bitcoin Staking on Stacks. It can research, compare, explain, and calculate. It cannot construct, sign, or broadcast a transaction.
Try Scout · See how it works · Technical documentation
What Scout helps you do
Find current and upcoming opportunities. See what is open, what is scheduled, and what you can prepare for now.
Compare ways to participate. Understand how each path affects custody, liquidity, eligibility, and the asset you hold.
Understand rewards and risks. Review sourced economics, lockups, fees, security controls, recovery paths, and missing evidence.
Build a participation plan. Move from a broad goal to a practical route, compatible wallet or custodian, and verified next step.
Scout keeps the experience conversational. Users do not need to learn the underlying tool catalog or translate protocol fields themselves.
Related MCP server: Lido MCP Server
See how it works
A typical conversation moves from discovery to a concrete next step. Scout refreshes the relevant evidence at each stage.
“When is the next bond?”
Scout checks live mainnet protocol state and current product records, then explains what is open or coming next in ordinary language. If timing is estimated from chain data, Scout labels it as an estimate.
“How can I participate?”
Scout compares the direct native-L1 and current pool-based routes. It starts with the outcome that matters to the user: keeping Bitcoin on L1, retaining key control, or using a staked position for liquidity and other financial activity. Pool operators, required assets, and integrations come from current evidence rather than static copy.
“Does my wallet or custodian work?”
Scout checks the maintained custody directory for product-level support. When a bond has been selected, it checks exact bond compatibility separately. General wallet support is not treated as proof that every bond-specific flow is ready.
“What are the risks?”
Scout explains the Bitcoin-enforced lock and recovery conditions first, then the audits and transaction checks a participant can verify. It closes with the implementation and operational risks that remain, such as using the wrong key, signing an incorrect transaction, or losing recovery information.
“Where do I get started?”
Once the user chooses a route, Scout re-checks the current access record and gives one verified next step. An interest form or Bitcoin transfer alone is not presented as proof that enrollment is complete.
The same journey works for a short question or a detailed profile. A user can start with an amount, wallet, custodian, liquidity requirement, or security concern and go directly to the relevant step.
Quick start
Scout requires Node 22. Install it for Codex and Claude Code from any directory:
npx -y github:andre-stacks/bitcoin-staking-mcp#v0.5.1 setupThe installer starts the packaged server, performs an MCP handshake, registers the server in the available hosts, and installs the Codex concierge skill. Restart Codex and Claude Code after setup so they reload the MCP and skill metadata.
Open Scout in Codex:
$bitcoin-staking-conciergeOr open the concierge prompt in Claude Code:
/mcp__bitcoin_staking__bitcoin_staking_conciergeTry asking:
When is the next bond launching?
How can I get started staking?
Which participation option is right for me?Any non-empty request goes directly to that workflow. An empty invocation introduces Scout once, summarizes what it can help with, and offers useful starting points.
Verify the installation at any time:
npx -y github:andre-stacks/bitcoin-staking-mcp#v0.5.1 checkUse --hosts codex or --hosts claude to install only one host. See the installation guide for local-checkout, pinned-source, JSON, update, and uninstall options.
Why users can trust the answer
Scout is built for mainnet. It starts with the best currently available data and applies a clear evidence order before presenting an opportunity or recommendation.
Evidence | What it means |
| A current public mainnet chain or API observation. |
| An official document or owner-reviewed product record. |
| A deterministic calculation or assessment built from sourced inputs. |
Product claims are checked independently. Protocol activation does not establish that a bond is open. A supported custody path does not establish exact compatibility with every bond. A published rate or duration does not establish final on-chain configuration. Scout keeps those questions separate so the conclusion matches the evidence.
Every factual response can carry source records and verification times. When the available corpus cannot support a claim about availability, yield, compatibility, or security, Scout identifies what is missing. Deterministic calculations require sourced or user-supplied inputs, and an unpublished fee is never assumed to be zero.
This makes the workflow suitable for a mainnet product: the same read-only tools can support discovery, diligence, route selection, and preparation while the wallet or custodian remains responsible for approvals and signing. Current availability is always determined from current evidence; the README does not imply that enrollment is open.
For developers
flowchart LR
U["User question"] --> S["Scout concierge"]
S --> M["Bitcoin Staking MCP"]
M --> P["Live mainnet protocol state"]
M --> R["Reviewed product registry"]
M --> C["Deterministic calculations"]
M --> E["Sources and verification"]Scout is the conversational workflow over the MCP. The intelligence core owns schemas, source precedence, registry freshness, compatibility checks, economics, and recommendation rules. The core has no LLM dependency, so any MCP client can reuse the same structured facts and calculations.
Fifteen read-only MCP tools support the single Scout experience. The repository also ships an stdio server, portable setup and verification commands, a Codex skill, a Claude Code prompt, versioned data contracts, and a protected registry console for reviewed product facts. The bitcoin-staking://capabilities resource maps user goals to the tools and reports the server, contract, skill, and registry versions.
For repository development:
npm ci
npm run check
npm run test:liveThe default release gate is offline and checks types, registry contracts, the build, MCP behavior, installer integrity, and the registry console. npm run test:live is an opt-in read of current public mainnet protocol state.
Technical documentation
Safety boundary
Scout is informational software, not financial advice. Verify the opportunity, custody path, economic terms, and transaction details through their authoritative sources before committing capital.
Available Tools
14 toolsbuild_diligence_reportBuild a bond and route diligence reportCRead-only
Build a claim-sourced report across bond availability, protocol economics, direct and pool dependencies, optional LST risks, fit, missing evidence, and a concrete next action.
| Name | Required | Description | Default |
|---|---|---|---|
| bondId | No | ||
| network | No | ||
| profile | Yes | ||
| routeId | No | ||
| bondIndex | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| profile | Yes | |
| sources | Yes | |
| economics | Yes | |
| bottomLine | Yes | |
| dataStatus | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| riskSections | Yes | |
| operationalFit | Yes | |
| missingEvidence | Yes | |
| assessmentStatus | Yes | |
| bondAvailability | Yes | |
| routeAssessments | Yes | |
| nextDiligenceSteps | Yes | |
| nextDiligenceAction | Yes | |
| routeEconomicScenarios | Yes | |
| commonProtocolEconomics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds context beyond those: 'claim-sourced' indicates the report is based on claims, 'missing evidence' aligns with open-world behavior, and 'a concrete next action' reveals that the output includes recommendations. This enriches the behavioral model without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that efficiently lists the report's facets. It is not verbose, but the long list of comma-separated items makes it slightly harder to parse. A short second sentence or bullet-like structure would improve readability.
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 complex nested profile object and five parameters, the description is insufficient. It explains what the report covers but not how the tool's inputs drive that content. The presence of an output schema reduces the need to explain return values, but the complete absence of parameter semantics is a critical gap for a tool with this complexity.
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 for the absence of parameter documentation. However, it mentions none of the parameters (bondId, network, profile, routeId, bondIndex) nor how they map to the report's content. The nested profile fields are completely unexplained, leaving the agent without any understanding of how to construct valid 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 uses a specific verb ('Build') and resource ('diligence report') and names distinct content areas (bond availability, protocol economics, dependencies, LST risks, fit, missing evidence, next action). It clearly states the tool's purpose, though it does not explicitly contrast with sibling tools like build_participation_plan or compare_staking_paths.
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 no guidance on when to use this tool versus alternatives. It does not state prerequisites, exclusions, or indicate whether this should be used before or after other tools. The intended usage context must be inferred from the tool's name and the listed report contents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_participation_planBuild a read-only participation planBRead-only
Select or compare bond routes and return fit, dependencies, missing evidence, and diligence actions without transaction fields.
| Name | Required | Description | Default |
|---|---|---|---|
| bondId | Yes | ||
| profile | Yes | ||
| routeId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bondId | Yes | |
| routeId | Yes | |
| sources | Yes | |
| dataStatus | Yes | |
| verifiedAt | Yes | |
| assessments | Yes | |
| assumptions | Yes | |
| selectedRouteId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety profile is known. The description adds context by stating the tool operates 'without transaction fields' and returns specific outputs (fit, dependencies, missing evidence, diligence actions), which aligns with and slightly extends the annotation. However, it does not disclose other behaviors like data sources or permissions, so value beyond annotations is moderate.
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 a single, tightly written sentence that front-loads the action and outcomes. Every word contributes ('Select or compare bond routes and return fit, dependencies, missing evidence, and diligence actions without transaction fields'). No wasted language or redundant repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a complex nested profile object and many sibling tools, the description provides only a high-level summary. It does not explain the meaning of the output fields, how the profile influences the plan, or when to use this tool over nearby alternatives. The annotations and output schema exist, but for such a complex tool, the description leaves significant gaps in context.
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 parameter-level details. The three parameters (bondId, profile, routeId) are not explained, and the nested profile object with many fields is completely undocumented in both schema and description. The description's mention of 'bond routes' hints at bondId/routeId, but it does not explain the profile or any parameter semantics, so it fails to compensate for the low 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 what the tool does: 'Select or compare bond routes and return fit, dependencies, missing evidence, and diligence actions without transaction fields.' This uses specific verbs and resources, and it distinguishes from siblings like list_bond_participation_routes or compare_staking_paths by focusing on building a participation plan with diligence actions.
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 selecting or comparing bond routes for a participation plan, but it does not explicitly state when to use it versus alternatives, nor does it mention any when-not-to-use scenarios. It lacks explicit alternatives or exclusions, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_compatibilityCheck direct-route custody compatibilityCRead-only
Check one current custody path against the selected bond's direct native-L1 route.
| Name | Required | Description | Default |
|---|---|---|---|
| bondId | Yes | ||
| provider | Yes | ||
| keyControlPreference | No | unknown |
Output Schema
| Name | Required | Description |
|---|---|---|
| bondId | Yes | |
| status | Yes | |
| routeId | Yes | |
| sources | Yes | |
| evidence | Yes | |
| provider | Yes | |
| dataStatus | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| keyControlPreference | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the safety profile. The description adds only the specific route comparison (native-L1) but does not disclose further behavioral traits such as failure modes, side conditions, or what 'compatibility' entails. Since annotations cover the main safety aspects, the score is moderate.
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 a single sentence that immediately states the verb and the core comparison. There is no redundant wording or filler, making it highly efficient 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?
With three parameters and an output schema present, the description is too sparse to be complete. It does not explain what 'compatibility' means, how the parameters relate to the custody path, or what the output represents. The presence of an output schema mitigates return-value explanation, but the overall description still leaves major ambiguities for a tool with this complexity.
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 the tool description does not mention any of the three parameters (bondId, provider, keyControlPreference). No attempt is made to map 'custody path' to keyControlPreference or to clarify the roles of bondId and provider. The agent is left without any guidance on parameter meaning or relationships.
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 'check' and clearly names the two objects being compared ('one current custody path' vs 'the selected bond's direct native-L1 route'). This distinguishes it from sibling tools like check_participant_status and compare_staking_paths, though the exact meaning of 'compatibility' is not elaborated.
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 no explicit guidance on when to use this tool over alternatives, nor does it mention when it should not be used. The context of 'current custody path' is implied but not clarified. No exclusions or cross-references to sibling tools are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_participant_statusCheck public participant statusARead-only
Read public participant state, infer network from the address when appropriate, reject conflicts, and return component provenance.
| Name | Required | Description | Default |
|---|---|---|---|
| bondId | No | ||
| address | Yes | ||
| network | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| address | Yes | |
| network | Yes | |
| sources | Yes | |
| dataStatus | Yes | |
| stakerInfo | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| accountStatus | Yes | |
| bondMembership | Yes | |
| requestedBondId | Yes | |
| bondAllowanceSats | Yes | |
| networkResolution | Yes | |
| componentProvenance | Yes | |
| requestedBondDataStatus | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, open-world, and non-destructive, but the description adds meaningful behavioral context: it infers network from address when appropriate, rejects conflicts, and returns component provenance. This goes well beyond the structured annotations and paints a clear picture of runtime 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 a single concise sentence that front-loads the core purpose and packs in substantive behavioral details (network inference, conflict rejection, provenance) without unnecessary filler. Every clause adds value and the length is appropriate.
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 an output schema present and annotations covering basic safety, the description adds enough context to understand the tool's behavior and output character. It lacks explicit parameter disambiguation and usage alternatives, but the combination of description, schema, and annotations is reasonably complete for a focused check 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%, so the description must compensate, but it only indirectly addresses the 'network' parameter via 'infer network from the address.' The 'address' parameter is implied but not explicitly described, and 'bondId' is not mentioned at all. The description does not clarify the role or constraints of each parameter sufficiently.
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 begins with 'Read public participant state,' a specific verb and resource that clearly identifies the tool's function. It further distinguishes it from siblings by including participant-specific behaviors like network inference, conflict rejection, and provenance return, which are unique among the listed 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 phrase 'when appropriate' implies conditional use based on network inference, but the description does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or alternative sibling tools. It provides general context but lacks direct usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_staking_pathsCompare the two bond routesBRead-only
Preserved compatibility tool that compares the direct route and approved pool under the canonical published bond.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| amountBtc | No | ||
| assetHeld | No | unknown | |
| amountSats | No | ||
| stxAvailable | No | unknown | |
| liquidityNeed | Yes | ||
| participantType | No | unknown | |
| timeHorizonDays | No | ||
| whitelistStatus | No | unknown | |
| walletOrCustodian | No | ||
| keyControlPreference | Yes | ||
| bitcoinPathPreference | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| bondId | Yes | |
| profile | Yes | |
| sources | Yes | |
| conclusion | Yes | |
| dataStatus | Yes | |
| verifiedAt | Yes | |
| assessments | Yes | |
| assumptions | Yes | |
| closestRouteId | Yes | |
| recommendedRouteId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds a useful constraint—'under the canonical published bond'—but does not disclose further behavioral details such as output limitations or the meaning of 'preserved compatibility.'
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 a single sentence, front-loaded with the core purpose. The phrase 'Preserved compatibility tool' is somewhat redundant but does not significantly detract from clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 12 parameters with many enums, the description gives no contextual guidance on how to populate them or what the comparison yields. The output schema exists, so return format is covered, but the tool's purpose is still too vague for such a complex parameter set.
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 any of the 12 parameters. It mentions only 'direct route' and 'approved pool,' which map vaguely to bitcoinPathPreference, but fails to clarify required inputs like goal, liquidityNeed, or keyControlPreference.
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 compares the direct route and approved pool under the canonical published bond, with a specific verb, resource, and scope. This distinguishes it from sibling tools like list_bond_participation_routes or check_compatibility, which do not perform a direct comparison.
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 given on when to use this tool versus alternatives. The phrase 'Preserved compatibility tool' hints at legacy status but does not explicitly explain when to prefer or avoid it, nor does it mention any other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bondGet a Bitcoin Staking bondARead-only
Get a normalized v2 bond and reconcile owner claims with on-chain state.
| Name | Required | Description | Default |
|---|---|---|---|
| bondId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| bond | Yes | |
| sources | Yes | |
| dataStatus | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| onChainVerification | Yes | |
| onChainReconciliation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide read-only and non-destructive hints. The description adds valuable behavioral context by noting the output is a normalized v2 bond and that reconciliation with on-chain state is performed. This goes beyond the annotations without contradicting them.
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 a single, front-loaded sentence that mentions the main action and the distinguishing reconciliation behavior. Every word contributes meaning; there is no fluff or repetition.
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 a single parameter, clear annotations, and an output schema, the description covers the essential purpose and behavior. It might have mentioned potential use cases or failure modes, but for a simple read-only fetch tool, it is sufficiently 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?
Schema description coverage is 0%, and the description does not elaborate on bondId, its format, or any constraints. While the parameter name and type are self-explanatory, the description fails to compensate for the missing schema documentation, leaving a minor but real 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 uses a specific verb ('Get') and resource ('normalized v2 bond'), and adds a distinctive functional detail ('reconcile owner claims with on-chain state'). This clearly differentiates it from sibling list/get/builder 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 implies usage: fetch a single bond and perform reconciliation, but it does not explicitly state when to prefer this over list_bonds or list_protocol_bonds, nor mention any exclusions or prerequisites. Context is clear enough to infer basic use, but explicit guidance on alternatives is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_snapshotGet Bitcoin Staking market snapshotCRead-only
Deterministic front door combining the reviewed product registry, route freshness, live PoX state, and on-chain bond configuration with evidence precedence already applied.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | mainnet |
Output Schema
| Name | Required | Description |
|---|---|---|
| bonds | Yes | |
| prices | Yes | |
| routes | Yes | |
| custody | Yes | |
| network | Yes | |
| sources | Yes | |
| protocol | Yes | |
| registry | Yes | |
| bondCount | Yes | |
| dataStatus | Yes | |
| precedence | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| onChainBonds | Yes | |
| testnetEvidence | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and destructiveHint, and the description adds 'deterministic' behavior and 'evidence precedence already applied.' This provides some transparency beyond the annotations, but no mention of rate limits or 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?
The description is a single sentence and uses dense jargon, but it is concise. It is not front-loaded with a clear verb, which reduces its effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks sufficient detail to understand the tool's role among sibling tools and does not explain what the market snapshot contains beyond vague references. Given the tool's complexity, the description is incomplete.
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, network, with an enum and default, which is self-explanatory. However, the description does not mention this parameter at all, and with 0% schema description coverage, the description fails to add any 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 uses 'Deterministic front door' to describe the tool but lacks an explicit verb like 'get' or 'returns,' leaving the action implied. It mentions the data sources combined, which adds some clarity, but does not clearly distinguish it from sibling tools that also touch registries or bonds.
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 information about when to use this tool versus the many sibling tools. It does not mention any alternative tools or exclusions, leaving the agent without guidance on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_statusGet Bitcoin Staking protocol statusARead-only
Read current PoX state and exact endpoint provenance.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | mainnet |
Output Schema
| Name | Required | Description |
|---|---|---|
| chainId | Yes | |
| network | Yes | |
| sources | Yes | |
| nextCycle | No | |
| apiBaseUrl | No | |
| contractId | Yes | |
| dataStatus | Yes | |
| pox5Active | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| currentCycle | No | |
| sbtcContract | No | |
| pox5Scheduled | No | |
| rewardCycleLength | No | |
| prepareCycleLength | No | |
| firstPox5RewardCycle | No | |
| blocksUntilPox5Activation | No | |
| blocksUntilNextRewardPhase | No | |
| nextRewardPhaseStartHeight | No | |
| blocksUntilNextPreparePhase | No | |
| currentBurnchainBlockHeight | Yes | |
| nextPreparePhaseStartHeight | No | |
| pox5ActivationBurnchainBlockHeight | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds the detail of returning 'exact endpoint provenance,' which provides useful context about the output's source. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the action and key outputs without unnecessary words. It earns its place despite minor jargon.
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 an output schema present and only one simple parameter, the description is adequate for the core purpose. However, 'PoX' is undefined and the network parameter is not mentioned, leaving some ambiguity about the exact scope of the status.
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 optional 'network' parameter with an enum and default, which is self-explanatory. However, the description provides no explanation of the parameter and schema description coverage is 0%, so the description does not compensate for the low 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 a read operation ('Read current PoX state') and specifies the resource, including 'exact endpoint provenance.' This distinguishes it from sibling tools that focus on market snapshots, bonds, or guidance.
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 offers no guidance on when to use this tool versus alternatives, and does not mention exclusions or context. It simply states what the tool does, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_security_guidanceGet Bitcoin Staking security guidanceBRead-only
Return sourced security diligence with explicit evidence boundaries.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| entries | Yes | |
| sources | Yes | |
| dataStatus | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| responseScope | Yes | |
| requestedTopic | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds behavioral context by indicating the output will include sources and explicit evidence boundaries (i.e., confidence/limitations). This goes beyond the structured annotations and helps set expectations for the response format.
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 a single sentence with no filler, making it concise and front-loaded. However, it is so brief that it omits useful details about parameters, which slightly reduces its efficiency in conveying complete usage 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?
Given the tool has an output schema and only one optional parameter, the description is incomplete: it does not mention the topic parameter, does not explain return-value semantics, and lacks usage guidance. The output schema covers the response structure, but the description's silence on parameters and usage leaves significant gaps for the 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 schema has 0% description coverage and the description does not mention the 'topic' parameter at all. The enum values (audit_status, timelock_construction, etc.) are somewhat self-explanatory, but the description provides no explanation of how to use the parameter or what each topic returns, making it difficult for the agent to select the correct parameter 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?
The description states a specific verb ('Return') and resource ('sourced security diligence'), and adds the qualifier 'explicit evidence boundaries,' which distinguishes it from sibling tools like get_market_snapshot or get_protocol_status. It is not a tautology and clearly conveys the tool's purpose, though it could be more explicit about Bitcoin staking.
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. The description does not mention conditions, exclusions, or alternative tools, leaving the agent to infer usage solely from the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bond_participation_routesList a bond's participation routesARead-only
Return the direct native-L1 and approved pool routes under one bond, including any registry-published LST capability offered through a pool.
| Name | Required | Description | Default |
|---|---|---|---|
| bondId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| bondId | Yes | |
| routes | Yes | |
| sources | Yes | |
| dataStatus | Yes | |
| routeModel | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe read-only operation (readOnlyHint=true, destructiveHint=false). The description adds context by detailing the types of routes returned, which goes beyond the structured fields. No contradictions or missing safety disclosures are apparent.
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 a single, front-loaded sentence that immediately states the action and resource. Every phrase adds meaningful detail without redundancy, making it appropriately 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?
For a simple read-only list tool with one required parameter and an output schema, the description provides sufficient context about what routes are returned. It lacks explicit usage alternatives, but the low complexity and annotations make it adequately complete for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for bondId (0% coverage), and the description does not explicitly define the parameter. However, the name and usage ('under one bond') make the meaning obvious, so it partially compensates but still leaves format or identifier semantics unspecified.
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 ('Return') and clearly identifies the resource: participation routes under one bond. It explicitly distinguishes the scope ('under one bond') and enumerates route types (direct native-L1, approved pool, registry-published LST capability), differentiating it from sibling list tools like list_bonds.
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 needing routes for a specific bond, which is clear enough for selection. It does not explicitly mention alternatives or when not to use this tool, but the scope is unambiguous relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bondsList Bitcoin Staking bondsARead-only
List reviewed public bonds with route summaries; demo records remain excluded by default.
| Name | Required | Description | Default |
|---|---|---|---|
| includeDemo | No | ||
| lifecycleStatus | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bonds | Yes | |
| counts | Yes | |
| sources | Yes | |
| registry | Yes | |
| demoBonds | Yes | |
| dataStatus | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| demoIncluded | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, openWorldHint, destructiveHint), the description adds that only 'reviewed' bonds are included, that 'route summaries' are part of the output, and that 'demo records remain excluded by default' — all useful behavioral filtering details. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List reviewed public bonds with route summaries') and then adds the key default behavior. Every word earns its place with no padding.
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 an output schema present, return details are not needed. However, the description omits any explanation of the 'lifecycleStatus' parameter, and while 'route summaries' is mentioned, its meaning is left ambiguous. The tool is simple and annotations help, but the unaddressed parameter leaves a meaningful gap.
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 indirectly explains 'includeDemo' via 'demo records remain excluded by default', but it does not mention 'lifecycleStatus' at all, leaving that parameter's meaning and effect entirely unspecified.
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 'List[s] reviewed public bonds with route summaries', specifying a concrete action and resource. It distinguishes itself from sibling 'list_protocol_bonds' by emphasizing 'reviewed public' and the inclusion of route summaries.
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 clear context: it returns reviewed public bonds, excludes demo records by default, and implies the includeDemo parameter to include demos. It does not explicitly name alternatives or when-not-to-use, but the scoping is clear enough for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_custody_pathsList native-L1 custody pathsBRead-only
List current product-level custody evidence for direct native-L1 participation only.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| provider | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| paths | Yes | |
| scope | Yes | |
| counts | Yes | |
| sources | Yes | |
| registry | Yes | |
| dataStatus | Yes | |
| reviewedAt | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| reviewDueAt | Yes | |
| reviewStatus | Yes | |
| reviewCadenceDays | Yes | |
| verificationMethod | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds minimal behavioral context with 'current' and 'product-level', but does not disclose details like pagination, ordering, or completeness (though openWorldHint suggests possible incompleteness). No contradiction exists.
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 a single concise sentence with front-loaded verb and clear scope. Every word adds value, and there is no fluff or repetition of schema 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 read-only list tool, the description covers the core purpose and scope, and the output schema supplies return structure. However, the complete absence of parameter semantics and lack of explicit differentiation from several similar list tools in the sibling set leaves gaps that a fuller description could address.
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 mention the 'status' or 'provider' parameters at all. The agent gets no guidance on how these parameters filter results or what values like 'available' mean. The enum values are present but lack explanation, and the description fails to compensate for the complete 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?
The description uses a specific verb ('List') and resource ('custody evidence') with a clear scope qualifier ('for direct native-L1 participation only'). This distinguishes it from sibling list tools like list_bonds or list_bond_participation_routes by explicitly narrowing to native-L1 direct participation.
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 phrase 'direct native-L1 participation only' implies when to use this tool (direct native-L1 custody) and implicitly excludes other participation types, but no explicit alternatives are named. There is no direct 'use X instead' or 'when not to use' guidance, leaving some ambiguity among many sibling list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_protocol_bondsList live PoX-5 protocol bondsARead-only
Scan a bounded PoX-5 window and return only on-chain configured bonds.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | mainnet | |
| lookbackPeriods | No | ||
| lookaheadPeriods | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bonds | Yes | |
| chainId | No | |
| network | Yes | |
| sources | Yes | |
| apiBaseUrl | No | |
| contractId | No | |
| dataStatus | Yes | |
| pox5Active | Yes | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| pox5Scheduled | No | |
| currentBondIndex | No | |
| currentRewardCycle | No | |
| scannedBondIndices | Yes | |
| firstPox5RewardCycle | No | |
| blocksUntilPox5Activation | No | |
| currentBurnchainBlockHeight | Yes | |
| pox5ActivationBurnchainBlockHeight | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, openWorldHint, destructiveHint), the description adds that it scans a 'bounded window' and returns only 'on-chain configured bonds', clarifying filtering and scope. It does not detail pagination or rate limits but provides meaningful behavioral context.
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?
Single sentence, front-loaded with action, no redundant content.
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 moderate complexity with three optional parameters and an output schema. The description covers core purpose but omits parameter explanations and usage guidance; annotations cover safety, but the description is too lean 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?
Schema description coverage is 0%. The description's mention of a 'bounded window' hints at the lookback/lookahead parameters but does not explain their semantics or the network parameter. With zero parameter descriptions in schema, the description fails to compensate.
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 ('Scan', 'return') and the resource ('PoX-5 window', 'on-chain configured bonds'). The phrase 'on-chain configured bonds' differentiates it from generic list_bonds and get_bond 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 use for a bounded time window of PoX-5 bonds but does not explicitly contrast with sibling tools like list_bonds or specify when to use this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_yieldSimulate route-aware Bitcoin Staking yieldARead-only
Calculate deterministic route-aware economics only when duration, rate, and all applicable route or LST fees are complete; optional CoinGecko prices enrich the result.
| Name | Required | Description | Default |
|---|---|---|---|
| bondId | Yes | ||
| feeBps | No | ||
| routeId | No | ||
| lstFeeBps | No | ||
| includeLst | No | ||
| btcPriceUsd | No | ||
| durationDays | No | ||
| principalBtc | No | ||
| annualRateBps | No | ||
| principalSats | No | ||
| stxPriceScenariosUsd | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bondId | Yes | |
| feeBps | Yes | |
| feeSats | No | |
| routeId | Yes | |
| sources | Yes | |
| lstFeeBps | Yes | |
| dataStatus | Yes | |
| lstFeeSats | No | |
| verifiedAt | Yes | |
| assumptions | Yes | |
| rewardAsset | Yes | |
| routeFeeBps | Yes | |
| availability | Yes | |
| durationDays | Yes | |
| modelContext | Yes | |
| netRewardBtc | No | |
| principalBtc | Yes | |
| routeFeeSats | No | |
| annualRateBps | Yes | |
| netRewardSats | No | |
| priceSnapshot | Yes | |
| principalSats | Yes | |
| grossRewardBtc | Yes | |
| priceScenarios | Yes | |
| grossRewardSats | Yes | |
| inputDataStatus | Yes | |
| netRewardDisplay | No | |
| projectionPeriod | Yes | |
| netRewardBtcExact | No | |
| grossRewardDisplay | No | |
| grossRewardBtcExact | No | |
| pairedStxRequirement | Yes | |
| estimatedRewardValueUsd | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral context: 'deterministic' indicates no randomness, 'optional CoinGecko prices enrich the result' discloses a dependency on external data, and 'only when complete' implies a precondition for calculation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action ('Calculate') and key conditions. It is concise with no filler words, earning its place. It is appropriately sized for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the tool is complex with 11 parameters, no schema descriptions, and no parameter-level guidance. The one-sentence description is insufficient to guide an agent on how to construct valid inputs, which parameters are required in different scenarios, or how to interpret optional parameters. It does not cover edge cases like the relationship between principalBtc and principalSats. Overall, it is incomplete for a tool of this complexity.
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?
With schema description coverage at 0%, the description must compensate, but it only mentions vague groupings like 'duration, rate, and all applicable route or LST fees' and 'optional CoinGecko prices'. It does not explain key parameters such as bondId, principalBtc, principalSats, or stxPriceScenariosUsd. The description adds little to help an agent understand the 11 parameters beyond what the schema itself provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates route-aware economics (yield) and implies it is for a bond via the title. It is specific but does not explicitly differentiate from sibling tools like compare_staking_paths, which also involves yield calculations. The verb 'calculate' and resource 'route-aware economics' are clear enough for an agent to grasp the core 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 a clear precondition: 'only when duration, rate, and all applicable route or LST fees are complete'. This tells the agent when the tool is appropriate to use. However, it does not mention alternatives or explicitly state when not to use it, so it lacks exclusions. Still, it offers useful context about input readiness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Several tools have overlapping purposes, such as list_protocol_bonds versus list_bonds (both list bonds from different sources) and check_compatibility versus compare_staking_paths (both compare direct vs. pool routes). get_market_snapshot aggregates data from multiple other tools, further blurring boundaries.
All 14 tools follow a consistent verb_noun pattern using snake_case. Verbs like get, list, build, check, simulate, and compare are clear and predictable, with no mixed conventions or abbreviations.
14 tools is well within the ideal range for a specialized domain. Each tool addresses a distinct aspect of Bitcoin staking analysis—market overview, protocol status, bonds, custody, routes, yield, and planning—so the count feels appropriate without bloat.
The tool set covers the full analysis lifecycle: snapshot, status, bond listing/detail, custody/routes, compatibility, yield simulation, and participation planning. Minor gaps exist (e.g., pool-specific details or historical data), but core workflows are supported end-to-end.
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
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Native Solana staking for AI agents. 26 MCP tools, one-shot signing, webhooks.
Read-only gateway for durable agent identity, consent, recognized work, and signed receipts.
Read-only discovery for exact-commit Agent Skill validation, x402 payment, and signed receipts.
Related MCP Servers
- AlicenseAqualityBmaintenanceNative Solana staking infrastructure for AI agents. 18 MCP tools for staking, unstaking, validator info, APY, epoch timing, and more. Zero custody — unsigned transactions, agents sign client-side.2684MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the Lido protocol for ETH staking, position management, and governance participation across Ethereum and L2 networks. It provides tools for querying balances, simulating transactions, and executing complex workflows like withdrawals and DAO voting through a safety-first interface.

aibtc-mcp-serverofficial
AlicenseNot gradedqualityAmaintenanceA Bitcoin-native MCP server for AI agents that provides 150+ tools for BTC and Stacks operations. Supports wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.88110MIT
AgentBodega MCPofficial
AlicenseAqualityDmaintenanceEnables agents to search and inspect live service offerings, generate x402 payment snippets, and understand blockchain-only balance policies.4803MIT
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/andre-stacks/bitcoin-staking-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server