MCP server · Audited from source
Context Mode MCP server
by mksglu/context-modeNOASSERTION licenceAudited 20 Sep 2026 · source 78db051b5773
Is it safe? No — BLOCK, grade F (37/100). It exposes 18 tools: 10 read, 6 write and 2 destructive. The audit recorded 41 findings (1 critical, 7 high, 1 medium, 31 low). Maintainer's description: Context window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP + hooks.
Cite
Cite this page
ModelsAtlas. “Context Mode MCP server (mksglu/context-mode)”. Retrieved 20 Sep 2026. https://modelsatlas.com/mcp/mksglu/context-mode
Why this is BLOCK. The audit found 1 critical and 7 high findings; the most severe is Obfuscation / stealth at cli.bundle.mjs:459. Each finding is listed below with its file and line.
Why this page is still public. People search for this server by name. Hiding it would leave them with the README's word alone; here they see what the code does. We list it so you can decide, and we do not show connect commands for BLOCK servers.
Trust audit
Audit 0.4.1 · full source read 20 Sep 2026
41 findings, listed below with the file and line each was found on. Grade A needs a sandboxed behavioural run too; this audit read the source only.
What the source does
- FilesystemDeclared11 observations
- NetworkDeclared6 observations
- ShellDeclared10 observations
- DependenciesNot pinnedSome ranges float
- SecretsNone foundNo keys in source
Findings (41)
Sorted by severity · the 25 most severe of 41 are listed
CRITICALObfuscation / stealthobf.decode_then_exec · cli.bundle.mjs:459
atob( ... /exec(
- Why
- decodes a payload and executes it
- Fix
- —
HIGHInventory / provenanceinv.suspicious_name · hooks/antigravity-cli/payload.mjs
payload.mjs
- Why
- member named after an attack tool
- Fix
- remove or justify
HIGHCode injectioncode.eval_exec · scripts/heal-better-sqlite3.mjs:197
const displayName = exec(
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · src/db-base.ts:64
exec(sql: string): any {- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · src/db-base.ts:140
exec(sql: string): any {- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · src/security.ts:801
/exec(?:Sync|File|FileSync)?\(\s*(['"`])(.*?)\1/g,
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · src/security.ts:805
/exec(?:Sync|File|FileSync)?\(\s*(['"`])(.*?)\1/g,
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHNetwork egressnet.metadata_ip · src/server.ts:3277
if (a === 169 && b === 254) return "block"; // link-local incl. 169.254.169.254 (IMDS)
- Why
- cloud metadata endpoint: the classic SSRF credential grab
- Fix
- —
MEDIUMFilesystem / pathmcp.destructive_tools
context-mode.session-reset, ctx_purge
- Why
- 2 tool(s) can delete or overwrite
- Fix
- prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInformation disclosuredisclose.log_secret · tests/benchmark.ts:415
console.log(` 1 token (post-dedup) : ${dedup.deduped.toFixed(1)} μs/query`);- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.credential_store · tests/security.test.ts:600
"../../.ssh/id_rsa",
- Why
- touches a credential store
- Fix
- —
LOWFilesystem / pathfs.credential_store · tests/security.test.ts:615
"../../.ssh/id_rsa",
- Why
- touches a credential store
- Fix
- —
LOWFilesystem / pathfs.traversal · .pi/extensions/context-mode/index.ts:1
export { default } from "../../../build/adapters/pi/extension.js";- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · src/adapters/antigravity-cli/index.ts:25
import { parseJsonc } from "../../util/jsonc.js";- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · src/adapters/claude-code/index.ts:30
import { resolveClaudeConfigDir } from "../../util/claude-config.js";- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · src/adapters/claude-code/index.ts:31
import { checkPluginCacheIntegritySync } from "../../util/plugin-cache-integrity.js";- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · src/adapters/codex/index.ts:31
import { hashProjectDirCanonical } from "../../session/db.js";- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.metadata_ip · README.md:1582
- **Cloud metadata + link-local**: `169.254.0.0/16` (incl. AWS/GCP/Azure IMDS endpoint `169.254.169.254`) hard-blocked even if a hostname resolves to it (DNS-rebinding defense).
- Why
- cloud metadata endpoint: the classic SSRF credential grab
- Fix
- —
LOWNetwork egressnet.metadata_ip · tests/core/server.test.ts:3728
expect(classifyIp("169.254.169.254")).toBe("block");- Why
- cloud metadata endpoint: the classic SSRF credential grab
- Fix
- —
LOWNetwork egressnet.metadata_ip · tests/core/server.test.ts:3783
expect(classifyIp("::ffff:169.254.169.254")).toBe("block"); // IMDS via IPv4-mapped- Why
- cloud metadata endpoint: the classic SSRF credential grab
- Fix
- —
LOWNetwork egressnet.metadata_ip · tests/core/server.test.ts:3879
imds: classifyIp("169.254.169.254"),- Why
- cloud metadata endpoint: the classic SSRF credential grab
- Fix
- —
LOWNetwork egressnet.raw_ip · tests/core/fetch-cleanup.test.ts:113
baseUrl = `http://127.0.0.1:${addr.port}`;- Why
- No further detail recorded for this rule.
- Fix
- —
Tools it exposes
18 declared in source · 2 destructive
2 tools can delete or overwrite. An agent that can be talked into calling a tool can be talked into calling this one, so give it a token scoped to what you need.
| Tool | What it does | Risk |
|---|---|---|
context-mode.session-reset | Session cleanup on /reset command | destructive |
ctx_purge | DESTRUCTIVE — permanently delete indexed content. CANNOT be undone.\n\n | destructive |
context-mode.session-stop | Session cleanup on /stop command | write |
ctx-doctor | Run context-mode diagnostics | write |
ctx_batch_execute | Run multiple commands and search queries in ONE call. Primary research tool — replaces 30+ individual calls. | write |
ctx_doctor | Run context-mode diagnostics — runtimes, hooks, FTS5, plugin registration. | write |
ctx_execute | Execute code in a sandboxed subprocess. Only stdout enters context. Prefer over Bash for any command producing >20 lines. | write |
ctx_execute_file | Execute code with a file path. Only printed summary enters context — raw file stays in sandbox. | write |
context-mode.session-new | Session initialization — cleans up old sessions on /new command | read |
ctx-stats | Show context-mode session statistics | read |
ctx-upgrade | Upgrade context-mode to the latest version | read |
ctx_fetch_and_index | Fetch a URL, chunk it, and index — raw HTML never enters context. | read |
ctx_index | Store content in the FTS5 knowledge base for later search. | read |
ctx_insight | Open the hosted context-mode Insight dashboard (context-mode.com/insight) in the browser. | read |
ctx_search | Query indexed content via FTS5. Pass all questions as an array in ONE call. | read |
ctx_stats | Show context-mode session statistics — token consumption and per-tool breakdown. | read |
ctx_upgrade | Upgrade context-mode to the latest version. | read |
ping | p | read |
Safer alternatives
claude-world/notebooklm-skill
NotebookLM does the research, Claude writes the content. Research → Synthesis → Content Creation → Publishing. Claude Code Skill + MCP Server.
shipstatic/mcp
MCP server for instant static site deploys from AI agents — free, no account needed
study8677/antigravity-workspace-template
🧠 RepoBrain (formerly Antigravity) — Give your repo a brain. ChatGPT for your codebase: works in Claude Code, Cursor, Codex, Windsurf & more.
Audit history
- ✕BLOCK F 37 / 100
Source changed, verdict held ·
78db051b5773 - ✕BLOCK F 37 / 100
First audit ·
4031d1c9f64f
README badge
Badges show the current verdict, BLOCK included
A badge cannot be hidden by the maintainer while the verdict is BLOCK. Fix the findings, push, and the re-audit updates it.
Questions about Context Mode MCP server
What is the Context Mode MCP server?
What tools does Context Mode expose?
Is Context Mode safe to connect to an agent?
What credentials does Context Mode need?
How does Context Mode run?
How current is this page?
I already installed Context Mode. What should I do?
Can the verdict change?
Sources
- mksglu/context-mode on GitHub — the source we read, its licence, stars and activityObserved · 20 Sep 2026
- ModelsAtlas trust audit — BLOCK verdict for commit 78db051b5773Observed · 20 Sep 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What is the Context Mode MCP server?
- What tools does Context Mode expose?
- Is Context Mode safe to connect to an agent?