The Tab (scvd-tab)
NPM · SCVD-TAB · SCANNED SEP 7
Every tool a builder signs up for, on one tab: trials, burn, price drift. Local JSONL, zero deps.
Available components
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. How we score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability73
- AI-judged instruction clarity (excellent).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage76
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 28% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 18 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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.
npm · scvd-tab
claude mcp add store-scvd-tab -- npx -y scvd-tab
{
"mcpServers": {
"store-scvd-tab": {
"command": "npx",
"args": [
"-y",
"scvd-tab"
]
}
}
} {
"servers": {
"store-scvd-tab": {
"command": "npx",
"args": [
"-y",
"scvd-tab"
]
}
}
} codex mcp add store-scvd-tab -- npx -y scvd-tab
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"store-scvd-tab": {
"type": "local",
"command": [
"npx",
"-y",
"scvd-tab"
],
"enabled": true
}
}
} openclaw mcp add store-scvd-tab --command npx --arg -y --arg scvd-tab
mcp_servers:
store-scvd-tab:
command: "npx"
args: ["-y", "scvd-tab"] {
"McpServers": {
"store-scvd-tab": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"scvd-tab"
]
}
}
} assistant mcp add store-scvd-tab -t stdio -c npx -a -y scvd-tab
{
"mcpServers": {
"store-scvd-tab": {
"command": "npx",
"args": [
"-y",
"scvd-tab"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Sept 26 +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.
- 3 Sept 26 +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.
- 1 Sept 26 +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.
- 30 Aug 26 +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.
- 28 Aug 26 +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.
- 26 Aug 26 +2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +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.
- 23 Aug 26 +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.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 7 Sept 2026 · Analysed npm/scvd-tab@0.5.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
acknowledge_pages ~68
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.
| Name | Type | Req | Description |
|---|---|---|---|
| page_ids | array | yes | – |
No output schema declared.
No examples provided.
burn_rollup ~88
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.
| Name | Type | Req | Description |
|---|---|---|---|
| since_days | integer | – | – |
| unused_days | integer | – | – |
No output schema declared.
No examples provided.
capture_tool_event ~199
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | – |
| trial_ends | string | – | – |
No output schema declared.
No examples provided.
check_before_signup ~48
Call BEFORE the builder signs up for something: their history with the tool, what currently covers the category, facts only.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| tool_name | string | yes | – |
No output schema declared.
No examples provided.
confirm_entry ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | – |
No output schema declared.
No examples provided.
contribute_anonymized_delta ~106
Deliberately send one anonymized delta (opened or outcome) to the scvd aggregation endpoint. Requires consent on record; refuses fields the privacy sentence forbids.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | – |
| kind | string | yes | – |
| outcome | string | – | – |
| replaced_with | string | – | – |
| signup_friction | string | – | – |
| tool_name | string | yes | – |
| week | string | – | – |
| weeks_held | integer | – | – |
No output schema declared.
No examples provided.
export_tab ~38
Full export of the builder's tab, jsonl or csv. Any time, no charge, no lock-in.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | – |
No output schema declared.
No examples provided.
log_tool_event ~307
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | – |
| event | string | yes | – |
| 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 | yes | – |
| 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 | yes | canonical lowercase name |
| trial_ends | string | – | – |
No output schema declared.
No examples provided.
needs_attention ~54
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
No output schema declared.
No examples provided.
reconcile_card_statement ~156
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.
| Name | Type | Req | Description |
|---|---|---|---|
| charges | array | yes | – |
| statement_from | string | yes | ISO date the statement window opens — off the export, not remembered |
| statement_to | string | yes | ISO date the statement window closes |
No output schema declared.
No examples provided.
record_coverage ~248
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
No output schema declared.
No examples provided.
set_consent ~45
Turn contribution on or off. Recorded as a consent_changed event in the tab itself — auditable like everything else. Off also disables pooled reads.
| Name | Type | Req | Description |
|---|---|---|---|
| contribute | boolean | yes | – |
No output schema declared.
No examples provided.
stack_audit ~49
The burn report: monthly total, active paid tools, trials converting soon, the unused list (commitment silence, honestly labeled), category overlaps, price drift.
| Name | Type | Req | Description |
|---|---|---|---|
| unused_days | integer | – | – |
No output schema declared.
No examples provided.
sweep_finish ~87
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.
| Name | Type | Req | Description |
|---|---|---|---|
| sweep_id | string | yes | – |
No output schema declared.
No examples provided.
sweep_tally ~227
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.
| Name | Type | Req | Description |
|---|---|---|---|
| addresses_swept | array | – | – |
| messages | array | yes | 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 | yes | your name for this sweep, same on every batch (e.g. sweep_2026-08) |
| window_from | string | yes | ISO date the window opens |
| window_to | string | yes | ISO date the window closes |
No output schema declared.
No examples provided.
trials_converting_soon ~49
The headline tool: trials whose conversion lands inside the horizon (default 7 days). Cheap; safe to call daily; surface the answer unprompted.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | – |
No output schema declared.
No examples provided.
whats_current ~39
The builder's own history in a category. Pooled retention is layer 3 and reports itself unavailable until it exists.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | – |
No output schema declared.
No examples provided.
whats_due ~92
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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | conversion horizon, default 7 |
| limit | integer | – | – |
No output schema declared.
No examples provided.
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.