Flutter Analysis Engine (MCP)
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FLUTTER_KNOWLEDGE_CONFIG | No | Override to specify the absolute path to the configuration JSON file. |
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| update_repositoriesB | Clone missing official Flutter/Dart repositories, pull latest changes, and optionally reindex. |
| repository_statusA | Report existence, branch, commit, last pull time, and path for supported repositories. |
| search_sourceB | Search filenames and file contents across local official Flutter/Dart repositories (index-aware). |
| find_widgetB | Locate a Flutter widget by name using the SQLite index when available, else filesystem search. |
| reindexC | Build or refresh the local SQLite knowledge index for one or all repositories. |
| explain_widgetB | Explain a widget from the local index (declaration, inheritance, documentation). |
| search_docsB | Search indexed documentation (guides, cookbook, migrations, CHANGELOGs). |
| find_examplesC | Find examples related to a topic from samples and example/ directories. |
| find_testsC | Find tests related to a symbol; widget tests are preferred when available. |
| trace_widgetC | Trace widget/class inheritance and related symbols from the index. |
| find_best_practiceC | Rank website, samples, and docs hits for a best-practice topic. |
| review_projectB | Analyze once: executive health summary + sessionId. Pass sessionId to follow-up tools (no rescan). Use detail=full only when you need the entire report. |
| find_intended_behaviorC | How is this meant to be used? Joins widget tests, samples, migrations/cookbook/guides, and source. |
| analyze_code_qualityB | Code quality view from a review_project session (or path). Slim findings + score — not a full rescan when sessionId is set. |
| analyze_state_managementC | State management view from a review_project session (or path). Prefer sessionId to avoid rescanning. |
| analyze_architectureB | Architecture view from a review_project session (or path). Prefer sessionId to avoid rescanning. |
| explain_findingA | Mentor-style explanation for one finding. Prefer sessionId from review_project. |
| explore_findingC | Evidence for one finding (files, symbols, refactor). Prefer sessionId from review_project. |
| analyze_complexityB | Complexity view from a review_project session (or path). Returns file-size distribution, estimated high-complexity files, and slim findings. Prefer sessionId to avoid rescanning. |
| analyze_documentationA | Documentation coverage view from a review_project session (or path). Returns widget/class doc ratios, README presence, and findings. Prefer sessionId to avoid rescanning. |
| analyze_testingA | Testing coverage view from a review_project session (or path). Returns test/lib ratios, test type counts, and untested features. Prefer sessionId to avoid rescanning. |
| analyze_dependenciesA | Dependency health view from a review_project session (or path). Returns layer violations, circular cycles, and slim findings. Use detail=full to include full violation arrays. Prefer sessionId to avoid rescanning. |
| analyze_performanceB | Performance view from a review_project session (or path). Returns build method sizes, setState issues, and animation controller leaks. Prefer sessionId to avoid rescanning. |
| analyze_accessibilityA | Accessibility view from a review_project session (or path). Returns semantics widget counts, tooltip usage, and missing semantic labels. Prefer sessionId to avoid rescanning. |
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 24 tools
Most tools are clearly distinct by purpose: find_* tools target different content types (examples, tests, widgets, best practices, intended behavior) and analyze_* tools target distinct analysis dimensions (architecture, complexity, documentation, testing, dependencies, performance, accessibility). There is some overlap between find_examples and find_best_practice, and between explain_widget and trace_widget, but descriptions help delineate. The find_widget/explain_widget/trace_widget trio has somewhat blurry boundaries.
The naming follows a strong verb_noun snake_case pattern throughout (find_*, analyze_*, explain_*, explore_*, search_*, update_*, reindex, trace_widget, repository_status). This is highly consistent. Minor deviations: review_project and repository_status are noun_verb/noun style rather than verb_noun, and analyze_* uses adjectival suffixes (analyze_code_quality) inconsistently across the set.
24 tools is near the heavy end of the appropriate range for a Flutter analysis engine server, which legitimately spans project review, knowledge indexing, code search, and widget explanations. At 24 it's bordering on 'too many' but the scope is broad enough to justify it. The large number of near-parallel analyze_* tools inflates the count.
The server covers a comprehensive project analysis workflow: review_project initiates, then eight analyze_* dimensions cover architecture, complexity, docs, testing, dependencies, performance, accessibility, and state management, with follow-up exploration via explain_finding and explore_finding. Knowledge management (find/reindex/repository) is covered. Minor gaps include a missing analyze_security dimension and no tool for viewing project configuration.