Skip to main content
Glama
xzq-xu
by xzq-xu

JVM MCP Server

English | 中文

A lightweight JVM monitoring and diagnostic MCP (Multi-Agent Communication Protocol) server implementation based on native JDK tools. Provides AI agents with powerful capabilities to monitor and analyze Java applications without requiring third-party tools like Arthas.

Hosted deployment

A hosted deployment is available on Fronteir AI.

Related MCP server: Arthas MCP Server

Features

  • Zero Dependencies: Uses only native JDK tools (jps, jstack, jmap, etc.)

  • Lightweight: Minimal resource consumption compared to agent-based solutions

  • High Compatibility: Works with all Java versions and platforms

  • Non-Intrusive: No modifications to target applications required

  • Secure: Uses only JDK certified tools and commands

  • Remote Monitoring: Support for both local and remote JVM monitoring via SSH

Core Capabilities

Basic Monitoring

  • Java process listing and identification

  • JVM basic information retrieval

  • Memory usage monitoring

  • Thread information and stack trace analysis

  • Class loading statistics

  • Detailed class structure information

Advanced Features

  • Method call path analysis

  • Class decompilation

  • Method search and inspection

  • Method invocation monitoring

  • Logger level management

  • System resource dashboard

System Requirements

  • Python 3.6+

  • JDK 8+

  • Linux/Unix/Windows OS

  • SSH access (for remote monitoring)

Installation

# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh  # Linux/macOS
# or
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"  # Windows

# Install the package
uv pip install jvm-mcp-server

Using pip

pip install jvm-mcp-server

From Source

# Clone the repository
git clone https://github.com/your-repo/jvm-mcp-server.git
cd jvm-mcp-server

# Using uv (recommended)
uv venv  # Create virtual environment
uv sync  # Install dependencies

# Or install in development mode
uv pip install -e .

Quick Start

Starting the Server

# Local mode
uv run jvm-mcp-server

# Using environment variables file for remote mode
uv run --env-file .env jvm-mcp-server

# In specific directory
uv --directory /path/to/project run --env-file .env jvm-mcp-server

Using uvx

# Local mode
uvx run jvm-mcp-server

# With environment variables
uvx run --env-file .env jvm-mcp-server

Using Python directly

from jvm_mcp_server import JvmMcpServer

# Local mode
server = JvmMcpServer()
server.run()

# Remote mode (via environment variables)
# Set SSH_HOST, SSH_PORT, SSH_USER, SSH_PASSWORD or SSH_KEY
import os
os.environ['SSH_HOST'] = 'user@remote-host'
os.environ['SSH_PORT'] = '22'
server = JvmMcpServer()
server.run()

Using with MCP Configuration

{
  "mcpServers": {
    "jvm-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/jvm-mcp-server",
        "run",
        "--env-file",
        "/path/to/jvm-mcp-server/.env",
        "jvm-mcp-server"
      ]
    }
  }
}

Available Tools

JVM-MCP-Server provides a comprehensive set of tools for JVM monitoring and diagnostics:

  • list_java_processes: List all Java processes

  • get_thread_info: Get thread information for a specific process

  • get_jvm_info: Get JVM basic information

  • get_memory_info: Get memory usage information

  • get_stack_trace: Get thread stack trace information

  • get_class_info: Get detailed class information including structure

  • get_stack_trace_by_method: Get method call path

  • decompile_class: Decompile class source code

  • search_method: Search for methods in classes

  • watch_method: Monitor method invocations

  • get_logger_info: Get logger information

  • set_logger_level: Set logger levels

  • get_dashboard: Get system resource dashboard

  • get_jcmd_output: Execute JDK jcmd commands

  • get_jstat_output: Execute JDK jstat commands

For detailed documentation on each tool, see Available Tools.

Architecture

JVM-MCP-Server is built on a modular architecture:

  1. Command Layer: Wraps JDK native commands

  2. Executor Layer: Handles local and remote command execution

  3. Formatter Layer: Processes and formats command output

  4. MCP Interface: Exposes functionality through FastMCP protocol

Key Components

  • BaseCommand: Abstract base class for all commands

  • CommandExecutor: Interface for command execution (local and remote)

  • OutputFormatter: Interface for formatting command output

  • JvmMcpServer: Main server class that registers all tools

Development Status

The project is in active development. See Native_TODO.md for current progress.

Completed

  • Core architecture and command framework

  • Basic commands implementation (jps, jstack, jmap, jinfo, jcmd, jstat)

  • Class information retrieval system

  • MCP tool parameter type compatibility fixes

In Progress

  • Caching mechanism

  • Method tracing

  • Performance monitoring

  • Error handling improvements

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

NP|## Acknowledgements #MH| #TK|- JDK tools documentation #WY|- FastMCP protocol specification #JK|- Contributors and testers #BP| #KG|## Permission Requirements #YM| #KB|Some JVM diagnostic commands (jstack, jmap, jinfo, jcmd, etc.) require sufficient permissions to attach to the target JVM process. If you encounter permission errors, try the following solutions: #YB| #KB|### Common Errors #RR| #KB|- Permission denied: Insufficient permissions #YZ|- Unable to open socket file: Cannot connect to JVM process #KD|- No such process: Process does not exist or has exited #MH| #KB|### Solutions #BR| #KB|1. Run with sudo (recommended): sudo uv run jvm-mcp-server #XZ|2. Run as the same user as target Java process: Check the user ID of the Java process and run as that user #HM|3. Add experimental attach permission to JDK: Add to JVM startup arguments:

```

-XX:+AllowRedefinitionToAddDeleteMethods

```

#XQ|4. In Docker: Ensure the container has sufficient permissions (--privileged or mount /proc) #KB| #KB|Note: list_java_processes uses the jps command and does not require special permissions. Other commands may need to be configured according to the solutions above.

  • JDK tools documentation

  • FastMCP protocol specification

  • Contributors and testers

Available Tools

16 tools
decompile_classB

反编译指定类的源码

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            class_pattern (str): 类名表达式匹配
            method_pattern (Optional[str]): 可选的方法名表达式

        Returns:
            Dict: 包含反编译源码的字典(暂未实现)
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
class_patternNo
method_patternNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool decompiles source code and mentions the return is '暂未实现' (not yet implemented), which is important behavioral information. However, it doesn't disclose critical aspects like: whether this requires special permissions, if it's a read-only operation, potential performance impact, or what happens when patterns don't match. The 'not yet implemented' warning is helpful but insufficient for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose first. The Args/Returns structure is clear, though the Chinese/English mix and formatting could be slightly cleaner. Every sentence earns its place by conveying essential information about purpose, parameters, and implementation status.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a 3-parameter tool with no annotations and no output schema, the description does an adequate but incomplete job. It covers the basic purpose and parameters well, but lacks important context about when to use it, behavioral constraints, and what the actual output will contain (beyond the 'not yet implemented' warning). For a decompilation tool that likely interacts with running processes, more operational context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate - and it does well by explaining all three parameters: pid as process ID in string format, class_pattern as class name expression matching, and method_pattern as optional method name expression. This adds significant meaning beyond the bare schema. The only minor gap is not explaining what 'expression matching' entails (regex, wildcards, etc.).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as '反编译指定类的源码' (decompile source code of specified class), which is a specific verb+resource combination. It distinguishes itself from siblings like get_class_info or search_method by focusing on decompilation rather than information retrieval or searching. However, it doesn't explicitly contrast with all possible siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing a running Java process), when this tool is appropriate versus other debugging tools in the sibling list, or any limitations. The agent must infer usage context from parameter requirements alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_class_infoB

获取类信息 - 使用jmap -histo和javap命令获取完整的类信息

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            class_pattern (str): 类名表达式匹配
            show_detail (bool): 是否显示详细信息,默认false
            show_field (bool): 是否显示成员变量信息(需要show_detail=True),默认false
            use_regex (bool): 是否使用正则表达式匹配,默认false
            depth (str): 属性遍历深度(暂未使用)
            classloader_hash (Optional[str]): 指定class的ClassLoader的hashcode(暂未使用)
            classloader_class (Optional[str]): 指定执行表达式的ClassLoader的class name(暂未使用)
            max_matches (str): 匹配类的最大数量,使用字符串形式(如:"50")

        Returns:
            Dict: 包含类信息的字典
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
class_patternNo
show_detailNo
show_fieldNo
use_regexNo
depthNo
classloader_hashNo
classloader_classNo
max_matchesNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool uses jmap and javap commands but doesn't describe what happens during execution (e.g., whether it pauses the JVM, requires specific permissions, has performance implications, or returns structured vs unstructured data). The description states it returns a 'Dict' but provides no details about the structure or content of that dictionary. For a tool with 9 parameters and no annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately front-loaded with the core purpose, but the parameter documentation section is quite lengthy (9 parameters with detailed explanations). While all parameter information is valuable given the 0% schema coverage, the structure could be more efficient. The description earns its length but isn't optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, no annotations, no output schema), the description does a good job explaining parameters but falls short on other aspects. It doesn't explain the tool's behavior during execution, doesn't describe the return value structure despite mentioning a 'Dict', and provides no usage context. The parameter documentation is comprehensive, but other critical context is missing for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides excellent parameter documentation with clear explanations for each of the 9 parameters, including default values, dependencies (show_field requires show_detail=True), and implementation notes about parameters that are '暂未使用' (not yet used). With 0% schema description coverage, the description fully compensates by explaining what each parameter means, how they interact, and their expected formats. The only minor gap is not explaining the format of the returned dictionary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool '获取类信息' (get class information) and specifies it uses 'jmap -histo and javap commands' to obtain complete class information. This provides a specific verb ('获取' - get) and resource ('类信息' - class information) with implementation details. However, it doesn't explicitly differentiate from sibling tools like 'decompile_class' or 'search_method', which reduces it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. While it mentions using jmap and javap commands, it doesn't explain when this tool is preferred over sibling tools like 'decompile_class', 'search_method', or 'get_jvm_info'. There's no mention of prerequisites, typical use cases, or limitations that would help an agent choose appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboardC

获取系统实时数据面板

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")

        Returns:
            Dict: 包含系统实时数据的字典(暂未实现)
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves real-time data and returns a dictionary, but it doesn't mention whether this is a read-only operation, if it requires specific permissions, potential side effects, rate limits, or error handling. The note '暂未实现' (not yet implemented) adds uncertainty about functionality. For a tool with no annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the main purpose. The Args and Returns sections are structured but include an unnecessary note ('暂未实现') that doesn't aid tool invocation. Overall, it's efficient with minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (retrieving real-time data), lack of annotations, no output schema, and incomplete parameter guidance, the description is insufficient. It doesn't explain what 'system real-time data' includes, how the data is formatted, or error cases. The 'not yet implemented' note further undermines completeness, leaving the agent with unclear expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for the single parameter 'pid' by explaining it's a process ID in string format (e.g., '12345'), which the input schema lacks (0% coverage). However, it doesn't clarify if 'pid' is required or optional (schema shows default='', implying optional), what happens if omitted, or provide examples beyond a generic string. With low schema coverage, the description compensates partially but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states '获取系统实时数据面板' (get system real-time data dashboard), which provides a clear verb ('get') and resource ('system real-time data dashboard'). However, it doesn't distinguish this tool from its many siblings (like get_jvm_info, get_memory_info, etc.), which also appear to retrieve system information. The purpose is understandable but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions. Given the numerous sibling tools for system monitoring (e.g., get_jvm_info, get_memory_info), the absence of usage guidelines leaves the agent without direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_jcmd_outputB

执行 jcmd 子命令

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            subcommand (Optional[str]): jcmd子命令,如果不指定则执行help命令

        Returns:
            Dict: 包含jcmd执行结果的字典,包含以下字段:
                - raw_output (str): 原始输出
                - timestamp (float): 时间戳
                - success (bool): 是否成功
                - error (Optional[str]): 错误信息
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
subcommandNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format (a dictionary with specific fields like raw_output, timestamp, success, error), which is valuable. However, it lacks critical behavioral details: it doesn't mention whether this requires special permissions, potential side effects (e.g., if jcmd commands can be destructive), rate limits, or error handling beyond the 'success' and 'error' fields. For a tool executing system commands, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core purpose in the first line. The Args and Returns sections are structured clearly, though the use of a code-like format might be slightly verbose. Every sentence adds value, such as specifying parameter types and return fields, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (executing system commands with 2 parameters), no annotations, and no output schema, the description is partially complete. It covers the return format in detail, which is helpful, but lacks behavioral context (e.g., safety, permissions) and usage guidelines. For a tool in a Java diagnostics server with many siblings, more guidance on differentiation would improve completeness, but the parameter and return explanations are adequate as a baseline.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains that 'pid' is a process ID as a string (e.g., '12345') and 'subcommand' is a jcmd subcommand, with a default to 'help' if unspecified. This clarifies the purpose and format of both parameters, compensating well for the schema's lack of descriptions. However, it doesn't provide examples of valid subcommands or constraints, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '执行 jcmd 子命令' (execute jcmd subcommand). It specifies the verb ('执行' - execute) and resource ('jcmd 子命令' - jcmd subcommand), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'get_jstat_output' or 'get_jvm_info', which also execute diagnostic commands but for different Java tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions that if 'subcommand' is not specified, it executes the 'help' command, but this is a default behavior rather than usage guidance. There's no indication of when to choose this over sibling tools like 'get_jvm_info' or 'list_java_processes', which might overlap in Java diagnostics contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_jstat_outputA

执行 jstat 监控命令

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            option (Optional[str]): jstat选项,如gc、class、compiler等
            interval (str): 采样间隔(毫秒),使用字符串形式(如:"1000"表示1秒)
            count (str): 采样次数,使用字符串形式(如:"10")

        Returns:
            Dict: 包含jstat执行结果的字典,包含以下字段:
                - raw_output (str): 原始输出
                - timestamp (float): 时间戳
                - success (bool): 是否成功
                - error (Optional[str]): 错误信息
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
optionNo
intervalNo
countNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format in detail (raw_output, timestamp, success, error), which is helpful. However, it lacks critical behavioral information such as whether this is a read-only operation, potential side effects, error conditions beyond what's in the return dict, or performance implications of the sampling parameters. The description adds some value but leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (Args, Returns) and uses bullet points for the return fields. It's appropriately sized for a 4-parameter tool with detailed return specifications. However, the initial purpose statement is somewhat terse, and there's minor redundancy in specifying '使用字符串形式' (use string form) for multiple parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, monitoring command execution) and lack of both annotations and output schema, the description does a reasonable job but has gaps. It thoroughly documents parameters and return format, which is good. However, it lacks context about jstat itself (what it monitors, typical use cases), doesn't explain the relationship between interval and count for continuous monitoring, and provides no error handling guidance beyond the error field in returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must fully compensate. It provides excellent parameter semantics: it explains each parameter's purpose (pid for process ID, option for jstat options like gc, interval for sampling interval in milliseconds, count for sampling count), includes examples ('12345', '1000', '10'), and clarifies data types (all as strings). This goes well beyond what the bare schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '执行 jstat 监控命令' (execute jstat monitoring command). It specifies the verb ('执行' - execute) and resource ('jstat 监控命令' - jstat monitoring command), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_jcmd_output' or 'get_jvm_info', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_jcmd_output' or 'get_jvm_info', nor does it specify scenarios where jstat is preferred over other monitoring tools. The only implicit context is that it's for monitoring Java processes, but this is insufficient for effective tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_jvm_infoA

获取JVM基础信息

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")。
                支持十进制和十六进制格式。
                空字符串将返回错误信息。

        Returns:
            Dict: 包含JVM信息的字典,包含以下字段:
                - raw_output (str): 原始输出
                - timestamp (float): 时间戳
                - success (bool): 是否成功
                - error (Optional[str]): 错误信息
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format (Dict with specific fields) and error handling (empty string returns error), which is valuable. However, it doesn't mention performance characteristics, rate limits, authentication requirements, or whether this is a read-only operation (though 'get' implies reading).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (Args, Returns) and uses bullet points effectively. It's appropriately sized for a single-parameter tool. The Chinese purpose statement is concise, though the formatting has some unnecessary whitespace. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with no output schema, the description provides good completeness. It explains the parameter thoroughly, documents the return structure, and mentions error behavior. The main gap is lack of sibling differentiation, but given the tool's simplicity and good parameter documentation, it's mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant semantic value beyond the input schema. The schema has 0% description coverage and only shows pid as a string with default empty. The description explains: pid must be a string (e.g., '12345'), supports decimal/hexadecimal formats, and empty string returns an error. This fully compensates for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '获取JVM基础信息' (Get JVM basic information). This is a specific verb+resource combination that distinguishes it from siblings like get_memory_info or get_thread_info. However, it doesn't explicitly differentiate from get_jvm_status, which might be a similar sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple JVM-related sibling tools (get_jvm_status, get_memory_info, get_thread_info, etc.), there's no indication of what distinguishes this 'basic information' tool from others. The only usage context is the parameter explanation, not tool selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_jvm_statusB

获取JVM整体状态报告

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")。
                如果不指定则自动选择第一个Java进程
        
        Returns:
            Dict: 包含JVM状态信息的字典(暂未实现)
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the automatic process selection behavior when PID isn't specified, which is useful. However, it doesn't describe what 'JVM整体状态报告' actually contains, whether it requires specific permissions, potential rate limits, error conditions, or that the return functionality is '暂未实现' (not yet implemented) - which is a significant behavioral limitation that should be more prominently disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably structured with separate sections for Args and Returns, but contains some inefficiencies. The Chinese and English mixing creates minor readability issues, and the '暂未实现' (not yet implemented) note should be more prominent. The core purpose is stated upfront, but the structure could be more streamlined for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and 1 parameter, the description is incomplete. While it documents the parameter adequately, it fails to describe what the JVM status report contains, doesn't explain the '暂未实现' limitation clearly, and provides minimal behavioral context. The agent would struggle to understand what information this tool actually provides versus sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing complete parameter documentation. It explains the 'pid' parameter as a process ID in string format, provides an example ('12345'), and describes the default behavior when not specified. This adds substantial value beyond the bare schema, though it doesn't explain format constraints or validation rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '获取JVM整体状态报告' (Get JVM overall status report). It specifies the verb ('获取' - get) and resource ('JVM整体状态报告' - JVM overall status report), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_jvm_info' or 'get_memory_info', which likely provide more specific JVM information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage context by mentioning that if no PID is specified, it automatically selects the first Java process. This gives basic guidance on when to provide the parameter. However, it doesn't explain when to use this tool versus alternatives like 'get_jvm_info' or 'list_java_processes', nor does it mention any prerequisites or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_logger_infoC

获取logger信息

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            name (Optional[str]): logger名称,如果不指定则获取所有logger信息

        Returns:
            Dict: 包含logger信息的字典(暂未实现)
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
nameNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the return value is '暂未实现' (not yet implemented), which is a critical behavioral disclosure about incomplete functionality. However, it lacks other important details like whether this requires specific permissions, if it's read-only, error conditions, or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise with a brief purpose statement followed by parameter and return documentation. However, the structure includes implementation notes ('暂未实现') that might be better placed elsewhere, and the purpose statement could be more front-loaded with essential context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'logger information' includes, how the data is structured, error handling, or prerequisites. The note about unimplemented returns adds some context but leaves major gaps for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description provides meaningful parameter semantics beyond the schema. It explains that 'pid' is a process ID as a string and 'name' is an optional logger name, clarifying that omitting 'name' returns all logger information. This compensates well for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states '获取logger信息' (get logger information), which provides a basic verb+resource but is vague about scope. It doesn't distinguish from sibling tools like 'set_logger_level' or explain what 'logger information' specifically entails. The purpose is understandable but lacks specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description mentions that if 'name' is not specified, it gets all logger information, but doesn't provide context about when to filter by name or when this tool is appropriate compared to other logging/monitoring tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_memory_infoA

获取内存使用情况

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")。
                支持十进制和十六进制格式。
                空字符串将返回错误信息。

        Returns:
            Dict: 包含内存信息的字典,包含以下字段:
                - raw_output (str): 原始输出
                - timestamp (float): 时间戳
                - success (bool): 是否成功
                - error (Optional[str]): 错误信息
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does describe the return format (a dictionary with specific fields) and mentions that an empty pid string will return an error, which adds useful behavioral context. However, it doesn't cover important aspects like whether this is a read-only operation, potential side effects, performance characteristics, or error handling beyond the empty string case.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and well-structured with clear sections for Args and Returns. While it could be slightly more concise in the parameter explanation, every sentence adds meaningful information. The structure helps with readability and comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no annotations and no output schema, the description provides adequate coverage of the parameter semantics and return format. However, it lacks context about when to use this tool versus alternatives, and doesn't fully address behavioral aspects like whether this is a safe read operation or has any side effects, which would be important for an agent to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and only one parameter, the description fully compensates by providing detailed semantic information about the pid parameter. It explains the parameter accepts string format, supports decimal and hexadecimal formats, and that an empty string will return an error. This adds significant value beyond what the bare schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as '获取内存使用情况' (get memory usage information), which is a specific verb+resource combination. However, it doesn't distinguish this tool from potential alternatives or similar tools in the sibling list like get_jvm_info or get_jvm_status that might also provide memory-related information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. While it documents the pid parameter, it doesn't mention when this tool should be used instead of other sibling tools like get_jvm_info or list_java_processes, nor does it provide any context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stack_traceA

获取线程堆栈信息

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            thread_id (str): 线程ID,使用字符串形式。支持十六进制(如:"0x2c03")
            top_n (str): 显示前N个线程,使用字符串形式(如:"5"),默认值为"5"
            find_blocking (bool): 是否只查找阻塞线程(BLOCKED状态或等待锁的线程)
            interval (str): 采样间隔,使用字符串形式(如:"1000"表示1秒)
            show_all (bool): 是否显示所有信息

        Returns:
            Dict: 包含线程堆栈信息的字典,包含以下字段:
                - threads (List[Dict]): 线程信息列表
                - thread_count (int): 线程数量
                - raw_output (str): 原始输出
                - timestamp (float): 时间戳
                - success (bool): 是否成功
                - error (Optional[str]): 错误信息
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
thread_idNo
top_nNo5
find_blockingNo
intervalNo
show_allNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does describe the return format in detail (threads list, thread count, raw output, etc.), which is valuable behavioral information. However, it doesn't mention performance characteristics, rate limits, authentication requirements, or potential side effects of the sampling interval parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections for Args and Returns, making it easy to parse. While comprehensive, it's appropriately sized for a tool with 6 parameters and detailed return information. The Chinese text at the beginning could be more concise, but overall the structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, no annotations, no output schema), the description provides substantial context including detailed parameter explanations and a comprehensive return format specification. The main gap is the lack of usage guidance relative to sibling tools, but otherwise it's quite complete for helping an agent understand and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides excellent parameter semantics beyond the input schema, which has 0% description coverage. Each parameter is clearly explained with examples (e.g., '12345' for pid, '0x2c03' for thread_id, '1000' for interval), default values are specified, and boolean parameters have clear explanations of what they control. This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool '获取线程堆栈信息' (get thread stack information), which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_thread_info' or 'get_stack_trace_by_method', which likely provide related but different functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools related to threads and stack traces (get_thread_info, get_stack_trace_by_method, get_jcmd_output), there's no indication of when this specific stack trace retrieval tool is appropriate versus other thread-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stack_trace_by_methodB

获取方法的调用路径

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            class_pattern (str): 类名表达式匹配
            method_pattern (str): 方法名表达式匹配
            condition (Optional[str]): 条件表达式,例如:'params[0]<0' 或 '#cost>10'
            use_regex (bool): 是否开启正则表达式匹配,默认为通配符匹配
            max_matches (str): Class最大匹配数量,使用字符串形式(如:"50")
            max_times (str): 执行次数限制,使用字符串形式

        Returns:
            Dict: 包含方法调用路径信息的字典(暂未实现)
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
class_patternNo
method_patternNo
conditionNo
use_regexNo
max_matchesNo
max_timesNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('Dict: 包含方法调用路径信息的字典') and notes '暂未实现' (not yet implemented), which is important context. However, it doesn't disclose whether this is a read-only operation, potential performance impacts, error conditions, or what happens when parameters are invalid. For a 7-parameter tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The purpose statement is clear but brief, followed by a detailed parameter section. However, the structure mixes English and Chinese inconsistently, and the '暂未实现' (not yet implemented) note is buried at the end rather than front-loaded. Every sentence earns its place, but the organization could be more agent-friendly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, no annotations, no output schema), the description is partially complete. It covers parameter semantics well but lacks behavioral context, usage guidelines, and clear output expectations. The '暂未实现' note is crucial but doesn't fully compensate for missing information about what the tool actually does when invoked. For a debugging/tracing tool with many parameters, more context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates well by providing detailed parameter documentation in the Args section. Each parameter gets a clear explanation with examples (e.g., '如:"12345"' for pid, '例如:'params[0]<0' 或 '#cost>10'' for condition). This adds significant value beyond the bare schema. The main gap is that some parameter purposes could be clearer (e.g., max_matches vs max_times distinction).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as '获取方法的调用路径' (get method call path/stack trace), which is a specific verb+resource combination. It distinguishes from siblings like 'get_stack_trace' (general stack trace) and 'search_method' (method searching) by focusing on call paths for specific methods. However, the title is null, which slightly reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_stack_trace' or 'search_method'. It doesn't mention prerequisites, typical use cases, or exclusions. The only contextual information is the parameter documentation, which doesn't constitute usage guidelines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_thread_infoA

获取指定进程的线程信息

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")。
                支持十进制和十六进制格式。
                空字符串将返回错误信息。

        Returns:
            Dict: 包含线程信息的字典,包含以下字段:
                - threads (List[Dict]): 线程信息列表
                - thread_count (int): 线程数量
                - raw_output (str): 原始输出
                - timestamp (float): 时间戳
                - success (bool): 是否成功
                - error (Optional[str]): 错误信息
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format in detail (including success/error fields and raw output), which is helpful. However, it doesn't mention potential side effects, performance characteristics, authentication requirements, or rate limits that would be important for a system-level tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections for purpose, arguments, and returns. It's appropriately sized with no wasted sentences, though the Chinese-only format might limit accessibility for some agents. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter and no output schema, the description provides complete parameter documentation and detailed return value specification. It covers the essential information needed to use the tool effectively, though additional context about when to use it versus sibling tools would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides comprehensive parameter information beyond the minimal schema. It explains that 'pid' accepts string format (including decimal and hexadecimal), clarifies that an empty string returns an error, and provides format examples. This significantly compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '获取指定进程的线程信息' (Get thread information for a specified process). It uses a specific verb ('获取' - get) and resource ('线程信息' - thread information), but doesn't explicitly differentiate from sibling tools like 'get_jvm_info' or 'get_stack_trace', which also retrieve process-related information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention sibling tools like 'get_jvm_info' or 'get_stack_trace' that might provide overlapping or complementary information, nor does it specify use cases or prerequisites beyond needing a process ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_java_processesA

列出所有Java进程

        Returns:
            List[Dict[str, str]]: 包含Java进程信息的列表,每个进程包含以下字段:
                - pid (str): 进程ID
                - name (str): 进程名称
                - args (str): 进程参数
        
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the return format (List[Dict[str, str]]) and the specific fields included (pid, name, args), which is valuable behavioral information. However, it doesn't mention potential limitations like permission requirements, refresh rates, or whether the list is real-time versus cached.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise. The first sentence states the core purpose, followed by a clear Returns section with specific field documentation. Every sentence earns its place with no wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with no output schema, the description provides excellent contextual completeness. It explains what the tool does, what it returns, and the structure of the returned data. The only minor gap is the lack of behavioral context about permissions or refresh behavior, but overall it's highly complete for this tool type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the lack of parameters. The description doesn't need to add parameter information, and it appropriately focuses on the return value instead. A baseline of 4 is appropriate for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('列出所有Java进程' - list all Java processes) and resource (Java processes). It distinguishes from sibling tools like get_jvm_info or get_jvm_status by focusing specifically on process listing rather than JVM metrics or status information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (when you need to see all Java processes) but doesn't provide explicit guidance on when to use this tool versus alternatives like get_jcmd_output or get_jvm_status. No exclusions or prerequisites are mentioned, leaving usage decisions to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_methodC

查看类的方法信息

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            class_pattern (str): 类名表达式匹配
            method_pattern (Optional[str]): 可选的方法名表达式
            show_detail (bool): 是否展示每个方法的详细信息
            use_regex (bool): 是否开启正则表达式匹配,默认为通配符匹配
            classloader_hash (Optional[str]): 指定class的ClassLoader的hashcode
            classloader_class (Optional[str]): 指定执行表达式的ClassLoader的class name
            max_matches (str): 匹配类的最大数量,使用字符串形式(如:"100")

        Returns:
            Dict: 包含方法信息的字典(暂未实现)
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
class_patternNo
method_patternNo
show_detailNo
use_regexNo
classloader_hashNo
classloader_classNo
max_matchesNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the tool returns a dictionary of method information, it adds '暂未实现' (not yet implemented), creating uncertainty about actual functionality. It doesn't describe permissions needed, whether this is a read-only operation, potential performance impacts, or error conditions for a tool that searches Java processes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The purpose statement is brief but followed by extensive parameter documentation. While all content is relevant, it could be more front-loaded with clearer usage context before diving into parameter details. The Chinese documentation is clear but could be more efficiently organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 8 parameters, no annotations, and no output schema, the description provides good parameter semantics but lacks broader context. The '暂未实现' (not yet implemented) note creates uncertainty about actual functionality. For a tool that searches Java process methods, more behavioral context about what 'search' entails and typical use cases would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides comprehensive parameter documentation with clear explanations for all 8 parameters, including format examples (e.g., '使用字符串形式(如:"12345")'), optional status, defaults, and matching behavior details. This fully compensates for the 0% schema description coverage, giving the agent sufficient understanding of each parameter's purpose and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states '查看类的方法信息' (view class method information), which provides a basic purpose but is vague about scope and specificity. It doesn't clearly distinguish this tool from sibling tools like 'get_class_info' or 'get_stack_trace_by_method', leaving ambiguity about when this particular search tool should be used versus alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. With sibling tools like 'get_class_info' and 'decompile_class' available, the description offers no context about when this search-focused tool is appropriate versus those other inspection tools. The description only lists parameters without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_logger_levelC

设置logger级别

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            name (str): logger名称
            level (str): 日志级别

        Returns:
            Dict: 设置结果的字典(暂未实现)
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
nameNo
levelNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a write operation ('设置' means set/configure) but doesn't specify whether this requires special permissions, what happens on success/failure, or any side effects. The note '暂未实现' (not yet implemented) in the returns section adds confusion about current functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with a clear purpose statement followed by structured parameter documentation. However, the returns section includes implementation notes ('暂未实现') that don't belong in a tool description and create confusion. The structure is functional but could be cleaner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write operation with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what happens after setting the level, error conditions, or behavioral constraints. The '暂未实现' note further undermines completeness by suggesting the tool may not work as described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides clear semantic meaning for all three parameters (pid as process ID, name as logger name, level as log level) with helpful examples (e.g., pid as string '12345'). With 0% schema description coverage, this fully compensates by explaining what each parameter represents, though it doesn't specify valid level values or name formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as '设置logger级别' (set logger level), which is a specific verb+resource combination. It distinguishes itself from sibling tools like get_logger_info (which reads logger info) by being a write operation. However, it doesn't explicitly differentiate from potential similar tools that might exist in other contexts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an active process), when not to use it, or how it relates to sibling tools like get_logger_info. The agent must infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watch_methodC

监控方法的调用情况

        Args:
            pid (str): 进程ID,使用字符串形式(如:"12345")
            class_pattern (str): 类名表达式匹配
            method_pattern (str): 方法名表达式匹配
            watch_params (bool): 是否监控方法参数
            watch_return (bool): 是否监控方法返回值
            condition (Optional[str]): 条件表达式
            max_times (str): 最大监控次数,使用字符串形式(如:"10")

        Returns:
            Dict: 包含方法监控信息的字典(暂未实现)
        
ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
class_patternNo
method_patternNo
watch_paramsNo
watch_returnNo
conditionNo
max_timesNo10

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions monitoring method calls and what gets monitored (parameters, return values), but lacks critical behavioral details: whether this is a blocking/long-running operation, if it requires specific permissions, potential performance impacts, or how monitoring is stopped. The note '暂未实现' (not yet implemented) for returns adds uncertainty about current functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with a clear purpose statement followed by structured parameter documentation. However, it's not optimally front-loaded—the critical '暂未实现' (not yet implemented) warning about returns is buried at the end rather than highlighted upfront. The formatting with indentation is consistent but could be more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex monitoring tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It documents parameters adequately but fails to address behavioral aspects (execution model, side effects, termination), doesn't explain the monitoring output format despite the return note, and provides no error handling or prerequisite information. The '暂未实现' warning creates ambiguity about current capabilities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for 7 parameters, the description compensates well by explaining each parameter's purpose in Chinese: process ID, class pattern matching, method pattern matching, monitoring options for parameters and returns, condition expression, and maximum monitoring count. It provides format examples for pid and max_times. This adds substantial meaning beyond the bare schema, though some nuances (like pattern syntax) remain unspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as '监控方法的调用情况' (monitoring method invocation), which is a specific verb+resource combination. It distinguishes itself from siblings like 'search_method' or 'get_stack_trace_by_method' by focusing on real-time monitoring rather than searching or retrieving static information. However, it doesn't explicitly contrast with these alternatives in the description text itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'search_method' or 'get_stack_trace_by_method'. It doesn't mention prerequisites (e.g., needing a running Java process), appropriate contexts, or exclusions. The agent must infer usage from the purpose alone without explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific JVM diagnostics (e.g., get_memory_info vs. get_thread_info), but some overlap exists: get_class_info and search_method both retrieve class/method details, and get_stack_trace and get_stack_trace_by_method both handle stack traces, which could cause confusion. However, their descriptions clarify the differences.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., get_jvm_info, list_java_processes, set_logger_level). There are no deviations in naming conventions, making the set predictable and easy to parse.

Tool Count4/5

With 16 tools, the count is slightly high but reasonable for a JVM diagnostics server covering processes, memory, threads, classes, and logging. It avoids being excessive (under 25) and provides comprehensive coverage, though some tools could potentially be consolidated.

Completeness4/5

The toolset covers core JVM diagnostics well: process listing, memory, threads, class inspection, and logging. However, there are notable gaps: several tools are marked as '暂未实现' (not yet implemented), including key ones like decompile_class and get_dashboard, which limits functionality. Additionally, there's no tool for modifying JVM settings beyond logger levels.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables dynamic SSH connection to servers for real-time JVM diagnostics using Arthas, allowing operations like thread dump, heap inspection, and method watching through MCP tools.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP 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.
    26
    64
    10
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server that connects AI agents to live Java processes via Alibaba Arthas, enabling real-time diagnostics, debugging, and performance analysis without code changes.
    25
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xzq-xu/jvm-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server