Skip to main content
Glama
guru-prasath-j

flutter-ios-bridge-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ASC_KEY_IDNoApp Store Connect API key ID.
FIB_CONFIGNoPath to a custom config.toml file. Overrides the default configuration location.
FIB_MAC_HOSTNoHostname or IP address of the remote Mac (optional).
FIB_MAC_PORTNoSSH port for the remote Mac (default: 22).
FIB_MAC_USERNoUsername for SSH connection to the remote Mac (optional).
GITHUB_TOKENNoFine-grained PAT with Actions R/W, Secrets R/W, Contents R. Falls back to `gh auth token`.
ASC_ISSUER_IDNoApp Store Connect API issuer ID.
FIB_GITHUB_REPONoGitHub repository in `owner/repo` format. Defaults to the project's git remote.
FIB_MAC_KEY_PATHNoPath to the SSH private key for the remote Mac (alternative to FIB_MAC_PASSWORD).
FIB_MAC_PASSWORDNoPassword for SSH connection to the remote Mac (alternative to FIB_MAC_KEY_PATH).
FIB_PROJECT_PATHNoDefault Flutter project path.
FIB_MAC_REMOTE_DIRNoRemote directory on the Mac to sync project files to.
ASC_PRIVATE_KEY_PATHNoPath to the App Store Connect API private key (.p8 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
bridge_statusB

Show which backends (GitHub CI, App Store Connect, remote Mac, USB device) are configured and what is missing.

ios_doctorA

Audit the ios/ side of a Flutter project without Xcode: bundle id, Info.plist usage strings required by the plugins in pubspec.yaml, deployment target vs Podfile, App Store icon (size/alpha), launch screen, privacy manifest, Firebase config, entitlements. Returns issues sorted by severity with fixes.

ios_get_info_plistB

Read ios/Runner/Info.plist (optionally only the given keys).

ios_set_info_plist_valueB

Set a key in ios/Runner/Info.plist. value_type: auto|string|bool|int|real|array|dict|json. Example: key='NSCameraUsageDescription', value='Used to scan documents'.

ios_remove_info_plist_keyA

Delete a key from ios/Runner/Info.plist.

ios_get_build_settingsA

Read key Xcode build settings from project.pbxproj (bundle ids, deployment target, team, signing style...) plus the Podfile platform.

ios_set_bundle_identifierC

Change the iOS bundle identifier (Runner and RunnerTests) in project.pbxproj.

ios_set_deployment_targetB

Set the minimum iOS version consistently in project.pbxproj, Podfile and AppFrameworkInfo.plist.

ci_generate_workflowB

Write .github/workflows/flutter-ios-bridge.yml (+ a signing helper script) into the repo. The workflow builds on a GitHub macOS runner: simulator .app, unsigned IPA, or signed IPA with optional TestFlight upload. By default pins the same Flutter version you have installed locally.

ci_trigger_buildA

Start an iOS build on GitHub Actions. Builds what is pushed to ref (default branch). Returns the run id. signed-ipa needs signing secrets (signing_quick_setup); testflight=true also needs ASC secrets.

ci_list_runsC

List recent runs of the iOS workflow.

ci_wait_for_runA

Wait (up to timeout_seconds) for a run to finish; returns status and per-step results. Call repeatedly for long builds (a clean iOS build usually takes 8–20 minutes).

ci_get_logsB

Fetch the job logs of a run and extract the Xcode/CocoaPods/Flutter error lines plus the log tail.

ci_download_artifactsA

Download and unzip a run's build outputs (IPA / simulator .app.zip). Default destination: /build/ios-bridge//.

ci_cancel_runC

Cancel a running workflow run.

ci_set_signing_secretsA

Upload signing material to the repo's GitHub Actions secrets (encrypted client-side): IOS_P12_BASE64, IOS_P12_PASSWORD, IOS_PROFILE_BASE64 and, if include_asc_key, ASC_KEY_ID / ASC_ISSUER_ID / ASC_PRIVATE_KEY for TestFlight uploads. Works with a .p12 exported from anywhere, not only signing_quick_setup.

signing_quick_setupA

One-shot iOS code signing from Windows/Linux: registers the bundle id, creates (or reuses) an Apple certificate from a locally generated CSR, creates a provisioning profile, saves .p12/.mobileprovision under ~/.flutter-ios-bridge/signing, and (push_to_github) uploads them as GitHub secrets for signed CI builds. bundle_id defaults to the project's. ad-hoc/development include all registered devices.

signing_inspectA

Inspect a .mobileprovision (name, team, bundle id, kind, devices, expiry, certs) or a .p12 (needs password).

asc_listC

List App Store Connect / Developer Portal resources.

asc_register_bundle_idB

Register an explicit App ID (bundle identifier) in the Apple Developer portal.

asc_enable_capabilityA

Enable a capability on a bundle id, e.g. PUSH_NOTIFICATIONS, ASSOCIATED_DOMAINS, APPLE_ID_AUTH (Sign in with Apple), IN_APP_PURCHASE, HEALTHKIT, NFC_TAG_READING, APP_GROUPS, ICLOUD. Recreate profiles afterwards (signing_quick_setup) so they carry the new entitlement.

asc_register_deviceA

Register an iPhone for ad-hoc/development builds. With no udid, uses the USB-connected device (needs pymobiledevice3).

asc_revoke_certificateA

Revoke a signing certificate (frees a slot when Apple's certificate limit is hit). Profiles using it become invalid; apps already on the App Store are unaffected.

asc_download_profileC

Download a provisioning profile (.mobileprovision) by id.

testflight_buildsC

List recent TestFlight/App Store builds for the app with their processing state.

testflight_distributeC

Answer export compliance for a processed build (uses_non_exempt_encryption; None = leave as is) and add it to TestFlight beta groups (ids from testflight_builds).

mac_doctorA

Check the remote Mac: macOS, Xcode, Flutter, CocoaPods and installed simulator runtimes.

mac_sync_projectA

Upload the Flutter project to the remote Mac (skips build/, .dart_tool/, Pods/, .git). clean=true wipes the remote copy first.

mac_buildA

Build the project on the remote Mac (syncs first by default). Returns ok + the tail of the build output.

mac_list_simulatorsB

List iOS simulators on the remote Mac.

mac_boot_simulatorB

Boot a simulator (default: an already-booted one or the newest iPhone).

mac_run_on_simulatorC

Sync, build for the simulator, install and launch the app on the remote Mac's iOS Simulator.

mac_install_simulator_appB

Install a zipped simulator .app (e.g. from ci_download_artifacts) on the remote Mac's simulator and launch it.

mac_screenshotB

Take a screenshot of the iOS Simulator on the remote Mac and return it as an image.

mac_simulator_logsC

Recent unified-log lines from the app running in the simulator (Flutter print/debugPrint show up here).

mac_open_urlC

Open a URL / deep link / universal link in the simulator.

mac_execC

Run a shell command on the remote Mac (login shell). in_project=true runs it inside the synced project dir, e.g. cd ios && pod install --repo-update or flutter test.

mac_fetch_fileB

Download a file from the remote Mac (relative paths resolve inside the synced project), e.g. build/ios/ipa/app.ipa.

device_listA

List iPhones/iPads connected over USB/Wi-Fi to this Windows/Linux machine.

device_infoC

Model, iOS version and UDID of a connected device.

device_install_appA

Install a signed .ipa (ad-hoc or development profile that includes this device) on a connected iPhone.

device_list_appsC

List user-installed apps on the connected device.

device_uninstall_appC

Uninstall an app from the connected device.

device_syslogA

Capture the device syslog for N seconds (max 120), optionally filtered by text or process name. Launch the app on the phone while this runs to catch crash reasons.

Prompts

Interactive templates invoked by user choice

NameDescription
ship_to_testflightGuided flow: from a Windows/Linux Flutter project to a TestFlight build.
fix_ios_buildDiagnose and fix a failed iOS CI build.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 44 tools

Disambiguation5/5

Despite the size, every tool is scoped to a distinct backend/resource/action: project config, CI, signing, ASC/TestFlight, remote Mac, or USB device. The prefix plus explicit target (e.g. mac_build vs ci_trigger_build) makes misselection unlikely.

Naming Consistency4/5

Tools consistently use lowercase snake_case with backend prefixes and mostly verb_object forms. A few noun-style names (`bridge_status`, `ios_doctor`, `testflight_builds`) break the strict verb_noun pattern, but the convention is otherwise predictable.

Tool Count2/5

44 tools is well above the 25+ threshold and creates a large discovery burden for an agent. The multi-backend scope explains the count, but splitting into smaller per-backend servers would make the surface far more manageable.

Completeness4/5

The surface covers the full Flutter iOS bridge lifecycle: audit/config, CI workflow, signing/ASC resources, TestFlight distribution, remote Mac build/run, and USB device operations. Minor gaps exist, such as no direct provisioning-profile deletion and no App Store Connect app-creation step, but core workflows have no dead ends.

Maintenance

ActivityNo data
ResponsivenessNo issues