{
  "markdown": "# swing-mcp\n\n<!-- mcp-name: io.github.crosstech-solutions-bv/swing-mcp -->\n\n[![CI](https://github.com/crosstech-solutions-bv/swing-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/crosstech-solutions-bv/swing-mcp/actions/workflows/ci.yml)\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.crosstech--solutions--bv%2Fswing--mcp-38a9dc)](https://registry.modelcontextprotocol.io)\n\n**Let AI assistants operate Java Swing desktop applications** — snapshot the UI, click, type, fill forms, read tables and trees, drive menus and dialogs. Inspired by [chrome-devtools-mcp](https://github.com/ChromeDevTools/chrome-devtools-mcp), but targeting any Swing UI instead of HTML pages.\n\nA huge amount of business software is Java desktop software — internal tools, ERP clients, point-of-sale, lab and logistics systems — with no API and no web UI. Swing MCP gives that software a safe, permissioned door into the AI era: assistants like Claude can see the interface and act in it, without changing the application itself.\n\n![swing-mcp driving the demo app: snapshots, clicks, form filling, tables, trees, menus, and dialogs](docs/demo.gif)\n\n## Quick start (Claude Desktop)\n\n1. Make sure **JDK 21+** is on your `PATH`.\n2. Download `swing-mcp.mcpb` from the [latest release](https://github.com/crosstech-solutions-bv/swing-mcp/releases).\n3. Open the file — Claude Desktop installs it as an extension.\n4. Ask Claude to `launch_app` your Swing application (or `attach_to_app` a running one by PID) and take it from there.\n\nUsing another MCP client? One guide and a one-minute video per client — Claude Code, VS Code + Copilot, Cursor, Devin Desktop (Windsurf), IntelliJ IDEA, Codex CLI, Gemini CLI: [docs/installation.md](docs/installation.md) · [videos](https://crosstech.solutions/swing-mcp#clients). Prefer the long version? [3-minute install-and-first-use video](https://crosstech.solutions/swing-mcp#video).\n\n**Need this connected to your own application** — or an MCP connector for other software your business runs? CrossTech builds them: [crosstech.solutions/swing-mcp](https://crosstech.solutions/swing-mcp).\n\n## Modules\n\n- `swing-mcp-server` — Spring Boot MCP server (stdio transport) exposing Swing automation tools.\n- `swing-mcp-agent` — Java agent loaded into the target Swing JVM (at launch via `-javaagent`, or dynamically by PID). Runs a localhost-only JSON line-protocol socket server that executes commands on the Swing EDT.\n- `swing-mcp-common` — Shared command/DTO types between server and agent.\n- `swing-mcp-demo` — Demo Swing application used for integration testing.\n\n## How it works\n\n```\nMCP client (stdio) ──▶ swing-mcp-server ──localhost socket──▶ swing-mcp-agent (inside target JVM) ──▶ Swing EDT\n```\n\n1. The MCP client calls `launch_app` (starts a JVM with the agent preloaded) or `attach_to_app` (loads the agent into a running JVM by PID).\n2. The agent binds a loopback-only port in `swing.mcp.agent-port-min..max` and reports it back through a response file.\n3. Tools such as `take_snapshot`, `click`, and `fill` are forwarded as JSON line commands and executed on the Event Dispatch Thread.\n\nSee [docs/tools](docs/tools/README.md) for the full tool documentation (per-category pages), or [docs/tool-reference.md](docs/tool-reference.md) for the single-page quick reference.\n\n## Skills\n\nThe [skills](skills/README.md) directory contains agent skills (`SKILL.md` files) that teach AI coding agents how to use Swing MCP effectively — core workflows, UI testing patterns, and troubleshooting.\n\n## Building\n\nRequires JDK 21+ and Maven.\n\n```bash\nmvn verify\n```\n\nGUI integration tests are skipped in headless environments; CI runs them under `xvfb`.\n\n## Running\n\nBuild everything (or unzip the released `swing-mcp.mcpb` — the two jars are in\nits `server/` folder), then register the server with your MCP client (see\n[docs/installation.md](docs/installation.md) for per-client instructions —\nClaude Desktop, Claude Code, VS Code, Cursor, Devin Desktop, IntelliJ IDEA, Codex CLI, Gemini CLI):\n\n```json\n{\n  \"mcpServers\": {\n    \"swing\": {\n      \"command\": \"java\",\n      \"args\": [\"-jar\", \"/path/to/swing-mcp-server.jar\"],\n      \"env\": {\n        \"SWING_MCP_AGENT_JAR\": \"/path/to/swing-mcp-agent.jar\"\n      }\n    }\n  }\n}\n```\n\nTry it against the demo app:\n\n1. `launch_app` with `java -jar swing-mcp-demo/target/swing-mcp-demo-1.2.2.jar`\n2. `take_snapshot` to discover component UIDs\n3. `click`, `fill`, `select_option`, … to interact\n\n## MCP Registry\n\nThis server is published to the [MCP Registry](https://registry.modelcontextprotocol.io) as\n`io.github.crosstech-solutions-bv/swing-mcp`, distributed as an MCPB bundle attached to GitHub releases.\nSee [docs/registry-publishing.md](docs/registry-publishing.md) for how publishing works.\n\n## Security notes\n\n- The agent listens on the loopback interface only.\n- `evaluate_java` (arbitrary code execution in the target JVM) is disabled by default; enable with `swing.mcp.evaluate.enabled=true`.\n\nSee [SECURITY.md](SECURITY.md) for the full security model and how to report vulnerabilities.\n\n## Contributing\n\nContributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md) for the PR workflow. Release history lives in [CHANGELOG.md](CHANGELOG.md).\n\n## About\n\nSwing MCP is built and maintained by [CrossTech](https://crosstech.solutions), an AI-first software\nstudio. We build MCP connectors that plug businesses' existing software — web, cloud, and\nlegacy desktop — into AI assistants: [crosstech.solutions/mcp](https://crosstech.solutions/mcp).\n\n## License\n\n[MIT](LICENSE.md)\n",
  "bytes": 5562,
  "sha": "267cfa78f51ea88a0e9a6cd55bc28a35b177561e11d95210c883ea10c69de50d",
  "repo_slug": "crosstech-solutions-bv/swing-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_crosstech_solutions_bv_swing_m_0599980e/readme"
}