Flutter Analysis Engine (MCP)
Provides a local-first static analysis engine for Dart, using the Dart SDK and package:analyzer for full-fidelity AST parsing, along with tools to search Dart SDK source, search official documentation, and analyze Dart project code quality.
Provides a local-first static analysis engine for Flutter projects, including tools for searching Flutter framework source, locating/tracing widgets, reviewing project architecture and code quality, analyzing state management, and finding intended widget behavior using official Flutter/Dart knowledge cloned via git.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Flutter Analysis Engine (MCP)review my Flutter project and summarize the top risks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Flutter Analysis Engine (MCP)
Local-first Model Context Protocol interface over a reusable Flutter Analysis Engine. The MCP server is one front end; the product is deterministic static analysis (facts → findings → insight) grounded in official Flutter/Dart knowledge cloned via git. No GitHub API and no LLM inside the server.
Status
Capability | Phase |
MCP over stdio | 1 |
Clone / pull official repos via git | 1 |
Filesystem search | 1 |
SQLite incremental index (TS heuristics) | 2 |
| 2 |
Dart | 3 |
Knowledge tools + | 3 |
Engine + Dart site; CHANGELOG/migration kinds; widget tests; | 4 |
Analysis engines + | 4.1 |
Insight narratives, health scores, confidence propagation, Dart-first AST | 0.5 / Part 1 |
Evidence explorer, transparent scoring, debt, richer explain/intended behaviour | 0.6 |
Analysis sessions: slim MCP payloads, cache-once / query-many | 0.7 |
Related MCP server: Atlas
Supported repositories
Current (Phase 4):
flutter/flutter— framework sourceflutter/packages— official packagesflutter/engine— engine sourcedart-lang/sdk— Dart SDKdart-lang/site-www— Dart language siteflutter/samples— official samplesflutter/website— official documentation
Also indexed as first-class knowledge: CHANGELOGs, migration guides, and widget tests.
Git is only used to clone/pull these official trees. There is no GitHub API in normal operation.
Requirements
Node.js 20+
gitonPATHRecommended: Dart SDK 3+ (full-fidelity AST via
parser/; without it, analysis falls back to heuristics with reduced confidence)
Setup
cd flutter-knowledge-mcp
npm install
npm run buildOptional Dart helper (strongly recommended for project analysis):
cd parser && dart pub get && cd ..Configuration (config.json):
{
"repositoriesRoot": "./repos",
"indexPath": "./data/knowledge.sqlite",
"indexOnUpdate": true
}Paths resolve relative to the config file. Override with:
export FLUTTER_KNOWLEDGE_CONFIG=/absolute/path/to/config.jsonCursor integration
{
"mcpServers": {
"flutter-knowledge": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/flutter-knowledge-mcp/dist/index.js"]
}
}
}MCP tools
Repository
Tool | Description |
| Clone/pull all repos; reindexes when |
| Existence, branch, commit, last pull, path |
| Build/refresh SQLite index ( |
Search & widgets
Tool | Description |
| Index-aware symbol search with filesystem fallback |
| Locate widget (index preferred) |
| Declaration, inheritance, docs from index |
| Inheritance tree + related symbols |
Docs, examples & intended behavior
Tool | Description |
| Search indexed docs; optional |
| Samples / example directories |
| Tests for a symbol; prefers widget tests |
| Ranked migration / cookbook / changelog / guide hits |
| Joins widget tests + samples + migrations/docs + source |
Project analysis (insight-first, session-aware)
Tool | Purpose |
| Analyze once → executive summary + |
| Architecture slice from |
| Maintainability slice from |
| State-flow slice from |
| Mentor-style explanation for one finding |
| Evidence for one finding (files, symbols, refactor) |
Token-efficient workflow:
review_project({ path })→ health, top risks/strengths/actions,sessionIdanalyze_architecture({ sessionId })/analyze_*→ slim category views (no rescan)explore_finding({ sessionId, findingCode })/explain_finding→ drill into one issue
Full reports are stored under data/analysis-sessions/. Follow-up tools read the cache.
Confidence model
Every finding includes confidence (0–1) and source (dart_analyzer | heuristic | filesystem | pubspec | import_graph).
review_project leads with an Analysis Summary:
Engine identity (
Flutter Analysis Engine v0.7.0)AST source (
dart_analyzerorheuristic)Coverage (
full/partial/none)Aggregate confidence
Recommendation to install Dart SDK when falling back
Each category score includes positive/negative contributors, weight, and confidence. Findings carry structured evidenceItems, related finding codes, and knowledge-resolved official references when the index has matches.
Official references stay as supporting evidence, not the primary answer. Insight narratives and explained health scores are the main deliverable.
Engines live under src/analysis/ (ast / engines / insight / metrics / rules / session) and are reusable outside MCP. Handlers orchestrate analyze → cache → slim query.
Typical first-run flow:
update_repositories(large first clone — includes engine)Wait for index (or call
reindex)review_project→ then session-scopedanalyze_*/explore_finding/find_intended_behavior
Architecture
Cursor
└── MCP (stdio) — thin tools/
└── analysis/ (future flutter-analysis-core)
├── ast/ AstAdapter (Dart preferred, heuristic fallback)
├── engines/ CodeQuality / State / Architecture
├── insight/ Explanation + Recommendation + Health + ReportBuilder
├── session/ AnalysisSessionStore + slim summary views
├── metrics/ MetricsEngine
├── rules/ RuleEngine plugin registry
├── project-scanner.ts
└── official-refs.ts
├── repository/ git clone / pull / status
├── indexer/ incremental hashing + path classification
├── parser/ TS heuristics + Dart analyzer client
├── store/ SQLite knowledge store (schema v2)
├── search/ IndexedSearchEngine → filesystem fallback
├── config/ JSON + zod
└── server/ DI (tsyringe) + McpServerDevelopment
npm run test
npm run typecheck
npm run lint
npm run devError model
Tools return structured JSON failures (never raw exceptions), including:
RepositoryNotFound, RepositoryMissing, GitError, SearchFailed, InvalidArguments, ConfigError, IndexError, AnalyzerUnavailable, ProjectNotFound, InternalError.
Logging
Structured JSON on stderr (info / warning / error). stdout is MCP-only.
Roadmap (later)
Monorepo extract (
packages/flutter-analysis-core, CLI, web)Additional analyzers (dependency, complexity, performance, accessibility, testing, docs)
Retire heuristic AST fallback when Dart Analyzer coverage is always available
Vector embeddings / semantic search
Optional third-party ecosystems (e.g. FlutterFire)
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceA distributable Model Context Protocol (MCP) server that exposes Dart SDK commands for AI-powered development. This server bridges the gap between AI coding assistants and Dart/Flutter development workflows by implementing the Model Context Protocol (MCP).Last updated10496MIT
- Alicense-qualityBmaintenanceLocal-first MCP server for querying multi-repo engineering documentation artifacts from a SQLite corpus.Last updated78AGPL 3.0
- Alicense-qualityAmaintenanceLocal-first MCP server that provides project context, verification gates, and structured tools for coding agents to discover knowledge, run diagnostics, and execute allowlisted commands within a repository.Last updated28MIT
- Alicense-qualityAmaintenanceLocal-first MCP server that scans a repository once and answers architecture questions from an evidence-backed graph, enabling dependency analysis, impact analysis, and codebase exploration without re-reading the source tree.Last updatedMIT
Related MCP Connectors
Local-first RAG engine with MCP server for AI agent integration.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
MCP server for hex.pm and hexdocs.pm: search, inspect, compare, and audit Elixir packages
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Saad0149/Flutter_MCP_Knowledge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server