OpenTrustBench
The trust and evidence layer for AI agents and MCP servers. Scan any agent, skill, or MCP tool server and get a graded Trust Card (A–F) — backed by static analysis, OWASP-mapped findings, and a machine-readable evidence trail.
pip install opentrustbench
opentrustbench scan ./my-agent
Trust Grade: F (33/100) | Findings: 5 (3 critical, 1 high) | Scope: excessive
[CRITICAL] Direct Prompt Concatenation (Injection Vulnerability) (server.ts:24) AT-SEC-001 LLM01
[CRITICAL] Hardcoded Credential or API Secret (server.ts:11) AT-SEC-002 LLM02
[CRITICAL] Unbounded Dynamic Shell Execution (server.ts:16) AT-SEC-003 ASI02
[HIGH] Unrestricted Recursive File Deletion / Modification (server.ts:31) AT-SEC-005 ASI02
[MEDIUM] Raw Secret Leakage in Debug Logging (server.ts:25) AT-SEC-007 LLM02
Why OpenTrustBench
AI agents run code, touch files, call APIs, and spend money. Before you install an MCP server or deploy an agent, you deserve to know what it can do and where it's fragile. OpenTrustBench answers that in seconds, with zero configuration:
- 8 detection rules (
AT-SEC-001–007+AT-COMP-001), each mapped to the OWASP LLM Top 10 2025 and the OWASP Agentic Top 10 — prompt injection, hardcoded secrets, shell escape, excessive agency, destructive operations, secret leakage, and more. - Trust Cards graded A–F — a single score plus a full breakdown (security, permissions, provenance, reliability, stability) in
trust-card.json. - Permission manifests — network, filesystem, shell, secrets, and capability scope (
minimal→excessive) extracted automatically. - Adversarial attack analysis — OWASP-aligned heuristic checks (injection override, command execution, exfiltration, memory poisoning, destructive ops) with concrete fixes.
- SARIF + Markdown reports — drop straight into GitHub code scanning or publish as docs.
- Shareable grade badges — embed a live badge in any README (see the public registry).
- Honest by design — static analysis only. No code is executed, no payloads fire, no invented narratives. Reports say exactly what was found and where.
Installation
pip install opentrustbench
Prerequisites: Node.js 18+ and the OpenTrustBench CLI engine:
npm install -g @opentrustbench/cli
This package installs the opentrustbench command and connects it to the scan engine.
Quickstart
# Scan a local agent, skill, or MCP server (writes trust-card.json + reports)
opentrustbench scan ./my-agent
# Scan a GitHub repo or npm package directly
opentrustbench scan owner/repo --github
opentrustbench scan express --npm
# Adversarial attack analysis (static-heuristic: nothing executes)
opentrustbench attack ./my-agent
# Validate a workflow suite (simulation mode: steps are parsed, never run)
opentrustbench eval ./workflow.yaml
# Generate an embeddable README badge
opentrustbench badge ./my-agent
# Browse the public verified registry
opentrustbench registry
Gate CI on severity — fail the build when findings meet your bar:
opentrustbench scan . --fail-on high --quiet --format sarif --output-dir ./trust
# .github/workflows/trust.yml
- run: pip install opentrustbench && npm install -g @opentrustbench/cli
- run: opentrustbench scan . --fail-on high --format sarif --output-dir ./trust
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: trust/opentrustbench-report.sarif
Command reference
| Command | What it does |
|---|---|
scan <path|url|repo> |
Scan a target, print graded findings, write trust-card.json + SARIF/Markdown reports |
attack <path-or-repo> |
OWASP-aligned adversarial analysis with fix guidance (static-heuristic mode) |
eval <workflow.yaml> |
Parse and validate a workflow suite (simulation mode — nothing executes) |
badge <path> |
Print embeddable Markdown for the target's grade badge |
init |
Scaffold an opentrustbench.yaml config |
registry |
Browse the public registry of scanned servers |
scan flags: --github, --npm, --fail-on info|low|medium|high|critical, --format terminal|json|sarif|md, --output-dir <dir>, --quiet, --no-color.
A Trust Card looks like this
{
"schema": "opentrustbench/trust-card/v1",
"subject": { "type": "agent-skill", "name": "Secure Data Auditor Skill" },
"trustScore": {
"overall": 88,
"grade": "B",
"breakdown": { "security": 100, "permissions": 100, "provenance": 50 }
},
"compatibility": ["claude-code", "cursor", "codex"]
}
Links
- Site & registry: opentrustbench.com · methodology
- Source: github.com/eulogik/OpenTrustBench
- Issues: github.com/eulogik/OpenTrustBench/issues
- npm engine: @opentrustbench/cli · @opentrustbench/core
License
Apache-2.0 — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opentrustbench-0.1.3.tar.gz.
File metadata
- Download URL: opentrustbench-0.1.3.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0f5ea549d362d6f9010c35126b26e04ea51ad78b418e43e376e1f87085eccdf
|
|
| MD5 |
fa9cb4c8d2c292a135d3d93485a60d56
|
|
| BLAKE2b-256 |
96945cd8b02e430204c57736829c7093ae92e375880940dfc7a8cbb8803023b0
|
File details
Details for the file opentrustbench-0.1.3-py3-none-any.whl.
File metadata
- Download URL: opentrustbench-0.1.3-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75ada83d1ae4f4707defc295e539e6b9d070c98480bf90fac61d5723324d06c0
|
|
| MD5 |
e915f0b4ce9f3a7ab8d7a6902fdc5f5c
|
|
| BLAKE2b-256 |
754441faad9a1c0cc478411327499d2337f82f5ad825948879681625e2b89ebf
|