MCP server that excavates project history from commits, PRs, markdown, and AI-agent breadcrumbs — returns structured timelines and periodic reports for team updates and stakeholder communication.
Six tools with complete input schemas and descriptions. Naming follows verb_noun pattern (archaeology.run, archaeology.arcs, etc.). Descriptions are detailed (100-250 chars) and explain WHAT, WHEN, and output behavior. However, parameter descriptions lack actionable constraints (ranges, formats, examples). Output schemas are not documented, LLMs cannot infer response structure. Error handling is absent from descriptions. No tool annotations (readOnlyHint/destructiveHint). Risk classification present but not integrated into descriptions.
Detect narrative arcs in a repository. Returns content-addressed arcs produced by a deterministic signal-extraction stage followed by an LLM judge via MCP sampling. Theme filtering is applied post-selection (never affects candidate generation). Returns explicit empty-result reasons when no arcs meet the evidence threshold.
Hydrate specific artifacts by ID. Returns metadata at summary/excerpt level, or full body from blob CAS at detail_level: full.
Returns a structured periodic digest over the existing narrative store. Includes commit activity, contributor stats, arc classification (shipped / in-progress / abandoned), and risk flags (secrets detected, high aspirational claim ratio, stale repos). Read-only — queries the store without triggering new indexing or LLM calls. Period accepts "7d" / "14d" / "30d" shorthands or ISO date ranges "YYYY-MM-DD/YYYY-MM-DD". At least one of repo_id or run_id is required.
List all indexed repositories with artifact counts, freshness age, and last-run status.
Index repositories and extract narrative artifacts (commits, markdown, breadcrumbs, PRs, issues). Supports explicit repos list or discovery mode with optional visibility controls.
Output schemas not documented. LLMs cannot infer response structure, forcing them to guess at field names and types. Breaks tool chaining when downstream tools need specific response fields.
Parameter descriptions lack actionable constraints. 'max_tokens' has no range guidance; 'period' accepts '7d'/'14d'/'30d' or ISO ranges but description does not specify format. LLMs cannot validate inputs without explicit constraints.
No error handling guidance in tool descriptions. archaeology.arcs mentions 'graceful degradation' and 'empty-result reasons' but does not document what errors LLMs should expect or how to recover. No recovery guides.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
Query run status from the in-memory registry. Returns in-flight and completed runs. Filter by run_id or repo_id.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). archaeology.run is marked WRITE but schema lacks destructiveHint. archaeology.arcs uses MCP sampling but no annotation signals this to clients.
Mutually exclusive parameters not documented. archaeology.arcs requires 'at least one of repo_id or run_id' but description does not state this. archaeology.report has same constraint but undocumented. LLMs will pass both or neither.