MCP server for inspecting and automating Java Swing applications.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
An MCP (Model Context Protocol) server for interacting with Java Swing applications β inspired by chrome-devtools-mcp, but targeting any Swing UI instead of HTML pages.

swing-mcp-server β Spring Boot MCP server (stdio transport) exposing Swing automation tools.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.swing-mcp-common β Shared command/DTO types between server and agent.swing-mcp-demo β Demo Swing application used for integration testing.launch_app (starts a JVM with the agent preloaded) or attach_to_app (loads the agent into a running JVM by PID).swing.mcp.agent-port-min..max and reports it back through a response file.take_snapshot, click, and fill are forwarded as JSON line commands and executed on the Event Dispatch Thread.See docs/tools for the full tool documentation (per-category pages), or docs/tool-reference.md for the single-page quick reference.
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.
Requires JDK 21+ and Maven.
GUI integration tests are skipped in headless environments; CI runs them under xvfb.
Build everything, then register the server with your MCP client (see docs/installation.md for per-client instructions β IntelliJ IDEA, VS Code, Claude Desktop, Claude Code, Cursor, Windsurf):
Try it against the demo app:
launch_app with java -jar swing-mcp-demo/target/swing-mcp-demo-1.0.0.jartake_snapshot to discover component UIDsclick, fill, select_option, β¦ to interactThis server is published to the MCP Registry as
io.github.TinusJ/swing-mcp, distributed as an MCPB bundle attached to GitHub releases.
See docs/registry-publishing.md for how publishing works.
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.
Contributions are welcome β see CONTRIBUTING.md for the PR workflow. Release history lives in CHANGELOG.md.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/swing-mcp)<a href="https://allmcps.com/mcp/swing-mcp"><img src="https://allmcps.com/api/badge/swing-mcp?style=directory" alt="Swing Mcp on AllMCPs" /></a>