memory: the README's Docker upgrade advice leaves the container with no index.js
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 68/100
- Issue type
- Documentation
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- docker, typescript
- Domain
- devops, documentation
Research direction
Start with src/memory/README.md and inspect the Docker build and volume setup described there. Choose an upgrade path that preserves memory.jsonl while ensuring the container runs the new image's code, and explain any migration steps for existing data. Done when the documented upgrade works with a populated claude-memory volume.
Written by the indexing model from the issue text.
Description
Problem
src/memory/README.md ("Building") says:
For Awareness: a prior mcp/memory volume contains an index.js file that could be overwritten by the new container. If you are using a docker volume for storage, delete the old docker volume's
index.jsfile before starting the new container.
Following it breaks the container instead of upgrading it. The documented setup mounts the named volume claude-memory over /app/dist, the image's code directory. Docker seeds a named volume from the image only while the volume is empty, so once the volume holds memory.jsonl the image's new dist/ is never copied in: deleting index.js leaves /app/dist with no entry point.
The reverse holds too: as long as index.js stays in the volume, every newer image keeps running the code from the first image that populated it. #5346 (closed, not planned) noted that shadowing while deciding to keep the default graph location.
Reproduce
Found while verifying #5345, with both the v2/main image and the #5345 image:
docker build -f src/memory/Dockerfile -t mcp/memory .
# create a graph so the volume is non-empty, then follow the README:
docker run --rm -v claude-memory:/v alpine rm /v/index.js /v/version.js
docker run -i --rm -v claude-memory:/app/dist mcp/memory
# node:internal/modules/cjs/loader ... Cannot find module '/app/dist/index.js'
Expected
The README gives upgrade advice that works. Delete the volume's *.js files and copy the new image's dist/*.js into the volume, keeping memory.jsonl. Or point Docker users at a volume on its own directory with MEMORY_FILE_PATH, and explain how to move an existing memory.jsonl there. The second option does not change the server's default, which #5346 kept.
- Dominant language
- TypeScript
- Stars
- 91.7k
- Forks
- 11.9k
- Avg merge
- 3h 48m
- Merged PRs (30d)
- 180
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from modelcontextprotocol/servers
-
everything/tasks: tasks/update checks MAX_ANSWER_BYTES against string length, so non-ASCII answers exceed the documented byte budgetPossibly taken @cliffhall claimed this today. Openbug server-everything v2
Difficulty 1/5 Under an hour Newbie friendliness 78/100
modelcontextprotocol/servers#5419 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
memory: lock heartbeat refreshes a lock file the process no longer ownsPossibly taken @cliffhall claimed this today. Openbug server-memory v2
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
modelcontextprotocol/servers#5418 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
memory: add descriptions to the top-level array parameters of create_entities, create_relations, add_observations and delete_observationsPossibly taken @cliffhall claimed this today. Openenhancement server-memory v2
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
modelcontextprotocol/servers#5416 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
everything: bind the HTTP transports to loopback by default, with HOST to widenPossibly taken @cliffhall claimed this today. Openenhancement server-everything v2
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
modelcontextprotocol/servers#5371 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
TypeScript Dockerfiles (filesystem, memory, sequentialthinking) ignore the workspace lockfile and overridesPossibly taken @cliffhall claimed this today. Openchore server-filesystem server-memory server-sequentialthinking v2
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
modelcontextprotocol/servers#5345 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in modelcontextprotocol/servers
Similar issues
-
area: infrastructure bug priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
snapotter-hq/SnapOtter#4575 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
comp: ssr comp: zones type: feature version: current (v17+)
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
angular/angularfire#3836 ·
Maintainers usually reply within 3 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Open-Earth-Foundation/CityCatalyst#3399 ·
Maintainers usually reply within 2 days