{"name":"io.github.basicmachines-co/basic-memory","slug":"basicmachines-co-basic-memory","title":null,"description":"Local-first knowledge management with bi-directional LLM sync via Markdown files.","url":"https://mcp.market/server/basicmachines-co-basic-memory","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":68,"stars":4015,"forks":290,"downloads_week":6012,"last_push_at":"2026-09-16T03:44:02.000Z","license":"AGPL-3.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/basicmachines-co/basic-memory.git","website":null,"version":"0.23.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"basic-memory","version":"0.23.2","runtimeHint":"uvx","transport":{"type":"stdio"},"runtimeArguments":[{"value":"basic-memory","type":"positional"},{"value":"mcp","type":"positional"}]}],"tools":[{"name":"basic_memory_diagnostics","description":"Return version, system, and configuration diagnostics for Basic Memory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"build_context","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_memory_project","description":"Create a new Basic Memory project.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_note","description":"Delete a note or directory by title, permalink, or path","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_project","description":"Delete a Basic Memory project.","write_action":true,"price_micros":0,"input_schema":null},{"name":"edit_note","description":"Edit an existing markdown note using various operations like append, prepend, find_replace, replace_section, insert_before_section, or insert_after_section. Pass metadata to merge YAML frontmatter fields independent of the operation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fetch","description":"Fetch the full contents of a search result document","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_directory","description":"List directory contents with filtering and depth control.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_memory_projects","description":"List all available projects with their status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_workspaces","description":"List available cloud workspaces (tenant_id, type, role, and name).","write_action":false,"price_micros":0,"input_schema":null},{"name":"move_note","description":"Move a note or directory to a new location, updating database and maintaining links.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_content","description":"Read a file's raw content by path or permalink.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_note","description":"Read a markdown note by title or permalink.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_note_ui","description":"Read a note and return an embedded MCP-UI resource (raw HTML).","write_action":false,"price_micros":0,"input_schema":null},{"name":"recent_activity","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"schema_diff","description":"Detect drift between a schema definition and actual note usage.","write_action":false,"price_micros":0,"input_schema":null},{"name":"schema_infer","description":"Analyze existing notes and suggest a Picoschema definition.","write_action":false,"price_micros":0,"input_schema":null},{"name":"schema_validate","description":"Validate notes against their Picoschema definitions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search","description":"Search for content across the knowledge base","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_notes","description":"Search across all content in the knowledge base with advanced syntax support.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_notes_ui","description":"Search notes and return an embedded MCP-UI resource (raw HTML).","write_action":false,"price_micros":0,"input_schema":null},{"name":"view_note","description":"View a note as a formatted artifact for better readability.","write_action":false,"price_micros":0,"input_schema":null},{"name":"write_note","description":"Create a markdown note. If the note already exists, returns an error by default — pass overwrite=True to replace.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-21T13:03:07.623Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-21T13:03:07.659Z","components":{"code":{"score":3,"max":25,"notes":["575 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"basic_memory-0.23.2/integrations/openclaw/commands/slash.ts: …}`) try { const output = execSync(`bash \"${scriptPath}\"`, { encoding: \"ut…"},{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"basic_memory-0.23.2/src/basic_memory/file_utils.py: … into args list for safer execution (no shell=True) args = shlex.split(cmd) …"},{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"basic_memory-0.23.2/src/basic_memory/read_cache/redis.py: …, remaining_ttl_ms = await self._client.eval( _LOOKUP_SCRIPT, …"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"basic-memory","version":"0.23.2","found":true,"weeklyDownloads":6012,"license":"AGPL-3.0-or-later","dependencyCount":46,"publishedAt":"2026-08-25T20:44:43.891819Z","repositoryUrl":"https://github.com/basicmachines-co/basic-memory"}],"repo":{"found":true,"owner":"basicmachines-co","repo":"basic-memory","archived":false,"pushedAt":"2026-09-16T03:44:02Z","stars":4015,"forks":290,"openIssues":62,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/88632318?v=4","ownerCreatedAt":"2021-08-08T20:07:42Z","license":"AGPL-3.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/88632318?v=4&s=128","source":"github"},"presence":{"stars":4015,"forks":290,"downloadsWeek":6012,"license":"AGPL-3.0","lastPushAt":"2026-09-16T03:44:02.000Z","score":68}}}},"grade_history":[],"reviews":[]}