MCP server for OpenDigger data with comprehensive analysis tools, trend analysis, repository comparison capabilities and more.
The server provides 6 well-intentioned tools with schemas and descriptions, but falls short of production-grade quality. Naming is generally verb-first and clear (get_*, compare_*, analyze_*, etc.), which is good. Descriptions are present and reasonably detailed (average ~90-150 chars). Schemas are comprehensive with proper enums and constraints. However, there are material gaps: (1) output schemas are completely undocumented, the tool definitions show input schemas but zero guidance on what fields the LLM should expect in responses; (2) error handling lacks recovery guidance or error categorization; (3) parameter descriptions, while present, occasionally lack clarity on constraints (e.g., 'limit' default is 10 but never stated); (4) tools like 'analyze_trends' mix required parameters (owner/repo for Repo entities) without forcing mutual exclusivity in the schema, the description notes this but the schema does not enforce it. The batch tool is well-designed with sensible limits (1-20), and the server shows thoughtful engineering (caching, rate limiting, SSE support), but these are implementation details not visible to the LLM evaluating tool quality. Overall, this is a B-/C+ effort, above average community work but not enterprise-grade.
Perform comprehensive trend analysis on metrics over time
Compare multiple repositories across key metrics with intelligent analysis
Get ecosystem-level insights for languages, topics, or organizations
Get single metric data from OpenDigger with enhanced error handling
Batch fetch multiple OpenDigger metrics with intelligent processing
Get server health status, cache statistics, and performance metrics
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract the right fields. This violates the tool pattern and forces agents to guess the response structure.
Parameter constraints lack schema enforcement for mutually exclusive fields. 'analyze_trends' requires owner+repo for Repo entities and login for User entities, but the schema does not enforce this, only the description mentions it. Runtime validation is invisible to the LLM.
Error handling is mentioned in tool descriptions (e.g., 'enhanced error handling') but no guidance is provided to the LLM on what types of errors can occur, how to interpret them, or what recovery steps are available. No error classification or recovery suggestions in the tool definitions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Default values are mentioned in descriptions as text (e.g., 'default: 10') but not enforced in schemas. The JSON Schema lacks 'default' fields, so LLMs see the defaults as documentation but not as machine-parseable constraints.
Descriptions for optional parameters (e.g., 'metrics' in compare_repositories, 'timeRange' in analyze_trends) do not clearly document what happens if the parameter is omitted. Does the server use a fallback? Return an error? This ambiguity forces the LLM to guess or retry.
Tool descriptions lack WHEN-to-use guidance. For example, 'get_open_digger_metric' vs 'get_open_digger_metrics_batch', the LLM has no explicit guidance on when to choose one over the other. The batch tool should state 'Use this for 2+ metrics to amortize latency' or similar.