# LiquiLens — the Failure Radar (remote · api.liquilens.in)

Bank and lender failure early warning, with the validated record served beside every claim.

- Trust score: 70/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `api.liquilens.in`: 70/100 (this document), [markdown](https://verifymcp.io/servers/beepboop2025-liquilens/api.md), [page](https://verifymcp.io/servers/beepboop2025-liquilens/api)

## Channel facts

- Endpoint: `https://api.liquilens.in/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.3.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 13 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2439 tokens (~187/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http beepboop2025-liquilens https://api.liquilens.in/mcp
```

### Codex

```toml
[mcp_servers.beepboop2025-liquilens]
url = "https://api.liquilens.in/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "beepboop2025-liquilens": {
      "type": "remote",
      "url": "https://api.liquilens.in/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add beepboop2025-liquilens --url https://api.liquilens.in/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  beepboop2025-liquilens:
    url: "https://api.liquilens.in/mcp"
```

### Other

```json
{
  "mcpServers": {
    "beepboop2025-liquilens": {
      "type": "http",
      "url": "https://api.liquilens.in/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 70, +2)

- [functional regression] Schema quality: 2088 → 2439
- [functional] The server now declares the “prompts” capability
- [functional] First check of Schema quality: 100
- [functional] Schema quality: excellent → good
- [functional] New prompt “stress_evidence_pack”
- [functional] New prompt “institution_health_check”
- [functional] New prompt “failure_radar_briefing”
- [functional] Server version: 1.1.0 → 1.2.0

### 2026-08-01 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 67, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 64, 0)

- [functional regression] Schema quality: 1712 → 2038
- [functional] Server version: 1.0.0 → 1.1.0
- [functional] New tool “household_credit_board”
- [functional] New tool “corporate_transmission_board”

### 2026-07-29 (score 64, −1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Schema quality: excellent → good

### 2026-07-28 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 64, +10)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 54)

First indexed and scored.

## MCP tools (13)

### `failure_radar_board` (~146 tokens)

Failure Radar board (India)

Read the live Failure Radar board for India: one row per institution with a fresh vetted dossier — banks, small finance banks, co-operative banks, NBFCs, MFIs and HFCs. Each row carries a corpus-calibrated failure PD term structure (12/24/36 months), a disclosure score, RBI PCA/SAF action-zone status, a funding-fragility index, market-implied distance-to-default for listed names, and a watchlist tier assigned under a published rule. Takes no arguments. Call this first to discover institution slugs, then failure_radar_institution for one name's full dossier. Outputs are research screens, not credit ratings.

### `failure_radar_institution` (~116 tokens)

Failure Radar institution dossier

Read the full radar dossier for one Indian institution: per-quarter score and failure-PD trajectory with named drivers, RBI PCA/SAF headroom history, the funding-fragility read, forensic-screen evidence, and the market reading for listed names. Call failure_radar_board first to discover valid slugs; an institution without a vetted dossier is reported absent, never scored from memory.

Input parameters:

- `slug` (string, required): kebab-case institution slug from a failure_radar_board row, e.g. 'esaf-sfb'

### `evidence_markets` (~93 tokens)

Validation record: all markets

Read the validation record's headline for each market: India (48-institution point-in-time backtest), United States (industry-wide watchlist backtest over 552 failures), and Europe (named audited case files, deliberately no cohort claim). Takes no arguments. Start here when asked whether LiquiLens is validated, then drill into evidence_india, evidence_us or evidence_europe for the full record behind each headline.

### `evidence_india` (~75 tokens)

Validation record: India backtest

Read the full Indian crisis record: 48 institutions replayed point-in-time from vetted public filings across two decades, with per-institution verdicts, lead times in months, uncertainty intervals and the rigor artifacts — misses and false alarms included, never trimmed. Takes no arguments. Use evidence_institution for one institution's complete replay.

### `evidence_institution` (~115 tokens)

Validation record: one Indian replay

Read one Indian institution's complete point-in-time crisis replay from the 48-institution validation record: the scored quarterly trajectory, the sourced dossier rows behind each score, first-alert bookkeeping (when each lens first fired relative to the failure), and the plain verdict line — hit, miss or false alarm. Call evidence_india first to list the replayed institutions and their slugs.

Input parameters:

- `slug` (string, required): kebab-case slug of a replayed institution, e.g. 'dhfl' or 'global-trust-bank'

### `evidence_us` (~198 tokens)

Validation record: US watchlist backtest

Read the US bank validation record: every FDIC-insured bank scored quarterly from free call-report data, replayed against all 552 receivership failures since 2008 — recall 72.8% at a 21.7-month median lead, AUC 0.854. Includes the marquee replays (SVB, Signature, First Republic, both 2026 catches), the fraud-driven miss kept in full view, and the seven named 2023-2026 misses, published the week they failed; the 2026 scoreboard reads 2 of 4 flagged a year early. Read the semantics before quoting: the flag is a budgeted watchlist (top decile per quarter), not an institution-level verdict, so report the budget beside the recall and the misses beside the hits.

Input parameters:

- `include_trajectories` (boolean): also return per-quarter score series for the marquee replays (large payload); default false

### `evidence_europe` (~144 tokens)

Validation record: European case files

Read the seven European case files replayed point-in-time through the unrecalibrated Indian lenses: Credit Suisse, Banco Popular, Northern Rock and Banco Espirito Santo (failed); Deutsche Bank and Monte dei Paschi (stressed survivors); UBS (control). Every figure is audited against the primary filing it cites. Without arguments, returns all seven verdict summaries; pass slug for one full case file with its per-quarter table. These are case studies with citations, deliberately not a cohort — there is no European recall percentage to quote.

Input parameters:

- `slug` (string): optional kebab-case case-file slug, e.g. 'credit-suisse'; omit for all seven summaries

### `universe_search` (~162 tokens)

RBI NBFC register search

Search the RBI's official register of NBFCs (9,000+ entries) by name or CIN substring, optionally filtered by RBI classification and Scale Based Regulation layer. Returns matching register rows verbatim from the public record: official name, CIN, classification and layer. Give at least one of q, classification or layer; an empty q with a filter browses that whole slice.

Input parameters:

- `classification` (string): exact RBI classification as it appears in the register, e.g. 'MFI' or 'HFC'
- `layer` (string): Scale Based Regulation layer filter
- `limit` (integer): maximum rows to return (default 20, capped at 50)
- `q` (string): case-insensitive substring of the registered name or CIN

### `rbi_supervisory_tape` (~79 tokens)

RBI supervisory tape

Read the latest RBI enforcement and supervisory actions — monetary penalties, licence cancellations and supervisory directions — parsed from rbi.org.in press releases, newest first, each item carrying the RBI's own source URL. Takes no arguments. When no tape snapshot exists on the deployment, says so in a stated note instead of returning silent emptiness.

### `verify_published_record` (~103 tokens)

Verify the published record

Independently verify the as-published record for a ledger stream: recompute the hash-chained point-in-time commitments, check signatures and anchors where enabled, server-side, and return the verifier's verdict verbatim — even when unflattering; that is the point. Use this to check whether the published early-warning track record is tamper-evident and intact.

Input parameters:

- `stream` (string): ledger stream name to verify (default 'mfi_watchlist')

### `corporate_transmission_board` (~260 tokens)

Corporate Transmission board (US)

Answers ONE question: whether FUNDING stress is reaching nonfinancial FIRMS — not banks (failure_radar_board), not households (household_credit_board), not money-market plumbing (the Seiche sibling server). Read the Corporate Transmission board for the US basin: is funding stress reaching nonfinancial firms? Channels from free public data (FRED keyless, AOUSC bankruptcy filings): the nonfinancial CP market (spread over bills + the book failing to roll), bank credit lines (C&I revolver drawdown + SLOOS standards tightening), the real-economy confirmation (claims, capex orders, inventories, openings, business bankruptcies), and a balance-sheet context channel capped at WATCH. Serves a TRANSMISSION verdict (counted co-occurrence of the funding and real sides) and a divergence read against the sibling bond board's served regime. Channels that cannot be read are listed in cannot_see, never reported as calm. Display-only: feeds no institution score and no watchlist tier. Returns ~4KB slim by default; pass full:true for thresholds, per-leg basis and method prose.

Input parameters:

- `full` (boolean): also return method_note, thresholds and per-leg basis prose (larger payload); default false

### `household_credit_board` (~238 tokens)

Household Credit board (US)

Answers ONE question: whether stress is reaching US HOUSEHOLD balance sheets — not firms (corporate_transmission_board), not banks (failure_radar_board), not money-market plumbing (the Seiche sibling server). Read the Household Credit board: is stress transmitting through US household balance sheets? From free public data (FRED keyless): Fed quarterly delinquency and charge-off legs (card, consumer, mortgage, card charge-offs — level vs each leg's own trailing decade AND the yoy direction; falling never scores), G.19 revolving-credit velocity (two-sided — both tails historically meant stress), and the debt-service ratio as unscored context. The transmission thesis runs household -> corporate -> institution: this board confirms what the funding boards lead. Channels that cannot be read are listed in cannot_see, never reported as calm. Display-only: feeds no institution score and no watchlist tier. Returns ~4KB slim by default; pass full:true for thresholds, method prose and full sparklines.

Input parameters:

- `full` (boolean): also return method_note, thresholds, labels and full sparklines (larger payload); default false

### `forward_odds` (~118 tokens)

Markov forward odds per layer

Read the Markov forward odds for every state-bearing public-signal layer: the daily CALM/WATCH/ALARM state chain counted into a transition matrix, plus empirical k-day reach odds from today's state ('given today's WATCH, historical odds of ALARM within 5/20 days'). Counted, never fitted. The withhold discipline is the point: odds are withheld until a layer has 60 observed days, and the accrued count is stated — absence is never precision. Takes no arguments. Display-only context, never a state driver.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/beepboop2025-liquilens/api#diagnostics

## Score history

- 2026-08-03: 70
- 2026-08-02: 70
- 2026-08-01: 68
- 2026-07-31: 67
- 2026-07-30: 64
- 2026-07-29: 64
- 2026-07-28: 65
- 2026-07-27: 64
- 2026-07-26: 54

## Links

- Remote endpoint: https://api.liquilens.in/mcp
- Repository: https://github.com/beepboop2025/LiquiLens
- Website: https://liquilens.in/
- Changelog RSS feed: https://verifymcp.io/servers/beepboop2025-liquilens/api/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/beepboop2025-liquilens/api/changelog.json
- HTML version of this page: https://verifymcp.io/servers/beepboop2025-liquilens/api
