intermap
What it does: A Go MCP server (mark3labs/mcp-go, stdio) with a persistent Python sidecar bridge (newline-delimited JSON-RPC over stdin/stdout, EOF-detection auto-respawn up to 3x/10s then single-shot fallback). It registers 10 tools in internal/tools/tools.go (project_registry, resolve_project, agent_map, code_structure, impact_analysis, change_impact, cross_project_deps, detect_patterns, live_changes, reference_edges). The Go layer owns the filesystem project registry, intermute agent/reservation overlay (agent_map), and result caching (5-min TTL keyed on git HEAD SHA for detect_patterns/cross_project_deps). The ~7,870-LOC Python layer parses 15+ languages via tree-sitter to build cross-file call graphs, import maps, definition lists, reverse-call-graph impact analysis, dead-code detection, directory/layer architecture inference, architectural-pattern detection (HTTP handlers, MCP tools, middleware, CLI), monorepo cross-project dependency graphs, and git-diff live-change annotation. reference_edges (added 2026, commit c30c972) emits definitions + caller/callee edges explicitly for external PageRank/graph construction.
Rationale: This is a mature, correct, well-tested plugin (71 Python tests plus Go unit/integration tests and cold/warm benchmarks, structured error types, git-SHA-invalidated caching, CI with step-security harden-runner and gitleaks). It already addresses the dominant 2026 MCP context-bloat concern: plugin.json sets MCP_TOOL_PROFILE=core and mcpfilter implements cluster-based startup tool filtering (full/core/minimal), so it ships a reduced surface by default rather than dumping 10 schemas. Its agent_map capability (overlaying live intermute agent activity and file reservations onto project structure) is genuinely differentiated and maps to the parallel-agent coordination area the interverse is ahead on. The tldr-swinton overlap is deliberate and documented (project- vs file-scope). The SOTA gaps (persistent graph index, embedding/GraphRAG layer, interflux context-feed) are real and worth pursuing, but they are roadmapped enhancements to a working, differentiated tool — not evidence of obsolescence or a structural mismatch with the frontier. None of them rises to a modernize verdict; the plugin’s core (per-call structural analysis with a robust Go/Python bridge) is sound. Minor doc drift (plugin.json says 9 tools, README/AGENTS.md say 6, actual code registers 10) should be corrected but is cosmetic.
SOTA gap: The call graph / reference edges are computed in-memory per tool call and discarded; there is no persistent, incrementally-updated code-structure index and no embedding/semantic layer. The GraphRAG / graph-based-agent-memory frontier (arXiv:2507.18910; Zep temporal KG; “demand paging for context”) shows code structure is most valuable when persisted as a queryable entity-relation graph enabling multi-hop “what changed about X and why” recall and fed into review/context-engineering loops. intermap exposes raw edges (reference_edges) for an external PageRank consumer but builds no index itself, and the interflux context-feed integration is still only a roadmap item. Also lacks semantic code search (which sibling tldr-swinton already has via semantic/semantic_index).
Redundancy: Deliberate, documented 4-way functional overlap with tldr-swinton (structure vs code_structure, impact vs impact_analysis, arch vs detect_patterns, change_impact vs change_impact). AGENTS.md frames the split as file-level (tldr-swinton) vs project-level/monorepo (intermap) coexistence, and intermap vendors a subset of tldr-swinton then owns extracted modules (workspace.py, ignore.py). This is intentional, not accidental duplication. No overlap with intersearch (shared embedding infra) — intermap has zero semantic/embedding capability. agent_map (live intermute agent + reservation overlay on the project map) is unique in the roster and complements intermux/interlock rather than duplicating them.
Actions:
- Fix tool-count doc drift: plugin.json description says ‘9 tools’, README.md/AGENTS.md/PHILOSOPHY.md say ‘6’, but tools.go registers 10 (reference_edges included). Reconcile all to 10 and document reference_edges + the live_changes/cross_project_deps tools in README.md’s MCP tool list.
- Land the roadmap ‘persistent index’ item as a GraphRAG-aligned move: persist reference_edges output to the optional SQLite cache (already roadmapped) so the call/reference graph survives across sessions and supports incremental git-diff updates instead of full recomputation per call — directly addressing the graph-based-agent-memory / persistent-index SOTA gap (arXiv:2507.18910, Zep temporal KG).
- Execute the roadmapped interflux integration: expose a tool/handler that feeds detect_patterns + impact_analysis structural context into review-agent prompts, turning intermap into the structural-context provider for the review stack (flux-drive) per the ‘context-gathering depth is the differentiator’ code-review finding.
- Consider consuming the shared intersearch embedding infra (rather than reimplementing) to add an optional semantic-over-structure layer, closing the gap with sibling tldr-swinton’s semantic/semantic_index while reusing ecosystem infrastructure.