Codex Memory Server
БесплатноНе проверенLocal stdio MCP server for long-term engineering memory, enabling Codex to store, search, and manage project facts, progress, interfaces, and troubleshooting ca
Описание
Local stdio MCP server for long-term engineering memory, enabling Codex to store, search, and manage project facts, progress, interfaces, and troubleshooting cases.
README
Local stdio MCP server for long-term engineering memory.
This repository contains only the MCP service code, scripts, and tests. It does not include a user's private memory data directory, SQLite memory database, Codex config, hooks config, session logs, or API credentials.
The server is intentionally file-backed. It reads the existing Codex memory workspace and writes new ad-hoc notes only under:
%USERPROFILE%\.codex\memories\extensions\ad_hoc\notes
Tools:
search_engineering_memory: search Markdown and JSONL memory files.read_engineering_memory: read a memory file by relative path.list_engineering_memory_files: list readable memory files.add_engineering_memory_note: append a timestamped note when the user has explicitly asked to save or update long-term memory.get_project_memory_context: build the project memory context for a cwd.get_project_engineering_context: build compact structured project context, including recent progress, project facts, interfaces, pin map, baud rates, and resource paths.search_project_memory: search memory scoped to a project cwd.list_memory_projects: list indexed project memory roots.refresh_project_resources: index matching file paths from shared project-resource folders.list_project_resources: list indexed project resource file locations.upsert_project_fact: record or update one observed project fact.list_project_facts: list structured project facts.update_project_progress: append a structured project progress entry.list_project_progress: list recent project progress entries.upsert_project_action_config: record one standard project action command for build, flash, monitor, clean, test, or reset.list_project_action_configs: list stored standard action commands.upsert_project_interface: record UART/interface details such as baud rate, TX/RX pins, protocol, and settings.list_project_interfaces: list structured project interfaces.upsert_project_pin: record one pin-map row for wiring cross-checks.list_project_pin_map: list structured pin mappings.search_troubleshooting_memory: search indexed fault patterns and reminders.list_troubleshooting_memory_cases: list troubleshooting cases in SQLite.
Tool responses are compact JSON. Successful calls include "ok": true; invalid
arguments or blocked paths return "ok": false with an error string.
Codex starts this server through your Codex config, typically
%USERPROFILE%\.codex\config.toml on Windows.
Automatic turn summaries
Codex can also run scripts\codex-turn-summary-hook.cmd from the global
%USERPROFILE%\.codex\hooks.json Stop hook. The hook records each completed
turn as a new global note under the same ad-hoc notes directory. It records a
copy under the project memory folder only when the turn is classified as
project_engineering; Codex/MCP/hook/config work is classified as
global_infrastructure and stays global-only. It reads the hook payload from
stdin and never modifies existing memory files.
The add_engineering_memory_note MCP tool is still explicit-only. Automatic
turn summaries are written by the Stop hook, not by MCP tool calls.
Codex renders hook systemMessage output as a warning line in the CLI, so
display output is disabled by default. To test the optional display path, set
CODEX_TURN_SUMMARY_DISPLAY=systemMessage; the hook will then return a compact
message like /* 本轮总结:... */.
Troubleshooting index
Fault-pattern reminders are stored in the same SQLite database under the
troubleshooting_cases table. The search tool can return at most the top 3
matching reminders. UserPromptSubmit runs in silent mode by default so the
Codex CLI does not print hook context blocks on every prompt. Set
CODEX_PROJECT_CONTEXT_HOOK_MODE=alerts to inject only troubleshooting
reminders, or CODEX_PROJECT_CONTEXT_HOOK_MODE=full to inject full project
memory context.
Project memory
Project-scoped memory is stored under:
%USERPROFILE%\.codex\memories\projects\<project-slug>
Project metadata and turn summaries are indexed in SQLite at:
%USERPROFILE%\.codex\memories\engineering_memory.sqlite
The project root is the nearest parent containing .git; if no git repository
exists, the current working directory is used. In default silent mode,
UserPromptSubmit refreshes project resource indexes but does not return
additionalContext, avoiding noisy CLI output. Project memory remains available
through get_project_memory_context, search_project_memory, and
list_project_resources. Global infrastructure work, such as changing this MCP
server, Codex hooks, or Codex config, is retained in global long-term memory
instead of being added to an unrelated engineering project.
First project scan
When a project is first resolved, the MCP creates or updates the project
profile.md with a deterministic first-pass scan. The scan records:
- project type
- build system
- entry files
- main modules
- driver directories
- config files
- flash method
- test method
- potential risks
The scanner is intentionally conservative. It reads only small text snippets
needed to detect entry points and build/test targets, ignores generated/vendor
directories such as build, dist, .git, and node_modules, and stores
paths plus summaries instead of copying source contents. If an existing profile
already has ## First Scan, it is left unchanged. If a profile exists without
that section, the scan section is inserted before ## Stable Notes so manual
notes are preserved.
Structured project engineering memory
Project memory now has structured SQLite tables for data that should be retrieved precisely instead of only searched as prose:
project_facts: project code/name, chip model, hardware revision, build and flash commands, default baud rate, source path, confidence, and verification flag.project_progress: compact work progress entries from the Stop hook or theupdate_project_progresstool, including status, completed work, blockers, next steps, and verification notes.project_actions: standard build/flash/monitor/clean/test/reset action commands, device IDs, framework type, config file path, timeout, risk, and verification flag.project_interfaces: UART/I2C/SPI/CAN/network/debug interfaces, including UART number, baud rate, TX/RX pins, protocol, and JSON settings.project_pin_map: board/peripheral/signal/GPIO/net/connector/direction rows for schematic, EDA netlist, and firmware wiring cross-checks.
resolve_project() automatically records identity facts for each project:
project.code, project.root, and project.memory_slug. Turn summaries from
project engineering work are also inserted into project_progress so the
latest work state can be queried without reading every Markdown turn file.
The structured upsert tools should store only observed or explicitly confirmed facts. For engineering documents, schematic PDFs, and EDA netlists, store the file location and extracted fact rows; do not copy whole document contents into long-term memory.
Project resource path index
The project memory layer can also index file locations from shared engineering resource folders. This is configured with:
CODEX_PROJECT_RESOURCE_ROOTS=C:\path\to\shared\engineering-resources
The scanner matches files by project aliases such as repository name, nearby path segments, and git remote repository name. It indexes likely resource files only: documents, PDFs, spreadsheets, text/Markdown notes, archives, EDA netlists, and files whose names clearly look like netlists or schematics. It stores only file paths and metadata in SQLite, not file contents. Indexed metadata includes path, root, file name, extension, type, size, modified time, matched alias, and match score.
Resource paths are stored in the project_resources SQLite table and are
included in auto-mounted project context under Project Resource Paths. EDA
netlists and schematic PDFs are classified as eda_netlist and schematic_pdf
so they appear near the top for wiring cross-check tasks.
If a turn summary mentions a file path inside the configured resource folders,
the Stop hook also binds that path to the current project with
matched_alias=mentioned_in_turn. This handles ambiguous files such as a generic
Netlist_Schematic2_2026-03-19.tel whose name does not contain the project
identifier.
Установка Codex Memory Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Alooswr/Codex_engineering-memory-mcpFAQ
Codex Memory Server MCP бесплатный?
Да, Codex Memory Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Codex Memory Server?
Нет, Codex Memory Server работает без API-ключей и переменных окружения.
Codex Memory Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Codex Memory Server в Claude Desktop, Claude Code или Cursor?
Открой Codex Memory Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Codex Memory Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
