Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Java profiling MCP via jcmd/jfr/jps. Diagnose performance, analyze threads, inspect JFR recordings.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"javaperf": {
"command": "npx",
"args": [
"-y",
"javaperf"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add javaperf -- npx -y javaperfPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"javaperf": {
"command": "npx",
"args": [
"-y",
"javaperf"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"javaperf": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"javaperf"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub theSharque, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (1.4.2) llegó al registro hace 41 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, MemberVault MCP by usefulapi
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
List courses; add users to courses, remove course access or delete users in MemberVault.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
MCP (Model Context Protocol) server for profiling Java applications via JDK utilities (jcmd, jfr, jps)
Enables AI assistants to diagnose performance, analyze threads, and inspect JFR recordings without manual CLI usage.
📦 Install: npm install -g javaperf or use via npx 🌐 npm: https://www.npmjs.com/package/javaperf
Add the server to your MCP config. Example for claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": { "javaperf": { "command": "npx", "args": ["-y", "javaperf"] } } }
For Cursor IDE: Settings → Features → Model Context Protocol → Edit Config, then add the same block inside mcpServers. See the Integration section for more options (local dev, custom JAVA_HOME, etc.).
JDK tools (jps, jcmd, jfr) are auto-detected via JAVA_HOME or which java. If not found, set JAVA_HOME to your JDK root.
# No installation needed - use directly in Cursor/Claude Desktop
git clone https://github.com/theSharque/mcp-jperf.git
cd mcp-jperf
npm install
npm run build
npm run dev
npm start
Debug and test with MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.js
Installs from npm registry automatically:
{
"mcpServers": { "javaperf": { "command": "npx", "args": ["-y", "javaperf"] } } }
For local development with live changes:
{
"mcpServers": { "javaperf": { "command": "javaperf" } } }
Requires: cd /path/to/mcp-jperf && npm link -g
{
"mcpServers": { "javaperf": { "command": "node", "args": ["dist/index.js"], "cwd": "${workspaceFolder}", "env": { "JAVA_HOME": "/path/to/your/jdk" } } } }
If list_java_processes fails with "jps not found", the MCP server may not inherit your shell's JAVA_HOME. Add the env block above with your JDK root path (e.g. /usr/lib/jvm/java-17 or ~/.sdkman/candidates/java/current).
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "javaperf": { "command": "npx", "args": ["-y", "javaperf"] } } }
Edit .continue/config.json:
{
"mcpServers": { "javaperf": { "command": "npx", "args": ["-y", "javaperf"] } } }
| Tool | Description |
|---|---|
list_java_processes | List running Java processes (pid, mainClass, args). Use topN (default 10) to limit. |
start_profiling | Start JFR. Pass pid, duration (seconds). Optional: preset (default effective: profile), settingsFile (path to .jfc, mutually exclusive with preset), memorysize, stackdepth (default 128). |
profile_jfr_network | Socket I/O summary from .jfr (jdk.SocketRead, jdk.SocketWrite). Optional filepath (default new_profile), topN. |
profile_jfr_file_io | File read/write summary (jdk.FileRead, jdk.FileWrite). Optional filepath, topN. |
profile_jfr_locks | Monitor contention (JavaMonitorBlocked) and j.u.c parking (ThreadPark). Optional filepath, topN. Live waits: analyze_threads structured=true. |
profile_jfr_native | Native-method CPU hotspots (jdk.NativeMethodSample). Optional filepath, topN. |
native_memory_summary | jcmd VM.native_memory summary — requires JVM with -XX:NativeMemoryTracking=summary or detail. Pass pid. |
gc_class_stats | jcmd GC.class_stats when available (often JDK 21+). Pass pid. |
gc_finalizer_info | jcmd GC.finalizer_info. Pass pid. |
compiler_codecache | jcmd Compiler.codecache. Pass pid. |
compiler_queue | jcmd Compiler.queue. Pass pid. |
list_jfr_recordings | List active JFR recordings for a process. Use before stop_profiling to get recordingId. |
stop_profiling | Stop recording and save to recordings/new_profile.jfr. Requires pid and recordingId. |
check_deadlock | Check for Java-level deadlocks. Returns structured JSON with threads, locks, and cycle. |
analyze_threads | Thread dump (jstack) with deadlock summary. Pass pid, optional topN (default 10), structured (JSON lock-wait chains). Live snapshot; historical locks: profile_jfr_locks. |
heap_histogram | 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 growth. |
heap_live_histogram_diff | Two histograms spaced by intervalSeconds (default 5). Top classes by instance/byte growth. First step in memory-leak workflow. Pass pid, optional topN, all, minInstanceDelta. |
heap_dump | Create .hprof for MAT/VisualVM. After heap_live_histogram_diff, use MAT Path to GC Roots. Pass pid. Saved to recordings/heap_dump.hprof. |
heap_info | Brief heap summary. Pass pid. |
vm_info | JVM info: uptime, version, flags. Pass pid. |
trace_method | Build call tree for a method from .jfr. Pass className, methodName. Optional: filepath (default new_profile), topN. |
parse_jfr_summary | Parse .jfr into summary: top methods, GC stats, anomalies. Optional: filepath (default new_profile), events, topN. |
profile_memory | Memory profile: top allocators by bytes/count, allocation stacks, OldObjectSample by class. Optional: filepath, topN, sortBy (bytes/count). Pair with gc_efficiency, heap_live_histogram_diff. |
gc_efficiency | GC efficiency from .jfr: pause vs freed bytes per collector. Optional: filepath, topN. After stop_profiling. |
profile_time | CPU bottleneck profile (bottom-up). Optional: filepath (default new_profile), topN. |
profile_frequency | Call frequency profile (leaf frames). Optional: filepath (default new_profile), topN. |
list_java_processesstart_profiling with pid and duration (e.g. 60)duration seconds (or let it run)list_jfr_recordings to get recordingIdstop_profiling with pid and recordingIdparse_jfr_summary, profile_memory, gc_efficiency, profile_time, profile_frequency, trace_method, profile_jfr_network, profile_jfr_file_io, profile_jfr_locks, or profile_jfr_native (events must exist in the recording — use start_profiling with a suitable preset or .jfc via settingsFile)list_java_processesheap_live_histogram_diff with pid, intervalSeconds: 5start_profiling → wait → stop_profilingprofile_memory on new_profile (check oldObjectSamplesByClass for suspect class)gc_efficiency on the same .jfrheap_dump → Eclipse MAT → Path to GC Roots (exclude weak/soft references)javaperf uses stdio MCP and attaches to JVMs via local jps/jcmd. That only works on the OS account and host where the MCP process runs.
To diagnose a JVM on another machine:
jcmd over plain SSH from another host unless you deliberately run MCP there; attaching across hosts is outside this server’s scope.Requirements (same user, local attach) listed under Limitations still apply.