Atlas / MCP servers / n24q02m / mnemo

mnemoBLOCK

mcp/n24q02m/mnemo

Persistent AI memory with hybrid search and embedded sync. Open, free, unlimited.

Verdict
BLOCK
Grade
F
Trust score
58 /100
Exposed tools
—
Transport
streamable-http
License
Apache-2.0
Stars
12
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Renamed (2026-09-13): repo is now mnemo — CLI-first (mnemo command). PyPI package stays mnemo-mcp; MCP server remains a secondary surface.

mcp-name: io.github.n24q02m/mnemo

Persistent AI memory with hybrid search. Open, free, unlimited.

[](https://mcp.n24q02m.com/get-started/modes-overview/) [](https://github.com/n24q02m/mnemo/actions/workflows/ci.yml) [](https://codecov.io/gh/n24q02m/mnemo) [](https://pypi.org/project/mnemo-mcp/) [](LICENSE) [](https://safeskill.dev/scan/n24q02m-mnemo-mcp)

[](#) [](#) [](#) [](https://github.com/python-semantic-release/python-semantic-release) [](https://developer.mend.io/)

Sister projects from n24q02m (click to expand)

Read from source at commit 7b0fdb527995OBSERVED · 2026-10-10
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (pypi)
claude mcp add mnemo-mcp --env API_KEYS=${API_KEYS} -- uvx mnemo-mcp==2.21.0-beta.1
03

Trust audit

BLOCKgrade F · trust 58/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (1 observation(s))
Shell
declared (2 observation(s))
Dependencies
pinned
Secrets in source
found

Findings (23)

CRITICALHard-coded secrets · secret.github · CWE-798, CWE-321
evals/run_mn2_defense.py:29
"secret": "ghp_abcdefghijklmnopqrstuvwxyzabcdefghij",
CRITICALHard-coded secrets · secret.slack · CWE-798, CWE-321
evals/run_mn2_defense.py:31
{"id": "tp-slack", "kind": "slack_token", "secret": "xoxb-123456789012-abcdef"},
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/mnemo/cli.py:36
print(hash_token(token))
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
tests/test_mn2_defense.py:142
"slug sk-ant-api03-changelog-entry-2026",  # short slug, not a key
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/test_mn2_defense.py:26
"token ghp_abcdefghijklmnopqrstuvwxyzabcdefghij leaked",
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/test_mn2_defense.py:90
raw = "legacy blob with ghp_abcdefghijklmnopqrstuvwxyzabcdefghij inside"
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/test_mn2_defense.py:122
text = "token ghp_abcdefghijklmnopqrstuvwxyz0123456789abcd leaked"
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/test_mn3_subject_enforcement.py:108
content="note with ghp_abcdefghijklmnopqrstuvwxyzabcdefghij",
MEDIUMHard-coded secrets · secret.slack · CWE-798, CWE-321
tests/test_mn2_defense.py:29
("slack", "webhook xoxb-123456789012-abcdef used", "[REDACTED:slack_token]"),
LOWInventory / provenance · inv.hidden_file · CWE-1104
.coderabbit.yaml
.coderabbit.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.gitguardian.yaml
.gitguardian.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.gitleaksignore
.gitleaksignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.infisical.json
.infisical.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.mise.toml
.mise.toml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/test_security_path_traversal.py:15
"../../../outside",
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/test_security_path_traversal.py:18
"sub/../../escape",
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/test_security_path_traversal.py:36
malicious = "../../../outside"
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
AGENTS.md:128
uvx --from mnemo-mcp mnemo-mcp   # http://127.0.0.1:8000/mcp (no-auth default)
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
AGENTS.md:134
"mnemo": { "type": "http", "url": "http://127.0.0.1:8000/mcp" }
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
CLAUDE.md:128
uvx --from mnemo-mcp mnemo-mcp   # http://127.0.0.1:8000/mcp (no-auth default)
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
CLAUDE.md:134
"mnemo": { "type": "http", "url": "http://127.0.0.1:8000/mcp" }
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:114
uvx --from mnemo-mcp mnemo-mcp            # serves http://127.0.0.1:8000/mcp by default
LOWInventory / provenance · mcp.no_tools_extracted · CWE-1104
server.json
Why it matters. the tool list is enumerated at runtime by tools/list, not declared in source
Fix. the page says so rather than showing an empty table

Gates applied: critical_finding, no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha 7b0fdb527995full audit observations/trust-audit/mcp-server/n24q02m__mnemo.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-107b0fdb527995BLOCKF58first audit
05

Questions

What is the mnemo MCP server?

Persistent AI memory with hybrid search and embedded sync. Open, free, unlimited.

Is mnemo safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (58/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does mnemo need?

It reads API_KEYS, CF_AIG_TOKEN, HULL_CHAT_API_KEY, MNEMO_AUTH_TOKEN and OPENROUTER_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does mnemo run?

It speaks streamable-http, so it runs as a service you connect to over the network. It is published on npm as mnemo at 2.21.0-beta.1.

How current is this page?

The grade is for one exact copy of the source (7b0fdb527995), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement