Skip to main content
Glama

get_jcmd_output

Execute jcmd subcommands to monitor and diagnose Java processes by providing process ID and optional subcommand parameters.

Instructions

执行 jcmd 子命令

Args: pid (str): 进程ID,使用字符串形式(如:"12345") subcommand (Optional[str]): jcmd子命令,如果不指定则执行help命令 Returns: Dict: 包含jcmd执行结果的字典,包含以下字段: - raw_output (str): 原始输出 - timestamp (float): 时间戳 - success (bool): 是否成功 - error (Optional[str]): 错误信息

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pidNo
subcommandNo

Implementation Reference

  • The handler function for the 'get_jcmd_output' MCP tool. Includes registration via @self.mcp.tool() decorator, input validation, and execution logic delegating to JcmdCommand.
    @self.mcp.tool() def get_jcmd_output(pid: str = "", subcommand: Optional[str] = None) -> Dict: """执行 jcmd 子命令 Args: pid (str): 进程ID,使用字符串形式(如:"12345") subcommand (Optional[str]): jcmd子命令,如果不指定则执行help命令 Returns: Dict: 包含jcmd执行结果的字典,包含以下字段: - raw_output (str): 原始输出 - timestamp (float): 时间戳 - success (bool): 是否成功 - error (Optional[str]): 错误信息 """ try: validated_pid = self._validate_and_convert_id(pid if pid else None, "process ID") if validated_pid is None: return { "raw_output": "", "timestamp": time.time(), "success": False, "error": "Invalid process ID" } except ValueError as e: return { "raw_output": "", "timestamp": time.time(), "success": False, "error": str(e) } cmd = JcmdCommand(self.executor, JcmdFormatter()) result = cmd.execute(str(validated_pid), subcommand=subcommand) return { "raw_output": result.get('output', ''), "timestamp": time.time(), "success": result.get('success', False), "error": result.get('error') }
  • Helper class JcmdCommand that constructs the jcmd shell command for a given PID and subcommand.
    class JcmdCommand(BaseCommand): """Jcmd命令实现""" def __init__(self, executor, formatter): super().__init__(executor, formatter) self.timeout = 30 def get_command(self, pid: str, subcommand: Optional[str] = None, *args, **kwargs) -> str: if subcommand: return f'jcmd {pid} {subcommand}' else: return f'jcmd {pid}'
  • Helper class JcmdFormatter that formats the output of jcmd command execution into a dictionary.
    class JcmdFormatter(OutputFormatter): """Jcmd输出格式化器(仅文本输出)""" def format(self, result: CommandResult) -> Dict[str, Any]: if not result.success: return { "success": False, "error": result.error, "timestamp": result.timestamp.isoformat() } return { "success": True, "output": result.output, "execution_time": result.execution_time, "timestamp": result.timestamp.isoformat() }

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