Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Transports: stdio vs HTTP
  • State of MCP (stats)
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI → MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE ↗ (opens in a new tab)
  • llms.txt ↗ (opens in a new tab)
  • Catalog JSON ↗ (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub ↗ (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. Developer Tools
  3. Swing MCP
  4. README

Swing MCP README

The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Swing MCP listing page.

Back to Swing MCP View source on GitHub

swing-mcp

CI MCP Registry

Let AI assistants operate Java desktop applications — Swing and JavaFX — snapshot the UI, click, type, fill forms, read tables and trees, drive menus and dialogs. Inspired by chrome-devtools-mcp, but targeting a running Java UI instead of HTML pages.

One set of tools drives either toolkit, and both at once in applications that mix them — you never tell it which you are using.

A 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, written in Swing and increasingly in JavaFX. 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.

swing-mcp driving the demo app: snapshots, clicks, form filling, tables, trees, menus, and dialogs

Quick start (Claude Desktop)

  1. Make sure JDK 21+ is on your PATH.
  2. Download swing-mcp.mcpb from the latest release.
  3. Open the file — Claude Desktop installs it as an extension.
  4. Ask Claude to launch_app your application (or attach_to_app a running one by PID) and take it from there.

Using 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 · videos. Prefer the long version? 3-minute install-and-first-use video. JavaFX app? See it driven live (96 seconds, every tool call from the real MCP log).

Need this connected to your own application — or an MCP connector for other software your business runs? CrossTech builds them: crosstech.solutions/swing-mcp.

Modules

  • swing-mcp-server — Spring Boot MCP server (stdio transport) exposing the automation tools.
  • swing-mcp-agent — Java agent loaded into the target JVM (at launch via -javaagent, or dynamically by PID). Runs a localhost-only JSON line-protocol socket server. Contains one UiToolkit implementation per supported toolkit and routes each command to the right one; see docs/adr/0001-multi-toolkit-agent.md.
  • swing-mcp-common — Shared command/DTO types and the UiToolkit interface.
  • swing-mcp-demo — Demo Swing application used for integration testing.
  • swing-mcp-demo-fx — Demo JavaFX application used for integration testing (driven both through the toolkit and through the real server over stdio).

How it works

Code
MCP client (stdio) ──▶ swing-mcp-server ──localhost socket──▶ swing-mcp-agent (inside target JVM) ──▶ Swing EDT
                                                                                         └──▶ JavaFX Application Thread
  1. 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).
  2. The agent binds a loopback-only port in swing.mcp.agent-port-min..max and reports it back through a response file.
  3. Tools such as take_snapshot, click, and fill are forwarded as JSON line commands and executed on the owning toolkit's UI thread — the Event Dispatch Thread for Swing, the JavaFX Application Thread for JavaFX.
  4. Component uids are prefixed by the toolkit that issued them (comp- for Swing, fx- for JavaFX), which is how a mixed application stays unambiguous.
  5. Every tool carries MCP annotations (title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint), so clients that honour them can wave through the 12 read-only tools and flag stop_app, close_window and evaluate_java before running them.

See docs/tools for the full tool documentation (per-category pages), or docs/tool-reference.md for the single-page quick reference.

Skills

The skills 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.

Building

Requires JDK 21+ and Maven.

bash
mvn verify

GUI integration tests are skipped in headless environments; CI runs them under xvfb. The JavaFX integration tests run in the verify phase via failsafe, so mvn test alone will not exercise them.

Running

Build everything (or unzip the released swing-mcp.mcpb — the two jars are in its server/ folder), then register the server with your MCP client (see docs/installation.md for per-client instructions — Claude Desktop, Claude Code, VS Code, Cursor, Devin Desktop, IntelliJ IDEA, Codex CLI, Gemini CLI):

config.json
{
  "mcpServers": {
    "swing": {
      "command": "java",
      "args": ["-jar", "/path/to/swing-mcp-server.jar"],
      "env": {
        "SWING_MCP_AGENT_JAR": "/path/to/swing-mcp-agent.jar"
      }
    }
  }
}

Try it against the demo app:

  1. launch_app with java -jar swing-mcp-demo/target/swing-mcp-demo-1.3.0.jar (or the JavaFX demo: swing-mcp-demo-fx/target/swing-mcp-demo-fx-1.3.0.jar)
  2. take_snapshot to discover component UIDs
  3. click, fill, select_option, … to interact

MCP Registry

This server is published to the MCP Registry as io.github.crosstech-solutions-bv/swing-mcp, distributed as an MCPB bundle attached to GitHub releases. See docs/registry-publishing.md for how publishing works.

Security notes

  • The agent listens on the loopback interface only.
  • evaluate_java (arbitrary code execution in the target JVM) is disabled by default; enable with swing.mcp.evaluate.enabled=true.

See SECURITY.md for the full security model and how to report vulnerabilities.

Contributing

Contributions are welcome — see CONTRIBUTING.md for the PR workflow. Release history lives in CHANGELOG.md.

About

Swing MCP is built and maintained by CrossTech, an AI-first software studio. We build MCP connectors that plug businesses' existing software — web, cloud, and legacy desktop — into AI assistants: crosstech.solutions/mcp.

License

MIT