Undertow MCP
Undertow MCP provides read-only market liquidity and exit-cost intelligence for crypto and broader market segments, with public and subscriber tools.
Estimate per-venue BTC exit cost in basis points for a USD position size via
exit_cost.Examine realized BTC depth-collapse episodes and pre-declared thresholds with
depth_episodes.Get a liquidity tier per market segment and funding-stress overlay via
liquidity_tiers.Check BTC/ETH consensus pricing and venue dislocation via
venue_price_reconciliation.Review venue concentration, HHI, effective venue count and per-venue depth via
venue_concentration.See watchlist funds' unwind stress and margin-call states via
unwind_watch.Read the latest Undertow editorial with evidence clock via
latest_article.Verify Undertow's track record through the sealed forward-calls record via
sealed_record.Get exact-rung paper exit context for BTC/USD trade-safety workflows via
trade_safety_exit_context.Check your access tier and daily meter via
agent_access_status.Subscriber tools add the full liquidity board, ETH desk, corporate/household transmission, unwind stress, tide clock, and exit scheduling.
Guided prompts:
can_this_book_exit,exit_cost_check, andmarket_liquidity_briefing.
Provides market liquidity and exit-cost estimates for Binance, including per-venue sell costs in basis points at specified position sizes, depth concentration metrics, and venue rankings across BTC and ETH.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Undertow MCPWhat's the exit cost for selling $1M of BTC on Binance?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Undertow MCP | Market liquidity and exit-cost tools
Endpoint: https://api.seiche.info/undertow/mcp (streamable HTTP, no install)
Start with a question: Compare BTC exit estimates in your browser. Choose a dollar size and click to read the current published venue estimates, snapshot date and method. No account, key, wallet or client installation is needed for this example. The result is a depth-based estimate, not an executable quote. The same page provides Codex, Claude Code, Cursor and VS Code setup.
Try it live: liquilens-undertow.com/developers · API catalog: api.seiche.info/undertow
Undertow exposes estimated exit cost by position size and venue, the concentration of
quoted depth, realized depth-collapse episodes, and liquidity tiers across market segments.
This MCP 1.10.0 endpoint exposes 19 read-only tools, split into 11 public and 8 subscriber
tools, plus 3 guided prompts. Its capability inventory is pinned to liquilens-undertow
commit e472d8862f6317fe5a28ad9a33c093a22d14590a, the hosted implementation at
deploy/hetzner/undertow-mcp. The stdio discovery server in
undertow_mm/mcp_server.py is a separate discovery surface; it is neither
this registry listing nor the public stdio adapter provided here.
Add it
Claude Code:
claude mcp add --transport http undertow https://api.seiche.info/undertow/mcpClaude.ai / ChatGPT / Cursor: add a custom connector or MCP server with the URL above. No key and no wallet for the free surface.
This repository contains the discovery manifest, documentation and an optional
anonymous stdio adapter for the hosted service. The official registry serves
io.github.beepboop2025/undertow version 1.10.0.
Related MCP server: financial-trading-risk-aiops-assistant
Local stdio and container installation
The direct hosted URL above remains the simplest connection. For clients that require stdio, clone this repository at a reviewed commit and use Python 3.12+ and uv:
uv sync --locked
uv run --locked undertow-mcpA Claude Desktop configuration can use uv as its command and
["run", "--directory", "/absolute/path/to/undertow-mcp", "--locked", "undertow-mcp"]
as its arguments. The stdio adapter exposes only the 11 anonymous tools and
three prompts; subscriber access uses the direct hosted URL instead.
For Docker and Glama's container build:
docker build -t undertow-mcp .
docker run --rm -i undertow-mcpThe root Dockerfile runs as an unprivileged user and starts stdio directly.
No API key, bearer token, wallet, port, volume or environment setting is needed.
Outbound HTTPS access to the fixed api.seiche.info endpoint is required.
Redirects, environment proxies and arbitrary upstream URLs are disabled.
Requests are capped at 64 KiB, responses at 2 MiB, and each upstream operation
at 10 seconds including queue wait. No automatic retries or response cache can
hide outages or spend a quota twice. Upstream version/catalog drift fails closed.
Tool results, native isError values and rights refusals are preserved.
A Glama maintainer can configure the root Dockerfile, complete its build test, and publish a Glama release from the listing's admin page. A GitHub commit or release does not create a Glama release. This repository does not claim a grade until Glama has actually rescanned and inspected it. See Glama's release guide.
Hosted protocol compatibility
2026-07-28: stateless requests useserver/discover, per-request_meta,MCP-Protocol-Version, and mirroredMcp-Method/Mcp-Namerouting headers.2025-11-25,2025-06-18, and2025-03-26: retained legacy initialization, tools, prompts, notifications, batching, and ping behavior.Discovery identifies all eleven public and eight subscriber tools. Anonymous
tools/listreturns only the public inventory; entitlement is checked fresh on every subscriber request.resources/listandresources/templates/listreturn explicit empty catalogs.resources/readreturns a not-found error and never invents a resource.
Example
In the snapshot generated at 2026-08-08T15:01:22Z, selling $1,000,000 of BTC at the selected $1,000,000 published size rung cost 2.386 bp on Binance and 13.623 bp on Bitfinex: about $238.60 against $1,362.30. Gemini was the dearest observed venue in that same snapshot at 25.852 bp, or about $2,585.20.
Venue rankings can change during the day, and those differences are not visible in a single consolidated price. Undertow publishes the observation time and venue inputs with the estimate.
Tools
Tool | What it serves | Surface |
| Your current tier, daily meter, grants, and the exact route to Agent or Desk access | free |
| Every measure with its stress percentile or ACCRUING label, limits and analyst note | subscriber |
| Whether funding stress is reaching nonfinancial firms | subscriber |
| Realized depth-collapse episodes with onset, trough, drawdown and recovery, against thresholds declared before any episode accrued | free |
| Compact comparison of corporate and household transmission regimes | subscriber |
| Per-venue sell cost in basis points at the nearest published size rung, cheapest and dearest venue with approximate dollar cost, and the venue spread | free |
| BTC and ETH at every published rung, plus the venue-failure withdrawal scenario | subscriber |
| Position-sized hour-by-hour liquidation schedule beside immediate and TWAP baselines | subscriber |
| Whether funding stress is reaching household balance sheets | subscriber |
| The exact reviewed daily market-liquidity editorial with its evidence clock and publication authority | free |
| A liquidity tier per market segment (UST, IG, HY, equities, ETF, FX, China basin, crypto) with the funding-stress overlay | free |
| Bounded Palimpsest and Seiche research discovery with source clocks, availability and no blended score | free |
| The sealed forward-calls record, hash-chained and signed before outcomes, misses kept | free |
| Clock-phase liquidity map and exit-cost-by-phase for BTC or ETH perpetuals | subscriber |
| Exact-rung BTC/USD sell context with request, PIT, rights, clock and depth checks; unavailable inputs remain unavailable, never order clearance | free |
| Full institutional unwind and forced-sale stress pack | subscriber |
| Banded public watch over institutional unwind time and forced-sale pressure, with exact sensitive quantities withheld | free |
| The BTC depth backbone: top venue share of aggregate depth, HHI, effective venue count, per-venue depth in USD | free |
| A consensus mark weighted by resting depth over squared half-spread, plus the gap between the deepest venue and consensus | free |
Prompts
Prompt | Guided playbook |
| Compare watched-book door width, unwind horizon, margin clock, venue concentration, and realized depth collapses |
| Price a position-sized exit across venues and identify the observed depth limitations |
| Read the market-level liquidity board, funding overlay, concentration, and current exit-cost evidence together |
Commodity futures are intentionally absent from that table. Undertow has no
licensed point-in-time depth by contract month, venue and session, so
executable commodity exit cost is CANNOT_ASSESS_EXECUTABLE_EXIT_COST; open
interest or daily volume is never substituted. For aggregate WTI/Henry Hub
cash pressure, Cushing and benchmark structure, call Seiche's public
oil_funding_context or use /oil in
@seiche_desk_bot.
Limitations
PARTIAL is not calm. A segment reads PARTIAL when fewer than two of its measures have earned a scoring history. Four of nine segments read PARTIAL on 2026-07-30, and the board says so instead of guessing.
Exit costs are estimates, interpolated from published quote depth at the 1% and 2% bands. Never a book walk. The snapshot refreshes roughly hourly, so it is a snapshot and not a real-time feed.
Crypto measures are still accruing, so the board has not earned a crypto stress percentile and you should never quote one from it.
The sealed record includes misses. Calls are hash-chained and signed before their outcomes are knowable, then scored against the point-in-time board.
Commodity execution is a declared coverage gap. Ballast is useful upstream context from Seiche, not a depth ladder and not an Undertow exit-cost estimate.
Research and market data, not investment advice.
Subscriber tier
The Agent and Desk tiers unlock the eight subscriber tools. Send /agent to the
Telegram bot to mint a bearer token:
{
"mcpServers": {
"undertow": {
"url": "https://api.seiche.info/undertow/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}The token proves identity only. Entitlement is re-read from live membership on
every call, so access stops when the subscription does rather than when the token
expires. Subscriber tools are invisible to an anonymous tools/list, and
agent_access_status tells you where you stand.
Only tools/call is metered, reported on X-MCP-Usage-Used, X-MCP-Usage-Limit
and X-MCP-Usage-Remaining. GET /undertow/mcp/usage is the self-meter. Hitting a
quota returns a normal JSON-RPC result carrying isError and an upgrade pointer,
never a dropped connection.
About this repository
This repo is the listing: a README and the two manifests that let directories
describe the server accurately. The server itself is hosted at the endpoint above;
its source is deploy/hetzner/undertow-mcp in the
Undertow product repository
and the registry target remains hosted 1.10.0. The adapter forwards the native public schemas and results without computing
market values or granting subscriber access. Its own version is 0.1.0; the
upstream contract is 1.10.0.
Verification and deployment boundary
The verification workflow validates the exact 40-character releaseCommit in
contract.json against the immutable source receipt in source-receipt.json. The
receipt binds that commit and contract to SHA-256 digests of the hosted implementation
and registry manifest without granting this public repository access to the private
product repository. A maintainer creates or updates the receipt only after running the
local pinned-core verifier against a clean checkout; that verifier derives the
public/subscriber split, prompt inventory, protocol versions, server identity and
registry manifest directly from the source and checks both artifact digests. A branch
name or current product-repository HEAD is never accepted as release provenance.
A separate scheduled and manually dispatchable smoke makes anonymous, read-only calls
to the listed endpoint. It initializes the legacy protocol, exercises modern discovery,
checks the public tools, subscriber advertisement, prompts and explicit empty resource
catalogs, then calls agent_access_status. It does not use a bearer token or exercise a
subscriber tool. Run the same checks locally with:
uv run --locked python -m unittest discover -s tests -v
python3 scripts/verify_core_pin.py --receipt
python3 scripts/verify_core_pin.py --core /path/to/exact/core/checkout
python3 scripts/smoke_live_mcp.pyThe source pin is a reviewed contract boundary, not an HTTP deployment receipt. Undertow's release controller records the deployed SHA and append-only receipts on the host, while the public MCP response currently reports its semantic version and capability catalog but no exact Git commit. Therefore a green live smoke proves the published behavior, not that the host runs this exact SHA. Do not repin this listing from a matching version or catalog alone; require the host's exact successful deployment receipt (or an equivalent authenticated SHA attestation) first.
Siblings from the same lab
Seiche: US dollar funding stress.
LiquiLens: bank, NBFC and lender failure risk, and whether that stress is reaching firms and households.
groundcheck: claim grounding and citation verification for general text.
Palimpsest: live internet-censorship signals.
Human front door: liquilens-undertow.com and the Telegram desk.
License
The original public integration code and documentation in this repository are MIT licensed. See NOTICE.md for scope: this grant does not cover the private Undertow service or third-party market data. Native access controls, evidence limitations and source-rights holds still apply.
Available Tools
10 toolsagent_access_statusYour access + meterARead-onlyIdempotentInspect
Where this caller stands: whether the bearer token verified, the entitlement tier behind it (checked fresh, never trusted from the token), today's tool-call meter, and how to get full access. Call this first when a subscriber tool is missing from tools/list or a call is refused.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true and idempotentHint=true, and the description adds meaningful behavior beyond them: it explains that the entitlement tier is 'checked fresh, never trusted from the token' and that a tool-call meter is included. This gives an agent useful expectations about safety and freshness without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two dense sentences with no filler. It front-loads the core status information and then gives a concrete diagnostic trigger. Every clause serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only diagnostic tool, the description covers the key output areas: token verification, entitlement tier, usage meter, and access escalation. The only minor ambiguity is the exact meaning of 'meter' (used calls vs. remaining allowance), but the overall picture is complete enough for an agent to call the tool appropriately.
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 no parameters, so the schema fully covers the input surface. The description therefore does not need to compensate for missing parameter documentation. This matches the baseline for zero-parameter tools.
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 this as a status/access tool: it reports whether the bearer token verified, the entitlement tier, today's tool-call meter, and how to gain full access. Although it lacks an explicit imperative verb like 'returns' or 'reports', the content is specific enough that an agent can determine the tool's purpose. It also implicitly stands apart from the sibling data tools such as latest_article and venue_concentration.
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 concrete trigger: 'Call this first when a subscriber tool is missing from tools/list or a call is refused.' This is clear contextual guidance for when to use the tool. It does not name alternatives or list when not to use it, but for a diagnostic status tool this is a solid and actionable usage cue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
depth_episodesRealized depth collapsesARead-onlyIdempotentInspect
Realized depth-collapse episodes in BTC ±1% aggregate depth: onset, trough, drawdown fraction and recovery time for each episode that crossed the pre-registered threshold. Detection rules were declared before any episode accrued. Use when asked whether crypto liquidity has actually broken lately, as opposed to how it looks right now. The subscriber exit_desk_full carries the ETH desk beside BTC.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint=false, and idempotentHint, covering safety and world assumptions. The description adds valuable methodological transparency: detection rules were 'declared before any episode accrued' and episodes 'crossed the pre-registered threshold,' which signals that results are pre-committed rather than ad hoc. No conflict with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core subject and output fields in the first sentence. The usage cue is clear and efficient. The final sentence about 'subscriber exit_desk_full' is somewhat cryptic and references a tool not present in the sibling list, slightly reducing clarity, but it does not make the description bloated.
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 and no parameters, the description carries the burden of explaining what the agent will receive, and it does list the key fields: onset, trough, drawdown fraction, and recovery time. It also gives the scope (BTC ±1% aggregate depth) and the intended use case. It stops short of explaining units, date ranges, or how the threshold is defined, but it is adequate for a zero-parameter historical data 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 is empty with zero parameters, so there are no parameter semantics to clarify. Per the baseline for zero-parameter tools, the description doesn't need to compensate for missing parameter docs. The description instead focuses on the output fields, which is appropriate here.
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: 'Realized depth-collapse episodes in BTC ±1% aggregate depth,' and enumerates the concrete outputs (onset, trough, drawdown fraction, recovery time). It clearly separates this tool from current-state liquidity views by framing it as historical 'actually broken lately' rather than 'how it looks right now.' This is specific enough to distinguish it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger condition: 'Use when asked whether crypto liquidity has actually broken lately, as opposed to how it looks right now.' This tells an agent when to select it, though it does not name a specific alternative tool to use instead, relying on the contrast with current-snapshot views. The reference to exit_desk_full for the ETH desk adds scope context but is not a full when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exit_costExit cost at your size, per venueARead-onlyIdempotentInspect
What selling a position of a given USD size costs RIGHT NOW, venue by venue, from live public order books (BTC, six venues). Returns the per-venue cost in basis points at the nearest published size rung, the cheapest and dearest venue with approximate dollar cost, and the venue spread. Estimates interpolated from published quote depth — never a book walk, refreshed roughly hourly. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| size_usd | No | position size in USD (published rungs run $1,000 to $1,000,000; nearest rung is used) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses that values are interpolated from published quote depth, are never a book walk, and refresh only roughly hourly. It also includes a non-advice caveat, giving the agent an accurate picture of staleness and precision without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences lead with the core function, then the returned data, then the estimation methodology and disclaimer. Every sentence earns its place and no wording is redundant with the title or schema.
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 key return elements (per-venue bps cost, cheapest/dearest venue, approximate dollar cost, venue spread) and the operational constraints (six BTC venues, hourly refresh, nearest rung). An agent has enough to invoke the tool and interpret its result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents size_usd and its rung behavior completely, so the description adds little parameter-level detail beyond repeating that the size is in USD. This meets the baseline for full schema coverage but does not exceed it.
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 exactly what the tool computes: the current cost of selling a position of a given USD size, per venue, from live public order books for BTC across six venues. This clear resource-and-operation framing separates it from sibling tools such as liquidity_tiers or venue_concentration, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use evident ('what selling ... costs RIGHT NOW, venue by venue') and notes the data is refreshed roughly hourly, so an agent can decide it is appropriate for current exit-cost estimates. It does not explicitly state when not to use it or name alternatives, 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.
latest_articlelatest_articleARead-onlyIdempotentInspect
The exact full-text Undertow editorial published today, with its evidence clock, generation mode and passing quality receipt. This returns the canonical revision verbatim and never rewrites facts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds useful behavioral guarantees: return the canonical revision verbatim and never rewrite facts. This goes beyond the structured hints and is consistent with them; no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the key result ('exact full-text Undertow editorial published today') and then reinforce the canonical/verbatim guarantee. There is no filler, and every clause adds substantive 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?
With no output schema, the description still explains what the agent will receive: full text, evidence clock, generation mode, passing quality receipt, and canonical revision. Minor gaps exist around exact formatting or availability timing, but for a zero-parameter read operation the definition is sufficient.
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, so no parameter documentation is needed. The schema coverage baseline for zero-parameter tools is 4, and the description appropriately focuses on return behavior rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource ('Undertow editorial published today'), a clear retrieval verb ('returns'), and precise scope ('exact full-text', 'canonical revision verbatim'). It clearly stands apart from the sibling tools, which appear to be access-status, liquidity, and exit-context tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when the agent needs the authoritative, unmodified full text of today's Undertow editorial, along with its evidence clock, generation mode, and quality receipt. It does not explicitly name alternatives or say when not to use it, 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.
liquidity_tiersFull board: tiers + fundingARead-onlyIdempotentInspect
The Undertow board's TIER ROW: one liquidity tier per market segment (UST, IG, HY, EQUITY, ETF, FX, CN, CRYPTO, BSTOCK) plus the funding-stress overlay regime. PARTIAL means insufficient scoring history, reported honestly instead of guessed. Use for 'how liquid are markets today' at one glance, then drill into crypto with the other tools; the FULL board (every measure with its stress percentile and analyst note) is the subscriber board_full tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds behavioral value by disclosing that PARTIAL means insufficient scoring history and is reported honestly rather than guessed, and it clarifies the funding-stress overlay regime.
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 sentences, each earning its place: the first defines the content, the second clarifies a data-quality convention, and the third gives usage direction and names the alternative. Information is dense but well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with annotations covering idempotency and read-only behavior, the description is complete. It communicates the scope, the meaning of a status value, and how to navigate to more detailed alternatives.
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 the description carries no parameter burden. The baseline of 4 applies because there are no parameters to explain.
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 resource (Undertow board's TIER ROW), enumerates the market segments covered, and explains the funding-stress overlay. It also distinguishes itself from the subscriber board_full tool, so an agent can tell exactly what this tool returns.
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 states when to use the tool ('how liquid are markets today' at one glance) and points to board_full as the fuller alternative. It mentions drilling into crypto with 'the other tools' without naming them, which is slightly vague, but overall usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sealed_recordSealed calls record (misses kept)ARead-onlyIdempotentInspect
Undertow's own sealed forward-calls record: every call hash-chained and signed BEFORE its outcome, scored against the immutable point-in-time board for its horizon date, with misses kept published. Returns the full record with outcomes and the ledger root. Use when asked whether Undertow's judgements can be trusted, and quote the misses as prominently as the hits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the description's job is to add trust-relevant behavior. It does, stating that calls are hash-chained and signed before outcomes, scored against an immutable point-in-time board, and that misses remain published. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: definition/provenance, return value, and usage guidance. The most revealing trait ('signed BEFORE outcome') is front-loaded, and no words are wasted.
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 tool with no output schema, the description provides enough context: what the record is, why it is trustworthy, what is returned, and when to use it. Nothing essential is missing for an agent to select and 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?
There are zero parameters and schema coverage is 100%, so the description cannot add parameter-level meaning. The baseline for a parameterless tool is met, and the description instead clarifies what the returned record will contain.
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 resource (Undertow's sealed forward-calls record) and states that the tool returns the full record with outcomes and ledger root. It also differentiates itself by emphasizing provenance features—hash-chained, signed before outcome, misses kept—which no sibling description hints at.
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 provides a trigger condition: 'Use when asked whether Undertow's judgements can be trusted...'. There are no named alternatives or when-not conditions, but among the listed siblings none is an obvious substitute, so the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trade_safety_exit_contextPIT-bound exact-rung paper exit contextARead-onlyIdempotentInspect
Exact-rung BTC/USD sell evidence for observe/paper Trade Safety. Binds the opaque request, source pack and reviewed rights to PIT; rechecks USD/USDT conversion, required bid bands, six venue clocks and startup SHA. Context only: no nearest rung, live mode, execution or clearance authority.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| side | Yes | ||
| venue | Yes | ||
| instrument | Yes | ||
| request_hash | Yes | Opaque complete-request hash | |
| requested_size_usd | Yes | Exact published USD rung |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description exposes meaningful internal behavior: it binds the request to PIT and rechecks USD/USDT conversion, required bid bands, six venue clocks, and startup SHA. It also disclaims nearest-rung, live, execution, and clearance behavior. No contradiction exists between the description and the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the primary purpose, and each sentence earns its place: the first states what the tool returns, the second what it verifies, and the third what it explicitly does not do. The dense acronyms are acceptable given the tightly scoped domain and the absence of redundant 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 makes the read-only, idempotent, context-only nature clear, and it enumerates the internal checks the tool performs. But there is no output schema, and the description never specifies the shape or concrete contents of the returned 'evidence.' An agent knows when to call it and what it will not do, yet lacks a clear picture of what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage, the description partially compensates: 'sell' maps to side, 'BTC/USD' to instrument, 'observe/paper' to mode, and 'exact-rung' to requested_size_usd. However, it does not clarify the venue null constraint or explain terms like 'source pack' and 'reviewed rights' in relation to the parameters, leaving the parameter story incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: it returns 'Exact-rung BTC/USD sell evidence for observe/paper Trade Safety.' The description further distinguishes the tool by explicitly saying it is 'Context only' and that it provides 'no nearest rung, live mode, execution or clearance authority,' which separates it from execution-oriented siblings like exit_cost or unwind_watch.
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 clearly identifies the intended use case: observe/paper Trade Safety. It also gives explicit exclusions, noting the tool is not for live mode, execution, or clearance authority. However, it does not name an alternative sibling to use when those exclusions apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unwind_watchCan the watched books exit? (free)ARead-onlyIdempotentInspect
Can a watched fund's book actually leave the building? Unwind stress for the watched 13F filers (incl. the Situational Awareness LP replay): effective position count, whole-book days-to-exit at 10% of a median day's volume (bracketed as-if median large / median small-mid name, and each count published as a band that contains it rather than as a point, because the exact count returns the basket's median dollar volume by one division), and the leverage x shock x maintenance margin grid with its three honest states (NO_CALL / CALL / EQUITY_EXHAUSTED). Default is the per-filer headline; pass cik for one filer's full free row. Display-only measure on frozen grids; 13F sees no shorts or options, so every number is a floor. Use when asked whether a fund's book could exit, or what the Aschenbrenner failure mode looks like in a current filing. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | optional: SEC CIK of a watched filer (returns that filer's full FREE row instead of the all-filer headline) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, and the description strengthens these by explaining that the measure is display-only on frozen grids, that 13F filings exclude shorts/options, and that all numbers are floors. It also discloses non-obvious output behavior such as reporting counts as bands rather than points and returning one of NO_CALL / CALL / EQUITY_EXHAUSTED.
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 and information-rich but not especially concise or scannable. Important 'when to use' guidance appears near the end, and the parenthetical explanation about why counts are bands adds interpretive detail beyond what is needed for tool selection/invocation. The 'Not investment advice' tag is also non-essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description does a good job compensating by enumerating the main output components: effective position count, whole-book days-to-exit, the margin grid states, and the default versus per-filer row behavior. It also conveys the tool's limitations. A structured field-by-field output contract would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage of its single optional cik parameter, including the meaning of omitting it versus passing it. The description's 'Default is the per-filer headline; pass cik for one filer's full free row' mostly restates the schema rather than adding new parameter-level semantics.
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 a specific verb and resource: it measures whether a watched 13F filer's book can exit by reporting position counts, days-to-exit bands, and a leverage/shock/maintenance-margin grid. It also explicitly ties the tool to a concrete question ('whether a fund's book could exit'), which distinguishes it from generic exit-cost or liquidity tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'Use when asked whether a fund's book could exit, or what the Aschenbrenner failure mode looks like in a current filing.' It also notes important exclusions via 'Display-only measure on frozen grids' and '13F sees no shorts or options, so every number is a floor.' It does not name sibling tools as alternatives, so it stops just short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
venue_concentrationDepth concentration todayARead-onlyIdempotentInspect
How concentrated the BTC depth backbone is today: which venue holds the largest share of ±1% aggregate depth, the HHI, the effective venue count (1/HHI), and per-venue depth in USD. Low effective venue count means an exit depends on one venue staying open. The subscriber exit_desk_full adds ETH and the venue-failure withdrawal scenario (what your exit costs if the top venue goes dark).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful interpretive context about what low effective venue count implies, without contradicting the annotations or introducing hidden behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the core question, immediately enumerate the output fields, define HHI inline, and add a meaningful interpretation. No filler or redundant restating of the title.
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 input schema and no output schema, the description carries the full burden of explaining what the agent will receive. It lists every major output component and the practical significance of the result, making the tool complete for correct invocation and interpretation.
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, so there is no parameter documentation burden. The description instead focuses on the output metrics, which is appropriate. Baseline for zero-parameter tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a daily readout of BTC depth concentration, specifying the exact metrics: largest venue share, HHI, effective venue count, and per-venue depth in USD. It also contrasts itself with 'exit_desk_full' by noting what that alternative adds, helping an agent distinguish it from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context for when the readout matters ('Low effective venue count means an exit depends on one venue staying open') and explicitly mentions an alternative for ETH or venue-failure scenarios. It could more directly name which sibling tools to use instead, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
venue_price_reconciliationConsensus price when venues disagreeARead-onlyIdempotentInspect
What the price IS when venues disagree: the cross-venue consensus mark for BTC and ETH, weighted by resting depth over squared half-spread (NOT a median of last prices), with the BLINDNESS GAP — how far the deepest venue sits from consensus, i.e. how wrong you would be pricing off the venue you would naturally trust — plus depth concentration (CR1/HHI) and the names of any dislocated venues. Use for 'what is BTC/ETH actually worth right now', 'is an exchange dislocated', or before trusting any single venue's price. Experimental until its accrual gates pass; the payload says so. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description goes further by revealing the weighting methodology, the blindness gap concept, depth concentration metrics, dislocated venue names, and the experimental status with payload notification. This is valuable behavioral context beyond any structured field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: definition, formula, exclusions, key outputs, use cases, experimental caveat, and disclaimer. It front-loads the core meaning and then layers supporting details without 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?
Despite having no output schema, the description enumerates the key return elements: consensus mark, blindness gap, depth concentration, dislocated venues, and experimental payload flag. For a zero-parameter tool, this provides a complete picture of what to expect and how to 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?
The tool has zero parameters, so there is no parameter ambiguity to resolve. The schema is empty with 100% coverage, so the description does not need to compensate for undocumented inputs. The baseline for zero-parameter tools is 4, and the description adds no conflicting or confusing parameter-related information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: computing a cross-venue consensus mark for BTC and ETH. It clearly distinguishes itself from a simple median or single-venue price by specifying the exact weighting formula and explicitly saying what it is NOT. This makes the tool's purpose unmistakable even among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases: 'what is BTC/ETH actually worth right now', 'is an exchange dislocated', and 'before trusting any single venue's price'. It also warns that the tool is experimental until accrual gates pass. However, it does not explicitly name when to avoid this tool or point to a sibling alternative, though the use cases are clear enough.
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.
10 tool updates
v0.1.0- First observed
agent_access_status - First observed
depth_episodes - First observed
exit_cost - First observed
latest_article - First observed
liquidity_tiers - First observed
sealed_record - First observed
trade_safety_exit_context - First observed
unwind_watch - First observed
venue_concentration - First observed
venue_price_reconciliation
TDQS
Scored across 10 tools
Most tools have distinct research outputs, but several live in the same BTC-depth/liquidity space (depth_episodes, venue_concentration, venue_price_reconciliation, exit_cost, trade_safety_exit_context). The descriptions separate them well, though exit_cost and trade_safety_exit_context could be confused at first glance.
All ten names follow a consistent lowercase snake_case noun-phrase convention, such as agent_access_status, liquidity_tiers, and venue_price_reconciliation. There is no mixing of naming styles, abbreviations, or inconsistent verb usage.
Ten tools is a well-scoped size for a specialist liquidity and research server. Each tool addresses a distinct workflow area: access, editorial, trust, liquidity tiers, depth episodes, venue pricing, exit cost, and fund unwind stress.
The set covers the core domain well: access checks, current liquidity overview, crypto depth analysis, venue price reconciliation, exit cost, fund unwind risk, editorial content, and sealed trust evidence. Minor gaps exist, such as no article archive and no ETH-specific depth episodes outside referenced subscriber tools, but these are disclosed rather than hidden and do not block primary workflows.
Maintenance
Related MCP Connectors
Read-only market research: index funds, event cards, CLOB data, fund analytics. No orders.
Liquidation tape, exit liquidity, derivatives and Solana data. Per-call USDC over x402 or MPP.
Free read-only crypto whale-tracking & market-data MCP tools across 14 chains. No auth.
Agent-native crypto market-data over MCP+REST: order flow, whales, liquidations, calibrated scores
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.713MIT
- AlicenseNot gradedqualityAmaintenanceProvides read-only MCP tools for market snapshots, position risk, order reconciliation, and daily report previews with deterministic financial calculations, evidence chains, and audit trails.MIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only access to Hyperliquid's public market, user, vault, and staking data via 61 MCP tools, covering perpetuals, spot, and borrow-lend information.MIT
- AlicenseAqualityBmaintenanceProvides read-only Robinhood Chain market intelligence so AI agents can inspect token liquidity, simulate and compare size-aware exit pressure against observed pool depth, and explain the resulting grades with evidence and limits.511MIT