ogham-mcp@0.19.1
CAUTION· not startedPublisher claims: "Shared memory MCP server — persistent, searchable, cross-client" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Not started: dependency install failed; the server itself was not observed.- Tested
- the dependency install step · every file read, file written and host contacted by what ran
- Not tested
- server startup · the tool list · tool behavior
What this means for the label: Caution here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
ANTHROPIC_API_KEYDATABASE_URLGEMINI_API_KEYGITHUB_TOKENGOOGLE_API_KEYLINEAR_API_TOKENMISTRAL_API_KEYOGHAM_COMPILE_MAX_TOKENSOPENAI_API_KEYSLACK_BOT_TOKENTELEGRAM_BOT_TOKENVOYAGE_API_KEYConfiguration, not credentials: OGHAM_ACTIVATION_DAMPING, OGHAM_BENCH_MODE, OGHAM_BENCH_RAW, OGHAM_BOOT_WARMUP, OGHAM_CONFLICT_THRESHOLD, OGHAM_CONFLICT_TIMEOUT_MS, OGHAM_EXTRACT_MODEL, OGHAM_EXTRACT_PROVIDER, OGHAM_POOL_MAX, OGHAM_POOL_MIN, OGHAM_PROFILE, OGHAM_RETRY_FAST, OGHAM_VLLM_URL, OLLAMA_HOST, OLLAMA_URL, SUPABASE_KEY, SUPABASE_URL- Where it talks to
- ogham-mcp.dev (its own)Also linear.app, slack.com, groq.com, mistral.ai, openrouter.ai, unpkg.com, voyageai.com, google.com — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- server startup · the tool list · tool behavior
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names linear.app, slack.com, groq.com, mistral.ai, openrouter.ai, unpkg.com, voyageai.com, google.com as well as its own vendor. The guard injects ANTHROPIC_API_KEY, DATABASE_URL, GEMINI_API_KEY, GITHUB_TOKEN, GOOGLE_API_KEY, LINEAR_API_TOKEN, MISTRAL_API_KEY, OGHAM_COMPILE_MAX_TOKENS, OPENAI_API_KEY, SLACK_BOT_TOKEN, TELEGRAM_BOT_TOKEN, VOYAGE_API_KEY only into requests to ogham-mcp.dev (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-13 and scored it 73/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Collapsed <details> block carrying instructions; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
files.append(".env")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.<summary><b>Obsidian export</b></summary> Snapshot your wiki layer to a folder of Obsidian-compatible markdown files. One `.md` per topic with full YAML frontmaFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.# .env fileFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if Path(".env").exists():Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# benchmark .env files, research notes, claude metadata, or experimentalFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# Project-level .env (highest priority)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.f"(b) swap EMBEDDING_DIM={actual_dim} in .env to match the applied schema. "Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.env_file = Path.home() / ".ogham" / ".env"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."**/*.env*",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return tuple(files) if files else (".env",)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."""Find env files: project .env first, then ~/.ogham/config.env as fallback."""Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.filename = "schema.sql" if backend == "supabase" else "schema_postgres.sql"Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why."project": ".env in current directory",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.are logged at WARNING -- a single bad file doesn't kill the walk.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.console.print(" [yellow]Add .env to your .gitignore -- it contains API keys.[/yellow]")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.config_sources.append("environment variables only (no .env file found)")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.proc = subprocess.run(args, cwd=cwd, capture_output=True, text=True) # noqa: S603Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.output: str = typer.Option("docs/openapi.json", help="Output file path"),Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.# single most common row in the store came from: an edit to MEMORY.mdFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.env_path = Path.cwd() / ".env"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.logger.error("Check your database configuration in .env")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."""Write config to ~/.ogham/config.env (global) or .env (project)."""Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.env_file = Path(".env")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# Fall back to settings (loaded from .env / ~/.ogham/config.env viaFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."sql/schema_postgres.sql" = "ogham/sql/schema_postgres.sql"Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.# Antigravity uses mcpServers but "serverUrl" instead of "url" for SSEFix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for ogham-mcp@0.19.1 as of 23 h ago. This is the package itself, not its dependencies.
What would make this Verified
7 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim ogham-mcp: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Hidden instructions≈ +6 on the totalRemove HTML comments, zero-width characters and white-on-white text that carry instructions. Everything the agent is meant to read should be visible to the person reading the file.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
- Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.