Java Inspector
Server Quality Checklist
Latest release: v3.0.0
- Disambiguation5/5
Each tool targets a distinct resource and action: project scanning, JAR discovery, JAR inspection, class search, code search, implementation lookup, class inspection, dependency explanation, resource search, and resource reading. No two tools have overlapping purposes; even search_class and search_code differ clearly by scope (indexed classes vs. code constructs).
Naming Consistency5/5All tool names follow a consistent verb_noun pattern with descriptive verbs (scan, find, inspect, search, explain, read). The pattern is uniform across the set, making it easy to predict tool behavior from the name alone.
Tool Count5/5The 10 tools are well-scoped for a Java inspector/analyzer server, covering project-level scanning, artifact lookup, detailed inspection, and search operations. Each tool serves a distinct purpose without redundancy, and the count is ideal for the domain.
Completeness4/5The tool surface covers the full read/analyze lifecycle: scan, find, inspect, search, explain, and read. Minor gaps exist such as no explicit 'list_jar_contents' top-level tool or dependency listing shortcut, but these are accessible via inspect_jar and explain_dependency, so agents can work around them.
Average 3.3/5 across 10 of 10 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 11 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
This repository is licensed under Apache 2.0.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- 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 adds a useful nuance ('lazy class-file metadata', 'real string constants'), but it does not state whether the tool is read-only, how it resolves JARs, what mode does, how results are returned, or how limits apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with no redundancy or filler. It front-loads the core purpose and avoids repeating information already available in annotations or the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, multiple sibling tools, and no output schema or annotations, the one-sentence description is not enough for an agent to reliably select and invoke this tool. Missing pieces include selector prioritization, mode semantics, output format expectations, and practical differences from sibling search tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies the semantic intent behind the kind enum by naming methods, fields, annotations, references, and strings. Since schema coverage is 60%, the schema already documents several parameters; the description adds some meaning but does not explain the required query/kind relationship or the behavior of mode, limit, and format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Find') and a distinct resource scope: method/field declarations, annotations, references, and string constants in class-file metadata. It does not explicitly differentiate itself from siblings like search_class or inspect_jar, but the focus on multiple code-search entity kinds is reasonably distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 such as search_class, find_implementations, or inspect_jar. It also does not explain which JAR-selector parameter is preferred or what conditions would make one selector better than another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral transparency. It does not disclose whether the operation is read-only, whether it requires Maven or network access, how filtering works, or what kind of explanation is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler, but it is under-specified rather than ideally concise. It front-loads the core action but sacrifices essential operational details needed for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and only 25% schema coverage, the description is too sparse to fully support invocation. It lacks parameter selection guidance, prerequisites, output expectations, and any behavioral caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, but the description does not compensate by explaining how workspacePath, coordinates, and jarPath relate. An agent is left unsure whether to provide coordinates, a jar path, or both, and the 'toon' format value is unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run') and resource ('filtered Maven dependency tree') and clearly explains the tool's purpose: to explain why an artifact is present. This distinguishes it from sibling search/inspection tools like find_jar or search_class.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'explain why an artifact is present' implies this tool is for dependency-resolution questions, but it never explicitly states when to use it over alternatives or when not to use it. No sibling tool or exclusion condition is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It hints at behavior with 'lazy deep class metadata' but does not explain what that means in practice: filesystem access, Maven resolution, mode tradeoffs, or whether results are complete. This is too thin for a tool with no annotation safety or behavior metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and front-loads the core action and object. The only weakness is the vague 'lazy deep class metadata' phrase, which could be clearer, but overall it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 10-parameter tool with no annotations and no output schema, yet the description only covers the core purpose. It omits how selectors like jarPath, coordinates, or workspacePath interact, what mode/limit/format mean, and what an agent should expect when invoking it. The description alone is not enough to call the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, leaving mode, limit, className, and transitive undocumented. The description partially compensates by clarifying that the tool finds direct or transitive implementations/subtypes, which implicitly documents the transitive and className parameters. However, it adds nothing for mode, limit, or selector choice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Find' and a clear resource: implementations/subtypes, with direct or transitive scoping. This sets it apart from siblings like inspect_class or search_class, though the phrase 'lazy deep class metadata' is jargon that adds little clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this tool when you need implementations or subtypes of a class. However, it gives no explicit when-not guidance, alternatives, or conditions for choosing this over sibling tools like inspect_class or search_class.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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. The word 'Inspect' implies a read-only operation and the listed metadata areas give useful context, but the description does not mention whether matching multiple JARs fails or picks one, how output is returned, or any performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no filler. It front-loads the resource and verb, then efficiently enumerates the inspected contents without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's scope well, but lacks usage guidance, selector hierarchy, and return-format expectations. With no output schema and no annotations, a more complete description would help an agent decide when to invoke this versus sibling tools and how to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema for any of the nine parameters. Schema description coverage is 67%, so the schema handles most parameters, but the description does not compensate for the remaining parameters (limit, query, offset) or explain the relationships between the multiple selection methods such as jarPath, coordinates, jarDirectory, jarNamePrefix, and workspacePath.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('one JAR') and the verb ('Inspect'), and enumerates the main inspection areas: manifest, Maven coordinates, layout, packages, classes, resources, and nested JAR metadata. It is specific enough to distinguish this from broad project scanning or class-level inspection, though it does not explicitly name sibling 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/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus siblings such as find_jar, search_class, inspect_class, or read_resource. 'Inspect one JAR' implies a use case, but there are no alternative routes, exclusions, or conditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions 'bounded text resource content' hinting at some size limit but does not explain what 'bounded' means, how results are returned, or any side effects. The tool is a search operation but there is no disclosure about performance implications, caching, or exact matching semantics. The description adds minimal behavioral context beyond the action verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, front-loading the core action and scope. It is concise and avoids repetition of schema field names. However, it could briefly mention selector options to aid orientation without becoming verbose. Overall it is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters, no output schema, and no annotations. The description is too thin to convey how to select JARs (via multiple selector options) or how search semantics work. It leaves the agent guessing about required relationships between parameters, result formats beyond 'text' vs 'json' vs 'toon', and the meaning of 'bounded content'. For a complex search tool with many optional selectors, this is insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so the schema already documents several parameters (jarPath, coordinates, jarDirectory, jarNamePrefix, workspacePath, format). The description does not add much beyond restating that it searches resource paths/content. It does not clarify how pathQuery and contentQuery interact or default behaviors. With 67% coverage the baseline is 3; the description provides marginal added meaning but not enough to raise above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search resource paths or bounded text resource content in selected JARs.' It clearly distinguishes this from siblings like search_class and search_code by focusing on resource paths and content within JARs. The phrase 'in selected JARs' adds scope, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. While the description indicates it searches resources in JARs, it does not mention exclusions or conditions that would route to siblings like read_resource or inspect_jar. The schema hints at selector options but the description offers no strategic direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden of disclosing behavioral traits. It reveals that resolution can span Maven, local JARs, or the JDK, which implies potential network downloads, directory scanning, and cache writes (useCache exists in the schema), but none of these side effects are stated. The description also fails to say what happens on ambiguous resolution or what each view returns, leaving the tool's operational profile largely undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with zero waste. The core purpose is front-loaded before the view enumeration, and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no annotations and no output schema, this description is too thin to be complete. It doesn't explain what each view produces, how the three resolution sources map to specific parameters, or how the tool differs from sibling tools like search_class and inspect_jar, and it cannot rely on annotations or an output schema to fill those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 46% (6 of 13 parameters described), so the description must compensate. It does add meaning by enumerating the five values of the view selector and by aligning the phrase 'Maven, a local JAR, or the JDK' with the resolution-related parameters, which is helpful context. However, limit, offset, useCache, methodName, and paramTypes receive no added meaning from either the schema or the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb pair, 'Resolve and inspect,' and a clear resource, 'a class,' then scopes it to three concrete sources: Maven, a local JAR, or the JDK. The view list (source, API, hierarchy, bytecode, all) adds functional detail that helps separate this from sibling tools like inspect_jar or scan_project at a high level. It stops short of a 5 because it never names a sibling it is not, leaving some differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for inspecting a concrete class from a known source, which hints at when to use it rather than search_class or find_implementations. However, there is no explicit when-to-use guidance, no exclusions, and no mention of the alternative sibling tools, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does add valuable information: safe line pagination and rejection of binary resources. However, it omits other behavioral details like whether the operation is read-only, potential error cases, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the core purpose and includes two key constraints. No wasted words; highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters including multiple JAR selector options, but the description gives no context on how these selectors interact or when to use each. It does not explain the relationship between resourcePath and the JAR selection parameters, nor does it mention the output structure. An agent would be under-informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for most parameters (8 out of 9), so baseline is 3. The tool description itself adds no extra parameter meaning beyond the concept of 'exact resource' and pagination, which are already partially implied by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read'), the resource type ('exact text resource'), and a key behavioral constraint ('safe line pagination'). It is specific enough to distinguish from search-oriented siblings like search_resources, though it does not explicitly compare 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 Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as search_resources or inspect_jar. The context of when to use the various JAR selector parameters is not addressed, leaving the agent without clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and at least reveals the two-phase execution and non-blocking intent ('live partial index', 'foreground-scan only relevant JARs'). It does not disclose output behavior, freshness limits of the partial index, or any side effects, but for a search operation this is a reasonable partial disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; every phrase ('live partial index', 'foreground-scan only relevant JARs') adds distinct information. It is concise while still conveying the defining behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 10 parameters, no annotations, and no output schema, the description gives only the search mechanism and omits return format, supported class-matching behavior, and when the various JAR selectors are appropriate. An agent would still need to infer a lot of call context from parameter names alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, so the schema documents most selectors; the description adds some conceptual context with 'relevant JARs' but does not explain any specific parameter. The critical 'query' parameter lacks a schema description and the tool description does not fill that gap, leaving semantics partially inferred from the name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and object: search a live partial index and foreground-scan relevant JARs, which distinguishes it from a plain scan or code search. It relies on the tool name 'search_class' to make the object explicit, and it does not directly contrast with siblings, but the mechanism is concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without waiting for background scan completion' implies a fast-path use case, but the description never states when to choose this over scan_project, find_jar, or search_code, nor does it list exclusion conditions. Usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry behavioral transparency. It discloses that the scan is non-blocking and supports start/refresh/poll operations, but it does not explain side effects, required permissions, or how results are returned. The provided detail is helpful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The primary action is front-loaded, and the automatic-startup note adds useful context without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and low parameter coverage, the description should clarify return values or response handling. It does not, leaving the agent uncertain about what the poll operation returns or how to interpret results. However, the non-blocking nature and startup behavior give some orientation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only 'format' has a description). The tool description does not explain workspacePath or forceRefresh semantics at all, nor does it mention them. Since coverage is low, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Start, refresh, or poll') and names the exact resource ('non-blocking Maven dependency scan'). This clearly distinguishes it from sibling tools like find_jar or search_class, which all target different artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that startup automatically invokes this for highest-level pom.xml files, implying normal usage context. It does not explicitly state when to avoid using it or mention alternatives, but the context is sufficient for an agent to infer the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description must carry behavioral weight. It does disclose the key non-inspecting behavior ('without opening the JAR') and implies a read-only search operation. However, it does not describe whether the search is indexed vs. on-demand, how results are ordered, or what happens when multiple criteria are combined, leaving meaningful 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.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence that front-loads the main action and scope. Every phrase adds value, and there is no filler or repetition of schema details. This is an appropriately concise definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple search tool but does not fully cover the decision space of 8 parameters and no output schema. It does not explain when to use jarPath vs. jarDirectory vs. workspacePath, nor what the returned paths look like. Schema descriptions fill some gaps, but the description leaves several practical questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so the schema already documents most parameters. The description adds a useful semantic layer by mapping high-level matching modes (exact path, filename, prefix, substring, Maven coordinates) to the available parameters, but it does not clarify parameter interplay or the meaning of 'limit' and 'match' beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find'), a clear resource ('JAR paths'), and enumerates the search criteria (exact path, filename, prefix, substring, Maven coordinates). The phrase 'without opening the JAR' distinguishes it from inspect_jar and similar inspection tools, so an agent can tell it apart from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear sense of when to use the tool: whenever JAR paths need to be located by various matchers and the JAR's contents do not need to be opened. It does not explicitly name alternative tools or state exclusions, but the context is clear enough for most selection scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mustafagoksever/java-inspector'
If you have feedback or need assistance with the MCP directory API, please join our Discord server