# CharterBench (npm · charterbench-mcp)

Every U.S. bank and credit union: ratios, peers, growth and change signals from FDIC/NCUA filings.

- Trust score: 69/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-26

## Components

- npm · `charterbench-mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/auburnduke-charterbench/charterbench-mcp.md), [page](https://verifymcp.io/servers/auburnduke-charterbench/charterbench-mcp)

## Channel facts

- Registry: `npm`
- Package: `charterbench-mcp`
- Version: `0.5.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-09-26.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 96 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 8 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1512 tokens (~126/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 50/100
  - Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 84/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 51% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the CharterBench MCP server?

CharterBench runs locally as an npm package, launched with npx -y charterbench-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add auburnduke-charterbench -- npx -y charterbench-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "auburnduke-charterbench": {
      "command": "npx",
      "args": [
        "-y",
        "charterbench-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "auburnduke-charterbench": {
      "command": "npx",
      "args": [
        "-y",
        "charterbench-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add auburnduke-charterbench -- npx -y charterbench-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "auburnduke-charterbench": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "charterbench-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add auburnduke-charterbench --command npx --arg -y --arg charterbench-mcp
```

### Hermes

```yaml
mcp_servers:
  auburnduke-charterbench:
    command: "npx"
    args: ["-y", "charterbench-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "auburnduke-charterbench": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "charterbench-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add auburnduke-charterbench -t stdio -c npx -a -y charterbench-mcp
```

### Other

```json
{
  "mcpServers": {
    "auburnduke-charterbench": {
      "command": "npx",
      "args": [
        "-y",
        "charterbench-mcp"
      ]
    }
  }
}
```

## 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-09-25 (score 69, +1)

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

### 2026-09-23 (score 68, +1)

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

### 2026-09-21 (score 67, +1)

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

### 2026-09-19 (score 66, +1)

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

### 2026-09-17 (score 65, 0)

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.17 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified
- [functional] Package version: 0.4.0 → 0.5.0

### 2026-09-16 (score 65, +1)

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

### 2026-09-14 (score 64, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-09-13 (score 48, +10)

- [security improvement] Malware scan: unverified → pass
- [security improvement] Known CVEs: unverified → pass
- [functional regression] Schema quality: 110 → 126
- [functional improvement] Dependency health: unverified → 0.84
- [functional] Package version: 0.3.0 → 0.4.0

## MCP tools (12)

### `screen_institutions` (~325 tokens)

Screen institutions

Find banks and credit unions matching filters. Returns a ranked list with key financials and ratios. Use for territory planning, prospect lists, and 'which institutions…' questions. Money in dollars, ratios in percent.

Input parameters:

- `band` (string): Asset band(s): '<100M', '100M-500M', '500M-1B', '1B-10B', '10B+' (comma-separated)
- `dir` (string)
- `filters` (object): Range filters as {'<column>_min': n, '<column>_max': n}, e.g. {'deposits_yoy_pct_max': -5, 'efficiency_ratio_min': 75}
- `holding` (string): Holding-company name contains (banks only), e.g. 'Truist Financial' — lists the parent's subsidiary banks
- `limit` (integer): Rows to return (default 25)
- `q` (string): Name contains
- `sort` (string): Sort column: total_assets, assets_yoy_pct, deposits_yoy_pct, loans_yoy_pct, members_yoy_pct, roa, roe, loan_to_deposit_pct, capital_ratio_pct, efficiency_ratio, net_interest_margin, cost_of_funds, ne…
- `state` (string): Comma-separated USPS state codes, e.g. 'GA,FL'
- `type` (string): Charter type

### `get_institution` (~84 tokens)

Get institution profile

Full profile of one bank or credit union: identity, size, YoY growth, all 21 ratios, peer medians for its asset band, and this quarter's change signals. Use the id from screen_institutions or search_institutions (e.g. 'ncua-66357', 'fdic-9846').

Input parameters:

- `id` (string, required)

### `search_institutions` (~50 tokens)

Search institutions by name

Look up institutions by name to get their ids. Cheap and fast; use before get_institution when you only know a name.

Input parameters:

- `name` (string, required)
- `type` (string)

### `get_financial_history` (~52 tokens)

Get financial history

Quarterly call-report history for one institution (assets, deposits, loans, equity, income lines) with computed ratios per quarter, newest first.

Input parameters:

- `id` (string, required)
- `quarters` (integer)

### `get_signals` (~70 tokens)

Get change signals

Change signals for one institution across its history: deposits down/up, loans up/down, delinquency up, efficiency worsening, crossed $1B/$10B, net loss, thin capital, members down — each with plain-English text and why it matters to a seller.

Input parameters:

- `id` (string, required)

### `get_peer_medians` (~48 tokens)

Get peer medians

Median of every ratio for a peer group (charter type × asset band). Use to say how an institution compares.

Input parameters:

- `band` (string, required)
- `type` (string, required)

### `compare_institutions` (~43 tokens)

Compare institutions

Side-by-side comparison of 2–5 institutions on size, growth and ratios, plus a link to the interactive compare page.

Input parameters:

- `ids` (array, required)

### `find_markets` (~103 tokens)

Find deposit markets

Find counties and metro areas (deposit markets) by name, optionally within a state. Returns market ids to pass to get_market_share, plus totals, leader and concentration (HHI). Use for 'who are the biggest banks in <county/metro>' questions.

Input parameters:

- `q` (string, required): County or metro name contains, e.g. 'Fulton', 'Atlanta', 'Maricopa'
- `state` (string): USPS state code to narrow the search

### `get_market_share` (~161 tokens)

Get deposit market share

Deposit market share from branch data (FDIC Summary of Deposits, June 30; credit unions estimated). Pass EITHER an institution id (returns every county, metro and state it has branches in, with share, rank and branch-count history) OR geo_type + geo_id (returns the market's league table: every institution ranked by deposits with share, year-over-year share change and branch change). geo_id: 5-digit county FIPS, CBSA code for metros, or USPS code for states — find them with find_markets.

Input parameters:

- `geo_id` (string)
- `geo_type` (string)
- `institution_id` (string)
- `limit` (integer): Rows to return for a league table (default 25)

### `get_pending_deals` (~195 tokens)

Get pending deals

Merger, acquisition and change-in-control applications filed with the Federal Reserve, OCC, FDIC and NCUA — before the deal closes. Filter by state, charter type, status (open = pending + approved-not-closed), or one institution id (its deals as acquirer or target). Use for 'who is buying whom', 'is X in a deal', 'which banks in Texas are being acquired'.

Input parameters:

- `days` (integer): Only deals updated in the last N days
- `institution_id` (string): Only deals where this institution is the acquirer or target
- `kind` (string): Default: mergers, acquisitions and control changes
- `limit` (integer)
- `q` (string): Acquirer or target name contains
- `state` (string): USPS state code of the acquirer or target
- `status` (string): Default open
- `type` (string)

### `get_industry_summary` (~192 tokens)

Get industry summary

Quarterly State of the Industry: institution counts, total assets/deposits/loans, YoY growth, median ratios (NIM, efficiency, ROA, cost of funds, capital, delinquency, charge-offs, uninsured deposits, securities losses) and how many are losing money — for banks and credit unions overall and by asset band, plus how many institutions carried each change signal. Use for 'how did banks/credit unions do this quarter', industry benchmarks, or trend questions (pass an earlier quarter).

Input parameters:

- `band` (string): Asset band: '<100M', '100M-500M', '500M-1B', '1B-10B', '10B+', or 'all' (default returns every band)
- `quarter` (string): Quarter-end date, e.g. 2026-06-30 (default latest)
- `type` (string)

### `get_branch_changes` (~189 tokens)

Get branch openings and closings

Branches opened, closed, acquired or sold June-to-June, from FDIC Summary of Deposits (banks) and NCUA branch filings (credit unions). Filter by state, county (5-digit FIPS), charter type, change kind or one institution. summary=true returns one row per institution with opened/closed/acquired/sold/net counts and the deposits that sat in closed branches — use it for 'which banks are closing the most branches in Texas'.

Input parameters:

- `change` (string)
- `county` (string): 5-digit county FIPS (from find_markets)
- `institution_id` (string)
- `limit` (integer)
- `state` (string)
- `summary` (boolean): One row per institution instead of per branch
- `type` (string)
- `year` (integer): SOD year (June 30); default latest

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/auburnduke-charterbench/charterbench-mcp#diagnostics

## Score history

- 2026-09-26: 69
- 2026-09-25: 69
- 2026-09-24: 68
- 2026-09-23: 68
- 2026-09-22: 67
- 2026-09-21: 67
- 2026-09-20: 66
- 2026-09-19: 66
- 2026-09-18: 65
- 2026-09-17: 65
- 2026-09-16: 65
- 2026-09-15: 64
- 2026-09-14: 64
- 2026-09-13: 48
- 2026-09-12: 38
- 2026-09-11: 48

## Common questions

### What is the CharterBench MCP server?

CharterBench is an MCP server listed in the public MCP registry as io.github.auburnduke/charterbench. Every U.S. bank and credit union: ratios, peers, growth and change signals from FDIC/NCUA filings. This page covers its npm package (charterbench-mcp).

### Is the CharterBench MCP server safe to use?

CharterBench scores 69 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 26 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the CharterBench MCP server expose?

CharterBench exposes 12 tools: screen_institutions, get_institution, search_institutions, get_financial_history, get_signals, and 7 more. Their descriptions and schemas cost roughly 1,512 tokens of context every time the server is loaded.

### Is the CharterBench MCP server still maintained?

CharterBench is still listed as active in the MCP registry. We last reached this channel on 26 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the CharterBench MCP server under?

CharterBench declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/charterbench-mcp
- Socket report: https://socket.dev/npm/package/charterbench-mcp
- Website: https://www.charterbench.com/claude
- Changelog RSS feed: https://verifymcp.io/servers/auburnduke-charterbench/charterbench-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/auburnduke-charterbench/charterbench-mcp.json
- HTML version of this page: https://verifymcp.io/servers/auburnduke-charterbench/charterbench-mcp
