Skip to main content
Glama

analyze_project_structure

Inspect a Java/Spring project to locate build files, extract Java/Spring Boot/Spring Framework versions, list key dependencies with scopes, and surface configuration files.

Instructions

Analyze a Java/Spring project: locate pom.xml / build.gradle(.kts), extract Java, Spring Boot and Spring Framework versions, list key dependencies with versions/scopes, and surface configuration files (application.yml / application.properties).

Input Schema

NameRequiredDescriptionDefault
project_rootYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. It does reveal the concrete behavior (locate build files, extract versions, list dependencies, surface config files), which implies a read-only inspection pass, but it never states that it is non-mutating, what happens on a non-Java project, or how failures are reported.

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?

A single front-loaded sentence that leads with the verb and scope before listing outputs; every clause adds a concrete artifact. It is dense but nothing is wasted, though the run-on listing makes it slightly harder to scan than a short bulleted form.

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?

With no output schema, the description must convey return content, and it does so by enumerating exactly what is extracted. The remaining gap is input semantics (project_root) and edge-case behavior for non-Java projects, which keeps it short of full completeness.

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?

There is one required parameter, project_root, with 0% schema description coverage, and the description never mentions it. It doesn't clarify whether the value is an absolute path, a relative path, or a project directory containing the build file, leaving the only input ambiguous.

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 pairs a specific verb ("Analyze") with a specific resource ("Java/Spring project") and enumerates the exact artifacts it inspects and extracts: pom.xml/build.gradle(.kts), Java/Spring Boot/Spring Framework versions, dependencies with scopes, and config files. That level of specificity clearly separates it from search_multi_patterns and analyze_vulnerability_usage, though it never names those siblings explicitly.

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?

Usage is implied by the scope: the tool is for Java/Spring projects and is the entry point for understanding build setup. There is no explicit "use this when..." statement, no exclusion for non-Java projects, and no routing guidance to the sibling tools.

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