Javaperf MCP Server

Enables AI assistants to diagnose performance, analyze threads, and inspect JFR recordings without manual CLI usage. Its 26 documented tools cover profile, jfr, heap, info. It runs locally over stdio via the published package.

People connecting this server to Claude, Cursor, VS Code, or another MCP client. The project is written in TypeScript.

VERIFIED ACTIVE

LAST COMMIT 2026-05-23 · ★ 10 · #536 OF 848 MAINTAINED OTHER · VERIFIED 2026-08-25

TypeScript servers · how we verify → /methodology

01 · Install Javaperf

before you install - you'll need

JAVA_HOME

Environment variables documented in the project's README - it lists which are required and which have defaults.

Claude Code

claude mcp add thesharque-mcp-jperf -- npx -y javaperf

Claude Desktop / Cursor / VS Code - add to config

{
  "mcpServers": {
    "thesharque-mcp-jperf": {
      "command": "npx",
      "args": [
        "-y",
        "javaperf"
      ]
    }
  }
}

Same JSON for Cursor. For VS Code, rename the top-level key from `mcpServers` to `servers`.

Using another client? Same JSON, different key

Claude Desktop · mcpServers

Cursor · mcpServers

VS Code · servers

Windsurf · mcpServers

Zed · context_servers

Cline · mcpServers

Roo Code · mcpServers

Continue · mcpServers

LibreChat · mcpServers

Gemini CLI · mcpServers

Codex CLI · mcp_servers

Full setup guides: every client.

02 · Evidence

Security posture

What to check before giving this server access to your agent - from the registry, GitHub, and our own probes. We don't score safety; we show what's verifiable.

runs as local process (stdio) - runs on your machine with your user's permissions

license no standard license detected - usage rights unclear; check the repo before commercial use

npm package javaperf - unscoped; check the name against the project README before installing

registry namespace io.github.theSharque is GitHub-verified and matches the repo owner

03 · What Javaperf can do

Prose above is summarized from the project's README and registry record - no invented capabilities.

What you can build

With this server connected, an agent can list running Java processes (pid, mainClass, args). Use topN (default 10) to limit, list active JFR recordings for a process. Use before stop_profiling to get recordingId, stop recording and save to recordings/new_profile.jfr. Requires pid and recordingId, and check for Java-level deadlocks. Returns structured JSON with threads, locks, and cycle.

Capability map

Tools grouped from the project's README - what Javaperf lets an agent do.

Profile

7 tools - e.g. Socket I/O summary from .jfr (jdk.SocketRead, jdk.SocketWrite). Optional filepath (default new_profile), topN.; File read/write summary (jdk.FileRead, jdk.FileWrite). Optional filepath, topN.; Monitor…

profile_jfr_network · profile_jfr_file_io · profile_jfr_locks · profile_jfr_native · profile_memory · profile_time…

Heap

4 tools - e.g. Class histogram (GC.class_histogram). Pass pid, optional topN (20), all (triggers full GC - may pause app). Static snapshot; use heap_live_histogram_diff for gr; Two histograms spaced by intervalSeconds…

heap_histogram · heap_live_histogram_diff · heap_dump · heap_info

read & search

2 tools - e.g. List running Java processes (pid, mainClass, args). Use topN (default 10) to limit.; List active JFR recordings for a process. Use before stop_profiling to get recordingId.

list_java_processes · list_jfr_recordings

Profiling

2 tools - e.g. Start JFR. Pass pid, duration (seconds). Optional: preset (default effective: profile), settingsFile (path to .jfc, mutually exclusive with preset), memorysize,; Stop recording and save to…

start_profiling · stop_profiling

Compiler

2 tools - e.g. jcmd Compiler.codecache. Pass pid.; jcmd Compiler.queue. Pass pid.

compiler_codecache · compiler_queue

Native

1 tool - e.g. jcmd VM.native_memory summary - requires JVM with -XX:NativeMemoryTracking=summary or detail. Pass pid.

native_memory_summary

Class

1 tool - e.g. jcmd GC.class_stats when available (often JDK 21+). Pass pid.

gc_class_stats

Finalizer

1 tool - e.g. jcmd GC.finalizer_info. Pass pid.

gc_finalizer_info

Limitations (from the README)

- Sampling: JFR samples ~10ms; fast methods may not appear in ExecutionSample - Local only: Runs on the machine where MCP is started - Permissions: Must run as same user as target JVM for jcmd access

04 · Who maintains Javaperf

javaperf is maintained by thesharque. We track 2 MCP servers from thesharque - 2 actively maintained, 10 combined GitHub stars, oldest repo from Oct 2025.

05 · Facts

category
other - ranked #536 of 848 actively-maintained other servers as of 2026-08-25.
registry
io.github.theSharque/javaperf (active, first published 2026-03-01 · 8 versions)
packages
npm:javaperf

06 · Javaperf FAQ

Is Javaperf still maintained?

Yes - as of 2026-08-25, its last commit was 2026-05-23. We re-verify nightly.

What can Javaperf do?

With this server connected, an agent can list running Java processes (pid, mainClass, args). Use topN (default 10) to limit, list active JFR recordings for a process. Use before stop_profiling to get recordingId, stop recording and save to recordings/new_profile.jfr. Requires pid and recordingId, and check for Java-level deadlocks. Returns structured JSON with threads, locks, and cycle.

How do I install Javaperf?

Run `npx -y javaperf`. The README documents one environment variable (JAVA_HOME) to set first. You can also paste the ready-made client config above.

Does Javaperf run locally?

Yes - it's a stdio server: it runs on your machine (via npx) with your user's permissions. Your data stays local unless the server itself calls external APIs.

07 · Alternatives to Javaperf

More MCP servers to compare · Lsp MCP · Gapbase MCP · ThinkNEO Control Plane · Crowdsentinel MCP Server · Thunder Compute

More TypeScript MCP servers · 1c Rest MCP · Dadata MCP · Hh MCP · Megaplan MCP · see all