Skip to main content
Glama

load_project

Load a Java project to enable compiler-accurate code analysis; must be called before other analysis tools.

Instructions

Load a Java project for analysis. MUST be called before using other analysis tools.

USAGE: load_project(projectPath="/path/to/project") OUTPUT: Project structure summary including packages, source files, buildModel (build system, source of the structure: build-tool, static-read or convention, analysis level, modules) and warnings (present only when the load was degraded)

Supports:

  • Maven projects (pom.xml)

  • Gradle projects (settings.gradle, settings.gradle.kts, build.gradle or build.gradle.kts)

  • Bazel projects (MODULE.bazel or WORKSPACE)

  • Plain Java projects with src/ directory

WORKFLOW:

  1. Call load_project with absolute path to project root

  2. Wait for project to load (may take a few seconds for large projects)

  3. Use health_check to verify project is loaded

  4. Begin using analysis tools (search_symbols, find_references, etc.)

SYNC (strict mode): answers are always verified against the files on disk - no reload is needed after editing, adding, or deleting source files. Call load_project only on first use, when a response reports RELOAD_REQUIRED (a file the build reads changed), or to rebuild everything from scratch.

Input Schema

NameRequiredDescriptionDefault
projectPathYesAbsolute path to the project root directory containing pom.xml or build.gradle

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.3.4
  2. Removedv1.3.3
  3. First observedv1.2.0

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so thoroughly: supported project types, expected output structure, possible latency ('may take a few seconds'), degraded-load warnings, and strict-mode sync semantics ('answers are always verified against the files on disk - no reload is needed after editing...'). This is rich, non-obvious context.

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 front-loaded with the core purpose and prerequisite status, then uses clear sections (USAGE, OUTPUT, Supports, WORKFLOW, SYNC) to organize the remaining detail. Despite its length, each section serves a distinct operational need.

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

Completeness5/5

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

Given the lack of annotations and output schema, the description supplies everything an agent needs: output summary, supported project layouts, workflow order, and reload behavior. No critical context for correct invocation appears to be missing.

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?

Schema coverage is 100%, so the schema already defines projectPath as an absolute path to the project root. The description adds an example invocation and expands the supported project files beyond the schema's mention of pom.xml/build.gradle (Bazel, plain Java), which slightly enhances parameter interpretation.

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 states a specific verb and resource: 'Load a Java project for analysis.' It immediately distinguishes the tool as a prerequisite ('MUST be called before using other analysis tools'), which cleanly separates it from the many analysis siblings.

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

Usage Guidelines5/5

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

It gives explicit when-to-use instructions via the WORKFLOW section and the SYNC note, and states when not to call it ('Call load_project only on first use, when a response reports RELOAD_REQUIRED... or to rebuild everything from scratch'). It also names health_check as the verification step.

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