Skip to content

MCP tools for commitlore vanish mid-session (ToolSearch returns zero results despite server reported connected) #424

Description

@MongLong0214

Summary

During an audit session, all mcp__plugin_commitlore_commitlore__* MCP tools were completely absent from the tool-discovery layer (ToolSearch), despite the CommitLore plugin being installed, .mcp.json correctly configured, and the CLI equivalent working perfectly. This matches — and may be a live instance of — a disconnect reported by the same operator in the parent session being audited: "the CommitLore MCP server disconnected mid-session and later reconnected; at disconnect time a system notice listed all seven commitlore tools as no longer available."

Exact tool calls and arguments

ToolSearch({ query: "commitlore query context before_change validate", max_results: 10 })
→ 0 commitlore results (returned unrelated tools: context7, DesignSync, memory, sequential-thinking)

ToolSearch({ query: "select:mcp__plugin_commitlore_commitlore__commitlore_query,mcp__plugin_commitlore_commitlore__commitlore_before_change,mcp__plugin_commitlore_commitlore__commitlore_validate", max_results: 10 })
→ "No matching deferred tools found"

ToolSearch({ query: "commitlore", max_results: 20 })
→ "No matching deferred tools found"

ToolSearch({ query: "select:mcp__plugin_commitlore_commitlore__query", max_results: 5 })
→ "No matching deferred tools found"

ToolSearch({ query: "trailer harvest ruled-out git commit record", max_results: 15 })
→ 0 commitlore results (returned unrelated tools: EnterWorktree, ExitWorktree, Monitor, NotebookEdit, PushNotification)

ToolSearch({ query: "query decision record limit ruled out warning path context claim directive", max_results: 15 })
→ 0 commitlore results (returned unrelated tools: context7, DesignSync, CronCreate, sequential-thinking, EnterWorktree, chrome-devtools, memory, serena)

In the same session, tool searches for other installed MCP servers (context7, memory, serena, chrome-devtools, sequential-thinking) resolved normally, so this was not a general ToolSearch outage — only commitlore's tools were unreachable.

Actual result

Zero commitlore MCP tools discoverable or callable for the full duration of the audit session, even though:

  • The plugin is installed at ~/.claude/plugins/cache/commitlore/commitlore/0.4.0 with a valid .mcp.json (node ${CLAUDE_PLUGIN_ROOT}/dist/commitlore.mjs mcp).
  • The task briefing for this audit explicitly stated the server "is currently connected."
  • The CLI equivalent (globally installed v0.6.0) worked without issue: commitlore doctor, commitlore context, commitlore validate all ran cleanly and returned correct data for the same repository in the same session.

Expected result

mcp__plugin_commitlore_commitlore__* tools (commitlore_query, commitlore_before_change, commitlore_validate, etc.) should be discoverable via ToolSearch whenever the server is reported connected, and should not silently vanish mid-session without a visible, catchable error for the agent (a bare "no matching tools" from ToolSearch is indistinguishable from "these tools were never offered").

Reproduction steps

  1. Have the commitlore plugin installed and its MCP server configured normally (as in this repo/session).
  2. Run a long-lived or nested (subagent) Claude Code session against a repository with the plugin active.
  3. At some point in the session, call ToolSearch for any mcp__plugin_commitlore_commitlore__* name or commitlore-related keywords.
  4. Observe: either zero results, or (per the operator's report from the parent session) a system notice that lists all seven commitlore tools as newly unavailable, followed later by a reconnect notice.

Speculation / what I could not confirm

  • I could not determine root cause. Two explanations are consistent with what I observed and I cannot distinguish them:
    (a) a genuine MCP server crash/disconnect, matching the parent session's reported mid-session disconnect-then-reconnect of the same seven tools, or
    (b) a subagent-scoped failure to inherit this specific plugin's MCP connection, while other plugins' MCP connections were inherited normally.
  • I did not reproduce a disconnect-then-reconnect cycle deterministically within this session — commitlore tools were simply never available for the entire session, so I cannot confirm the "later reconnected" half of the original report from first-hand observation.
  • There is a version skew between the plugin-bundled server (~/.claude/plugins/cache/commitlore/commitlore/0.4.0, package.json version 0.4.0) and the globally installed CLI (~/.local/share/commitlore/v0.6.0, reported by commitlore --version and commitlore doctor). I have no evidence this skew caused the disconnect — flagging it only as a candidate variable for maintainers to rule in or out.

Environment

  • Plugin version (from ~/.claude/plugins/cache/commitlore/commitlore/0.4.0/package.json): 0.4.0
  • Globally installed CLI version (commitlore --version, used for the CLI-fallback checks in this audit): 0.6.0
  • Repo: /Users/isaac/projects/agent-operator-score
  • commitlore doctor output at time of audit: all checks ok except one warn (PreToolUse hook not installed in .claude/settings.json), unrelated to this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions