Skip to main content
Glama
kengrary

JVMind MAT Heap Dump Analyzer

mat_oql

Run OQL queries on Java heap dump reports to inspect objects and string data, returning result rows plus a reusable resultSetId for further analysis.

Instructions

Run an OQL query against the heap (slow!). Returns rows + a reusable resultSetId. Examples: "SELECT * FROM com.example.Foo s", "SELECT s.id.toString() FROM java.lang.String s". OQL can read arbitrary strings from the heap; handle results as private data. / 执行 OQL 查询(较慢)。返回行和可复用的 resultSetId。示例:SELECT * FROM com.example.Foo s。OQL 可读取堆内任意字符串,注意隐私。

Input Schema

NameRequiredDescriptionDefault
qYes
sortNoshallow
viewNolist
limitNo
report_idYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses the performance cost, the reusable resultSetId, and the security-relevant fact that OQL can read arbitrary heap strings (treat results as private). It stops short of stating read-only semantics, timeout behavior, or how limit interacts with execution cost.

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 lead sentence is well front-loaded with the operation and the 'slow' warning. However, the entire content is repeated verbatim in Chinese, roughly doubling length without adding information for most readers.

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?

An output schema exists, so return values are covered, and the description covers purpose, cost, and privacy. For a 5-parameter query tool with zero schema descriptions and no annotations, the missing explanation of limit/sort/view and of report_id binding leaves real gaps.

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

Parameters2/5

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

Schema coverage is 0% — parameters are bare titles only. The description gives concrete query-string examples for 'q', which is genuinely useful, but says nothing about report_id, sort, view, or limit, leaving four of five parameters undocumented anywhere.

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?

States a specific verb and resource ('Run an OQL query against the heap') and adds the key outputs (rows + resultSetId). It is clearly distinct from siblings like mat_histogram or mat_dominator, though it never explicitly contrasts itself with them.

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 parenthetical '(slow!)' implicitly steers agents toward cheaper prebuilt tools when possible, and the privacy warning implies care. But there is no explicit when-to-use / when-not-to-use statement or named alternative.

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