
Flutter Structure Mcp
io.github.Nilesh9783Published by GitHub account Nilesh9783v1.0.3Updated Oct 24, 2026
Audit architecture, security, memory, and code quality in Flutter, Laravel, Node, Python, & Vue.
Overview
A local MCP server that scaffolds Flutter projects from templates and audits codebases, plus a runtime performance dashboard.
- What you can do
- Scaffold new Flutter apps with a chosen architecture (clean, MVC, MVVM), state management, database, backend, network and router, and copy shared widgets, extensions and helpers into the project, then run flutter pub get to make it compile-ready. Audit Flutter, Laravel, Node, Python and Vue codebases for architecture, security, memory and code quality, with optional HTML/PDF reports and email delivery. Generate suggested fixes for a project and apply them. Start a local performance monitor dashboard that profiles screens, HTTP timings, heap memory and local database size, then export a PDF report.
- When to use it
- Useful when you want an assistant to bootstrap a new Flutter app with a consistent architecture and package setup, or to run audits and suggested fixes across Flutter, Laravel, Node, Python and Vue projects. Also for profiling a running Flutter app through a local dashboard.
- Requirements
- Runs as a local process over stdio, launched with the Dart SDK (for example dart run on the server entry point). The README's configuration example points at a local project path. Flutter tooling is needed for scaffolding and pub get. The performance dashboard opens a local HTTP port (default 8080) and devices must reach it via localhost, 10.0.2.2, adb reverse or the host's LAN IP.
Installation
In SourceWeft
- Open Flutter Structure Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Flutter Architect MCP
flutter_architect_mcp is a Model Context Protocol (MCP) server and command-line utility designed to automate the process of bootstrapping new Flutter applications. It sets up architectural structures, injects required package dependencies, sets up routing, databases, networks, and backend configurations, and copies a comprehensive collection of shared utilities, widgets, and extensions into the generated codebase.
What is Provided
The project contains a complete template library and a generator pipeline organized as follows:
Shared Assets Included:
All assets copied from templates/shared are automatically adjusted to compile in the new project:
- Common Widget Components: Dialogs, custom animated dropdowns, toast messages (flushbars), loaders, WebView wrappers, custom buttons, text fields, and list view loaders.
- Extensions: Padding, Alignment, Color parsing, String manipulation, DateTime formatting, Double formatting, Shimmer overlays, Svg integration, and TextStyle/BuildContext extensions.
- Helpers: Shared Preferences wrapper, Validation helpers, Device Connectivity checker, Deep Link helper, Notification helper, Image & Document pickers, Haptics helper, and Force Update checker.
Execution Flow
When a project is generated, the tool executes the following steps:
How to Use & Access
You can execute the generator in three ways:
1. As an MCP Tool (Recommended for AI Assistants)
Configure flutter_architect_mcp in your LLM desktop client (e.g., Claude Desktop, Cursor, or VS Code MCP plugin).
Claude Desktop Configuration:
Add this to your claude_desktop_config.json (usually at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Provided Tool Schema:
- Tool Name:
create_project - Arguments:
projectName(String, required): Lowercase, snake_case name of the project.architecture(String, required):clean,mvc, ormvvm.stateManagement(String, optional):bloc,getx,provider,riverpod, orrxdart.database(String, optional):hive,isar, ordrift.backend(String, optional):firebaseorsupabase.network(String, optional):dioorretrofit.router(String, optional):go_router,auto_route, orown_extensions.targetDirectory(String, optional): Absolute path to output directory (defaults to current directory).
Example Client Prompts (Natural Language Commands):
- Auditing a Codebase (Flutter, Node, Vue, Laravel, Python):
"Please run a full audit on the project located at
/path/to/project. Generate HTML/PDF reports, and email it to [email protected] (optional)." - Auto-Detect Technology & Run Audit:
"Run a full codebase audit on the folder
/path/to/project. Automatically detect the project type and output separate reports." - Scaffolding a Flutter App:
"Scaffold a new Flutter app named
my_appat/path/to/outputwith MVVM architecture, Riverpod state, Drift database, and GoRouter." - Suggest and Apply Fixes:
"Generate suggested fixes for
/path/to/projectand apply them safely." - Start Performance Monitor Server:
"Start the performance monitor dashboard server on port 8080."
2. Via the Command Line Interface (CLI)
You can invoke the standalone CLI tool directly using the standard arguments:
CLI Flags:
--name: Name of the project (required)--arch: Architecture style:clean,mvc,mvvm(required)--state: State management:bloc,getx,provider,riverpod,rxdart--db: Local database:hive,isar,drift--backend: Backend service:firebase,supabase--network: Network client:dio,retrofit--router: Routing solution:go_router,auto_route,own_extensions--target: Absolute path of parent folder (defaults to current path)
3. Direct Programmatic Script
Run the pre-configured flutter_architect_mcp.dart script to quickly test or launch a default workspace setup:
This script generates a pre-configured project named expense_tracker_with_mcp with clean architecture, bloc, hive, firebase, dio, and go_router in the local directory.
Runtime Performance Check Tool
The Runtime Performance Monitor spins up a local server hosting a live web-based DevTools-like dashboard to profile active screens, HTTP API timing latencies, heap memory (RAM), and local database storage consumption. Stopping a session compiles all metrics into a formatted printable PDF HTML report.
1. Launching the Dashboard Server
You can launch the dashboard server directly from CLI:
- Port Flag: Set custom ports using
--port <number>(defaults to8080). - Access Dashboard: Open
http://localhost:8080in your web browser.
2. Registering in MCP Server
You can start the tool via the MCP server using the start_runtime_perf_check tool:
3. Integrating with Your Flutter Application
Copy the helper code integrations displayed under the Integration Guide tab of your dashboard:
- Network Request Interceptor: Add the custom Dio interceptor to your HTTP client to log request methods, endpoints, response statuses, and durations.
- Screen Route Observer: Register the
PerfNavigatorObserverin your MaterialApp observers to track navigation changes. - Periodic Memory & Storage Streamer: Launch the background timer inside
main()to stream RAM (RSS) size and local DB file size points.
All data streams directly to the dashboard, and clicking the Stop & Save PDF button on the dashboard will export a detailed engineering review report with remediation steps!
4. Connecting Simulators, Emulators, & Real Devices
To allow your running mobile app to post metrics back to the local performance server, configure the connection URL according to your target device environment:
A. iOS Simulator (macOS host)
Since the iOS simulator runs directly on the host Mac, it can connect via localhost:
- Connection URL:
http://localhost:8080/api/record
B. Android Emulator (Virtual Device)
Android emulators run within a virtual loopback environment. To access the host machine's localhost, use the special IP address 10.0.2.2:
- Connection URL:
http://10.0.2.2:8080/api/record
C. Physical Android Device (Connected via USB)
You can forward port 8080 from the device back to your computer using ADB:
- Run the following command in your terminal:
- Your app can now use
localhostdirectly:- Connection URL:
http://localhost:8080/api/record
- Connection URL:
D. Physical iOS / Android Device (Connected via Wi-Fi)
- Ensure both your development computer and mobile device are connected to the same Wi-Fi network.
- Find your computer's local IP address (e.g.
192.168.1.45or10.0.0.12). - Use that IP address inside your Flutter app:
- Connection URL:
http://<your-computer-ip>:8080/api/record
- Connection URL:
Source: README.md at commit b5ecf6f
Tools
0Version history
1- v1.0.3LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts