Skip to content
Agentmart
Submit a tool

javaperf

Java profiling MCP via jcmd/jfr/jps.

Connector by theSharque · GitHub account verified by the MCP Registry

IndexedLicense unknownLocal (stdio)★ 10
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/thesharque-javaperf

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Java profiling MCP via jcmd/jfr/jps. Diagnose performance, analyze threads, inspect JFR recordings.

Use cases: debugging, monitoring-observability

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
12 read · 6 write · 0 delete · 8 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 26

Read from the source code; the running server may list different tools.

Read 12 · Look things up without changing anything.

  • analyze_threads
  • check_deadlock
  • gc_class_stats
  • gc_finalizer_info
  • heap_info
  • heap_live_histogram_diff
  • list_java_processes
  • list_jfr_recordings
  • parse_jfr_summary
  • profile_jfr_file_io
  • profile_jfr_network
  • vm_info

Write 6 · Create, change, send or run things.

  • heap_dump
  • profile_frequency
  • profile_jfr_locks
  • start_profiling
  • stop_profiling
  • trace_method

Not yet classified 8 · We could not tell from the name and description.

  • compiler_codecache
  • compiler_queue
  • gc_efficiency
  • heap_histogram
  • native_memory_summary
  • profile_jfr_native
  • profile_memory
  • profile_time

Network hosts it talks to 1

  • github.com · found in code

Files it touches

  • /home/sharque/.sdkman/candidates/java/current
  • Any path the agent passes to its tools

Tools (26)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyze_threads

    Thread dump (jstack -l). Default: plain text. Set structured=true for JSON lock-wait chains (live snapshot). Historical contention: profile_jfr_locks. Deadlock cycle: check_deadlock.

  • check_deadlock

    Checks for Java-level deadlocks in the specified process. Parses jcmd Thread.print output and returns structured JSON: which threads are involved, what locks they hold/wait for, and the deadlock cycle. Use for automated analysis and reports.

  • compiler_codecache

    jcmd Compiler.codecache — code heap usage and related JVM output.

  • compiler_queue

    jcmd Compiler.queue — methods queued for JIT compilation.

  • gc_class_stats

    jcmd GC.class_stats (class loader / metaspace style stats where supported—often JDK 21+). On older JDK returns error hint; use heap_info or heap_histogram instead.

  • gc_efficiency

    GC efficiency from .jfr: pause time vs freed bytes per collector/cause. Use after stop_profiling; complements profile_memory and heap_info. Not a general JFR summary (see parse_jfr_summary).

  • gc_finalizer_info

    jcmd GC.finalizer_info — finalizer queue diagnostics for the live process.

  • heap_dump

    Creates .hprof for Eclipse MAT / VisualVM. After heap_live_histogram_diff picks a growing class, use MAT Path to GC Roots (exclude weak/soft). Saved to recordings/heap_dump.hprof. Warning: large file.

  • heap_histogram

    Static class histogram (jcmd GC.class_histogram). For live growth over time use heap_live_histogram_diff instead.

  • heap_info

    Brief heap usage summary: capacities, used, committed regions. Quick snapshot without full dump.

  • heap_live_histogram_diff

    Two GC.class_histogram snapshots spaced by intervalSeconds; returns classes whose instance count grew most. Use first in memory-leak workflow; then profile_memory and heap_dump (MAT path-to-GC-roots). Each snapshot walks the heap and may pause the app.

  • list_java_processes

    Lists all running Java processes on the machine. Returns an array of objects with pid, mainClass, and args. Use this tool first to discover the target process PID before calling start_profiling or analyze_threads. Data is obtained via jps -l -m.

  • list_jfr_recordings

    Lists active and recent JFR recordings for a Java process (jcmd JFR.check). Returns recording id, duration, state (running/stopped), and filename. Use before stop_profiling to get the correct recordingId.

  • native_memory_summary

    jcmd VM.native_memory summary=true. Requires JVM started with -XX:NativeMemoryTracking=summary or detail; otherwise explains how to enable.

  • parse_jfr_summary

    Parses a .jfr file and returns a structured summary: top methods by CPU samples, GC statistics, thread allocation stats, and anomaly hints (e.g. high GC count). Use for a quick high-level overview of the recording before diving into specific profiles.

Show 11 more tools
  • profile_frequency

    Call frequency profile from a .jfr file. Counts methods that appear at the leaf (top) of the stack in ExecutionSample events — i.e. methods that were actively executing when sampled. Returns the most frequently sampled methods (exclusive, not cumulative). Use when looking for hot spots or the most often executed code paths.

  • profile_jfr_file_io

    Summarize file read/write events (jdk.FileRead, jdk.FileWrite): counts, bytes, top paths, stack hotspots. Events must exist in recording; configure via start_profiling preset or settingsFile (.jfc).

  • profile_jfr_locks

    Lock contention from JFR: synchronized monitors (JavaMonitorBlocked) and j.u.c parking (ThreadPark). Live wait chains: analyze_threads structured=true. Deadlocks: check_deadlock. Enable events via custom .jfc if missing.

  • profile_jfr_native

    CPU-style cumulative hotspots from jdk.NativeMethodSample stacks. Recording must enable NativeMethodSample (often requires custom .jfc).

  • profile_jfr_network

    Summarize JDK socket I/O from a .jfr (jdk.SocketRead, jdk.SocketWrite): event counts, total bytes read/written where available, top endpoints (host:port / address), and cumulative stack hotspots. Recording must include those events (custom .jfc or preset that enables them). If emptyEvents, use start_profiling settingsFile.

  • profile_memory

    JFR memory profile: top allocators by bytes/count, allocation stacks, OldObjectSample by class (allocation site, not GC roots). Pair with heap_live_histogram_diff, gc_efficiency, heap_dump+MAT. Requires profile preset recording.

  • profile_time

    CPU time (bottleneck) profile from a .jfr file. Uses bottom-up aggregation: each method is counted in every sample where it appears in the stack, including time spent in callees. Returns methods consuming the most CPU time. Use when the goal is to find performance bottlenecks and slow code paths.

  • start_profiling

    Starts JFR on the target PID. Rotates recordings (old_profile.jfr ← new_profile.jfr). Default preset is profile. Optional preset or settingsFile (.jfc, cwd-relative or absolute)—mutually exclusive. Builtin presets may omit socket/I/O/native/locks; use a custom .jfc for jdk.SocketRead/Write, FileRead/Write, JavaMonitorBlocked, jdk.ThreadPark, NativeMethodSample. Then list_jfr_recordings and stop_profiling.

  • stop_profiling

    Stops an active JFR recording and saves it to recordings/new_profile.jfr. Use recordings/new_profile.jfr for current data, recordings/old_profile.jfr for previous (before/after comparison).

  • trace_method

    Builds a call tree for a specific method from a .jfr file. Filters ExecutionSample events to find stack traces containing the given class and method, then aggregates call paths. Use when you want to see who calls a particular method and from where. Limitation: JFR sampling (~10 ms) may miss very fast methods.

  • vm_info

    JVM information: uptime, version, and flags. Useful for environment verification.

Compare and alternatives

    Featured in

    Signals

    Stars
    10
    Forks
    4
    Open issues
    0
    Last commit
    Sep 27, 2026 (1 month ago)
    Last release
    Sep 27, 2026 (1 month ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    Registry name
    io.github.theSharque/javaperf
    Version
    1.4.2
    Auth
    No auth
    Packages
    npm javaperf
    License
    License unknown
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from theSharque

    Cite this page

    javaperf MCP server. Agent Mart. https://agentmart.dev/connectors/thesharque-javaperf (last updated 2026-10-24)