docs(troubleshoot): drop misleading memtomem-server verify command#398
Merged
docs(troubleshoot): drop misleading memtomem-server verify command#398
memtomem-server verify command#398Conversation
The "Tools don't appear in my editor" troubleshooting step told users to run `uvx --from memtomem memtomem-server` in a terminal and check that it "starts without errors". Two problems with that guidance: 1. It paints the terminal with `ERROR` log lines even on a healthy install. The MCP server expects JSON-RPC on stdin, and a TTY sends prompt noise / `\n` that the server rejects as invalid JSON with a loud `ERROR` traceback. A first-time user reasonably concludes the install is broken. 2. The startup path provisions `~/.memtomem/` (creates `memtomem.db` and `.server.pid`) even if the user has never run `mm init`. What looks like a read-only check is actually a silent state initialization. Replace the step with two side-effect-free checks that actually diagnose what the user is troubleshooting: - `mm --version` (or `uvx --from memtomem mm --version` for uvx-only setups) verifies the install is reachable without touching state. - Asking the editor to call `mem_status` triggers the real MCP handshake end-to-end — the call that would actually be broken if tools aren't appearing. Also add an explicit "don't do this" blockquote so the old pattern doesn't silently reappear in someone's muscle memory. Two files affected: the Getting Started guide and the MCP Clients guide both had the same step. Fixed in both for consistency (`feedback_default_change_fanout.md`). Scoped to docs-only. The deeper issue — `memtomem-server` initializing the state dir on startup rather than lazily on first tool call — is tracked in the followup discussion on #381 (lazy DB init). That's a separate server-side change with its own design surface. Closes #381. Co-Authored-By: Claude <[email protected]>
3 tasks
tsdata
approved these changes
Apr 23, 2026
Collaborator
tsdata
left a comment
There was a problem hiding this comment.
Docs-only; all CI green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The "Tools don't appear in my editor" troubleshooting step in Getting Started and MCP Clients told users to run
uvx --from memtomem memtomem-serverin a terminal and check it "starts without errors". That guidance is actively wrong in two ways — it paints the terminal with scaryERRORoutput on a healthy install, and it silently provisions~/.memtomem/. Replace it with two side-effect-free checks that actually help the user diagnose.2 files, +8 / −2.
Closes #381.
Problem 1 — "starts without errors" is false
memtomem-serverspeaks JSON-RPC on stdin. When launched bare in a TTY, the terminal sends prompt noise /\n, the server rejects it as invalid JSON, and logs:The server is working correctly. The user following the docs reasonably concludes it isn't.
Problem 2 — hidden side effect
memtomem-serverinitializes~/.memtomem/(createsmemtomem.db+.server.pid) at startup, even if the user has never runmm init. A user who reads "should start without errors" and runs the command to check has quietly provisioned a state dir, and the docs give no signal that this happened.This problem is broader than the verify command (see the follow-up discussion on #381: every MCP client connection triggers the same init path). The full fix is server-side lazy DB init; this PR handles the docs layer.
Proposed replacement
Steps 3 and 4 together cover what step 3 alone was trying to do — "can the user reach the install" + "does the MCP handshake actually work". The "Don't" blockquote is there because old docs do circulate via search results / copies, and the silent side effect means quietly re-adopting it has real cost.
Fanout
Both files had the identical step, so both were updated consistently:
docs/guides/getting-started.md— "Tools don't appear in my editor" section under Troubleshootingdocs/guides/mcp-clients.md— same section heading under MCP Clients' TroubleshootingNo other copies of this guidance in public docs (
grep -rn 'should start without errors' README.md packages/memtomem/README.md docs/returns only these two lines).Out of scope — tracked as follow-up
~/.memtomem/provisioning until the first tool call that actually needs SQLite. This is option (1) from the issue's follow-up comment and is the principled fix — theinitialize/tools/listMCP handshake doesn't require a DB. Worth its own server-side PR; design surface includes where to hoist the lazy-open gate and how to avoid a race between two clients both creating the DB on first call.memtomem-server --versionflag: mentioned in the issue as an option. Not needed for this PR sincemm --version/uvx --from memtomem mm --versioncover the same ground, but worth considering as a DX polish later.Test plan
mm --versionverified side-effect-free on a fresh install (no~/.memtomem/created).uvx --from memtomem mm --versionverified on a fresh uvx-only context.mem_statusis a real MCP tool (exists in the core-9, seepackages/memtomem/src/memtomem/server/__init__.py).🤖 Generated with Claude Code