gavel
Server Details
Oracle-free fixed-rate, fixed-term BTC credit on Arbitrum One. Data and unsigned blueprints.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- JamieFrame/gavel-mcp
- GitHub Stars
- 0
- Server Listing
- gavel-mcp
TDQS
Scored across 21 tools
Every tool has a clearly distinct purpose: wallet readiness, auction filtering, position/loan status, market analytics, protocol reference, and calldata preparation are all cleanly separated. Even the get_* and list_* tools follow a singular-versus-catalog distinction, and the two moved shims are explicit redirects rather than ambiguous duplicates.
All tool names follow a consistent snake_case verb_noun pattern: check_, find_, get_, list_, and prepare_. The verb reliably signals the tool's behavior — get_ returns one entity, list_ returns a catalog, prepare_ builds calldata — which makes the set predictable and easy to navigate.
At 21 tools, this sits in the heavy range, especially with two temporary moved shims that add no functionality and several adjacent onboarding utilities (wallets, onramps) expanding the surface. The tools are individually purposeful, but consolidating some read-only analytics and removing the shims would tighten the kit.
The core protocol lifecycle is well covered: auction creation, bidding, repayment, collateral claim, and refund claim all have calldata preparers, plus rich read tools. However, get_loan_status and get_user_positions both list claim_repayment as an available next action, yet there is no prepare_claim_repayment_calldata tool, leaving a lender unable to complete a successful repayment through this server.
Available Tools
21 toolscheck_wallet_statusCheck Wallet ReadinessAInspect
Returns a structured readiness report for the given wallet address: native ETH balance for gas, relevant ERC-20 balances (USDC, USDT, WBTC), current allowances against the Gavel LoanProtocol and ListingService, and a precomputed list of blockers (what's stopping the wallet from placing bids or creating auctions).
Useful for: onboarding flows where an LLM agent needs to verify a user's wallet is funded and approved before walking them through a transaction. The 'readiness.blockers' field is the high-leverage answer to "what's next?" — the LLM can quote it directly without reasoning from raw balances.
This tool reads the Arbitrum chain directly via RPC. It does not require any signed authorisation from the wallet owner — addresses and balances are public on-chain data.
Returns: { address, network, native_gas, tokens, active_positions, readiness }.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The EOA or smart-account address to inspect. Any valid Ethereum address. The wallet does not need to be the caller — anyone can check anyone's balance, this is public chain data. | |
| network | No | Network to inspect. Default 'arbitrum-one' (mainnet, live protocol). | arbitrum-one |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral burden. It explicitly discloses that the tool reads Arbitrum via RPC, requires no signed authorization, and that all data is public on-chain. This is exactly the kind of transparency needed for an agent to safely invoke it. There is no contradiction with annotations (there are none).
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 structured with clear bold labels and front-loads the central function. The second paragraph justifies purpose, the third covers transparency. Every sentence adds value; there is no fluff or redundancy. Length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only inspection tool with no output schema and no annotations, the description is exceptionally complete. It covers input semantics, network specificity, authorization requirements, and the return structure. An agent has everything needed to decide when and how to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already well-documented in the schema (including the network enum and the fact that the address can be anyone's). The description adds little beyond what the schema already states; it just reinforces the address ownership detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear, specific verb ('Returns a structured readiness report for the given wallet address') and enumerates the data points (ETH, ERC-20 balances, allowances, blockers). It names the key differentiating output ('blockers') that sets it apart from sibling tools like get_user_positions or get_address_history, making its purpose unmistakable.
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 concrete use case ('onboarding flows... verify funded and approved before walking them through a transaction') and points to the high-leverage field. It does not explicitly state when to avoid this tool or name alternative tools, but the context is sufficient for an agent to judge applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_auctions_matching_criteriaFind Auctions Matching CriteriaAInspect
Returns Gavel auctions filtered by the criteria you supply. Does not rank, score, or recommend a specific auction — only filters by the parameters provided. The user chooses what to act on.
Useful for: an agent helping a user narrow a long auction list down to the subset matching their stated yield, duration, and LTV preferences.
All filter parameters are optional. Unspecified parameters mean "no constraint on that dimension". When status is omitted, defaults to 'open' (actionable auctions only).
Returns: { matches: Auction[], match_count, total_inspected, criteria_echoed }.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | No | Collateral/loan pair (e.g. 'WBTC/USDC'). Omit for any pair. | |
| limit | No | Maximum results to return. Caps at 100. | |
| status | No | Auction lifecycle filter. 'open' = actionable (default), 'completed' = settled, 'all' = both. | open |
| max_ltv | No | Maximum LTV. Omit for no upper bound. | |
| min_ltv | No | Minimum LTV (loan-to-value), as decimal 0.0-1.0. Omit for no lower bound. | |
| max_rate_pct | No | Maximum implied APR in percent. Omit for no upper bound. | |
| min_rate_pct | No | Minimum implied APR in percent (e.g. 5.5 means at least 5.5%). Omit for no lower bound. | |
| max_duration_days | No | Maximum loan duration in days. Omit for no upper bound. | |
| min_duration_days | No | Minimum loan duration in days. Omit for no lower bound. | |
| min_remaining_hours | No | Only return auctions with at least this many hours left before close. Useful for bidders who need time to act. Ignored when status != 'open'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does well by stating it only filters and does not rank or recommend, that status defaults to 'open', and that min_remaining_hours is ignored when status != 'open'. It could additionally state whether the operation is read-only or if there are side effects, though the wording strongly implies a query.
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 and front-loaded with the core purpose, followed by the non-ranking clarification and default behavior. The 'Useful for' and return-shape lines earn their place. Minor redundancy exists between the 'Does not rank' sentence and the later 'user chooses what to act on' line.
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 10 optional parameters, no output schema, and no annotations, the description compensates well by documenting the return shape, defaults, and edge behavior for min_remaining_hours. It could be more explicit about how multiple criteria combine (AND semantics) and what happens when no matches are found, but it is sufficiently complete 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 coverage is 100%, so the baseline is 3. The description adds collective semantics beyond the schema: all filter parameters are optional, unspecified parameters impose no constraint, and the default 'open' status means actionable auctions only. This centralizes behavior that would otherwise have to be inferred parameter-by-parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns Gavel auctions filtered by the criteria you supply.' It explicitly distinguishes this tool from ranking, scoring, or recommending, making clear it only filters. This prevents confusion with action-oriented siblings like prepare_bid_calldata.
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 clear 'Useful for' context: narrowing a long auction list by yield, duration, and LTV preferences. It explains that all filters are optional and unspecified means no constraint, but it does not explicitly name alternative tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_address_historyAddress history on the protocolAInspect
What has this address done on the protocol? Public chain events only, with no enrichment beyond them.
Auctions originated, bids placed, positions open and closed, and a summary of outcomes. No clustering, no labelling and no inferred identity: nothing in the response is not already public on-chain. Any address may be queried by anyone; no authorisation is needed.
This is the supervisor page's data source — the read a person uses to check what an agent they supervise has actually done.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The address to inspect. Any valid Ethereum address; it need not be the caller. | |
| network | No | Network. Default 'arbitrum-one' (mainnet). Use 'arbitrum-sepolia' for the testnet deployment, which carries a far deeper book — but note the two run different contract builds, so a testnet observation is not a mainnet fact. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility and handles it well. It discloses that only public on-chain data is returned, that no enrichment or identity inference occurs, that any address can be queried without authorization, and that the operation is a read. This goes well beyond a generic 'get history' statement.
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 efficiently structured, with the core question and constraint front-loaded, then content details, then a practical use case. A small amount of redundancy exists between 'no enrichment' and the later enumeration of absent clustering/labelling, but each sentence still contributes useful 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?
For a two-parameter read-only tool with no output schema, the description covers what the response contains, the data source, the authorization model, and the intended user scenario. It does not describe response shape, ordering, pagination, or time-range behavior, which would add completeness, but the described scope is sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both address and network, including defaults and testnet caveats. The description does not add new parameter-level detail, which is acceptable under the baseline but earns no extra credit.
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 opens with a direct question that defines the tool's job, then enumerates concrete answer content: auctions originated, bids placed, positions opened/closed, and outcome summaries. It also draws meaningful contrast with the sibling set by emphasizing raw public chain events with no enrichment, clustering, or inferred identity, which distinguishes it from tools like get_user_positions or check_wallet_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 gives clear context for when this tool is appropriate: it is the supervisor page's data source for checking what an agent has actually done, and it states that no authorization is needed for any address. It does not explicitly name alternatives or state when not to use it, but the use case and scope are specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bookThe open bookAInspect
What is open right now — auctions, bids and positions listed? Current chain state, with counts rather than a characterisation of depth.
Open auctions with their best bid and time remaining, those closing within 24 hours, and totals: open auction count, principal outstanding, collateral locked, and distinct lenders and borrowers over 30 days.
⚠ Fields that cannot be answered are null, not empty. positions_listed is null where marketplace listings are not indexed — an empty array would assert that nothing is listed.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | No | Restrict to one collateral/loan pair. Omit for all. | |
| network | No | Network. Default 'arbitrum-one' (mainnet). Use 'arbitrum-sepolia' for the testnet deployment, which carries a far deeper book — but note the two run different contract builds, so a testnet observation is not a mainnet fact. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It explicitly warns that unanswerable fields are null, not empty, and that positions_listed is null when marketplace listings aren't indexed — crucial to avoid misinterpretation. It also clarifies the output is counts, not depth, managing expectations. It doesn't discuss side effects or access requirements, but for a read-only query tool this is solid.
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 fairly compact and front-loads the core idea before giving specifics and a null-handling warning. The opening question is slightly rhetorical, but every sentence contributes information. No repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the concrete return components (best bid, time remaining, 24h closers, counts, outstanding, collateral, distinct lenders/borrowers over 30 days) and handles the null/empty-edge case. The optional filtering by pair/network is covered in the schema. Missing an explicit tie to sibling tools, but overall the tool is fully callable with the provided information.
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 100%: the schema already gives detailed descriptions for pair and network, including the testnet caveat. The description adds nothing about parameters, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'What is open right now — auctions, bids and positions listed?' and then enumerates the returned data: open auctions with best bid and time remaining, those closing within 24 hours, plus aggregate totals. This clearly identifies the tool as an open-book/current-state snapshot. It stops short of explicitly naming sibling tools it differs from, so not a full 5.
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 states that output is 'counts rather than a characterisation of depth,' indicating it's for aggregate book data, but it never tells the agent when to prefer get_book over siblings like get_user_positions or find_auctions_matching_criteria. There's no explicit when-to-use or alternative routing, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gavel_indicatorGet a Gavel IndicatorAInspect
Returns the current value of a single Aletheia indicator by id, with its methodology reference. This server serves this protocol's own indicator set, including those anchored on its rate. Call list_gavel_indicators first to discover valid ids.
Optionally returns the historical series instead of the current value (set include_history). History is free and unmetered on the same terms as the current value.
This is descriptive data; no recommendation is provided. An indicator that has no reading on this network says so explicitly rather than returning a null or a zero that could be mistaken for a value.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Indicator id from list_gavel_indicators, e.g. 'yield-curve', 'vrb', 'lpi'. | |
| to | No | History end, ISO 8601 date. Only meaningful with include_history. | |
| from | No | History start, ISO 8601 date. Only meaningful with include_history. | |
| include_history | No | If true, return the historical series instead of the current value. Not every indicator has one. |
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 and meets it. It states that this is descriptive data with no recommendation, explicitly covers the missing-reading case instead of returning null/zero, and clarifies that history is free and unmetered.
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 well structured: purpose is front-loaded, followed by prerequisites, optional behavior, and caveats. Each sentence earns its place, though the server-indicator-set and billing details could be trimmed without losing core intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema and no annotations, the description is sufficient for correct invocation: it covers the required id, discovery prerequisite, optional history flag, date-range parameters, data semantics, and edge-case behavior. The exact JSON response shape is not described, but that is not necessary for selecting and calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description reinforces the include_history behavior and adds the free/unmetered nuance, but id, to, and from are already fully documented in the schema, so the description adds limited new parameter-level 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 identifies the operation: return the current (or historical) value of a single Aletheia indicator by id, plus its methodology reference. It is specific and distinguishes retrieval from discovery by mentioning list_gavel_indicators, but it does not explicitly contrast itself with sibling getters like get_mvrv or get_yield_curve.
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 concrete usage direction: call list_gavel_indicators first to discover valid ids, and set include_history to request the historical series. It does not enumerate when to prefer sibling tools, but the prerequisite plus indicator-specific scope provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_loan_statusGavel Loan StatusAInspect
Returns the current state of a single Gavel loan and what action, if any, is available to whom. Designed to be re-called during a long conversation so lifecycle changes can be surfaced to the user.
'next_actions' is an array of {actor, action, calldata_tool} tuples naming the tool that prepares each transaction, so the next step can be taken without guessing. 'lifecycle_summary' gives the borrower's and lender's view in plain English.
This is descriptive data; no recommendation is provided. Verify on-chain before acting on a reported maturity or default.
Returns: { loan_id, state, borrower, lender, principal, repayment, apr, matures_at, time_remaining_seconds, outcome, next_actions }.
| Name | Required | Description | Default |
|---|---|---|---|
| loan_id | Yes | The loan id. For v1 auctions this equals the auction id — see get_user_positions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to carry the safety or behavior burden, the description does so comprehensively. It discloses that the data is descriptive, provides no recommendation, identifies that next_actions are tuples naming the calldata-preparation tool, and explicitly warns to verify on-chain before acting. These are meaningful behavioral traits disclosed beyond the 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 front-loaded with the core purpose, then adds behavioral caveats, field semantics, and a return shape. Every sentence earns its place, and the structure moves from what it does, to how to use it, to what it returns, 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 a single parameter, no annotations, and no output schema, the description is complete. It explains the purpose, the usage pattern, the meaning of key response fields, the safety warning, and the full return object shape. An agent has enough context to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required parameter, and the schema already explains loan_id, including the v1 auction equivalence and a pointer to get_user_positions. The tool description does not add further meaning to the parameter itself, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Returns the current state of a single Gavel loan and what action, if any, is available to whom.' It clearly scopes the tool to a single loan, which distinguishes it from multi-item siblings like get_user_positions and find_auctions_matching_criteria, and distinguishes it from transaction preparation tools by noting it is descriptive 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 states when this tool should be re-called: during a long conversation to surface lifecycle changes to the user. It also warns to verify on-chain before acting on a reported maturity or default, providing practical guidance. It does not explicitly name alternative tools or state when not to use it, so it misses full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mvrvMoved — now served by the Bitcoin Credit StackAInspect
This tool has moved. Cross-venue credit data is served by the Bitcoin Credit Stack MCP at https://mcp.bitcoincreditstack.com/mcp, where this tool is called get_mvrv. Calling it here returns a structured 'moved' error naming the host. This shim is temporary and will be removed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden, and it fully discloses the behavioral contract: calling it here returns a structured 'moved' error naming the host, and the shim is temporary. The agent knows exactly what to expect at runtime.
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?
Three short sentences deliver all necessary information: the migration, the replacement endpoint, and the runtime behavior. The key fact is front-loaded in the first sentence, with no filler or redundant restatement of the tool name.
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 parameterless shim with no output schema, the description is complete: an agent knows not to invoke it as a real data tool, knows what error it will receive, and knows exactly where to find the true implementation. Nothing essential is missing for correct invocation or handling.
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 tool has zero parameters and the schema is empty, so no parameter documentation is needed. The description correctly avoids inventing parameter-related details and focuses on the shutdown/redirect behavior, meeting the baseline for a parameterless tool.
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 is a deprecated shim: it has moved, it is served elsewhere, and calling it here returns a structured 'moved' error. It names the exact replacement host and the tool name used there, which distinguishes it from all sibling tools and prevents an agent from treating it as a functional data getter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent where to go instead (the Bitcoin Credit Stack MCP URL) and what happens if it calls this shim here. This is clear when-to-use/when-not-to-use guidance with an explicit alternative, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_referenceGavel Protocol ReferenceAInspect
Returns the Gavel Protocol's complete on-chain reference data for the requested network: contract addresses, supported tokens (collateral and loan), key function signatures, operational conventions (like the Position NFT tokenId formula), and Etherscan/ABI references.
Use this tool when an agent needs to:
Look up a contract address before constructing a transaction
Get the function signature for placeBid, createAuction, repayLoan, etc.
Understand the tokenId convention for borrower vs lender position NFTs
Find an Etherscan link to verify a contract's source code
Confirm which loan tokens are whitelisted
This is descriptive data; no recommendation is provided. The agent is responsible for constructing, signing, and broadcasting any transactions via the user's own wallet. Aletheia never holds keys or dispatches transactions.
Returns: { network, chain_id, explorer, rpc_endpoints, status, contracts, tokens, key_functions, important_notes, abi_references }.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to look up. Default 'arbitrum-one' (mainnet, live protocol). Use 'arbitrum-sepolia' for the testnet deployment. | arbitrum-one |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly states this is 'descriptive data' with no recommendation, and clarifies that Aletheia never holds keys or dispatches transactions, positioning the tool as a non-mutating reference lookup. This gives the agent a clear picture of what the tool does and does not do, exceeding typical transparency for a read-only getter.
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 longer than average but well-structured: it opens with the primary output, then lists five bullet-point use cases, adds a responsibility clarifier, and finishes with the return shape. Every sentence contributes value and the bullet points aid scanning, though it could be tightened without losing meaning.
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 reference tool with one optional parameter and no output schema, the description is complete: it enumerates all return fields, provides concrete use cases, states that it is non-executing, and clarifies the agent's transaction responsibilities. An agent can confidently decide when to call this tool and what to expect from the response.
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 single parameter 'network' is fully described in the schema (enum values, default, and mainnet vs testnet distinction). The tool description only uses the phrase 'requested network' without adding any new semantics beyond the schema, so it does not elevate beyond the baseline of 3 when schema coverage is 100%.
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 a clear verb-resource pair: 'Returns the Gavel Protocol's complete on-chain reference data for the requested network' and enumerates specific content (contract addresses, tokens, signatures, conventions, ABI references). This immediately differentiates it from sibling tools like get_loan_status or get_user_positions, which address specific entities rather than the full protocol reference.
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 lists when to use the tool with concrete examples (look up a contract address, get function signature for placeBid, understand tokenId convention, find Etherscan link, confirm loan token whitelist). It also clarifies that it provides descriptive data only and that the agent is responsible for transaction construction, clearly distinguishing this reference tool from transaction-executing siblings like prepare_bid_calldata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_positionsGavel Positions for an AddressAInspect
Returns every Gavel position an address holds — as borrower, as winning lender, or as a bidder on an auction that has not closed.
Each position carries its lifecycle state (auction_open, bid_placed, bid_lost, active, matured_unclaimed, repaid, defaulted), the maturity date and time remaining, the counterparty, and 'next_action_available' — the one thing this address can do next (nothing, repay, claim_collateral, claim_repayment, claim_refund). 'lifecycle_summary' is a plain-English sentence you can quote to the user directly.
Reads public chain data via the Aletheia indexer; no signed authorisation is needed and anyone can query any address. The chain is authoritative — a transaction in the current block may not be indexed yet.
Returns: { address, network, positions[], count, settled_hidden }.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The address to inspect. Any valid Ethereum address; it need not be the caller. | |
| include_settled | No | Include finished positions (repaid, defaulted, lost bids). Default false — only what is still live. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behavioral traits: reads public chain data via the Aletheia indexer, requires no signed authorisation, and explicitly warns that the chain is authoritative and a current-block transaction may not be indexed yet. It also describes the output structure, including 'settled_hidden', providing substantial transparency beyond a bare 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?
The description is front-loaded with the core purpose ('Returns every Gavel position...'), then elaborates on position contents, data source, and freshness, and ends with return format. Each sentence adds value, and while it is somewhat lengthy, the length is justified by the number of fields and caveats. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with 2 parameters and no output schema, the description is nearly complete: it specifies the returned object (address, network, positions[], count, settled_hidden), details what each position contains (lifecycle state, maturity, counterparty, next_action_available, lifecycle_summary), and explains the index lag caveat. It doesn't exhaustively list all lifecycle states but gives examples, and it covers the main edge case of hidden settled positions. Missing error handling details are minor for this 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 input schema already fully describes both parameters (100% coverage): address specifies any valid Ethereum address and that it need not be the caller, and include_settled explains the default and effect. The description adds no parameter-specific details beyond that, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and a clear resource ('every Gavel position an address holds'), enumerating the three distinct roles (borrower, winning lender, bidder) and explicitly excluding settled auctions. This differentiates it from siblings like get_loan_status (single loan) and get_address_history (general history) without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for fetching all positions of any address, with no auth required, and notes that the indexer may lag. It implies usage when a full position overview is needed, but it does not explicitly mention when to use an alternative (e.g., get_loan_status for a single loan) or state exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verification_bundleVerification bundleAInspect
What can be checked about the contracts, and what did the last check return? Observations with their block heights; the verdict is the reader's.
Contract addresses and their implementations, the bytecode hash of each, the upgradeability position, the privileged-function map with whether each can touch user funds, the audit reference, and five structural promises — each with the check that would falsify it and what that check returned.
⚠ Read the fields, not the impression. 'match' is "unchecked" where Aletheia has not compared deployed bytecode against verified source; a promise that did not settle says so; and mainnet and testnet return different answers because they run different builds. There is no safety score, rating or verified badge in this payload, and none will be added.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network. Default 'arbitrum-one' (mainnet). Use 'arbitrum-sepolia' for the testnet deployment, which carries a far deeper book — but note the two run different contract builds, so a testnet observation is not a mainnet fact. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden. It transparently states that 'match' can be 'unchecked' when bytecode comparison hasn't happened, that unresolved promises 'say so,' that mainnet and testnet return different answers due to different builds, and that no safety score/rating/badge exists and none will be added. This goes far beyond basic behavioral description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a purpose sentence, then a detailed contents list, then a warning paragraph. While moderately long, every sentence adds value and the structure is logical. Some redundancy could be trimmed, but it remains well-organized for a complex payload.
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 lacking an output schema, the description fully covers what the agent will receive: specific fields, the meaning of key values (including edge cases like unchecked matches and unresolved promises), and network-dependent behavior. It leaves no critical ambiguity 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 covers 100% of the single parameter (network) with enumeration and a default. The description adds meaningful context: testnet carries a 'far deeper book' and the two networks run different builds, so a testnet observation isn't a mainnet fact. This enriches the parameter's semantics 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 states the tool's purpose as returning what can be checked about contracts and the last check's results, then enumerates the specific contents: addresses, implementations, bytecode hashes, upgradeability position, privileged-function map, audit reference, and five structural promises. It clearly differentiates from a verdict-provider by saying 'the verdict is the reader's,' making its scope precise.
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 when-to-use vs. alternatives, but it does provide practical usage context: it warns about interpreting 'match' as unchecked where bytecode hasn't been compared, notes that mainnet and testnet differ, and advises reading fields rather than impressions. This is helpful but not a comprehensive usage guide or alternative exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_yield_curveGavel Yield CurveAInspect
Returns the current fitted Gavel yield curve for the requested collateral/loan pair. Rates are oracle-free, derived from auctions in The Gavel Protocol. The curve is a log-quadratic fit through binned midpoints.
IMPORTANT — every rate returned is an evaluation of the fitted curve, not an observed trade, and the published tenor set extends past the deepest observation. Tenors with no underlying bin data are returned as fitted values and listed in 'extrapolated_tenors'; treat those as model output only. Read 'provenance' before using the curve as a market reference: it carries the observation count, the number of distinct counterparties, the external share, and a disclosure stating whether this is yet an independent market assessment. Check fit.r_squared and fit.fitted_to — R-squared is measured against bin means, not raw scatter, so at low observation counts it reflects smoothness rather than goodness of fit.
Useful for: comparing fixed-term BTC-collateralised borrow rates across maturities, deriving the term premium, sourcing the Gavel layer of the Bitcoin Credit Stack. This tool returns data; it does not advise.
Returns: { pair, computed_at, status, rates, extrapolated_tenors, fit_observation_count, provenance, fit: {r_squared, rmse, model, fitted_to} }. Note 'fit_observation_count' counts only the loans the fit was computed over (binning is active-loans-only, so settled loans are excluded), whereas 'provenance.observation_count' counts the full scatter — they legitimately differ. Optional 'include_points' returns the raw scatter backing the fit.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | No | Collateral/loan pair. Default 'WBTC/USDC'. Currently the only live pair on mainnet. | WBTC/USDC |
| include_points | No | If true, include the underlying scatter points used to fit the curve. Larger response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden and succeeds impressively: it warns every rate is a fitted evaluation, not an observed trade; explains extrapolated_tenors are model output; clarifies R-squared is measured against bin means, not raw scatter; and distinguishes fit_observation_count from provenance.observation_count. This is unusually transparent about caveats and interpretation.
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?
Long, but every section earns its place: a one-sentence purpose, a caveat block, use cases, and the exact return shape. It is front-loaded with the most important fact — that returned rates are fitted values, not trades — and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description supplies a complete return-shape listing, explains the meaning of the two observation counts, and warns about provenance and fit-quality interpretation. For a tool with this much nuance, nothing an agent needs to call and interpret it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters at 100% coverage, including defaults and the response-size caveat. The description adds only 'raw scatter backing the fit,' which is marginal and largely redundant with the schema's 'underlying scatter points used to fit the curve.' Baseline 3 applies because the schema does the semantic heavy lifting.
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?
First sentence states a specific verb ('Returns') and resource ('current fitted Gavel yield curve for the requested collateral/loan pair'), with model details like oracle-free and log-quadratic fit. This clearly differentiates the tool from sibling data tools, though it never names an alternative explicitly.
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?
Includes an explicit 'Useful for' list naming concrete use cases (comparing fixed-term BTC-collateralised borrow rates, deriving term premium, sourcing the Gavel layer) and a clear boundary statement ('returns data; it does not advise'). It does not name when not to use the tool or a sibling alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_comparablesComparable settled auctionsAInspect
Which recent auctions resemble these parameters, and how did each clear? Returns the individual observations so the caller can reason from them directly.
Nearest-k settled auctions by normalised distance on loan amount, LTV and tenor. Every row carries its clearing APR, bid count, and whether its originator was Aletheia's own account. Below MIN_COMPARABLES the rows are still returned, with the threshold and the observed count named — no aggregate is computed over them.
⚠ The own-account flag is null, not false, wherever it cannot be computed. Read provenance.own_account_attribution before treating a null as a "no".
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | How many comparables to return. Caps at 25; default 10. | |
| ltv | No | Loan-to-value at origination, as a decimal 0–1. | |
| pair | No | Collateral/loan pair. Default 'WBTC/USDC'. | |
| network | No | Network. Default 'arbitrum-one' (mainnet). Use 'arbitrum-sepolia' for the testnet deployment, which carries a far deeper book — but note the two run different contract builds, so a testnet observation is not a mainnet fact. | |
| tenor_days | No | Loan term in days. The protocol's minimum is 7. | |
| loan_amount | No | Loan size to match against, in loan-token units. | |
| window_days | No | Only consider auctions settled within this many days. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and pays it off. It reveals row contents (clearing APR, bid count, own-account flag), the behavior when below MIN_COMPARABLES (rows still returned, no aggregate computed), and an explicit null-vs-false warning for the own-account flag. This goes far beyond the typical read-tool description.
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 efficiently structured: purpose, method, output contents, edge-case behavior, then a warning. Every sentence earns its place, and the important null-handling warning is clearly flagged. Despite covering substantial behavioral detail, it remains compact and scannable.
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 there is no output schema and no annotations, the description supplies the necessary response semantics: individual observations, row fields, threshold behavior, and the provenance caveat. It also names the distance dimensions and supports the seven optional parameters through the schema. An agent has enough context to invoke the tool and interpret results correctly without reconstructing hidden behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters, establishing a baseline of 3. The description adds value by specifying how the parameters relate: matching is done by 'normalised distance on loan amount, LTV and tenor.' This information is not inferable from the individual parameter descriptions and clarifies which parameters drive the comparability computation.
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 opens with a concrete question ('Which recent auctions resemble these parameters, and how did each clear?') and then gives a precise method: 'Nearest-k settled auctions by normalised distance on loan amount, LTV and tenor.' It clearly identifies the resource and behavior, and the emphasis on 'returns the individual observations' distinguishes it from aggregate-style or listing 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 intended use is strongly implied by the opening question and by describing this as a nearest-k comparables lookup, but the description never names a sibling alternative such as find_auctions_matching_criteria nor states when not to use this tool. There is no explicit exclusion or routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_fiat_onrampsFiat Onramp CatalogAInspect
Returns a catalog of fiat-to-USDC onramps that deliver native USDC on the requested chain. Does not rank or endorse a specific provider — entries are listed alphabetically so the response is deterministic. The user chooses which onramp to use.
Filter by country (ISO 3166 alpha-2) and amount to narrow the catalog to providers that operate in the user's jurisdiction and accept their transaction size.
Useful for: an LLM agent helping a novice user fund their wallet from fiat USD/EUR/GBP. The LLM presents the catalog to the user; the user picks one and proceeds.
IMPORTANT — a cold-start user needs TWO purchases, not one. None of these providers delivers gas ETH alongside the USDC. A wallet holding only USDC cannot transact at all, and the failure is opaque (the transaction simply will not send). Surface the gas purchase to the user at the same time as the USDC purchase — see 'gas_requirement' in the response.
Returns: { providers: OnrampProvider[], gas_requirement, filter_echo, notes }.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Target chain. Currently only 'arbitrum-one' supported — all listed providers deliver native USDC on Arbitrum One. | arbitrum-one |
| country | No | ISO 3166 alpha-2 country code (e.g. 'US', 'GB', 'FR'). Filters to providers supporting that country. Omit to return all providers. | |
| amount_usd | No | Amount in USD the user plans to onramp. Filters out providers whose limits don't cover this amount. Omit to ignore amount limits. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries behavioral disclosure. It reveals the deterministic alphabetical ordering, the lack of provider endorsement, and most importantly warns about the gas purchase requirement and the two-purchase cold-start scenario. This is exceptionally transparent and prevents critical user errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized, with each sentence serving a purpose: function, filtering, use case, and the crucial gas warning. The 'IMPORTANT' section is clearly separated, and the return structure is outlined. No extra fluff.
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, the description outlines the top-level return fields ('providers, gas_requirement, filter_echo, notes') and highlights the gas_requirement field's significance. For a simple read-only catalog with optional parameters, this is sufficient, though it doesn't detail every nested field.
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 covers all parameters with descriptions, but the tool description adds meaning beyond the schema by explaining that parameters work together to 'narrow the catalog to providers that operate in the user’s jurisdiction and accept their transaction size.' This contextualizes the parameters beyond their individual schema text.
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's function: 'Returns a catalog of fiat-to-USDC onramps that deliver native USDC on the requested chain.' It adds specificity with the note about alphabetical listing and non-endorsement, distinguishing it from any potential alternatives and making its 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?
It provides a concrete use case ('an LLM agent helping a novice user fund their wallet'), explains filtering by country and amount, and points to when this tool is needed. It does not explicitly mention alternatives or exclude other tools, but given the sibling set contains no other onramp-catalog tool, the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gavel_indicatorsGavel Indicator CatalogueAInspect
Returns the catalogue of Aletheia indicators computed from The Gavel Protocol and the Bitcoin chain: id, name, family, units, description, and whether the indicator is currently live on this network.
Three families: 'credit' (credit-market assessments), 'onchain' (commodity chain metrics such as MVRV and SOPR), and 'market' (external context — DeFi rates, stablecoin supply, macro).
Use this to discover what is available, then call get_gavel_indicator with an id. This tool returns a catalogue; it does not rank indicators or advise which to use.
| Name | Required | Description | Default |
|---|---|---|---|
| family | No | Restrict to one family. Omit to return the whole catalogue. | |
| live_only | No | If true, omit indicators that are not currently live on this network. |
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 output fields (id, name, family, units, description, live status) and the non-ranking behavior, which is helpful. However, it does not describe the response structure (array vs. object, pagination), empty-result behavior, or whether the catalogue is static or computed on demand, leaving the agent to guess those 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 purpose is front-loaded in the first sentence, and the three paragraphs each serve a distinct role (what is returned, family definitions, usage guidance). Minor redundancy — 'This tool returns a catalogue' echoes the opening line — and the slightly lengthy family expansion cost a point, but the structure remains logical and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the output fields (id, name, family, units, description, live status) and documenting the three families, which is adequate for a simple catalogue endpoint. It does not describe the exact JSON shape, but for a listing tool of this complexity, the field list and family definitions are sufficient 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?
Both parameters are fully described in the schema (100% coverage), so the description adds value on top by explaining the family enum values ('credit' = credit-market assessments, 'onchain' = commodity chain metrics, 'market' = external context) and reinforcing live_only's meaning. This goes beyond the schema's terser phrasing without being redundant.
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?
States a specific verb and resource ('Returns the catalogue of Aletheia indicators computed from The Gavel Protocol and the Bitcoin chain') and lists the output fields. It explicitly distinguishes itself from the sibling tool get_gavel_indicator ('Use this to discover what is available, then call get_gavel_indicator with an id') and clarifies what it does not do ('it does not rank indicators or advise which to use'), making selection 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?
Gives explicit when-to-use guidance ('Use this to discover what is available, then call get_gavel_indicator with an id') and an explicit when-not-to-use boundary ('does not rank indicators or advise which to use'). It names the primary alternative (get_gavel_indicator), but could be stronger by mentioning other overlapping siblings like get_mvrv or list_onchain_indicators, so it falls just short of full coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_onchain_indicatorsMoved — now served by the Bitcoin Credit StackAInspect
This tool has moved. Cross-venue credit data is served by the Bitcoin Credit Stack MCP at https://mcp.bitcoincreditstack.com/mcp, where this tool is called list_onchain_indicators. Calling it here returns a structured 'moved' error naming the host. This shim is temporary and will be removed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It discloses the exact behavior: a structured 'moved' error naming the host, the temporary nature of the shim, and its eventual removal. This is transparent and actionable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences, each adding necessary information: relocation, target host, local behavior, and lifespan. No filler or 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?
With an empty schema, no output schema, and no annotations, the description fully equips an agent to invoke the tool and interpret the result: it will receive a structured moved error with host details. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description adds no parameter-specific details, but none are needed for a parameterless shim.
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 the tool has moved and that calling it here returns a structured 'moved' error naming the host. The verb+resource is specific: it serves as a relocation shim for cross-venue credit data, making its operational purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent where to go for the real functionality (the Bitcoin Credit Stack MCP URL) and what will happen if called here. This effectively provides both the when-to-use and the alternative, covering usage guidance fully.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wallet_optionsCompatible Wallet CatalogAInspect
Returns a catalog of self-custody wallet apps compatible with Gavel (i.e., that support Arbitrum One). Does not rank wallets by quality. Each entry has a 'suitability_tags' list describing the typical user fit as factual attributes ('beginner', 'mobile_first', 'hardware', 'multisig', etc.) — the LLM and user pick based on those.
Useful for: an LLM agent helping a user without an existing wallet choose one before onramping funds. The LLM should explain the custody-model and platform implications relevant to the user's situation, then let the user pick.
Returns: { wallets: WalletOption[], filter_echo, notes }.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Filter wallets to those available on the specified platform. Omit to return all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that wallets are not ranked by quality, that tags are factual attributes, and that the retern shape is { wallets, filter_echo, notes }. Minor unspecified details such as pagination or data freshness are not material for a catalog lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core result, then adds non_ranking behavior, usage context, and return shape. It is somewhat lengthy but each sentence serves a purpose; no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description names the top_level return fields and explains the semantics of suitability_tags. It does not fully define WalletOption or filter_echo, but it gives enough for an agent to invoke the tool and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already fully documents the platform parameter and its enum values. The description adds no extra parameter-level meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns a catalog of self-custody wallet apps compatible with Gavel', further scoped to Arbitrum One. It clearly distinguishes this tool from siblings like list_fiat_onramps or list_onchain_indicators.
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 'Useful for' section explicitly names the scenario: an LLM agent helping a user without an existing wallet choose one before onramping funds. It gives guidance to explain custody_model and platform implications and let the user pick, but it does not enumerate exclusions or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_bid_calldataPrepare a Gavel BidAInspect
Builds an unsigned transaction blueprint for placing a bid on a Gavel auction, including the prerequisite ERC-20 approval when the current allowance is short.
You supply the auction and the repayment amount you are willing to accept; this tool validates them against live auction state and encodes the call. It does not choose an auction, a rate or a size for you — use find_auctions_matching_criteria to filter by your own criteria first.
Bidding on Gavel is a reverse auction: a LOWER repayment is a more competitive bid and a lower yield to you as lender. Each bid must undercut the current best by at least the auction's bid step.
Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network. Default 'arbitrum-one' (mainnet, real funds). | arbitrum-one |
| auction_id | Yes | The auction to bid on. | |
| lender_address | Yes | Your address — used to read your balance and current allowance. | |
| repayment_amount | Yes | The total repayment you are bidding, as a decimal string in loan-token units, e.g. '5320.00'. |
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 reveals that the tool validates inputs against live auction state, conditionally includes an ERC-20 approval, returns an unsigned blueprint, does not dispatch transactions, and requires the user to review and sign. It also states that Aletheia does not hold keys, which is important safety context for an 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?
The description is organized into three tight, front-loaded paragraphs: the core action, the tool's boundary and relationship to find_auctions_matching_criteria, and the domain rules plus safety responsibilities. Every sentence earns its place without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description adequately explains the return type (unsigned transaction blueprint), the validation behavior, the allowance prerequisite, and the user's signing responsibility. An agent has enough context to decide whether and how to invoke the tool correctly, and the only unspecified detail—exact output object shape—is not essential for calling 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 schema already covers 100% of the parameters, so the baseline is 3. The description adds meaningful semantics beyond the schema: repayment_amount is explained in the context of reverse-auction competition and bid-step undercutting, and lender_address is tied to balance/allowance reading. It does not add much for auction_id or network beyond what the schema states, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific purpose: it builds an unsigned transaction blueprint for placing a bid on a Gavel auction, including the prerequisite ERC-20 approval when allowance is insufficient. This distinguishes it from the other prepare_* siblings that handle collateral claims, refunds, auction creation, and loan repayment.
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 the agent to use find_auctions_matching_criteria first when the user needs help choosing an auction, and it states that this tool does not choose an auction, rate, or size. It also explains the reverse-auction bidding rule—lower repayment is more competitive and must undercut the current best by the bid step—so the agent knows when a bid is valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_claim_collateral_calldataPrepare a Collateral ClaimAInspect
Builds an unsigned transaction blueprint for a lender to claim the collateral on a defaulted Gavel loan.
Validates that you are the lender and that the loan has passed maturity without repayment. Chain state is authoritative — a repayment in the current block may not be indexed yet, so this tool warns rather than asserts when the margin is thin.
Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| loan_id | Yes | The defaulted loan. | |
| network | No | Network. Default 'arbitrum-one' (mainnet, real funds). | arbitrum-one |
| lender_address | Yes | Your address — must match the loan's lender. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well. It discloses that the tool validates lender identity and maturity, warns rather than asserts when chain state may be stale, returns only an unsigned blueprint, and does not hold keys or broadcast transactions. This gives the agent an accurate model of the tool's side effects and limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The third paragraph repeats the idea of an unsigned transaction blueprint from the first paragraph, creating mild redundancy, but the overall structure is efficient and readable.
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, the description covers the essential behavior: validation, chain-state handling, return of an unsigned blueprint, and user responsibility for signing/broadcasting. It could be slightly more explicit about the exact output shape, but for a calldata-preparation tool the description 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 100%, so each parameter is already documented in the schema. The description reinforces the role of lender_address ('must match the loan's lender') and loan_id ('defaulted loan'), but does not add semantic detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Builds an unsigned transaction blueprint'), a specific resource ('collateral on a defaulted Gavel loan'), and a clear actor ('a lender'). This distinguishes it from sibling calldata-preparation tools such as prepare_repay_loan_calldata or prepare_claim_refund_calldata.
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 clear context for when to use it: the caller is the lender and the loan has defaulted after maturity. It does not explicitly list alternatives or exclusions, but the use case is unambiguous enough that an agent can select this tool correctly without further guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_claim_refund_calldataPrepare a Refund ClaimAInspect
Builds an unsigned transaction blueprint for reclaiming funds held by the protocol after a losing bid.
When you are outbid, your funds stay claimable rather than being pushed back automatically. This encodes the claim for a given token.
Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network. Default 'arbitrum-one' (mainnet, real funds). | arbitrum-one |
| token_address | Yes | The token to reclaim, e.g. the USDC address you bid with. | |
| claimant_address | Yes | Your address — used to check there is a pending refund. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so thoroughly. It discloses that the output is unsigned, that funds are not automatically returned, that the user must review/sign/broadcast, and that Aletheia does not hold keys or dispatch transactions. These are meaningful behavioral boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, followed by workflow context and user responsibility. Every sentence earns its place, and there is no repeated schema content or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter calldata-preparation tool, the description covers the claim scenario, the unsigned nature of the output, and the user's signing/broadcasting responsibility. It could slightly expand on what the returned 'blueprint' contains, but the essential context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented clearly. The description's 'given token' and 'your address' wording loosely mirrors token_address and claimant_address but adds no substantive semantic detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Builds'), a resource ('unsigned transaction blueprint'), and the exact purpose ('reclaiming funds held by the protocol after a losing bid'). The 'when you are outbid' scenario clearly distinguishes this refund-claim tool from sibling tools like prepare_claim_collateral_calldata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use this when the user was outbid and their funds remain claimable. It also explains that the tool only encodes the claim and the user must sign/broadcast. However, it does not explicitly name alternative sibling tools or state 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.
prepare_create_auction_calldataPrepare a Gavel AuctionAInspect
Builds an unsigned transaction blueprint for creating a borrow auction — you post collateral and ask lenders to compete to lend against it — including the prerequisite collateral approval.
Every term is yours to set: which collateral and how much, which loan token and how much, the maximum repayment you will accept, the loan duration, how long the auction runs, and the bid step. This tool encodes what you specify and warns about consequences; it does not propose terms, rates or a loan size.
Lenders bid DOWN from your maximum repayment, so max_repayment is your worst acceptable price — set it too low and the auction may attract no bids.
Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network. Default 'arbitrum-one' (mainnet, real funds). | arbitrum-one |
| bid_step | No | Minimum improvement between bids, decimal string in loan-token units. | 0 |
| loan_token | Yes | Loan token address (what you want to borrow). | |
| loan_amount | Yes | Amount to borrow, decimal string, e.g. '2500.00'. | |
| max_repayment | Yes | The most you will repay at maturity, decimal string. Lenders bid below this. | |
| borrower_address | Yes | Your address — used to read collateral balance and allowance. | |
| collateral_token | Yes | Collateral token address. See get_protocol_reference for whitelisted tokens. | |
| collateral_amount | Yes | Collateral to post, decimal string in token units, e.g. '0.05'. | |
| loan_duration_days | Yes | Loan term in days. | |
| auction_duration_hours | Yes | How long the auction accepts bids, in hours. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses that the output is an unsigned blueprint, that the user must sign and broadcast, that Aletheia holds no keys, and it explains the auction mechanic where lenders bid down from max_repayment. It also reveals that the tool includes the collateral approval step, which is non-obvious behavioral information.
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 four compact paragraphs, each carrying distinct value: purpose, user control/limitations, key auction mechanic, and security/user responsibility. The most important information is front-loaded, and no sentence feels redundant or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no output schema, and no annotations, the description covers all critical aspects: what the tool does, what the user must decide, the risky parameter behavior, the returned output nature, and the wallet custody model. It is fully sufficient for an agent to decide whether and how to invoke this 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 coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema, especially for max_repayment ('your worst acceptable price — set it too low and the auction may attract no bids') and clarifies the role of bid_step among the settable terms. It doesn't need to relist every parameter, but the added auction dynamics explanation improves parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Builds an unsigned transaction blueprint for creating a borrow auction' and clarifies the inclusion of the prerequisite collateral approval. This clearly distinguishes it from sibling calldata builders like prepare_bid_calldata and prepare_repay_loan_calldata, so an agent can tell what this tool is for without needing to open schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes when to use the tool: when creating a borrow auction where you post collateral and ask lenders to compete. It also states what it does not do ('does not propose terms, rates or a loan size'), which helps set expectations. However, it does not explicitly name alternatives or state when not to use it, though the sibling names make the contrast fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_repay_loan_calldataPrepare a Loan RepaymentAInspect
Builds an unsigned transaction blueprint for repaying a Gavel loan, including the prerequisite approval for the repayment amount.
Validates that the loan is live and that you are its borrower. Repay before maturity or the lender may claim your collateral.
Returns an unsigned transaction blueprint for the requested intent. The user is responsible for reviewing, signing, and broadcasting via their own wallet. Aletheia does not hold keys or dispatch transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| loan_id | Yes | The loan to repay. See get_user_positions. | |
| network | No | Network. Default 'arbitrum-one' (mainnet, real funds). | arbitrum-one |
| borrower_address | Yes | Your address — must match the loan's borrower. |
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 clearly states the tool only builds an unsigned transaction blueprint, includes the approval, validates liveness and borrower identity, and that Aletheia does not hold keys or dispatch transactions. This is unusually 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 is front-loaded with the core purpose and stays mostly lean. There is minor redundancy: 'Returns an unsigned transaction blueprint' largely restates the opening 'Builds an unsigned transaction blueprint,' but the rest of the content 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 there is no output schema, the description adequately explains what is returned (an unsigned transaction blueprint), the prerequisites (live loan, borrower), and the safety model (user signs and broadcasts; no keys held). It does not specify exact response shape or error behavior, but that is not essential 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 100%, so the schema already documents loan_id, network, and borrower_address in sufficient detail. The description adds no significant parameter-level meaning beyond confirming the borrower must match the loan, which the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it 'Builds an unsigned transaction blueprint for repaying a Gavel loan' and includes the prerequisite approval. This clearly distinguishes it from sibling prepare_* tools that handle bids, collateral claims, refunds, and auction creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear conditions for correct use: the loan must be live and the caller must be the borrower, and it warns to repay before maturity to avoid collateral loss. It does not explicitly name alternative tools or exclusions, but no repayment-specific sibling exists, so 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
- First observed
check_wallet_status - First observed
find_auctions_matching_criteria - First observed
get_address_history - First observed
get_book - First observed
get_gavel_indicator - First observed
get_loan_status - First observed
get_mvrv - First observed
get_protocol_reference - First observed
get_user_positions - First observed
get_verification_bundle - First observed
get_yield_curve - First observed
list_comparables - First observed
list_fiat_onramps - First observed
list_gavel_indicators - First observed
list_onchain_indicators - First observed
list_wallet_options - First observed
prepare_bid_calldata - First observed
prepare_claim_collateral_calldata - First observed
prepare_claim_refund_calldata - First observed
prepare_create_auction_calldata - First observed
prepare_repay_loan_calldata
Related MCP Connectors
The Bitcoin credit markets, measured. Cross-venue rates, venue criteria, chain indicators.
Agent credit issuance and scoring — programmable credit lines on Base L2
Maker - 10 tools for lending rates, supply, and borrow data
Aave - 6 tools for lending rates, supply, and borrow data
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceUndercollateralized credit lines for autonomous agents based on trust scoring, enabling on-chain credit scoring, agent-to-agent loans, and USDC settlement on Base L2.MIT
- FlicenseNot gradedqualityBmaintenanceNon-custodial Bitcoin DCA for agent treasuries on Celo: approve USDT once and an on-chain agent buys WBTC on schedule, straight back to your wallet. Budget capped by allowance, fees hard-capped on-chain.-
- AlicenseAqualityDmaintenanceP2P Crypto and Flashloans. Lets AI agents browse, quote and (optionally) transact with the FlashBank contracts — the P2P term-loan escrow and the flash-loan router — on Ethereum, Base, Arbitrum and the Sepolia playground.1531 npmMIT
- AlicenseNot gradedqualityCmaintenanceBroker-only credit/lending discovery shim for AI agents, surfacing real lending markets from licensed/established third-party protocols and routing applications.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.