An MCP server for analyzing code repositories, finding similar functions, and identifying function call relationships using embeddings and LLM validation
GraphSense MCP server has moderate definition quality with significant gaps. Four tools are defined with basic descriptions and input schemas, but descriptions are generic and lack actionable guidance for LLM selection. Parameter descriptions are present but minimal. Output schemas are not documented. Error handling guidance is absent. The tool set shows reasonable semantic cohesion (code analysis domain), but parameter constraints are loose and recovery paths are undefined. This is a typical community server with room for substantial improvement in production-readiness.
Analyze a codebase by parsing all files, extracting function definitions, generating summaries and embeddings for functions, and building a dependency graph
Find functions that are called by a specific function
Find functions that call a specific function
Find functions that are semantically related to a given description using embeddings and LLM validation
No tool returns documented output schema. LLMs cannot plan downstream tool calls or extract data without knowing response structure.
Parameter constraints are embedded as narrative text rather than formal JSON Schema enums, patterns, or minLength/maxLength. LLMs cannot machine-read constraints and may pass invalid values.
Descriptions are missing key context: WHEN to use each tool (vs alternatives), WHAT the tool returns, and recovery paths on failure. Baseline for good description is 50-200 chars; all descriptions should state purpose, preconditions, and output shape.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 33 | - | v1 |
No error handling guidance. If analyze_codebase times out, fails to parse a file, or hits API limits, the LLM has no recovery path. Error responses should include actionable next steps.
Missing pagination support for tools that return lists (similar_functions, function_callers, function_callees). Results could easily exceed context window without limit/offset parameters and total count in response.
Dependency coupling between tools is undocumented. function_callers and function_callees appear to require analyze_codebase to run first, but this is never stated in descriptions. Missing dependency hints force the LLM to discover coupling through trial and error.