MCP server for branch-scoped code grounding, change ledger, semantic search via MemPalace, and project-track management
Server has 19 tools with consistent naming (verb_noun pattern) and Zod schemas. Descriptions are present and moderately detailed (avg ~120 chars), but lack LLM-optimized guidance on WHEN to call each tool and dependencies between them. Parameter descriptions are minimal or absent in many cases. Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent; no recovery guidance or actionable error messages. Security considerations (secrets, permissions, audit) are not visible. Composition is reasonable (single responsibility per tool), but chaining guidance is missing.
Create a new conductor track directory with plan.md, index.md, and metadata.json. Fails if the slug already exists.
Get all changes in the ledger, optionally filtered by ISO timestamp.
Get the current git branch, HEAD SHA, and recent commits. Always call this first to anchor your context to the correct branch.
List files changed since a base ref (default: HEAD~1). Useful to understand scope of recent changes.
Get all logged changes that touched a specific file path. Use to understand the change history of a file before modifying it.
Get the full unified diff between two refs (default: HEAD~1..HEAD). Returns diff text, file list, and addition/deletion counts. Use to review changes before logging them to the ledger.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Responses are JSON-stringified text blocks with no schema guidance.
No error handling or recovery guidance. Tools return raw errors with no actionable next steps. LLMs cannot self-correct or know whether to retry.
Parameter descriptions are minimal or missing. E.g., 'servicePath' in run_typecheck has a description, but 'pattern' in run_tests lacks guidance on regex syntax or matching behavior.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Retrieve all changes logged in the current session. Use at session start to understand what was done previously.
Read the index.md for a specific conductor track. Returns the live track overview and summary.
Read the plan.md for a specific conductor track. Returns live file content — not docs, not memory.
Read the spec.md for a specific conductor track. Returns the live technical specification.
List all live conductor tracks (only tracks with a plan.md are returned). Use to understand current work in progress.
Log a code change to the persistent change ledger. Models MUST call this after modifying files. Enables cross-session coherence.
Re-index files changed since last commit into MemPalace. Call after making code changes to keep the search index current.
Run Jest tests for a service. Returns pass/fail counts and structured failure details with test names and error messages. Optionally scope to a test name pattern.
Run TypeScript type-checking (tsc --noEmit) for a service. Returns structured errors with file, line, column, and message. Call after writing code to verify correctness before committing.
Semantic search over the current branch's code. Returns branch-stamped results from MemPalace. Never searches docs or config.
Overwrite index.md for an existing conductor track. Use to update the track summary, status, or linked resources.
Overwrite the plan.md for an existing conductor track with new content. The track must already exist. Use this to update task status, add phases, or record decisions.
Overwrite spec.md for an existing conductor track. Use to update technical decisions, architecture notes, or acceptance criteria.
No tool-chaining guidance. Descriptions do not explain dependencies (e.g., 'Call get_branch_context first', 'Pass trackName from list_tracks to get_track_plan'). LLMs must infer composition.
No pagination or result limits documented. search_code accepts limit (1-50, default 10), but other list tools (list_tracks, get_all_changes) have no documented limits or pagination support.