← MCP servers · basicmachines-co

Basic Memory

BLOCKgrade F · trust 36/100

AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord: https://discord.gg/tyvKNccgqN

aiclaudeknowledge managementknowlege graphllmlocal firstmarkdownmcp

Overview

From the repository's own README, as read at the audited commit.

<!-- mcp-name: io.github.basicmachines-co/basic-memory -->[![MCP Toplist](https://mcptoplist.com/badge/io.github.basicmachines-co%2Fbasic-memory.svg)](https://mcptoplist.com/server/io.github.basicmachines-co%2Fbasic-memory)[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)[![PyPI version](https://badge.fury.io/py/basic-memory.svg)](https://badge.fury.io/py/basic-memory)[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)[![Tests](https://github.com/basicmachines-co/basic-memory/workflows/Tests/badge.svg)](https://github.com/basicmachines-co/basic-memory/actions)[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)![](https://badge.mcpx.dev?type=server 'MCP Server')![](https://badge.mcpx.dev?type=dev 'MCP Dev')[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/basicmachines-co/basic-memory)## Skip the install — try Basic Memory in the cloudClaude, Codex, or Cursor connected in 30 seconds. No Python, no JSON, noterminal. **$15.00/mo locked in for life** (12.50/mo yearly pricing). 7-day freetrial — cancel any time before day 7 if it's not for you. Beta pricing —sign up now and your rate never goes up. OSS users: code `BMFOSS` takesanother 20% off for 3 months.[Start free trial →](https://basicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme&utm_content=banner)### Basic Memory Teams is now available!Give your team a single, shared cloud workspace. Knowledge isn't confined to one person — anything a teammate writes is immediately available to everyone else and to their AI assistants. Edit a note together in real time, hand work off between humans and agents, and build one connected knowledge base instead of scattered copies. Same pricing - start with one user and add more as needed. ---# Basic Memory### Your AI neve

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 basic-memory -- uvx basic-memory==0.23.2

Exposed tools (18) 14 read · 3 write · 1 destructive

Blast radius: 1 tool can delete or overwrite. An agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
basic_memory_diagnosticsread
bm-setupwriteInstall or update the Basic Memory CLI (requires uv)
catreadPrint a note
create_memory_projectwrite
delete_projectdestructiveDelete a Basic Memory project.
fetchreadChatGPT/OpenAI MCP fetch adapter returning a single text content item.
grepreadSearch note content, semantically by default.
list_memory_projectsread
lsreadList the immediate contents of one directory.
manreadLook up one manual page, search the manual, or render the index.
recallreadSearch the Basic Memory knowledge graph
rememberwriteSave something to the Basic Memory knowledge graph
schema_diffreadDetect drift between a schema definition and actual note usage.
schema_inferreadAnalyze existing notes and suggest a schema definition.
schema_validatereadValidate notes against their resolved schema.
searchreadChatGPT/OpenAI MCP search adapter returning a single text content item.
tailreadShow the most recently changed notes in a project.
view_notereadView a markdown note as a formatted artifact.

Details

Source
basicmachines-co/basic-memory
npm
@basicmemory/pi-basic-memory@0.23.2
PyPI
basic-memory
Transports
stdio · streamable-http
Credentials it reads
GITHUB_TOKENMEM0_OPENAI_COMPAT_API_KEYOPENAI_API_KEYSUPERMEMORY_API_KEY
License
AGPL-3.0
Stars
3,971 · pushed 0d ago

Trust audit

Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (4 observation(s))
Network
declared (3 observation(s))
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHHard-coded secrets · secret.db_uri · CWE-798, CWE-321
.env.example:12
# By default, tests use: postgresql://basic_memory_user:dev_password@localhost:5433/basic_memory_test
HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
.agents/skills/cmux-settings/SKILL.md:68
- Never tell the user to restart cmux. The file watcher reloads on save.
Why it matters. asks the agent to act without the user's knowledge
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/adversarial-review
.claude/skills/adversarial-review
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/basic-machines-review
.claude/skills/basic-machines-review
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/cmux
.claude/skills/cmux
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/cmux-markdown
.claude/skills/cmux-markdown
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/cmux-settings
.claude/skills/cmux-settings
Why it matters. link not followed
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/basic_memory/cli/commands/cloud/shares.py:180
console.print(f"  Token: {data.get('token', 'unknown')}")
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/basic_memory/cli/commands/cloud/shares.py:457
console.print(f"[red]Share not found: {token}[/red]")
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/basic_memory/cli/commands/cloud/shares.py:514
console.print(f"[green]Share {token} revoked successfully[/green]")
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/basic_memory/cli/commands/cloud/shares.py:525
console.print(f"[red]Share not found: {token}[/red]")
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
.agents/skills/cmux-workspace/SKILL.md:35
cmux new-pane --workspace "${CMUX_WORKSPACE_ID}" --type browser --direction right --url "http://127.0.0.1:8765"
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
.github/workflows/test.yml:264
BASIC_MEMORY_TEST_POSTGRES_URL: postgresql://basic_memory_user:[email protected]:5432/basic_memory_test
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
.github/workflows/test.yml:338
BASIC_MEMORY_TEST_POSTGRES_URL: postgresql://basic_memory_user:[email protected]:5432/basic_memory_test
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
tests/cli/test_config_command.py:334
"redis://cache-user:[email protected]:6379/0"
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
tests/mcp/test_tool_basic_memory_diagnostics.py:106
"redis://cache-user:[email protected]:6379/0"
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
integrations/tau/tests/test_recovery.py:248
"-----BEGIN RSA PRIVATE KEY-----private-----END RSA PRIVATE KEY-----"
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_project
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
integrations/hermes/.coveragerc
.coveragerc
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
tests/mcp/tools/test_mutating_memory_url_routing.py:51
tool_module = importlib.import_module(module_name)
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/basic_memory/cli/commands/cloud/webdav_transfer.py:350
digest = hashlib.md5(usedforsecurity=False)
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
tests/cli/cloud/test_webdav_transfer.py:34
return hashlib.md5(data, usedforsecurity=False).hexdigest()
LOWInformation disclosure · disclose.log_secret · CWE-209, CWE-532
tests/markdown/test_task_detection.py:17
print(f"{token.type}: {token.content}")
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
tests/mcp/test_tool_move_note.py:776
"../../../root/.ssh/id_rsa",
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
tests/mcp/test_tool_move_note.py:844
"/root/.ssh/id_rsa",
Why it matters. touches a credential store

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-09-16 · audit v0.4.0 · source sha 66cdcaa927f9 · full audit: observations/trust-audit/mcp-server/basicmachines-co__basic-memory.json · Report an issue or request a re-scan

Audit history

DateSourceVerdictGradeScoreChange
2026-09-1666cdcaa927f9BLOCKF36first audit

Alternatives

Other servers in the same categories, safer ones first.

Questions

What is the Basic Memory MCP server?

AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord: https://discord.gg/tyvKNccgqN

What tools does Basic Memory expose?

18 in total: 14 read-only, 3 that write, and 1 that can delete or overwrite (delete_project). Every one is listed on this page with its risk.

Is Basic Memory safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (36/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. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Basic Memory need?

It reads GITHUB_TOKEN, MEM0_OPENAI_COMPAT_API_KEY, OPENAI_API_KEY and SUPERMEMORY_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 Basic Memory run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @basicmemory/pi-basic-memory at 0.23.2.

How current is this page?

The grade is for one exact copy of the source (66cdcaa927f9), read on 2026-09-16. The repository is watched and re-audited when it changes.

Provenance: OBSERVED · read 2026-09-16 · job trust-audit-2026-09-16