mcp-jdwp-java: Instructions file for Claude Code

CLAUDE.md

mcp-jdwp-java CLAUDE.md is an instructions file for Claude Code from FgForrest/mcp-jdwp-java. It costs 2,141 tokens per session, scanned A, original, MIT.

Project instructions for building a two-module Java Maven project that includes an MCP server and a debugging sandbox.

In plain words
What is it for?
For compiling the project, packaging the MCP server, running its real tests, or explicitly running the sandbox's debugging test flights.
Why use it?
They explain which commands build the project, which tests normally run, and why some sandbox tests are intentionally allowed to fail.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions CLAUDE.md; mentions Claude Code.

This is FgForrest/mcp-jdwp-java's own configuration. It tells Claude Code how to work on mcp-jdwp-java itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything mcp-jdwp-java configures →

Reuse

Borrowing it

Nothing to install: this file belongs to FgForrest/mcp-jdwp-java. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/FgForrest/mcp-jdwp-java/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/FgForrest/mcp-jdwp-java

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for mcp-jdwp-java CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/fgforrest/mcp-jdwp-java/claude-md/github.svg)](https://agentmods.dev/instructions/fgforrest/mcp-jdwp-java/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/fgforrest/mcp-jdwp-java/claude-md"><img src="https://agentmods.dev/badge/instructions/fgforrest/mcp-jdwp-java/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for mcp-jdwp-java CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/fgforrest/mcp-jdwp-java/claude-md"><img src="https://agentmods.dev/badge/instructions/fgforrest/mcp-jdwp-java/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 2,141 This file is loaded in full into every session.
When invoked 2,141 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.02141 $0.02141
Opus 5.5 $0.00856 $0.00856
Sonnet 5.5 $0.00428 $0.00428
Haiku 4.5 $0.00214 $0.00214

Measured 7d ago against content hash c34062616fe4, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

mcp-jdwp-java CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 83 lines

How it starts

The opening of the file, as written. The whole thing — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Build Commands

# Run from the reactor root. Builds both modules.
# Prefer ./mvnw (the bundled Maven Wrapper) — it pins the Maven version and
# does not require Maven to be installed system-wide. Plain `mvn` works too
# if it is on PATH.
./mvnw compile                                    # Compile only
./mvnw clean package -DskipTests                  # Full build (produces jdwp-mcp-server/target/mcp-jdwp-java.jar)

# Build only the MCP server (skips the sandbox module entirely):
./mvnw -pl jdwp-mcp-server -am clean package -DskipTests

The repository is a 2-module Maven reactor:

  • jdwp-mcp-server/ — the real MCP server. Contains all genuine unit tests; ./mvnw -pl jdwp-mcp-server test runs them.
  • jdwp-sandbox/ — deliberately broken Java classes used as JDWP debugging targets ("test flights"). Sandbox tests are expected-to-fail by design and are skipped by default so a normal ./mvnw test stays green. Run them explicitly during a test flight with: ./mvnw -pl jdwp-sandbox test -DskipTests=false.

The compiler requires --add-modules jdk.jdi (configured in jdwp-mcp-server/pom.xml). At runtime, the JAR must also be launched with --add-modules jdk.jdi.

Architecture

This is a Spring Boot MCP Server that lets Claude Code inspect and control running Java applications via JDWP (Java Debug Wire Protocol). It connects directly to a target JVM's JDWP port (default 5005).

Claude Code ──MCP/STDIO──> Spring Boot MCP Server ──JDI──> Target JVM (port 5005)

Core Components

  • JDWPTools — Exposes 50 MCP tools via @McpTool annotations. This is the main interface: connection, thread/stack/variable inspection, breakpoints, stepping, and watcher evaluation. All tool methods return formatted String responses.
  • JDIConnectionService — Singleton holding the persistent VirtualMachine (JDI) connection. Manages object caching (ConcurrentHashMap<Long, ObjectReference>) and smart collection rendering (ArrayList, HashMap, HashSet internals). Also drives classpath discovery for expression evaluation.
  • BreakpointTracker — Maintains a registry of breakpoints with synthetic integer IDs (since JDI BreakpointRequest has no user-facing ID). Keeps the last published stop's report for display; which stop is current is SuspensionSession's call.
  • JdiEventListener — Daemon thread consuming the JDI event queue; the event sets are processed in order on a jdi-event-dispatcher thread, except a set raised inside an MCP-driven evaluation, which the listener suppresses and releases at once. Handlers only propose stop candidates; SuspensionSession.finish publishes the first one or releases the set. A published stop stays suspended for user inspection.
  • SuspensionSession (#45) — One per connection; every routed event set is a context (QUEUED → PROCESSING → HELD | RELEASED) and only its context releases its suspension. Tools release only stops a tool has presented, plus jdwp_suspend_thread holds — never blindly. It also runs steps, the jdwp_reset generation and invocation leases (admission, exemptions, ownership transfer). SuspensionWatchdog frees a dispatcher evaluation stuck on a monitor a queued set's thread holds; InvocationRunner bounds a tool's invocation at 20 s ([STILL_RUNNING], later EVALUATION_COMPLETED_LATE). See docs/event-pipeline.md § 14.

Read the full file on GitHub · 83 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago Changed · +3 lines · +370 tokens per session c34062616fe4
  2. 8d ago Changed · +4 lines · +384 tokens per session 438563d4d5b1
  3. 2mo ago First seen · 76 lines · 1,387 tokens per session scan A c400464d039f

Subscribe to this mod's changes

mcp-jdwp-java CLAUDE.md is an instructions file published in the GitHub repository FgForrest/mcp-jdwp-java (34 stars, last pushed 6d ago), licensed MIT. It adds 2,141 tokens to every session, about $0.0086 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

mcp-jdwp-java CLAUDE.md compared with instructions from other repositories

mcp-jdwp-java CLAUDE.md next to 6 instructions from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
mcp-jdwp-java CLAUDE.mdFgForrest/mcp-jdwp-javaInstructions file346d agoMITA2,141Claude Code
vibetags com-example-service-OrderService.instructions.mdPIsberg/vibetagsInstructions file25yesterdayMITA553GitHub Copilot
vibetags com-example-security-SecurityConfig.instructions.mdPIsberg/vibetagsInstructions file25yesterdayMITA281GitHub Copilot
vibetags com-example-service-TransactionalPaymentService.instructions.mdPIsberg/vibetagsInstructions file25yesterdayMITA104GitHub Copilot
vibetags com-example-config-AsyncTestConfig.instructions.mdPIsberg/vibetagsInstructions file25yesterdayMITA82GitHub Copilot
vibetags com-example-concurrent-SessionCache.instructions.mdPIsberg/vibetagsInstructions file25yesterdayMITA71GitHub Copilot
vibetags com-example-gmm-platform-FeatureGate.mdPIsberg/vibetagsInstructions file25yesterdayMITA72Kiro