# The Tab (scvd-tab) (npm · scvd-tab)

Every tool a builder signs up for, on one tab: trials, burn, price drift. Local JSONL, zero deps.

- Trust score: 81/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-07

## Components

- npm · `scvd-tab`: 81/100 (this document), [markdown](https://verifymcp.io/servers/store-scvd-tab/scvd-tab.md), [page](https://verifymcp.io/servers/store-scvd-tab/scvd-tab)

## Channel facts

- Registry: `npm`
- Package: `scvd-tab`
- 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-07.

- **Supply Chain Security**: 100/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.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 3 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 73/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2295 tokens (~127/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 90/100
  - Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 76/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 28% 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 18 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 19 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 The Tab (scvd-tab) MCP server?

The Tab (scvd-tab) runs locally as an npm package, launched with npx -y scvd-tab. 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 store-scvd-tab -- npx -y scvd-tab
```

### Cursor

```json
{
  "mcpServers": {
    "store-scvd-tab": {
      "command": "npx",
      "args": [
        "-y",
        "scvd-tab"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "store-scvd-tab": {
      "command": "npx",
      "args": [
        "-y",
        "scvd-tab"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add store-scvd-tab -- npx -y scvd-tab
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add store-scvd-tab --command npx --arg -y --arg scvd-tab
```

### Hermes

```yaml
mcp_servers:
  store-scvd-tab:
    command: "npx"
    args: ["-y", "scvd-tab"]
```

### Netclaw

```json
{
  "McpServers": {
    "store-scvd-tab": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "scvd-tab"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add store-scvd-tab -t stdio -c npx -a -y scvd-tab
```

### Other

```json
{
  "mcpServers": {
    "store-scvd-tab": {
      "command": "npx",
      "args": [
        "-y",
        "scvd-tab"
      ]
    }
  }
}
```

## 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-06 (score 81, +1)

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

### 2026-09-03 (score 80, +1)

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

### 2026-09-01 (score 79, +1)

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

### 2026-08-30 (score 78, +1)

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

### 2026-08-28 (score 77, +1)

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

### 2026-08-26 (score 76, +2)

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

### 2026-08-25 (score 74, +1)

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

### 2026-08-23 (score 73, +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.

## MCP tools (18)

### `log_tool_event` (~307 tokens)

Record a tool lifecycle event on the builder's tab: trial_started, paid_started, adopted, canceled, replaced, renewed, or price_changed. Validated; rejected writes explain themselves. Use retroactive:true with occurred_at for backfill.

Input parameters:

- `category` (string, required)
- `event` (string, required)
- `notes` (string)
- `occurred_at` (string)
- `payment_method` (string)
- `previous_price` (object)
- `price` (object): {amount, currency, period: month|quarter|year|week|once, basis?: fixed|metered|free_with_paid_path}. basis marks what kind of number amount is: absent/fixed = the bill; metered = your ESTIMATE of a u…
- `problem_solved` (string, required)
- `replaced_with` (string)
- `retroactive` (boolean)
- `signup_friction` (string): what the signup path demanded: agent_native (API key, no human), email_only, phone_required, kyc_required, human_only. Log it when you hit the wall — the tab remembers so the next attempt doesn't dea…
- `source_url` (string)
- `tool_name` (string, required): canonical lowercase name
- `trial_ends` (string)

### `capture_tool_event` (~199 tokens)

QUICK CAPTURE (/log): dump a fragment about a tool the builder just signed up for and it lands, always. Never refuses — missing fields come back named so the rounds can ask later. Use this at the moment of signup; use log_tool_event when you have the full picture.

Input parameters:

- `captured_text` (string): the raw fragment, kept verbatim
- `category` (string)
- `confidence` (string)
- `dedupe_key` (string): message id when captured from mail — stops a re-found receipt double-counting
- `event` (string)
- `notes` (string)
- `occurred_at` (string)
- `price` (object)
- `problem_solved` (string)
- `retroactive` (boolean)
- `signup_friction` (string)
- `source` (string)
- `tool_name` (string, required)
- `trial_ends` (string)

### `burn_rollup` (~88 tokens)

The monthly number and what it is made of: category subtotals, annualized, the idle share, the trajectory since a past date with the signups that account for the change, an anonymized shareable badge, and the coverage block saying what the figure cannot see. Facts and arithmetic; no advice.

Input parameters:

- `since_days` (integer)
- `unused_days` (integer)

### `record_coverage` (~248 tokens)

The sweep reports what it saw: addresses read, the window, and money-shaped mail it could NOT attribute to any tool. THE COUNTING OBLIGATION: every message you read belongs in exactly one bucket — matched, unmatched_transactional, or not_transactional — and `scanned` must be the total you actually looked at, BEFORE any filtering. Mail you dropped as unparseable still counts. A sweep that filters before it counts reports a flattering gap, and the tab publishes the leftover as `unclassified` rather than absorbing it.

Input parameters:

- `addresses_swept` (array)
- `attributed_amount` (number): money in this window the sweep DID place on a tool, in the same units as the unmatched amounts
- `matched` (integer)
- `not_transactional` (integer): messages read and classified as carrying no money
- `scanned` (integer): every message read in the window, counted BEFORE filtering — the denominator. Omitting it marks the whole report unaudited.
- `unmatched_transactional` (array)
- `window_from` (string): ISO date the sweep started from
- `window_to` (string): ISO date the sweep read through

### `sweep_tally` (~227 tokens)

THE SWEEP'S RUNNING COUNT — use this while executing SWEEP.md instead of counting in your head. Report every message you read, in batches, each with its message_id and exactly one bucket: matched (include the entry; it is written to the tab for you, deduped on the message id), unmatched_transactional (include amount and sender), or not_transactional. Refused verdicts are returned with reasons and NOT counted — fix and resubmit them, never drop them. Duplicates are counted once. There is no fourth bucket on purpose.

Input parameters:

- `addresses_swept` (array)
- `messages` (array, required): one verdict per message read, up to 200 per call
- `source` (string): historical_pass on the six-month backward run; mail_sweep forward
- `sweep_id` (string, required): your name for this sweep, same on every batch (e.g. sweep_2026-08)
- `window_from` (string, required): ISO date the window opens
- `window_to` (string, required): ISO date the window closes

### `sweep_finish` (~87 tokens)

Close a sweep and file its coverage record, DERIVED from the tally: scanned, matched, the unmatched list, attributed amount, window and addresses all come off the ledger of what you actually reported, so the books balance by construction and nobody restates a number from memory. A finished sweep refuses further batches — a new window is a new sweep_id.

Input parameters:

- `sweep_id` (string, required)

### `reconcile_card_statement` (~156 tokens)

GROUND TRUTH, monthly, by hand: the builder exports the bank's CSV, you parse every debit row, and this compares statement against tab in BOTH directions — charges the tab cannot place, tools the statement never charged, actuals against metered estimates, and charges on tools the tab holds as canceled. Writes nothing to the tab; every finding is a question for the builder, not an entry. Pass the rows unfiltered — a pre-filtered statement is the mail sweep's counting mistake with money on it.

Input parameters:

- `charges` (array, required)
- `statement_from` (string, required): ISO date the statement window opens — off the export, not remembered
- `statement_to` (string, required): ISO date the statement window closes

### `trials_converting_soon` (~49 tokens)

The headline tool: trials whose conversion lands inside the horizon (default 7 days). Cheap; safe to call daily; surface the answer unprompted.

Input parameters:

- `days` (integer)

### `check_before_signup` (~48 tokens)

Call BEFORE the builder signs up for something: their history with the tool, what currently covers the category, facts only.

Input parameters:

- `category` (string)
- `tool_name` (string, required)

### `stack_audit` (~49 tokens)

The burn report: monthly total, active paid tools, trials converting soon, the unused list (commitment silence, honestly labeled), category overlaps, price drift.

Input parameters:

- `unused_days` (integer)

### `whats_current` (~39 tokens)

The builder's own history in a category. Pooled retention is layer 3 and reports itself unavailable until it exists.

Input parameters:

- `category` (string, required)

### `contribute_anonymized_delta` (~106 tokens)

Deliberately send one anonymized delta (opened or outcome) to the scvd aggregation endpoint. Requires consent on record; refuses fields the privacy sentence forbids.

Input parameters:

- `category` (string, required)
- `kind` (string, required)
- `outcome` (string)
- `replaced_with` (string)
- `signup_friction` (string)
- `tool_name` (string, required)
- `week` (string)
- `weeks_held` (integer)

### `confirm_entry` (~82 tokens)

A human looked at a swept entry and says it is real (or marks it private). Confirmation is the load-bearing layer: machine-found claims never reach the pooled corpus without it.

Input parameters:

- `private` (boolean): keep it on the tab, never let it leave the box — not in a delta, not in a shared count
- `tool_name` (string, required)

### `needs_attention` (~54 tokens)

What the rounds should ask about, dearest first and capped: unconfirmed sweep findings, entries captured with gaps, tools gone quiet, trials past their end. Ask two, not two hundred.

Input parameters:

- `limit` (integer)

### `whats_due` (~92 tokens)

THE PAGER. Runs the clock and returns what should be said to the builder RIGHT NOW, worth most first: trials converting, trials past their end, unconfirmed sweep findings, quiet tools, gaps. Cheap. Call it on every round and at the start of a session. Say the lines, then acknowledge_pages.

Input parameters:

- `days` (integer): conversion horizon, default 7
- `limit` (integer)

### `acknowledge_pages` (~68 tokens)

You put these pages to the builder in their own words. Marks them spent so they stop coming back. Only acknowledge what you actually said — the tab counts pages that aged out unspoken, and a false acknowledgment is the one lie that makes the count useless.

Input parameters:

- `page_ids` (array, required)

### `set_consent` (~45 tokens)

Turn contribution on or off. Recorded as a consent_changed event in the tab itself — auditable like everything else. Off also disables pooled reads.

Input parameters:

- `contribute` (boolean, required)

### `export_tab` (~38 tokens)

Full export of the builder's tab, jsonl or csv. Any time, no charge, no lock-in.

Input parameters:

- `format` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/store-scvd-tab/scvd-tab#diagnostics

## Score history

- 2026-09-07: 81
- 2026-09-06: 81
- 2026-09-05: 80
- 2026-09-04: 80
- 2026-09-03: 80
- 2026-09-02: 79
- 2026-09-01: 79
- 2026-08-31: 78
- 2026-08-30: 78
- 2026-08-29: 77
- 2026-08-28: 77
- 2026-08-27: 76
- 2026-08-26: 76
- 2026-08-25: 74
- 2026-08-24: 73
- 2026-08-23: 73
- 2026-08-22: 72
- 2026-08-21: 57
- 2026-08-20: 71
- 2026-08-19: 71
- 2026-08-18: 67
- 2026-08-17: 67
- 2026-08-16: 67
- 2026-08-15: 67
- 2026-08-14: 67
- 2026-08-13: 67
- 2026-08-12: 67
- 2026-08-11: 52

## Common questions

### What is the The Tab (scvd-tab) MCP server?

The Tab (scvd-tab) is an MCP server listed in the public MCP registry as store.scvd/tab. Every tool a builder signs up for, on one tab: trials, burn, price drift. Local JSONL, zero deps. This page covers its npm package (scvd-tab).

### Is the The Tab (scvd-tab) MCP server safe to use?

The Tab (scvd-tab) scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 7 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 The Tab (scvd-tab) MCP server expose?

The Tab (scvd-tab) exposes 18 tools: log_tool_event, capture_tool_event, burn_rollup, record_coverage, sweep_tally, and 13 more. Their descriptions and schemas cost roughly 1,982 tokens of context every time the server is loaded.

### Is the The Tab (scvd-tab) MCP server still maintained?

The Tab (scvd-tab) is still listed as active in the MCP registry. We last reached this channel on 7 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 The Tab (scvd-tab) MCP server under?

The Tab (scvd-tab) 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/scvd-tab
- Socket report: https://socket.dev/npm/package/scvd-tab
- Repository: https://github.com/seancrecord/scvd-general-store-repo
- Website: https://scvd.store/
- Changelog RSS feed: https://verifymcp.io/servers/store-scvd-tab/scvd-tab.xml
- Changelog JSON feed: https://verifymcp.io/servers/store-scvd-tab/scvd-tab.json
- HTML version of this page: https://verifymcp.io/servers/store-scvd-tab/scvd-tab
