{"name":"io.github.mahmoud-nb/thread-mind","slug":"mahmoud-nb-thread-mind","title":null,"description":"Git-friendly memory for AI coding: a tree of thread summaries with inherited context","url":"https://mcp.market/server/mahmoud-nb-thread-mind","rating":null,"grade":"B","score":74,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":27,"stars":3,"forks":0,"downloads_week":16,"last_push_at":"2026-09-27T20:25:52.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/mahmoud-nb/thread-mind-mcp","website":null,"version":"0.5.0","remotes":[],"packages":[{"registryType":"npm","identifier":"thread-mind-mcp","version":"0.5.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Project directory holding .threadmind/, for clients that start servers outside your project","format":"string","name":"THREADMIND_ROOT"},{"description":"Author ID used for team-mode ownership (defaults to one derived from your git identity)","format":"string","name":"THREADMIND_AUTHOR"}]}],"tools":[{"name":"context_get","description":"Get the assembled context of the active thread: its summary plus the decisions and constraints of its ancestors. Call it once at the start of a session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_create","description":"Create a new ThreadMind project with a main thread","write_action":true,"price_micros":0,"input_schema":null},{"name":"project_list","description":"List all ThreadMind projects","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_switch","description":"Switch to a different project","write_action":false,"price_micros":0,"input_schema":null},{"name":"stats_show","description":"Show the size of each summary and, with the Claude Code plugin, measured conversation sizes","write_action":false,"price_micros":0,"input_schema":null},{"name":"summary_update","description":"Update the summary of a thread (markdown). With a section, adds to that section only (or replaces it with replaceSection); without one, replaces the whole summary, so keep what is still true.","write_action":true,"price_micros":0,"input_schema":null},{"name":"thread_create","description":"Create a new child thread branching from a parent thread, and make it the active thread. On a feature branch, the thread is linked to that branch.","write_action":true,"price_micros":0,"input_schema":null},{"name":"thread_delete","description":"Delete a thread and all its descendants","write_action":true,"price_micros":0,"input_schema":null},{"name":"thread_list","description":"Display the thread tree for the active project, with each thread's status and linked branch","write_action":false,"price_micros":0,"input_schema":null},{"name":"thread_merge","description":"Fold a finished thread into its parent: replaces the parent's summary with parentSummary, marks the thread done and switches to the parent. Write parentSummary yourself, including the thread's conclusions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"thread_rebase","description":"Move a thread to a different parent. All descendants move with it. Similar to git rebase.","write_action":false,"price_micros":0,"input_schema":null},{"name":"thread_status","description":"Mark a thread as done or abandoned (or active again). The reason is added to the thread's decisions, so the outcome stays on record.","write_action":false,"price_micros":0,"input_schema":null},{"name":"thread_switch","description":"Switch this session to a different thread and return its assembled context (no need to call context_get afterwards)","write_action":false,"price_micros":0,"input_schema":null},{"name":"threadmind_init","description":"Write ThreadMind usage instructions into the files AI agents read. Claude Code doesn't need them: it receives these instructions from this server.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":74,"grade":"B","scanned_at":"2026-09-27T21:26:53.601Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:26:53.557Z","components":{"code":{"score":13,"max":25,"notes":["45 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 0 days ago"]},"identity":{"score":8,"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":"dist/core/project.js: …tConfig(key) { try { return execSync(`git config ${key}`, { encoding: \"utf-8\", …"}],"inputs":{"packages":[{"registryType":"npm","identifier":"thread-mind-mcp","version":"0.5.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-27T18:27:58.001Z","repositoryUrl":"git+https://github.com/mahmoud-nb/thread-mind-mcp.git","weeklyDownloads":16}],"repo":{"found":true,"owner":"mahmoud-nb","repo":"thread-mind-mcp","archived":false,"pushedAt":"2026-09-27T20:25:52Z","stars":3,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/11072180?v=4","ownerCreatedAt":"2015-02-19T09:19:58Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/11072180?v=4&s=128","source":"github"},"presence":{"stars":3,"forks":0,"downloadsWeek":16,"license":"MIT","lastPushAt":"2026-09-27T20:25:52.000Z","score":27}}}},"grade_history":[],"reviews":[]}