Skip to main content
Glama
Atum246

Fables MCP Server

by Atum246
███████╗ █████╗ ██████╗ ██╗     ███████╗███████╗
██╔════╝██╔══██╗██╔══██╗██║     ██╔════╝██╔════╝
█████╗  ███████║██████╔╝██║     █████╗  ███████╗
██╔══╝  ██╔══██║██╔══██╗██║     ██╔══╝  ╚════██║
██║     ██║  ██║██████╔╝███████╗███████╗███████║
╚═╝     ╚═╝  ╚═╝╚═════╝ ╚══════╝╚══════╝╚══════╝

📖 Fables

Turn Flutter apps into legendary builds.

Build APK, AAB & iOS — no Android Studio required. ✨

License: MIT Node.js Flutter Tests MCP Commands


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)

📦 npm install -g fables

📥 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 --help

Verify 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.apk

That's it. No Android Studio. No SDK configuration. Just Fables. 📖✨


📖 Commands

Core Commands

Command

Description

fables init 🏗️

Initialize Fables in your Flutter project

fables doctor 🔍

Check your build environment

fables config ⚙️

View/edit Fables configuration

fables clean 🧹

Clean build artifacts & caches

Build & Deploy

Command

Description

fables build 🚀

Build APK, AAB, Split APKs, or iOS IPA

fables deploy 📱

Deploy APK to connected device via ADB

fables run 📱

Run app on device/emulator with hot reload

Device & Testing

Command

Description

fables emulator 🖥️

Create, list, launch Android emulators

fables logs 📜

View device logs with smart filtering

fables test 🧪

Run Flutter tests with beautiful output

Assets & Resources

Command

Description

fables icon 🎨

Generate app icons from a single image

fables splash 🌊

Generate splash screen assets

Configuration & Secrets

Command

Description

fables flavors 🍦

Manage build flavors (dev/staging/prod)

fables secrets 🔐

Manage environment variables & secrets

fables deps 📦

Dependency management & auditing

fables permissions 📋

Manage app permissions

fables i18n 🌍

Internationalization helpers

Quality & Analysis

Command

Description

fables analyze 📊

APK/AAB size analysis & optimization

fables manifest 📄

AndroidManifest.xml viewer & editor

fables proguard 🛡️

ProGuard/R8 configuration helper

fables sign 🔐

Keystore generation & signing profiles

Release & CI/CD

Command

Description

fables release 🔄

Version bumping & changelog generation

fables ci 🔧

Generate CI/CD configs (GitHub, GitLab, etc.)

AI Integration

Command

Description

fables mcp 🤖

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 profile

AAB (Play Store)

# App Bundle for Google Play
fables build --target aab

# With flavor
fables build --target aab --flavor production

Build 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 confirmation

Building 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-sign

Requirements:

  • 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 list

Keystores 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 production

Flavors 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 --web

Generates:

  • 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-run

Secrets & 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 keygen

File structure:

.fables/secrets/
├── development.env
├── staging.env
└── production.env

Internationalization (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 validate

Permissions 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 suggest

ProGuard/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 validate

Device 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 50

Version 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 changelog

Updates version in:

  • pubspec.yaml

  • android/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 agents

OpenClaw

fables mcp setup openclaw

Creates 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 claude

Creates .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 cursor

Creates .cursor/mcp.json. Fables tools appear in Cursor's AI panel.


VS Code / GitHub Copilot

fables mcp setup vscode

Creates .vscode/mcp.json. Works with GitHub Copilot Chat and VS Code extensions.


Windsurf (Codeium)

fables mcp setup windsurf

Creates .windsurf/mcp.json.


Cline

fables mcp setup cline

Creates .cline/mcp.json.


Continue.dev

fables mcp setup continue

Creates .continue/mcp.json with stdio transport.


Aider

fables mcp setup aider

Creates .aider.conf.yml with MCP server configuration.


Zed Editor

fables mcp setup zed

Creates .zed/settings.json.


JetBrains IDEs

fables mcp setup jetbrains

Creates .idea/mcp.json for IntelliJ, Android Studio, WebStorm, etc.


LangChain

fables mcp setup langchain

Creates 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 crewai

Creates 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 autogen

Creates autogen_mcp_config.json.


Semantic Kernel

fables mcp setup semantickernel

Creates semantickernel_mcp.json.


LlamaIndex

fables mcp setup llamaindex

Creates llamaindex_mcp.json.


Haystack (deepset)

fables mcp setup haystack

Creates haystack_mcp.yaml.


OpenAI Agents SDK

fables mcp setup openai

Creates openai_mcp_config.json.


Google ADK

fables mcp setup google

Creates google_adk_mcp.json.


Amazon Bedrock

fables mcp setup bedrock

Creates bedrock_mcp_config.json.


n8n

fables mcp setup n8n

Creates n8n_mcp.json for n8n workflow automation.


Dify

fables mcp setup dify

Creates dify_mcp.json.


Coze (ByteDance)

fables mcp setup coze

Creates coze_mcp.json.


FastGPT

fables mcp setup fastgpt

Creates fastgpt_mcp.json.


Flowise

fables mcp setup flowise

Creates flowise_mcp.json.


Generic MCP Client

For any MCP-compatible client:

fables mcp setup generic

Creates mcp_config.json with standard MCP configuration.


MCP Protocol Reference

stdio Transport (for CLI agents):

fables mcp serve --stdio

HTTP/SSE Transport (for remote agents):

fables mcp serve --port 3000 --host localhost

Endpoints:

  • GET /sse — Server-Sent Events stream

  • POST / — JSON-RPC requests


MCP Tools Reference

Tool

Description

fables_init

Initialize Fables in a Flutter project

fables_build

Build Flutter app (APK, AAB, iOS)

fables_doctor

Check build environment

fables_analyze

Analyze APK/AAB size

fables_deploy

Deploy APK to device

fables_run

Run app on device/emulator

fables_test

Run Flutter tests

fables_logs

View device logs

fables_permissions

Manage app permissions

fables_manifest

View/edit AndroidManifest.xml

fables_deps

Manage dependencies

fables_i18n

Internationalization

fables_flavors

Manage build flavors

fables_config

Get/set configuration

fables_sign_generate

Generate signing keystore

fables_release

Bump version

fables_devices

List connected devices

fables_project_info

Get project information

fables_emulator

Manage emulators


🔧 CI/CD Integration

GitHub Actions

fables ci generate github

Creates .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 gitlab

Creates .gitlab-ci.yml with Docker-based builds.

CircleCI

fables ci generate circleci

Creates .circleci/config.yml with multi-stage pipeline.

Bitbucket Pipelines

fables ci generate bitbucket

Creates 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. ✨

Report Bug · Request Feature · Discord

A
license - permissive license
-
quality - not tested
C
maintenance

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