Local code search and architectural memory MCP server for AI coding agents. Hybrid retrieval (vector + FTS + reranker) with Tree-sitter AST chunking. Runs entirely on your machine.
Pythia LCS demonstrates solid tool design with comprehensive descriptions and clear intent-driven naming. All 12 tools have descriptions exceeding 100 characters, and most parameters include type information and descriptions. However, output schemas are not documented in the visible code, parameter descriptions lack constraint details (ranges, formats, patterns), and error handling guidance is minimal. The server follows good composition patterns (single responsibility per tool, clear naming with action verbs) but falls short of production-grade polish in schema completeness and error recovery guidance.
PURPOSE: Retrieve the API surface of the codebase (exported functions, classes, types). WHEN TO CALL: Use this to understand the public interface and exported symbols of the project.
PURPOSE: Search within indexed artifacts for relevant content. WHEN TO CALL: Use this to find information in external documentation or reference materials.
PURPOSE: List and manage artifacts (external documentation, specifications, or reference materials) indexed in the corpus. WHEN TO CALL: Use this to see what artifacts are available and their indexing status.
PURPOSE: Ask an oracle session a question with architectural context and code search integration. WHEN TO CALL: Use this within an oracle session to get multi-turn reasoning about architecture, design decisions, or implementation strategies.
PURPOSE: Capture a thought, insight, or architectural note to the oracle's memory. WHEN TO CALL: Use this to record important insights, patterns, or decisions discovered during code exploration.
PURPOSE: Commit an architectural decision record (ADR) to the oracle's memory. WHEN TO CALL: Use this to document decisions made during oracle sessions for future reference and consistency.
Output schemas not documented. No visible return type specifications for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Parameter descriptions lack constraint details. 'limit' parameters have no min/max bounds; 'intent' enum is documented but other enums lack explanation of when to use each value; 'workspace' optional parameter lacks guidance on default behavior.
Error handling guidance absent. No tool descriptions explain what to do if a call fails, whether errors are retryable, or how to recover. E.g., 'spawn_oracle' does not document what happens if session creation fails.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
PURPOSE: Check the health and statistics of the local code search index. WHEN TO CALL: Use this to verify the index is up to date and identify any stale or missing chunks.
PURPOSE: Decommission an oracle session and clear its memory. WHEN TO CALL: Use this when an oracle session is no longer needed or to reset its state.
PURPOSE: Investigate the local code search index for semantic or structural matches. WHEN TO CALL: Use this first to locate relevant code before opening files or asking the oracle about implementation details. WHAT TO LOOK FOR IN OUTPUT: Review file paths, chunk types, and graph metadata that shows how components connect. COMMON MISTAKES TO AVOID: Do not use vague one-word queries when a natural-language question or exact symbol name is available.
PURPOSE: Force a file, directory, or full workspace scan into the local code search index. WHEN TO CALL: Use this after code changes, ignore-file updates, or a stale corpus health report that requires reindexing. WHAT TO LOOK FOR IN OUTPUT: Confirm the target scope was accepted and watch for any indexing failures or follow-up warnings. COMMON MISTAKES TO AVOID: Do not assume this fixes ignore-file changes retroactively unless you reindex the affected files.
PURPOSE: Spawn a new oracle session for architectural reasoning and durable decision support. WHEN TO CALL: Use this when a task needs multi-turn architecture memory instead of a single code-search response.
PURPOSE: Enable or disable file system watching for automatic index updates. WHEN TO CALL: Use this to toggle real-time indexing of code changes.
Destructive operations lack confirmation pattern. 'decommission' and 'pythia_force_index' modify state but do not offer dry-run or confirmation steps. Agents could accidentally trigger irreversible actions.
Tool chaining references incomplete. 'spawn_oracle' returns a session_id, but no documentation confirms that 'ask_oracle', 'commit_decision', and 'capture_thought' accept this exact field name and format.