Fables MCP Server
Allows Amazon Bedrock agents to build Flutter apps using Fables MCP tools.
Generates Bitbucket Pipelines configurations for building Flutter apps.
Allows Coze (ByteDance) agents to build Flutter apps using Fables MCP tools.
Generates CircleCI configurations for building Flutter apps.
Allows Windsurf (Codeium) agents to build Flutter apps using Fables MCP tools.
Allows CrewAI agents to build Flutter apps using Fables MCP tools.
Generates GitHub Actions workflows for building Flutter apps.
Allows GitHub Copilot to build Flutter apps using Fables MCP tools.
Generates GitLab CI pipelines for building Flutter apps.
Allows Google ADK agents to build Flutter apps using Fables MCP tools.
Allows JetBrains IDEs to build Flutter apps using Fables MCP tools.
Allows LangChain agents to build Flutter apps using Fables MCP tools.
Allows n8n workflows to build Flutter apps using Fables MCP tools.
Allows OpenAI Agents SDK to build Flutter apps using Fables MCP tools.
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., "@Fables MCP ServerBuild release APK for my Flutter app"
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.
███████╗ █████╗ ██████╗ ██╗ ███████╗███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔════╝██╔════╝
█████╗ ███████║██████╔╝██║ █████╗ ███████╗
██╔══╝ ██╔══██║██╔══██╗██║ ██╔══╝ ╚════██║
██║ ██║ ██║██████╔╝███████╗███████╗███████║
╚═╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝╚══════╝╚══════╝📖 Fables
Turn Flutter apps into legendary builds.
Build APK, AAB & iOS — no Android Studio required. ✨
Installation · Quick Start · Commands · AI Agents · CI/CD · Guide
📖 Table of Contents
🤔 Why Fables?
Setting up Flutter for Android builds is a nightmare:
Without Fables ❌ | With Fables ✅ |
📥 Install Android Studio (~2GB) | 📦 |
📥 Install Android SDK separately | 🐳 Auto-managed via Docker |
📥 Install Java/JDK | ✅ Included |
🔧 Configure PATH variables | ✅ Zero config |
😭 Pray nothing conflicts | 🚀 Just works |
🤖 No AI agent support | 🔌 26 agents supported |
📝 Manual CI/CD setup | 🔧 One-command CI generation |
🎨 Manual icon/splash creation | 🎨 Auto-generate everything |
Fables is a single CLI that replaces Android Studio, manages your SDK, handles signing, generates icons, creates CI/CD pipelines, and integrates with every major AI agent — all from your terminal.
✨ Features
Core 🏗️
🚀 Build APK, AAB, Split APKs — no Android Studio
🍎 iOS builds — IPA generation on macOS
🐳 Docker-powered SDK — auto-manages Android SDK
🔐 Keystore management — generate & manage signing keys
🔒 Code obfuscation — protect your app (on by default)
⚡ Build flavors — dev, staging, production
📊 Beautiful CLI — gradient ASCII art, book-themed spinners
Assets & Resources 🎨
🖼️ App icon generator — one 1024x1024 image → all platforms
🌊 Splash screen generator — Android + iOS launch screens
📦 Asset optimization — size analysis & recommendations
Quality & Analysis 📊
📏 APK/AAB size analysis — with optimization tips
📋 Permission manager — list, add, remove, auto-suggest
📄 Manifest viewer — AndroidManifest.xml inspection
🛡️ ProGuard helper — rule templates & validation
🧪 Test runner — beautiful Flutter test output
Developer Experience 💻
📱 Device deployment — install APK via ADB
🖥️ Emulator management — create, list, launch emulators
📜 Log viewer — colorized, filtered device logs
🔄 Version bumping — sync pubspec + Android + iOS
📝 Changelog generation — from git history
🌍 i18n support — localization setup & string extraction
📦 Dependency auditor — security & update checks
🔐 Secrets manager — per-environment .env files
AI Agent Integration 🤖
🔌 MCP Protocol — Model Context Protocol server
🤖 26 supported agents — Claude, Cursor, LangChain, CrewAI, and more
📡 stdio & HTTP transports — for CLI and remote agents
🛠️ 19 MCP tools — every Fables command as an AI tool
CI/CD 🔧
🐙 GitHub Actions — one-command workflow generation
🦊 GitLab CI — Docker-based pipeline
⭕ CircleCI — multi-stage builds
🔵 Bitbucket Pipelines — ready-to-push config
📦 Installation
Prerequisites
Install Fables
# Install globally (recommended)
npm install -g fables
# Or use with npx (no install)
npx fables --helpVerify Installation
fables --version
# → 0.1.0
fables doctor
# → Checks Flutter, SDK, Docker, Xcode, Java🚀 Quick Start
# 1. Navigate to your Flutter project
cd my_flutter_app
# 2. Initialize Fables
fables init
# 3. Check your environment
fables doctor
# 4. Build your app!
fables build --target apk
# 5. Deploy to device
fables deploy build/fables/app-release.apkThat's it. No Android Studio. No SDK configuration. Just Fables. 📖✨
📖 Commands
Core Commands
Command | Description |
| Initialize Fables in your Flutter project |
| Check your build environment |
| View/edit Fables configuration |
| Clean build artifacts & caches |
Build & Deploy
Command | Description |
| Build APK, AAB, Split APKs, or iOS IPA |
| Deploy APK to connected device via ADB |
| Run app on device/emulator with hot reload |
Device & Testing
Command | Description |
| Create, list, launch Android emulators |
| View device logs with smart filtering |
| Run Flutter tests with beautiful output |
Assets & Resources
Command | Description |
| Generate app icons from a single image |
| Generate splash screen assets |
Configuration & Secrets
Command | Description |
| Manage build flavors (dev/staging/prod) |
| Manage environment variables & secrets |
| Dependency management & auditing |
| Manage app permissions |
| Internationalization helpers |
Quality & Analysis
Command | Description |
| APK/AAB size analysis & optimization |
| AndroidManifest.xml viewer & editor |
| ProGuard/R8 configuration helper |
| Keystore generation & signing profiles |
Release & CI/CD
Command | Description |
| Version bumping & changelog generation |
| Generate CI/CD configs (GitHub, GitLab, etc.) |
AI Integration
Command | Description |
| MCP server for AI agent integration |
📖 Comprehensive Guide
Building for Android
APK (Installable)
# Universal APK
fables build --target apk
# Per-architecture APKs (smaller download per device)
fables build --target apk --split-per-abi
# Debug build
fables build --target apk --mode debug
# Profile build (performance testing)
fables build --target apk --mode profileAAB (Play Store)
# App Bundle for Google Play
fables build --target aab
# With flavor
fables build --target aab --flavor productionBuild Options
fables build --target apk \
--mode release \ # release | profile | debug
--flavor production \ # Build flavor
--split-per-abi \ # Per-architecture APKs
--obfuscate \ # Code obfuscation (default: on)
--dart-define ENV=prod \ # Dart defines
--dart-define API_KEY=xxx \
--clean \ # Clean before build
--output build/fables \ # Output directory
--yes # Skip confirmationBuilding for iOS
# Build IPA (requires macOS with Xcode)
fables build --target ios
# With flavor
fables build --target ios --flavor staging
# Without code signing (for CI/CD)
fables build --target ios --no-signRequirements:
macOS 12+ (Monterey or later)
Xcode 14+
CocoaPods (
sudo gem install cocoapods)
Managing Signing Keys
# Generate a new keystore
fables sign generate
# Interactive prompts for:
# - Key alias
# - Certificate details (CN, O, OU, L, ST, C)
# - Password
# List signing profiles
fables sign listKeystores are stored in .fables/keystores/ (gitignored by default).
Build Flavors & Environments
# Initialize flavors interactively
fables flavors init
# Creates configurations for:
# - dev (Development)
# - staging (Staging)
# - prod (Production)
# List configured flavors
fables flavors list
# Build a specific flavor
fables build --target apk --flavor productionFlavors are saved in .fables/fables.yaml and auto-generate Android product flavors.
App Icons & Splash Screens
Icons
# Generate all icons from a single 1024x1024 image
fables icon path/to/icon.png
# Android only
fables icon path/to/icon.png --android
# With adaptive icons
fables icon path/to/icon.png --adaptive --background "#FF6B35"
# iOS only
fables icon path/to/icon.png --ios
# Web (PWA + favicon)
fables icon path/to/icon.png --webGenerates:
Android: 5 density buckets (mdpi → xxxhdpi) + adaptive icons
iOS: 15 sizes including App Store icon
Web: 192px, 512px, maskable, favicon
Splash Screens
# Generate splash screens
fables splash path/to/splash.png
# With custom background
fables splash path/to/splash.png --background "#FFFFFF"
# With dark mode support
fables splash path/to/splash.png --dark-background "#1A1A1A"Dependency Management
# List all dependencies
fables deps list
# Include dev dependencies
fables deps list --dev
# Audit for issues
fables deps audit
# Checks: unpinned versions, git deps, supply chain risks
# Add packages
fables deps add http dio provider
# Remove packages
fables deps remove http
# Check for updates
fables deps update --dry-runSecrets & Environment Variables
# Initialize secrets management
fables secrets init
# Creates .env files for dev, staging, production
# List environments
fables secrets list
# Set a secret
fables secrets set API_KEY sk_live_xxxxx --env production
# Load secrets as dart-defines
fables secrets load production
# Generate encryption key
fables secrets keygenFile structure:
.fables/secrets/
├── development.env
├── staging.env
└── production.envInternationalization (i18n)
# Initialize i18n with locales
fables i18n init --locales en,es,fr,de,ja,zh
# List configured locales
fables i18n list
# Extract hardcoded strings from Dart code
fables i18n extract
# Validate translations
fables i18n validatePermissions Management
# List current permissions
fables permissions list
# Add a permission
fables permissions add CAMERA
# Remove a permission
fables permissions remove READ_CONTACTS
# Auto-suggest permissions based on dependencies
fables permissions suggestProGuard/R8 Configuration
# List available rule categories
fables proguard list
# Add rules for common libraries
fables proguard add flutter
fables proguard add firebase
fables proguard add gson
fables proguard add okhttp
# Show current rules
fables proguard show
# Validate configuration
fables proguard validateDevice Logs & Debugging
# View all logs
fables logs
# Flutter-only logs
fables logs --flutter
# Filter by tag
fables logs --filter FlutterEngine
# Filter by level (V/D/I/W/E)
fables logs --level E
# Search for text
fables logs --search "error"
# Last 50 lines
fables logs --lines 50Version Management
# Show current version
fables release version
# Bump version
fables release bump patch # 1.0.0 → 1.0.1
fables release bump minor # 1.0.0 → 1.1.0
fables release bump major # 1.0.0 → 2.0.0
fables release bump build # 1.0.0+1 → 1.0.0+2
# Bump + create git tag
fables release bump minor --tag
# Bump + generate changelog
fables release bump patch --changelog
# Generate changelog from git history
fables release changelogUpdates version in:
pubspec.yamlandroid/app/build.gradle(versionCode + versionName)ios/Runner/Info.plist(CFBundleVersion + CFBundleShortVersionString)
🤖 AI Agent Integration
Fables implements the Model Context Protocol (MCP), making it compatible with every major AI coding assistant and agent framework.
Supported Agents
Category | Agents |
Editors & IDEs | Claude Code, Cursor, VS Code/Copilot, Windsurf, Cline, Continue.dev, Aider, Zed, JetBrains |
AI Frameworks | LangChain, CrewAI, AutoGen, Semantic Kernel, LlamaIndex, Haystack, OpenAI Agents, Google ADK, Amazon Bedrock |
Platforms | OpenClaw, n8n, Dify, Coze, FastGPT, Flowise |
Generic | Any MCP-compatible client |
Setup Commands
# One command to configure any agent
fables mcp setup <agent>
# Examples:
fables mcp setup claude
fables mcp setup cursor
fables mcp setup langchain
fables mcp setup crewai
# List all available MCP tools
fables mcp tools
# Start MCP server
fables mcp serve --stdio # For CLI agents
fables mcp serve --port 3000 # For remote agentsOpenClaw
fables mcp setup openclawCreates TOOLS.md with Fables integration. Add to your OpenClaw workspace.
Usage in OpenClaw:
Build my Flutter app as an APK
→ OpenClaw calls fables_build tool with target: "apk"Claude Code
fables mcp setup claudeCreates .claude/mcp.json:
{
"mcpServers": {
"fables": {
"command": "fables",
"args": ["mcp", "serve", "--stdio"]
}
}
}Usage in Claude Code:
User: "Build my Flutter app for Android release"
Claude: [calls fables_build with target: "apk", mode: "release"]Cursor
fables mcp setup cursorCreates .cursor/mcp.json. Fables tools appear in Cursor's AI panel.
VS Code / GitHub Copilot
fables mcp setup vscodeCreates .vscode/mcp.json. Works with GitHub Copilot Chat and VS Code extensions.
Windsurf (Codeium)
fables mcp setup windsurfCreates .windsurf/mcp.json.
Cline
fables mcp setup clineCreates .cline/mcp.json.
Continue.dev
fables mcp setup continueCreates .continue/mcp.json with stdio transport.
Aider
fables mcp setup aiderCreates .aider.conf.yml with MCP server configuration.
Zed Editor
fables mcp setup zedCreates .zed/settings.json.
JetBrains IDEs
fables mcp setup jetbrainsCreates .idea/mcp.json for IntelliJ, Android Studio, WebStorm, etc.
LangChain
fables mcp setup langchainCreates langchain_mcp_config.json for use with LangChain's MCP adapter.
Python usage:
from langchain_mcp import MCPServer
server = MCPServer.from_config("langchain_mcp_config.json")
tools = server.get_tools()
# Use in LangChain agent
agent = create_react_agent(llm, tools)
agent.invoke({"input": "Build my Flutter app as an APK"})CrewAI
fables mcp setup crewaiCreates crewai_mcp_config.json with capabilities metadata.
Python usage:
from crewai import Agent, Task, Crew
from crewai_tools import MCPServerToolKit
toolkit = MCPServerToolKit.from_config("crewai_mcp_config.json")
developer = Agent(
role="Mobile Developer",
goal="Build and deploy Flutter apps",
tools=toolkit.get_tools(),
backstory="Expert Flutter developer"
)
task = Task(
description="Build the Flutter app as a release APK",
agent=developer
)
crew = Crew(agents=[developer], tasks=[task])
crew.kickoff()AutoGen (Microsoft)
fables mcp setup autogenCreates autogen_mcp_config.json.
Semantic Kernel
fables mcp setup semantickernelCreates semantickernel_mcp.json.
LlamaIndex
fables mcp setup llamaindexCreates llamaindex_mcp.json.
Haystack (deepset)
fables mcp setup haystackCreates haystack_mcp.yaml.
OpenAI Agents SDK
fables mcp setup openaiCreates openai_mcp_config.json.
Google ADK
fables mcp setup googleCreates google_adk_mcp.json.
Amazon Bedrock
fables mcp setup bedrockCreates bedrock_mcp_config.json.
n8n
fables mcp setup n8nCreates n8n_mcp.json for n8n workflow automation.
Dify
fables mcp setup difyCreates dify_mcp.json.
Coze (ByteDance)
fables mcp setup cozeCreates coze_mcp.json.
FastGPT
fables mcp setup fastgptCreates fastgpt_mcp.json.
Flowise
fables mcp setup flowiseCreates flowise_mcp.json.
Generic MCP Client
For any MCP-compatible client:
fables mcp setup genericCreates mcp_config.json with standard MCP configuration.
MCP Protocol Reference
stdio Transport (for CLI agents):
fables mcp serve --stdioHTTP/SSE Transport (for remote agents):
fables mcp serve --port 3000 --host localhostEndpoints:
GET /sse— Server-Sent Events streamPOST /— JSON-RPC requests
MCP Tools Reference
Tool | Description |
| Initialize Fables in a Flutter project |
| Build Flutter app (APK, AAB, iOS) |
| Check build environment |
| Analyze APK/AAB size |
| Deploy APK to device |
| Run app on device/emulator |
| Run Flutter tests |
| View device logs |
| Manage app permissions |
| View/edit AndroidManifest.xml |
| Manage dependencies |
| Internationalization |
| Manage build flavors |
| Get/set configuration |
| Generate signing keystore |
| Bump version |
| List connected devices |
| Get project information |
| Manage emulators |
🔧 CI/CD Integration
GitHub Actions
fables ci generate githubCreates .github/workflows/fables-build.yml with:
Android APK + AAB builds
iOS build
Size analysis
Artifact uploads
Manual dispatch with target selection
GitLab CI
fables ci generate gitlabCreates .gitlab-ci.yml with Docker-based builds.
CircleCI
fables ci generate circleciCreates .circleci/config.yml with multi-stage pipeline.
Bitbucket Pipelines
fables ci generate bitbucketCreates bitbucket-pipelines.yml.
🐳 Docker Support
Fables can auto-manage the Android SDK via Docker — no Android Studio needed:
# First build sets up Docker SDK (may take a few minutes)
fables build --target apk
# Subsequent builds are fast ⚡Docker image includes:
Ubuntu 22.04
Java 17 (OpenJDK)
Android SDK (API 34)
Android Build Tools (34.0.0)
Flutter SDK (stable)
⚙️ Configuration Reference
.fables/fables.yaml:
name: my_app
version: 0.1.0
android:
enabled: true
targets:
- apk
- aab
ios:
enabled: true
signing:
autoSign: true
build:
mode: release
obfuscate: true
splitDebugInfo: true
flavors:
- name: dev
appName: My App Dev
bundleId: com.example.app.dev
environment: dev
- name: staging
appName: My App Staging
bundleId: com.example.app.staging
environment: staging
- name: prod
appName: My App
bundleId: com.example.app
environment: production📁 Project Structure
my_flutter_app/
├── .fables/
│ ├── fables.yaml # Fables configuration
│ ├── keystores/ # Signing keystores (gitignored)
│ ├── profiles/ # Signing profiles (gitignored)
│ ├── secrets/ # Environment files (gitignored)
│ │ ├── development.env
│ │ ├── staging.env
│ │ └── production.env
│ └── .gitignore
├── lib/ # Your Flutter code
├── pubspec.yaml
├── l10n.yaml # i18n config (if initialized)
├── lib/l10n/ # Localization files (if initialized)
└── build/
└── fables/ # Build output
├── app-release.apk
├── app-release.aab
└── Runner.ipa🧪 Testing
Fables has a comprehensive test suite:
# Run all tests
npm test
# Run with coverage
npm test -- --coverage
# Run specific test suite
npx jest --testNamePattern="fables mcp"Test coverage:
50 test cases
All 24 commands tested
MCP tool handlers tested
Error handling tested
Edge cases covered
🤝 Contributing
Contributions welcome! 🎉
# 1. Fork the repo
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/fables.git
# 3. Install dependencies
cd fables && npm install
# 4. Create a branch
git checkout -b feature/amazing-feature
# 5. Make your changes
# 6. Run tests
npm test
# 7. Commit
git commit -m 'feat: add amazing feature'
# 8. Push
git push origin feature/amazing-feature
# 9. Open a PR 🎉Development
# Run locally
node bin/fables.js --help
# Run tests
npm test
# Watch mode
npx jest --watch📄 License
MIT © Fables Contributors
📖 Fables — where every build is a happy ending. ✨
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Atum246/fables'
If you have feedback or need assistance with the MCP directory API, please join our Discord server