GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Descripción del creador (original en inglés)
Local long-term memory MCP server (SQLite) for AI coding agents — OpenCode, Claude Code, Cursor
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"th-memory": {
"command": "npx",
"args": [
"-y",
"th-memory-mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add th-memory -- npx -y th-memory-mcpPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"th-memory": {
"command": "npx",
"args": [
"-y",
"th-memory-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"th-memory": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"th-memory-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 9 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub worakorn-prince, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (2.4.3) llegó al registro anteayer.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: GitHub, Desktop Commander, Cloudflare MCP
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
better-sqlite3 native build, import.meta.url). Node.js 20 is EOL and unsupported. CI tests the minimum patched version of each supported line (22/24/26).npm install, npm run build, npm test. No external services, accounts, or API keys — everything lives in a single local SQLite file.node:sqlite on OpenCode Desktop/Node 22.5+ and falls back to bun:sqlite on the Bun-based CLI.MEMORY_DB_PATH with setx, macOS/Linux: export in your shell profile.Security: Use a patched Node.js release — check your runtime with
npx is-my-node-vulnerable.npm auditcovers npm dependencies only, not Node.js core CVEs.
Audit: Independently smoke-tested by AddonAudit on v2.4.1 — an automated test, not a security guarantee; the one high advisory it found was fixed in 2.4.2, and fresh installs from 2.4.3 onward report 0 critical/high advisories.
Fastest path: npm run quickstart (after cloning) builds, wires opencode.json/opencode.jsonc, deploys the plugin, and sets MEMORY_DB_PATH — the steps below are the manual equivalent. npm alternative: npm install -g th-memory-mcp (or npx th-memory-mcp) and point mcp.command to th-memory-mcp instead of dist/index.js (plugin still from this repo; not on GitHub Packages anymore).
# 1. Clone and build
git clone https://github.com/worakorn-prince/th-memory-mcp.git cd th-memory-mcp && npm install && npm run build
setx MEMORY_DB_PATH "$PWD/data/memory.db" # Windows (PowerShell)
~/.config/opencode/opencode.json (replace with the absolute clone path; ready-made block in opencode.example.json). MEMORY_DB_PATH must be the SAME file for server and plugin — a system/user-level env var covers both; environment below covers the server only. Example rules: AGENTS.memory.example.md (attachable at project level).{ "instructions": ["<REPO>/AGENTS.memory.example.md"],
"mcp": { "memory": { "type": "local", "command": ["node", " /dist/index.js"], "enabled": true, "environment": { "MEMORY_DB_PATH": " /data/memory.db" } } } }
src/plugin/learning-capture.ts → ~/.config/opencode/plugins/learning-capture/index.tsThe plugin works in both modes: OpenCode V2 calls the default export's id + setup(ctx) (domain hooks for prompt/tool/compaction/failure events), while V1 (1.18.29+) calls the same default export's server(), which returns the legacy hook object. One file, no runtime import of @opencode/plugin (types only), so it loads under both Node and Bun.
If startup reports Failed to load plugin ... Received protocol 'bun:' or the plugin is silently ignored on V2, you are on an older install layout. Re-deploy the current src/plugin/learning-capture.ts to ~/.config/opencode/plugins/learning-capture/index.ts; a legacy ~/.config/opencode/plugins/learning-capture.ts is renamed to .bak- by npm run quickstart (never deleted). It loads node:sqlite first and only falls back to bun:sqlite under Bun.
OpenCode loads the plugin learning-capture (dual-mode V1/V2, Node/Bun) — auto-captures prompt/tool/error into the DB, injects the profile on compaction — and the MCP server th-memory-mcp (Node stdio) exposing the 16 tools on that same SQLite DB; global rules (memory-protocol.md) teach the AI to use them.
api_key=, password:, token) filtered before storage.better-sqlite3 only (no extra native extensions).lesson records (situation → mistake → correction), not just flat facts.get_context blends FTS5 keyword search with dependency-free lexical fuzzy matching (hashed n-gram similarity, 512-dim FNV-1a) via RRF fusion, then assembles a token-budgeted context with optional memory-graph expansion.derived_from links).A standard MCP server: 16 tools anywhere MCP-over-stdio works; all harnesses share one SQLite file via MEMORY_DB_PATH. Auto-capture needs a hook runtime (built into OpenCode, bridged for Claude Code).
| Feature | OpenCode | Claude Code | Qwen Code | Codex | Cursor |
|---|---|---|---|---|---|
| 16 MCP tools | ✅ | ✅ | ✅ | ✅ | ✅ |
| Auto-capture (background) | ✅ plugin | ✅ hooks | ⚠️ adapter | ❌ manual | ❌ Rules |
| Profile injection | ✅ compaction | ✅ UserPromptSubmit | ❌ get_profile | ❌ get_profile | ❌ get_profile |
| Lexical fuzzy matching | ✅ (v2.0) | ✅ (v2.0) | ✅ (v2.0) | ✅ (v2.0) | ✅ (v2.0) |
UserPromptSubmit/PreCompact, distill on SessionEnd. Qwen Code (QWEN_SETUP.md) — MCP fully; hooks need a small Gemini-CLI adapter. Codex (CODEX_SETUP.md) · Cursor (CURSOR_SETUP.md) — manual tools.| Command | Description |
|---|---|
npm run build | compile TypeScript → dist/ |
npm start | run the MCP server (stdio) from dist/index.js |
npm run distill | interactions → profile sections + prune old data (RETENTION_DAYS, default 30) |
npm test | build + full suite (46 files, 148 tests: 147 pass, 1 skip) |
node test/ .test.mjs | run one suite: capture, distill, lifecycle, temporal, conflict, retrieval, graph, context, consolidation, benchmark, security |
node test/smoke.mjs | end-to-end smoke test over JSON-RPC (16 tools) |
| Tool | Description |
|---|---|
remember | upsert preference (category+key); re-save +0.1 confidence (cap 1.0) |
recall | search preferences + lessons (FTS5) + recent matching interactions — run before a new task |
get_profile | profile sections + top preferences + 5 most recent lessons |
save_lesson | record a lesson from a correction (situation / mistake / correction) |
search_history | search past prompts by keyword (200-char snippets) |
forget | delete one row (preference/lesson/interaction) by id (+type avoids cross-table id clash) |
memory_stats | counts by kind, DB size, oldest/newest interaction, profile sections |
get_recent_interactions | recent raw interactions (filter by kind) — Smart Distill feedstock |
export_memory | export to JSON under data/exports/ only (filename auto-sanitized) |
get_context | task-relevant memories via hybrid retrieval (+ graph expansion), token-budgeted |
consolidate | cluster similar memories via embedding similarity; optionally create derived memories linked via derived_from |
link_memory | typed link between two memories: supports/contradicts/supersedes/derived_from/related_to/caused_by/depends_on |
merge_memory | merge a duplicate into canonical memory (source superseded; provenance in metadata.merged_from) |
update_memory | update fields in place, or create a superseding memory when content changes (supersede=false edits in place) |
import_memory | import from JSON (validates type, dedupes, never overwrites blindly); dry-run by default, apply=true to insert |
extract_memories | scan recent interactions for memory-intent phrases, propose candidates (deterministic, no LLM); dry-run by default, apply=true to create (source=captured) |
th-memory)| Binary | Entry | Purpose |
|---|---|---|
th-memory-mcp | dist/index.js | MCP server (stdio) — the 16 tools above |
th-memory | dist/cli.js | zero-dep local CLI (same DB via MEMORY_DB_PATH) |
Usage: th-memory [--db ] [--json] [--plain] [options] — per-command help via th-memory --help. highlight/recall --highlight: matches underlined (ESC[4m) on a color TTY, else [mem]…[/mem] markers (piped, --plain, --json).
| Flag | Effect |
|---|---|
--db | use this SQLite file (sets MEMORY_DB_PATH) |
--json | print JSON {ok,data} instead of plain text |
--plain / --no-color | disable colors |
-h, --help / -V, --version | show help / print version |
| Command | Usage | |||
|---|---|---|---|---|
remember | remember --category --key --value — save a preference (--value - reads from stdin) | |||
recall | recall [--limit ] [--highlight] — search memory | |||
forget | forget [--type ] — delete by id (t: `memory\ | preference\ | lesson\ | interaction`) |
| export | `export [--include-int
Solo se muestra el principio; lee el resto en el repo