MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Other

io.thegavel/gavel

Oracle-free fixed-rate, fixed-term BTC credit on Arbitrum One. Data and unsigned blueprints.

Checks passed
12 / 22

2 failed · 8 not measured

Median response
70 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
21

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 70 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name aletheia-mcp.

  • Pass
    Lists tools

    tools/list returned 21 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 70 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 70 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    63 of 63 parameters have a description (100%). The bar is 80%.

  • Fail
    Safety hints

    21 tools set neither readOnlyHint nor destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Fail
    Website matches publisher

    The website host does not match the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-08-29T13:25:47.330284Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using io.thegavel/gavel

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http io-thegavel-gavel https://mcp.thegavel.io/mcp

Capabilities

Tools 21

check_wallet_status

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 }.

Discovered
find_auctions_matching_criteria

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 }.

Discovered
get_address_history

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.

Discovered
get_book

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.

Discovered
get_gavel_indicator

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.

Discovered
get_loan_status

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 }.

Discovered
get_mvrv

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.

Discovered
get_protocol_reference

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 }.

Discovered
get_user_positions

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 }.

Discovered
get_verification_bundle

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.

Discovered
get_yield_curve

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.

Discovered
list_comparables

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".

Discovered
list_fiat_onramps

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 }.

Discovered
list_gavel_indicators

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.

Discovered
list_onchain_indicators

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.

Discovered
list_wallet_options

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 }.

Discovered
prepare_bid_calldata

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.

Discovered
prepare_claim_collateral_calldata

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.

Discovered
prepare_claim_refund_calldata

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.

Discovered
prepare_create_auction_calldata

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.

Discovered
prepare_repay_loan_calldata

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. The repayment is transferred directly to the current holder of the lender position. On a USDC loan it reverts if USDC refuses that holder or is paused (known issue KI-3); the blueprint then carries a warning saying so. 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.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected70 ms21