From Basemind
Diagnoses and recovers basemind when MCP tools are missing or erroring, the index is empty, or the MCP server is dead. Runs CLI checks without requiring the server.
How this skill is triggered — by the user, by Claude, or both
Slash command
/basemind:basemind-doctorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this when basemind isn't behaving: MCP tools aren't available or return errors, the
Use this when basemind isn't behaving: MCP tools aren't available or return errors, the
statusline says no index, queries come back empty when they shouldn't, or the basemind serve
MCP server appears dead. Every step here uses the CLI, so it works even when the MCP server is
down.
Important: a stdio MCP server (what basemind serve is) cannot be restarted by an agent or by
basemind itself — a fresh process can't resume the client's MCP initialize handshake.
Reconnecting the server is the MCP client's job (see step 4). What you can do from here is
make sure the index is healthy and clear anything blocking a restart.
basemind query status
file_count: 0 with blobs present → the index is missing or lost. Build
it: basemind scan (see the basemind-scan skill / /bm-scan).file_count → the index is fine; the problem is the server connection (step 4).If basemind scan fails with a lock error, a basemind serve (or watch) already owns the index
for this repo. Check the lock holder:
cat .basemind/.lock.meta 2>/dev/null # {"command":"basemind serve","pid":<pid>,"acquired_unix":<ts>}
pid is alive (ps -p <pid>), the server is up — use the MCP tools, or the
rescan MCP tool to refresh. Don't run a CLI scan (it will contend on the lock).pid is dead, the lock is stale. The OS releases the advisory lock when a process
dies, so a fresh basemind scan / basemind serve should just work — retry it. (You may delete
the stale .basemind/.lock.meta to clear the advisory holder record.)basemind scan
Non-extractable files are skipped, not failed. After this, both the CLI and (once reconnected) the MCP tools have a fresh index.
basemind can't relaunch its own stdio server; trigger a reconnect in your client:
While disconnected, you are not blocked: use the basemind-cli skill (basemind query …,
basemind git …) — it reads the same .basemind/ index directly, no server required.
Only when the server was built with --features shells. Spawned shell sessions run under an
embedded rmux daemon — basemind re-execs itself (--__internal-daemon) rather than shelling
out to any external rmux binary, so there is nothing extra to install. The daemon binds a private
per-user socket under the data dir (<data_dir>/basemind/shells/rmux.sock, 0o700), overridable
with BASEMIND_SHELLS_SOCKET. It is separate from the comms broker daemon.
shell_list (MCP) enumerates sessions with liveness; a dead-but-listed session was killed or
exited — re-run after shell_kill to confirm it's gone.shell_spawn starts a fresh one.serve: they outlive a single MCP call but are torn down by
shell_kill (which also drops the comms lineage row) or when the daemon exits.basemind serve logs its lifecycle to stderr (captured in your client's MCP server logs):
a MCP server starting line with pid/version/view at startup, and an explicit
client disconnected, exiting (clean) or exiting on error (with the cause) at shutdown. If serve
keeps dying, that log line names the reason.
npx claudepluginhub goldziher/basemind --plugin basemindBuilds or refreshes a basemind index via the CLI when the MCP server is unavailable or the index is stale.
Diagnoses and fixes MCP server connection issues between Claude Code, Claude Desktop, and MCP servers. Covers Windows argument parsing, authentication failures, transport issues, and platform-specific debugging.
Diagnoses and fixes Claude Code setup/runtime issues like API authentication (Anthropic/Bedrock/Vertex), MCP server problems, and config errors using /doctor command, verbose mode, and bash diagnostics.