PluginBench
MCP Server
Active
MIT

FixThis MCP Server

io.github.beyondwin/fixthis

Local-first MCP handoff for Jetpack Compose UI feedback with AI-ready source context.

What is the FixThis MCP server?

FixThis for Android Compose is an MCP server that attaches a debug sidekick to Jetpack Compose apps, mirrors the UI into a local browser console, and generates AI-ready handoffs with screenshot bounds, semantics, and source candidates. It enables developers to annotate UI elements and hand off structured context to coding agents like Claude Code or Cursor without external API calls.

FixThis streamlines the feedback loop between Android developers and AI coding agents. Point at any Compose UI element, annotate the desired change, and FixThis generates a compact handoff including top source candidates with line numbers, confidence warnings, and optional diagnostics. It runs entirely locally over ADB and localhost, making it safe for sensitive projects.

How to install FixThis

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "fixthis": {
      "command": "npx",
      "args": [
        "-y",
        "@beyondwin/fixthis"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • fixthis_open_feedback_console — Opens the FixThis Studio console to annotate UI elements and generate handoffs
  • fixthis install-agent — Installs and configures FixThis in a Jetpack Compose Android project for agent use
  • fixthis doctor — Diagnoses FixThis installation status and readiness
  • fixthis run — Installs the sample debug APK, launches it, and opens FixThis Studio

Use cases

  • Annotate dense or list-rendered Compose UIs and hand off structured context to Claude Code or Cursor
  • Generate AI-ready handoffs with top source candidates, line numbers, and confidence warnings without screenshots alone
  • Capture UI feedback with bounded diagnostics and screen fingerprints to prevent stale or rotated screens from being misapplied
  • Bootstrap FixThis installation in your Jetpack Compose app via agent-driven setup commands
  • Debug Compose UI issues by inspecting component semantics, instance grouping, and AndroidView/WebView interop hints

FixThis MCP server FAQ

What is FixThis?

FixThis is a debug-only MCP server for Jetpack Compose Android apps that mirrors the UI into a local browser console, lets you annotate elements, and generates AI-ready handoffs with source candidates and semantics—all running locally over ADB.

Is FixThis free?

Yes, FixThis is open-source under the MIT license.

How do I install FixThis in Cursor or Claude?

Install the CLI via Homebrew (`brew install beyondwin/tools/fixthis`), npm (`npm install -g @beyondwin/fixthis`), or GitHub Releases. Then run `fixthis install-agent --project-dir . --target all --verify --json` in your Compose app root. Claude Code or Codex can automate this setup.

Does FixThis require authentication or cloud services?

No. FixThis runs entirely locally over ADB and `127.0.0.1`. It makes no external API calls and stores handoffs under `.fixthis/` in your project.

What Android/Compose versions does FixThis support?

FixThis requires JDK 21, Node 20+, and Jetpack Compose 2025.01.01 or compatible. It integrates via the Gradle plugin `io.github.beyondwin.fixthis.compose`.

Can I use FixThis with release builds?

No, FixThis is debug-only. The Gradle plugin ensures the sidekick is excluded from release builds.

README (reference)

Source of truth, from the repository.

FixThis for Android Compose

CI License: MIT JDK 21 Node 20+ Compose

FixThis Studio — point at any Jetpack Compose UI element, annotate, hand off AI-ready context to your coding agent

Point at a Jetpack Compose UI, write the change, and hand Claude, Codex, Cursor, or another coding agent the source context it needs.

FixThis is debug-only. It attaches a sidekick to a Compose debug app, mirrors the screen into a local browser console, and turns annotations into a compact handoff: screenshot bounds, semantics, source candidates, and confidence warnings.

Click a component to select it. Drag when the target is spacing, empty room, or something that is not a clean Compose node.

Works Today

  • Try the sample app in about five minutes.
  • Install the desktop CLI/MCP with Homebrew, npm, or GitHub Releases.
  • Add it to an external app with the Gradle plugin io.github.beyondwin.fixthis.compose.
  • Let Claude Code or Codex configure the sample with ./scripts/bootstrap-mcp.sh --sample.
  • Let an agent configure your app with fixthis install-agent.
  • Use Copy Prompt with Cursor, ChatGPT, or any chat agent.
  • Use Save to MCP with Claude Code or Codex.
  • Save to MCP can attach a bounded, redacted Android diagnostics baseline. Switch the session to Manual or Off if you do not want that. Copy Prompt never starts collection.
  • Runs locally over ADB and 127.0.0.1. No external API calls.

Quick Start: Agent Installs FixThis in Your App

Claude Code / Codex Bootstrap Prompt

Paste this into Claude Code or Codex from the root of a Jetpack Compose Android app:

Install FixThis in this project and configure it for this agent.

Use this order:
1. Run `fixthis install-agent --project-dir . --target all --verify --json`.
2. Use the JSON `readiness.state` and `actions[]` as the source of truth.
3. If `requiresUserAction` is true, tell me the exact blocking action.
4. Do not call `fixthis_open_feedback_console` until `readyForMcpTooling` is true, or until the report's `agent_after_restart` action is reached after restart.

Restart Claude Code or Codex if the report asks for it.
Do not configure release builds. Do not commit `.fixthis/`.

The agent should run:

# macOS
brew install beyondwin/tools/fixthis

# Node
npm install -g @beyondwin/fixthis

# macOS/Linux fallback
curl -fsSL https://raw.githubusercontent.com/beyondwin/FixThis/main/scripts/install-fixthis.sh \
  | bash -s -- --version v1.5.0

fixthis install-agent --project-dir . --target all --verify --json

If Homebrew already has it, run brew update && brew upgrade beyondwin/tools/fixthis and check fixthis --version.

fixthis install-agent applies the Gradle plugin, writes MCP config, and writes .fixthis/project.json plus .fixthis/agent-setup.*. If doctor reports NEEDS_INSTALL or metadata is missing, run ./gradlew fixthisSetup and rerun fixthis install-agent --project-dir . --target all --verify --json. Restart Claude Code or Codex when the report asks, then call fixthis_open_feedback_console. For a manual check, use fixthis doctor --project-dir . --json.

Published plugin:

plugins {
    id("io.github.beyondwin.fixthis.compose") version "1.5.0"
}

The plugin adds the debug-only sidekick and keeps release builds out.

Quick Start: Sample App to Agent Handoff

git clone <this-repo> && cd FixThis
./gradlew :fixthis-cli:installDist :fixthis-mcp:installDist
fixthis-cli/build/install/fixthis/bin/fixthis doctor --package io.github.beyondwin.fixthis.sample
fixthis-cli/build/install/fixthis/bin/fixthis run --package io.github.beyondwin.fixthis.sample

fixthis run installs the sample debug APK, launches it, and opens FixThis Studio at http://127.0.0.1:<port>.

In the console:

  1. Click Annotate.
  2. Click a UI element, or drag an area.
  3. Type the change you want.
  4. Repeat for other spots on this screen.
  5. Copy Prompt for a chat agent, or Save to MCP for Claude Code / Codex.

You are done when a numbered annotation is visible and you have copied Markdown or saved a local MCP handoff.

Maintainers can prove that Copy Prompt path on a connected device:

npm run real-copy-prompt:smoke -- --strict

Pick Your Path

GoalStart here
Try it without touching your appSample quick start
Add it to your debug buildAdd to your app
Connect an agentConnect your agent
Bootstrap MCP from this repoMCP.md
Use the consoleConsole tour
Understand the productProduct
Diagnose a failureTroubleshooting
Inspect contractsDocs index
ContributeCONTRIBUTING.md
ReaderStart here
First-time userSample quick start
External app developerAdd to your app
Agent in this repoAGENTS.md and project map
MaintainerDocs index and project map
Contract or CLI changeReference contracts

Why not just a screenshot?

A screenshot is enough when the target is obvious. FixThis helps when the UI is dense, list-rendered, or named mostly by composable:

  • Top-3 source candidates with line numbers and match reasons
  • editSurface hints for call site vs component vs copy vs layout vs interop
  • Instance grouping so identical cards stay distinct
  • Screen fingerprint so a rotated or changed screen cannot sneak into a save
  • Honest confidence: visual-only, stale, or possible AndroidView/WebView
  • Bounded runtime diagnostics on Save to MCP
  • Retry-safe batches that do not duplicate work

Modules

ModuleRole
:app (sample/)Validation sample
:fixthis-compose-corePure Kotlin domain
:fixthis-compose-sidekickDebug Android runtime
:fixthis-gradle-pluginSource index and debug wiring
:fixthis-cliDesktop CLI
:fixthis-mcpMCP server and local console

More: Product, decisions, architecture.

Status

Public install paths:

  • Gradle plugin io.github.beyondwin.fixthis.compose
  • Maven io.github.beyondwin:fixthis-compose-sidekick and fixthis-compose-core
  • Homebrew brew install beyondwin/tools/fixthis
  • GitHub Release fixthis-cli-mcp-vX.Y.Z.tar.gz
  • npm @beyondwin/fixthis
  • MCP Registry io.github.beyondwin/fixthis

Live dashboard: Release readiness.

main may be ahead of the latest tag. See CHANGELOG and release notes.

Agents in this repo should read AGENTS.md.

Trust

FixThis stays on your machine. The sidekick talks over ADB, the console binds to localhost, and Save to MCP writes under .fixthis/. Screenshots can still contain sensitive pixels. Review them before sharing. Do not commit .fixthis/.

Details: Privacy, Security, Threat model.

V1 stays narrow: Compose debug builds, local ADB, MCP-first handoff, best-effort source candidates, no cloud upload. See Roadmap.

License

MIT. Third-party notices in NOTICE.

Related MCP servers

KOkObsidian logo

kObsidian

Active

Filesystem-first MCP for Obsidian — an LLM-maintained wiki inspired by Karpathy's LLM Wiki.

5
TypeScript
Apache-2.0
View repository →

Pixel-perfect HTML/CSS to PNG/JPG/WebP for AI agents — inline image or 24h hosted URL.

0
TypeScript
MIT
View repository →

MCP protocol enforcing explicit task acceptance and attestation-tagged completion claims.

1
TypeScript
MIT
View repository →
CHChina Phone MCP logo

China Phone MCP

Maintained

Look up Chinese phone number carrier, province, and city from official MIIT allocation data.

0
Python
View repository →

Security scanner for AI-generated code. Scan, explain rules, and grade before you ship.

Read-only MCP server for your mail — provider-agnostic IMAP that never marks a message as read.

0
Python
MIT
View repository →