mcp-feature-analyzer
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APP_NAME | No | Name displayed in the proxy dashboard. | Feature Analyzer |
| APP_PATH | No | Mount path of the GUI behind the proxy. Ignored in APP_PORT mode. | /feature-analyzer |
| APP_PORT | No | Local port used when PROXY_URL is absent: the GUI is served directly on http://localhost:<port>, at the root. Must be an integer between 1 and 65535; otherwise the GUI is disabled. | |
| APP_GROUP | No | Collapsible section of the proxy dashboard (optional). | |
| PROXY_URL | No | URL of the central proxy: the proxy assigns the port and mounts the GUI under APP_PATH. Takes precedence over APP_PORT. | |
| MCP_LOG_DIR | No | Log directory. Default: <data>/logs. Read at startup from the server declaration. | |
| MCP_DATA_DIR | No | Fallback storage directory for analyses if MCP_FEATURE_ANALYZER_DATA_DIR is not set. | |
| APP_PATH_PREFIX | No | Namespace prefix applied to the path by the shared proxy client; the GUI's <base href> follows the actually registered path. | |
| MCP_SERVER_ROUTE | No | Route for the server when running behind mcp-http-gateway, e.g. /feature-analyzer. | |
| MCP_FEATURE_ANALYZER_ROLE | No | standalone (default): git runs on the server machine. remote: the server is behind mcp-http-gateway and makes git run on the agent machine. Any other value refuses startup. Read at startup. | standalone |
| MCP_FEATURE_ANALYZER_DATA_DIR | No | Storage directory for analyses. Default: MCP_DATA_DIR, then <package>/.feature-analyzer-data. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_analysesA | List the analyses grouped by project, with their refs, open findings by severity, reviewed files, diagram count and review state (not started, in progress, all files reviewed, submitted). Start here: when the project already has an analysis of the feature, continue it (update_analysis to rewrite the overview and summary, refresh_analysis after changing the code) instead of creating a duplicate; create a new one with create_analysis for another feature or another diff. |
| create_analysisA | Create an analysis once a feature is developed: computes and freezes the git diff of the repository for human review. In branch mode the diff is base...head (head defaults to HEAD); in working_tree mode it is the uncommitted changes, index included, against HEAD. Returns the id and the changed files; then read them with get_diff. |
| get_analysisA | Read a whole analysis: project, request, overview, summary, files (reviewed or not), findings with their status and location, reviewer notes, diagrams (flagged when their layout has crossings) and review state. Use it to check what is already recorded before adding more. |
| get_diffA | Read the frozen diff of one file, or of every file when path is omitted, with the old and the new line number of each line. Use the NEW-side numbers (second column) for every finding location and diagram node line. |
| update_analysisA | Change the title, the project, the overview, the summary or the initial request of an analysis. Right after reading the diff, write the overview (objective, approach, attention_points: your global analysis of the feature) and the summary (the functional changes of the feature, one bullet per change, not one bullet per file). Give at least one field; fields left out are kept. |
| add_findingsA | Record findings for the reviewer, as a batch. Each location is checked against the frozen diff and its lines are copied; if any finding is invalid, nothing is added and every problem is reported. Include requirement_gap findings for requested behaviour that is missing. |
| update_findingA | Change the fields of one finding: severity, kind, title, body, location, suggestion or prompt. A new location is checked against the diff and reopens an outdated finding; path null removes the location. Whether a finding is ignored is the reviewer's decision and cannot be changed here. |
| delete_findingsA | Delete findings by id, typically once refresh_analysis shows them solved. If any id is unknown, nothing is deleted. |
| add_explanationsA | Explain blocks of added or removed code to the reviewer, as a batch: what each block does and how it works. Write one for every long (about 30 lines or more) or complex block; skip trivial code. An explanation judges nothing: problems go in findings. Each location is checked against the frozen diff and its lines are copied; if any explanation is invalid, nothing is added and every problem is reported. |
| update_explanationA | Change one explanation: title, body or location. A new location (path and start_line, with side for removed code) is checked against the diff and makes an outdated explanation current again; rewrite the body too when the code changed. |
| delete_explanationsA | Delete explanations by id, e.g. when the code they describe is gone. If any id is unknown, nothing is deleted. |
| set_diagramA | Create a diagram, or fully replace the one with diagram_id, when a picture helps the reviewer (impact perimeter, process flow, concept map). Give nodes and links only, with no coordinates or colours: the GUI lays the diagram out and colours nodes by status. flow = a process with steps and decisions, laid out left to right along the links, where a side branch without a join and the last node of a chain hang below the node before them; layers = the impact perimeter, one column per entry of |
| delete_diagramC | Delete a diagram from an analysis. |
| get_review_feedbackA | Read the reviewer's feedback once the review is submitted: decision, selected findings and notes, and the prompt to act on. Before submission it reports the review progress. Read-only. Always read the feedback before calling refresh_analysis, which discards it. |
| refresh_analysisA | Recompute the frozen diff with the same repository, mode and refs, after fixing the code. Files whose diff changed become unreviewed, findings whose lines changed become outdated, and the review restarts as pending: the previous feedback is discarded, so read it with get_review_feedback first. |
| delete_analysisA | Delete an analysis and its frozen diff. The repository is not touched. Also removes an analysis listed as unreadable. |
| reconnect_guiA | Relaunch the GUI worker and re-register it with the proxy server. Use this when the proxy server was not running when the MCP server started (so the GUI registration failed), to redeploy the GUI without restarting the MCP server. Does nothing if the GUI is already registered, unless force=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Each tool targets a distinct resource and action (analysis lifecycle, findings, explanations, diagrams, diff, review feedback), with detailed descriptions clarifying boundaries. Potential confusion between add/update/delete variants is mitigated by singular/batch distinctions.
All tools use snake_case with a verb_noun pattern (e.g., create_analysis, get_diff). Minor inconsistency: plural in add_findings/add_explanations/delete_* but singular in update_finding/update_explanation.
17 tools cover a complex workflow with CRUD for analyses, findings, explanations, and diagrams. Slightly above the ideal 15 but each tool appears necessary and well-scoped.
Covers full analysis lifecycle, diff retrieval, findings/explanations/diagrams CRUD, review feedback, and GUI reconnect. Minor gap: no explicit read tool for explanations (though get_analysis may include them) and no standalone list for findings/explanations.