Veridict
Know if you can trust your MCP server.
Agents call tools. Some fail silently. Veridict gives you a signal.
Part of the emerging Agent Trust Stack (Runtime Verification Layer).
Quickstart (30 seconds)
npm install veridict
import { withVeridict } from "veridict";
withVeridict(server, { name: "my-server" });
await server.connect(transport);
Done. Every tool call is now logged. Two new tools are automatically added:
veridict_stats — execution statistics
veridict_can_i_trust — trust judgment (YES / CAUTION / NO)
What you get
can_I_trust("my-server")?
verdict: "yes"
confidence: 0.99
success_rate: 0.992
total_executions: 1247
reason: "success_rate 99.2% over 1247 executions"
Verbose mode
See executions in real-time:
withVeridict(server, { name: "my-server", verbose: true });
Output (stderr):
[veridict] monitoring "my-server"
[veridict] search_docs ok 120ms
[veridict] create_item ok 85ms
[veridict] fetch_data FAIL 3201ms — timeout
[veridict] search_docs ok 94ms
CLI
npx veridict
npx veridict stats my-server
npx veridict trust my-server
Trust judgment logic
| >= 95% | yes | Trustworthy |
| >= 80% | caution | Some failures detected |
| < 80% | no | High failure rate |
| < 10 executions | unknown | Insufficient data |
Options
withVeridict(server, {
name: "my-server",
instanceId: "prod-1",
dbPath: "./my-logs.db",
minExecutions: 20,
verbose: true,
});
Layer 1 integration (MCP Trust Kit)
Combine static analysis with runtime monitoring for full-stack trust:
npx mcp-trust-kit scan --json-out layer1-baseline.json --cmd node my-server.js
import { withVeridict, parseLayer1Report } from "veridict";
import report from "./layer1-baseline.json";
withVeridict(server, {
name: "my-server",
baseline: parseLayer1Report(report),
});
What this does:
- Static risks (e.g.,
dangerous_fs_write) are factored into trust judgment
- Critical static risks downgrade a "yes" verdict to "caution" even at 99% success rate
scan_timestamp is preserved for Layer 3 temporal decay logic
- The full Layer 1 report is stored in
baseline.raw for cross-org consumers
Part of the Agent Trust Stack:
Layer 1: MCP Trust Kit (pre-deploy) → "Is this server safe to run?"
Layer 2: Veridict (runtime) → "Is this server actually reliable?"
Layer 3: SATP/XAIP (cross-org) → "Should I trust this across boundaries?"
How it works
- Wraps all registered MCP tool handlers
- Logs every execution: input hash, output hash, success/fail, latency
- Stores in local SQLite (
~/.veridict/executions.db)
- Provides trust judgment based on execution history
Future
- Cross-agent trust verification
- OpenTelemetry export
- On-chain audit trails
- Enterprise compliance reporting
Early users welcome
If you're building MCP servers or agents, I'd love your feedback.
Try Veridict and tell me what breaks.
License
MIT