
Aletheia Runtime Safety & Scope Creep Filter
io.github.vikasny30由 GitHub 帳號 vikasny30 發布v0.3.1更新於 Oct 24, 2026
Deterministic pre-execution filter that blocks known scope-creep and prompt-injection tool calls
發布方自己的服務:4words
概覽
本機 MCP 過濾器,在 shell、SQL、檔案與網路工具呼叫執行前先行攔截,阻擋已知的越權與提示注入模式。
- 可以做什麼
- 對候選工具呼叫做執行前檢查,回傳 ALLOW 或 BLOCK 並附上違規詳情
- 透過受檢驗的執行器執行 shell 指令,攔截破壞性、外洩與 fork 炸彈模式
- 檢驗 SQL,辨識 DROP、TRUNCATE 以及無界的 DELETE/UPDATE(含恆真條件)
- 設定或收緊工作階段的安全授權範圍,並讀取目前授權、允許路徑與風險容忍度
- 讀取遙測計數、攔截率、延遲百分位以及最近放行請求的滾動稽核日誌
- 以代理模式包裝既有的下游 MCP 伺服器,使其工具呼叫經過同一層過濾
- 適用情境
- 當代理具備 shell、SQL、檔案系統或網路工具權限,而你需要一道低成本、確定性的第一道防線來因應破壞性指令、憑證探測、SSRF 與自我提權時適用。適合編碼代理與需要前置過濾的代理式 MCP 伺服器,但它並非完整沙箱。
- 執行需求
- 以 npm 套件形式透過 stdio 在本機執行(需 Node.js 18 以上),可用 npx 啟動。預設完全鎖定(唯讀、無網路、無回環);寫入、網路與回環權限須在啟動時以命令列參數或 ALETHEIA_ALLOW_WRITE、ALETHEIA_ALLOW_NETWORK、ALETHEIA_ALLOW_LOOPBACK 變數授予,寫入範圍須以允許路徑參數限定。僅在放寬執行中工作階段的授權時才需要 ALETHEIA_OPERATOR_SECRET。僅支援桌面用戶端。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Aletheia Runtime Safety & Scope Creep Filter,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Aletheia MCP Server 🛡️
Sub-millisecond runtime filter that blocks scope-creep and prompt-injection tool calls before an AI agent can run them.
[MCP Compliant] [Latency] [License] [Tests]
[Aletheia MCP blocking an out-of-scope file write and reporting it in the telemetry audit log]
Aletheia MCP intercepts tool calls from Claude Code, Claude Desktop, and any other MCP-compatible agent before they execute and blocks the destructive ones, with sub-millisecond (~25 µs) overhead and no LLM in the hot path.
It's motivated by the Aletheia research paper's taxonomy of nine behavioral signatures: recurring LLM failure patterns, each with an ID, derived from the interfaces through which a model touches its environment (output/reality, input/trust, task/scope, and so on). This server targets two of them:
- S3 (Scope Creep Beyond Mandate): the agent acts outside the task it was actually given, writing files outside its workspace, reaching into unrelated systems, quietly widening what it was asked to do.
- S2b (Jailbreak Vulnerability, per the paper's naming): this server ships a practical, pattern-based heuristic for the adjacent problem of adversarial instructions smuggled through tool results, file contents, or fetched data. This is an engineering heuristic inspired by S2b, not an implementation of the paper's own empirical S2b findings — the paper explicitly defers S2b's evaluation ("scoped as a defined next step") pending a more stable attack taxonomy, and this server's keyword/pattern matching is a different, narrower thing than what that evaluation would measure.
The paper validates those nine signatures against 2,571 entries across three independent corpora: the AI Incident Database (AIID + hand-curated supplement, n=1,134), the AVID AI Vulnerability Database (n=767), and the MIT AI Risk Repository (n=670). The per-model detection-rate figures from that research are reported in the paper with their methodology; treat them as directional context for why these signatures matter, not as an independently-audited benchmark of this codebase.
Security Model: A Fast Pre-Filter, Not a Sandbox
Aletheia MCP is a deterministic, pattern-based lexical and structural filter, iteratively hardened through many rounds of adversarial red-teaming against the shell, SQL, filesystem, and network surfaces it inspects. Each round of testing has turned up real gaps, and each has been fixed and re-verified. That process is ongoing, not finished, and it never fully finishes: this is honest heuristic pattern-matching over Bash and SQL, not a formal parser or a proof of completeness.
[!IMPORTANT] What this is, and isn't:
- Aletheia is a fast, first-line pre-execution filter: single-digit-to-low-tens-of-microseconds overhead, deterministic, no LLM in the hot path. It catches a wide and continually growing set of known destructive, exfiltration, SSRF, and privilege-escalation patterns before they execute.
- Aletheia is not a sandbox, not a formal guarantee, and not a substitute for least-privilege credentials, non-root system users, scoped database grants, or containerized/VM-level isolation (Docker, gVisor, Firecracker). Because it works by recognizing known-dangerous patterns in shell and SQL text rather than by parsing and fully understanding either language, a sufficiently novel or obfuscated construct can, in principle, always be found that the current pattern set doesn't yet cover. This is an inherent property of pattern-based filtering against a Turing-complete shell, not a bug that a future patch will finally close for good.
- Aletheia does not perform DNS resolution, so a domain name an attacker controls and points at a private IP or cloud metadata endpoint is outside what a string-based filter can ever detect at this layer; that requires DNS-aware egress control (see SECURITY.md).
- The right way to run this: treat Aletheia as one layer that removes the easy, common failure modes cheaply, combined with OS/network-level sandboxing as the actual security boundary, not instead of it.
Known Limitations (non-exhaustive, updated as found)
- Detection is enumerated over known dangerous functions, flags, and syntax shapes (e.g., specific SQL functions, specific shell obfuscation idioms). Sibling or novel variants not yet added to the pattern set will not be caught until they are found and added.
- No DNS resolution: SSRF protection is limited to literal IPs/hostnames in the request text, not what a domain name actually resolves to.
- S2b (prompt-injection) detection is keyword- and pattern-based; it is not a semantic classifier and can be evaded by sufficiently novel phrasing.
- This is a single, actively-iterated implementation; it has not yet had independent, adversarial third-party review beyond the iterative self-testing documented in this repository's commit history.
The Problem: Scope Creep (S3) in Agent Runtimes
When autonomous agents are granted tool execution access (Bash, SQL, filesystem mutation, API calls), the primary failure mode is Scope Creep Beyond Mandate:
- Destructive Shell Mutation: An agent asked to "inspect git diff" runs
git reset --hardorrm -rf *to resolve a conflict. - Credential Harvesting: An agent reading code probes
~/.ssh/id_rsa,.env, or AWS credentials to resolve connection errors. - Unbounded Database Writes: An agent executes
DELETE FROM accounts;orUPDATE users SET role='admin';withoutWHEREpredicates (or with tautologicalWHERE 1=1). - Interpreter Escape Hatches: An agent runs shell commands wrapped inside
python3 -c "os.system('...')"ornode -e "fs.rmSync('/')". - SSRF & Cloud Metadata Leaks: An agent probing network endpoints makes calls to
169.254.169.254(AWS metadata) or internal RFC1918 subnets. - Self-Mandate Escalation: A prompt-injected or drifting agent attempting to rewrite its own safety policy.
Existing defenses rely on LLM-as-a-judge evaluators that add 1,500–3,000 ms to every tool call. Aletheia MCP provides deterministic, multi-stage lexical and structural filtering in single-digit microseconds.
Key Features
The list below reflects what the pattern set currently catches, built up through iterative adversarial testing rather than designed upfront as a complete taxonomy. See Known Limitations above for what it does not (yet, or ever, in the DNS case) cover.
- ⚡ Sub-Millisecond (~25 µs p99) Overhead: 100,000+ evaluations per second. Zero perceived latency in agent loops.
- 🛡️ Monotonic Mandate Escalation Guard: Prevents autonomous agents from self-granting write, destructive, or network permissions. Mandates can be tightened voluntarily, but loosening requires an
operatorSecret. - 🎯 Evasion-Hardened Engine:
- Database OS & Filesystem Primitives: Blocks PostgreSQL
COPY ... PROGRAM,pg_read_file(),lo_import(); MySQLLOAD DATA INFILE,INTO OUTFILE; SQLiteATTACH DATABASE; and SQL Serverxp_cmdshell. - Scheme-less & Malformed URL SSRF Defense: Normalizes protocol-relative and scheme-less endpoints (
169.254.169.254/latest), enforcing strict fail-closed rejection on invalid URLs and direct cloud metadata access under offline mandates. - Direct Shell Metadata & Network Tool Neutralization: Scans direct IP references in
curl/wgetwithout URL schemes, and blockssocatraw socket exfiltration channels. - Wildcard Credential & Sensitive Directory Boundaries: Enforces wildcard protection across all
.env.*variants (.env.secrets,.env.staging,.env.test) and sensitive config roots (~/.kube/,~/.docker/,~/.gnupg/,.git-credentials). - Linear O(N) Normalization: Token-based non-backtracking brace expansion and bounded parameter resolution ensures sub-millisecond execution on 100KB+ payloads.
- Bash Socket Pseudo-Device Interception: Inspects
/dev/tcp/HOST/PORTand/dev/udp/HOST/PORTredirections, halting cloud metadata SSRF and covert exfiltration channels directly on shell inputs. - SQL CTE & Procedural Block Interception: Enforces unbounded mutation guards across Common Table Expressions (
WITH ... DELETE) and PL/pgSQL anonymous blocks (DO $$ ... $$). - Dynamic Linker Hijacking Defense: Neutralizes
LD_PRELOAD,DYLD_INSERT_LIBRARIES, and runtime environment variable hijacking. - Quote & Backslash Stripping: Defeats split-token evasion (
r'm' -rf /,r\m -rf /). - Variable Indirection & Default Fallbacks: Resolves shell variable substitutions (
X=rm; $X -rf /) and default parameter expansions (${X:-rm} -rf /). - Positional Parameter & IFS Normalization: Neutralizes
$IFS$9word-splitting. - Dual-Representation SQL Analysis: Defeats inline comment evasion (
DROP/**/TABLE,DR/**/OP, and# MySQL comment). - Interpreter Escape Interception: Recursively normalizes string concatenations (
'r'+'m'), inspects dynamic imports (import("node:fs")), and parses code passed via-c/-e/-rflags acrosspython,node,ruby,perl,php, andsh. - Automated Hex & Base64 Decoding: Automatically extracts, decodes, and recursively evaluates hex (
bytes.fromhex(...)) and base64-encoded command payloads. - Unicode NFKC & Zero-Width Sanitization: Neutralizes invisible characters (
\u200B,\u200C,\uFEFF) and confusable fullwidth/math-bold jailbreaks in prompt injections (S2b). - IPv4-Mapped IPv6 SSRF Translation: Converts compressed hex IPv6 notations (
[::ffff:a9fe:a9fe]) to canonical dotted-decimal bytes (169.254.169.254). - Percent-Encoded Path Traversal: Multi-pass URL decoding catches
%2e%2e%2f.envand..%2f.ssh%2fid_rsa. - Generalized Fork Bombs: Detects recursive piped background processes across arbitrary function identifiers.
- SetUID Privilege Elevation: Halts
chmod u+s,chmod 4755, and privilege tampering. - Tautological SQL Predicates: Flags
WHERE 1=1,WHERE true, and tautologies as unbounded mutations. - Polymorphic Argument Inspection: Safely inspects strings, arrays, and objects fail-closed across both native and unrecognized third-party tools.
- Database OS & Filesystem Primitives: Blocks PostgreSQL
- 🛡️ Two Operating Modes:
- Direct Guard Tools: Standalone tools (
aletheia_set_mandate,aletheia_intercept,aletheia_safe_bash,aletheia_safe_sql). - Fail-Closed Transparent Proxy: Middleware that wraps ANY downstream MCP server (Postgres, Filesystem, Bash), intercepting both single
tools/calland JSON-RPC 2.0 batch arrays with strict fail-closed boundaries.
- Direct Guard Tools: Standalone tools (
- 📊 Real-Time Observability Resources: Exposes live audit logs, block rates, and latency distributions via
aletheia://telemetry/summary. - 🔒 Zero External API Calls: Zero LLM-as-a-judge latency on the hot execution path.
Performance Benchmarks
Measured on 10,000 consecutive multi-domain evaluations (Bash de-obfuscation, SQL pattern validation, path verification, SSRF check, prompt injection). Numbers below are from a representative local run; p50 is stable across runs, p99 varies with system load (observed range ~24–70 µs) since it's sensitive to GC pauses at microsecond scale; both are still comfortably within the sub-millisecond target:
Run locally via npm run benchmark. Results will vary by machine; treat the specific microsecond figures as illustrative of "comfortably sub-millisecond," not as a precise SLA.
How the microsecond-level overhead is actually achieved
There's no single trick — it's the absence of the things that would make this slow, plus a few deliberate implementation choices:
- No LLM anywhere in the hot path. The decision is made entirely by synchronous, in-process JavaScript — no network round-trip, no model inference. This is the single biggest factor: an LLM-as-judge call costs 1.5–3 seconds because it's a remote inference request; this costs microseconds because it's local string matching.
- Regex patterns are precompiled once at module load, not rebuilt per call. Every pattern list (
DESTRUCTIVE_SIGNATURES,SENSITIVE_PATH_PATTERNS,OBFUSCATION_PATTERNS, etc.) is aRegExpobject constructed at server startup and reused for the life of the process — V8 compiles a regex's internal representation once, so there's no recompilation cost per request. - Inputs are short, and the operations on them are linear. A shell command, SQL query, path, or URL is typically tens to a few hundred characters; a dozen sequential regex passes over a string that size is inherently a few-microsecond operation. (The one time this assumption broke — an O(n²) normalization step that was fine on typical input but took 18 seconds on a 100KB adversarial payload — is exactly the kind of thing documented and fixed in the commit history; see Known Limitations.)
- Dispatch does bounded work, not exhaustive work. The evaluator first identifies which domain a tool call belongs to (bash, SQL, filesystem, network) via a cheap substring check on the tool name, then runs only that domain's checks — not every check across every domain on every call.
- Fixed-size bookkeeping. The audit log and latency-history buffers are capped (500 and 2,000 entries respectively) via O(1)-amortized operations, so per-call overhead doesn't grow as the server stays up. This was verified directly, not assumed: 3 million sequential evaluations held a flat ~154,000 ops/sec with no degradation trend.
The honest caveat if the exact number gets pushed on: the ~25µs figure is the cost of the in-process evaluation function itself, measured with a high-resolution monotonic clock directly around that call. It does not include JSON-RPC serialization or stdio pipe I/O in a real MCP session, which adds some overhead on top. The claim that holds up is "no LLM in the hot path, comfortably sub-millisecond end to end" — not "exactly 25 microseconds no matter what's measuring it."
Production Readiness & Scale Testing
Beyond the unit test suite, these are real, reproducible tests against actual spawned processes and a real downstream MCP server (@modelcontextprotocol/server-filesystem), not synthetic in-process loops. Run them yourself via npm run test:scale:concurrent and npm run test:scale:isolation (source: test/scale-*.mjs).
None of this substitutes for real, unpredictable usage over time — it rules out the specific failure modes (wrong Node version, memory leak, high false-positive rate, cross-instance interference) that would make early real usage go badly, rather than proving the tool is bug-free.
Quickstart
[!TIP] By default, Aletheia starts fully locked down (read-only, no network, no loopback) and stays that way, on purpose. If your agent needs to write files or make network calls, grant that up front with
--allow-write/--allow-network/--allow-loopback(and scope writes to a directory with--allowed-paths), as shown below. These flags set the initial mandate at server startup and are not gated byoperatorSecret; that gate only applies to changing an already-running session's mandate mid-flight (e.g. an agent callingaletheia_set_mandateto loosen its own permissions, which is deliberately blocked). Most users want the startup flags below, notoperatorSecret.
1. Claude Code CLI
2. Claude Desktop
Add to your claude_desktop_config.json:
3. Transparent Proxy Mode
Wrap existing downstream MCP servers with Aletheia safety filtering:
Tool Reference
Resource & Prompt Reference
Resources (resources/read)
Clients can inspect server state on-demand via standard MCP resources/read:
aletheia://telemetry/summary: Real-time evaluation counters, block rate %, and microsecond latency distribution.aletheia://telemetry/audit-log: Rolling log of the last 50 tool clearance requests with inputs, verdicts, violation signatures, and timestamps.aletheia://mandate/current: Active session mandate parameters, allowed tool lists, path boundaries, and permission toggles.aletheia://signatures/s3: Specification, risk taxonomy, and benchmark failure rate data for Signature S3 (Scope Creep).
Prompts (prompts/get)
aletheia_mandate_enforcer: System prompt directive that establishes operational safety boundaries and instructs the agent to route risky actions through Aletheia before execution. Acceptstask_description(required),workspace_root(optional), andallow_write(optional).
Architecture
Research Attribution & Empirical Corpus
Aletheia MCP is developed by Vikas Shivpuriya as part of the broader Aletheia AI Safety Research Core. The underlying behavioral failure signatures are motivated by incidents cataloged in the AI Incident Database (AIID), the AVID AI Vulnerability Database, and the MIT AI Risk Repository. The per-model detection rates referenced for frontier systems (Claude Sonnet 4.6, GPT-4o, Gemini 2.5 Flash) come from that paper's evaluation harness; treat them as directional context for why Signature S3 matters rather than as a verifiable benchmark of this codebase. Signature S2b specifically is not yet part of that empirical evaluation — the paper defers it as future work, so this server's S2b filter should be read as an independent, practical heuristic motivated by the taxonomy, not as an implementation validated by the paper's own findings.
What is independently verifiable in this repository: the test suite (npm test), the latency benchmark (npm run benchmark), and the commit history documenting each round of adversarial testing and the fixes it produced.
- Research Paper & Taxonomy: github.com/vikasny30/aletheia-paper
- License: Apache 2.0
來源:README.md,提交 3a11152
工具
0版本歷史
1- v0.3.1最新Sep 16, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。
其他 Aletheia 整合
4words
land.aletheia官方發布者
面向LLM代理程式與人類的臨時文字/檔案共享及即時多代理程式聊天室。AI 翻譯

Aletheia
由 GitHub 帳號 mohamed-ashraf-elsaed 發布
一個免費、本機的記憶與規則中心,供 Claude Code 及其他 AI 程式設計工具使用,通過 MCP 提供服務。AI 翻譯

Aletheia
由 GitHub 帳號 firatmio 發布
Aletheia 為編碼助理提供帶有程式碼證據的專案記憶,每次召回都會對照檔案重新驗證,過期的事實會被隱藏。

Aletheia Certified Compute
由 GitHub 帳號 shaneraphel 發布
一個遠端 MCP 端點,提供經認證的程式合成,按次以 USDC 透過 x402 計費,被拒絕的請求不收費。