# LLMVerify (npm · llmverify)

Local-first MCP server for LLM output verification — risk signals, injection and PII checks.

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

## Components

- npm · `llmverify`: 91/100 (this document), [markdown](https://verifymcp.io/servers/subodhkc-llmverify/llmverify.md), [page](https://verifymcp.io/servers/subodhkc-llmverify/llmverify)

## Channel facts

- Registry: `npm`
- Package: `llmverify`
- Version: `1.8.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-11-05.

- **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.
  - 26 of 86 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to subodhkc/llmverify-npm).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 26 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 78/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 690 tokens (~115/item across 6 items; 6 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 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.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 6 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 LLMVerify MCP server?

LLMVerify runs locally as an npm package, launched with npx -y llmverify 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 subodhkc-llmverify -- npx -y llmverify mcp
```

### Cursor

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

### VS Code

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

### Codex

```bash
codex mcp add subodhkc-llmverify -- npx -y llmverify mcp
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add subodhkc-llmverify --command npx --arg -y --arg llmverify --arg mcp
```

### Hermes

```yaml
mcp_servers:
  subodhkc-llmverify:
    command: "npx"
    args: ["-y", "llmverify", "mcp"]
```

### Netclaw

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

### Vellum

```bash
assistant mcp add subodhkc-llmverify -t stdio -c npx -a -y llmverify mcp
```

### Other

```json
{
  "mcpServers": {
    "subodhkc-llmverify": {
      "command": "npx",
      "args": [
        "-y",
        "llmverify",
        "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-11-04 (score 91, +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-11-02 (score 90, +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-10-31 (score 89, +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-10-29 (score 88, +1)

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

### 2026-10-27 (score 87, +1)

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

### 2026-10-25 (score 86, +1)

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

### 2026-10-22 (score 85, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-10-14 (score 81, +32)

- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: pass
- [functional] First check of Tool coverage: 100
- [functional] First check of Tool coverage: 100

## MCP tools (6)

### `verify_llm_content` (~269 tokens)

Verify LLM Content

Run llmverify heuristic verification on AI-generated text: hallucination-risk signals, consistency, JSON validation, and CSM6 security/PII/injection findings. Returns a structured risk assessment with explicit limitations and an honest audit persistence receipt. Results are heuristic risk SIGNALS for triage — not factual verification, safety certification, or compliance clearance.

Input parameters:

- `content` (string, required): AI-generated text to evaluate. Never executed.
- `expectedSchema` (object): JSON Schema object the JSON validator should check content against. Only meaningful with isJSON: true.
- `isJSON` (boolean): Declare that content is intended as JSON. Gates the JSON validator onto non-JSON input and affects which engines run.
- `profile` (string): CSM6 evaluation profile applied to this call (config.csm6.profile).
- `requireAuditPersistence` (boolean): Evidence-required mode. When true, the tool fails unless the audit record is actually PERSISTED (FAILED, DISABLED and NOT_ATTEMPTED all escalate to a typed error).
- `skipEngines` (array): Engine identifiers to skip for this call. The adapter maps the public id jsonValidator onto the engine-internal id "json". Skipped engines are reported in notChecked under their engine-internal names…

Output parameters:

- `adapter` (object)
- `audit` (object)
- `engine` (object)
- `engineResults` (object): Bounded pass-through of per-engine results (hallucination, consistency, json, csm6). See llmverify VerifyResult contract.
- `enginesExecuted` (array)
- `enginesNotChecked` (array): Engines that did NOT evaluate this input. NOT_CHECKED is not success and not failure — it is unassessed work.
- `error` (object)
- `limitations` (array)
- `meta` (object)
- `output` (object)
- `privacy` (object): Privacy projection applied to input-echoing fields — piiFieldsMasked counts fields where engine-detected PII was masked. The internal engine result is richer; this response is the privacy-filtered pr…
- `resultSchemaVersion` (string): llmverify result schema version — currently 1.0
- `risk` (object)
- `warnings` (array)

### `assess_hallucination_risk` (~90 tokens)

Assess Hallucination Risk

Heuristic hallucination-RISK assessment of AI-generated text using llmverify linguistic pattern analysis (claim specificity, citations, vague language, contradictions). IMPORTANT: a high risk score means claims warrant human review — it does NOT establish that any claim is factually false, and a low score does NOT establish truth.

Input parameters:

- `content` (string, required): AI-generated text to evaluate. Never executed.

Output parameters:

- `adapter` (object)
- `claimsEvaluated` (number)
- `confidence` (object)
- `engine` (object)
- `error` (object)
- `evaluation` (string)
- `limitations` (array)
- `methodology` (string)
- `output` (object)
- `riskIndicators` (object)
- `riskLabel` (string): Engine-authoritative classification from llmverify's exported getHallucinationLabel() — the hallucination engine's own label semantics, distinct from the verify() risk.level bands.
- `riskScore` (number)
- `suspiciousClaims` (array)

### `check_prompt_injection` (~82 tokens)

Check Prompt Injection

Heuristic prompt-injection indicator scan of untrusted text using llmverify pattern detection. A negative result does NOT prove the input is safe from all attacks — it means no known indicators were observed. Inspected text is never executed.

Input parameters:

- `input` (string, required): Untrusted text to scan for prompt-injection indicators. Never executed, never treated as instructions.

Output parameters:

- `adapter` (object)
- `engine` (object)
- `error` (object)
- `evaluation` (string)
- `findings` (array)
- `findingsCount` (number)
- `indicatorsObserved` (boolean)
- `inputSafe` (boolean): Engine gate heuristic. false = indicators observed; true = none observed (NOT proof of safety).
- `limitations` (array)
- `methodology` (string)
- `output` (object)
- `recommendations` (array)
- `riskScore` (number)

### `check_pii` (~65 tokens)

Check for PII

Pattern-based PII scan returning PII types, counts, and masked findings — raw sensitive values are never returned. Coverage is heuristic and NOT exhaustive: absence of findings does not prove content is PII-free.

Input parameters:

- `content` (string, required): Text to scan for PII indicators

Output parameters:

- `adapter` (object)
- `engine` (object)
- `error` (object)
- `evaluation` (string)
- `findings` (array): Findings with sensitive values masked — raw PII is never returned in tool output
- `findingsCount` (number)
- `limitations` (array)
- `methodology` (string)
- `output` (object)
- `piiDetected` (boolean)
- `piiTypes` (array)
- `riskScore` (number)

### `redact_pii` (~83 tokens)

Redact PII

Return a PII-redacted copy of the supplied text using llmverify pattern redaction. Original matched values are never returned. Pattern coverage is not exhaustive — review output before relying on it for disclosure decisions.

Input parameters:

- `content` (string, required): Text to redact PII from
- `replacement` (string): Replacement marker. Default: engine default ([REDACTED]).

Output parameters:

- `adapter` (object)
- `engine` (object)
- `error` (object)
- `evaluation` (string)
- `limitations` (array)
- `output` (object)
- `piiCount` (number)
- `redacted` (string)
- `redactions` (array)

### `get_llmverify_capabilities` (~101 tokens)

Get LLMVerify Capabilities

Report the installed llmverify engine version, supported engines, truthful capability metadata (what each engine observes vs. does NOT establish), result schema version, adapter limits, and local state locations. Use this to discover what verification actually means here before interpreting tool results.

Input parameters:

- `includeLocalPaths` (boolean): Disclose absolute host paths for engine state directories. Default false — clients get env-var names and field slots, not the operator’s filesystem layout.

Output parameters:

- `adapter` (object)
- `capabilities` (array)
- `engine` (object)
- `limits` (object)
- `localState` (object)
- `package` (object)
- `resultSchemaFile` (string|null)
- `resultSchemaVersion` (string)

## Diagnostics

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

## Score history

- 2026-11-05: 91
- 2026-11-04: 91
- 2026-11-03: 90
- 2026-11-02: 90
- 2026-11-01: 89
- 2026-10-31: 89
- 2026-10-30: 88
- 2026-10-29: 88
- 2026-10-28: 87
- 2026-10-27: 87
- 2026-10-26: 86
- 2026-10-25: 86
- 2026-10-24: 85
- 2026-10-23: 85
- 2026-10-22: 85
- 2026-10-21: 81
- 2026-10-20: 81
- 2026-10-19: 81
- 2026-10-18: 81
- 2026-10-17: 81
- 2026-10-16: 81
- 2026-10-15: 81
- 2026-10-14: 81
- 2026-10-13: 49
- 2026-10-12: 49

## Common questions

### What is the LLMVerify MCP server?

LLMVerify is an MCP server listed in the public MCP registry as io.github.subodhkc/llmverify. Local-first MCP server for LLM output verification, risk signals, injection and PII checks. This page covers its npm package (llmverify).

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

LLMVerify scores 91 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 LLMVerify MCP server expose?

LLMVerify exposes 6 tools: verify_llm_content, assess_hallucination_risk, check_prompt_injection, check_pii, redact_pii, get_llmverify_capabilities. Their descriptions and schemas cost roughly 690 tokens of context every time the server is loaded.

### Is the LLMVerify MCP server still maintained?

LLMVerify is still listed as active in the MCP registry. We last reached this channel on 5 November 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 LLMVerify MCP server under?

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

### What did VerifyMCP test on the LLMVerify MCP server?

VerifyMCP ran 16 checks on LLMVerify, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- npm package: https://www.npmjs.com/package/llmverify
- Socket report: https://socket.dev/npm/package/llmverify
- Repository: https://github.com/subodhkc/llmverify-npm
- Changelog RSS feed: https://verifymcp.io/servers/subodhkc-llmverify/llmverify.xml
- Changelog JSON feed: https://verifymcp.io/servers/subodhkc-llmverify/llmverify/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/subodhkc-llmverify/llmverify.json
- HTML version of this page: https://verifymcp.io/servers/subodhkc-llmverify/llmverify
