Skip to main content
Glama

spring_dependency

Resolve a dependency need like "jpa" or "web" into real Spring starter coordinates via Spring Initializr, returning parsed Maven or Gradle build snippets.

Instructions

Turn a need ("jpa", "web", "oauth2 client") into real starter coordinates.

No artifact name is invented. The need is matched against Spring Initializr's own dependency catalogue, then Initializr is asked to generate the Maven pom and the Gradle build file for those ids, and those are returned — parsed coordinates plus ready-to-paste snippets. That matters: the catalogue id "web" generates spring-boot-starter-webmvc on Spring Boot 4.1, not the spring-boot-starter-web that string-building spring-boot-starter-<id> would produce.

build is "both" (default), "maven" or "gradle". boot_version pins the line (plain form, e.g. "4.1.1"); omitted uses Initializr's newest released default. max_tokens truncates the snippets.

On failure returns {"error", "suggestion"} — an unmatched need returns an error rather than a guess.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
needYes
buildNoboth
max_tokensNo
boot_versionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.4/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 well: it discloses that no artifact name is invented, that the catalogue is the source of truth, that the returned coordinates come from actually generated pom/build files rather than string concatenation, and that an unmatched need produces an error with a suggestion rather than a guess. Auth, rate limits, and network-dependence are unstated.

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?

Front-loaded with the core purpose and then layered with justification and parameter semantics; every paragraph adds real information. Slightly longer than necessary, with the bolded emphasis and parenthetical example costing some tightness but earning their place.

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?

For a 4-parameter tool with no annotations and no output schema, the description covers purpose, parameter semantics, failure shape ({"error","suggestion"}), and the nature of the return payload (parsed coordinates plus ready-to-paste snippets). The internal structure of the parsed coordinates is left unspecified, a minor gap.

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

Parameters5/5

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

Schema description coverage is 0% and titles are bare, so the description does the full job: it supplies the allowed values for `build` ("both"/"maven"/"gradle"), the exact format and default semantics for `boot_version` (plain form like "4.1.1", newest released default when omitted), what `max_tokens` truncates, and example values for `need`.

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?

States a specific transformation (a need string into real starter coordinates) and explains the mechanism: matching against Spring Initializr's catalogue and generating the Maven/Gradle file. The concrete example ("web" yielding spring-boot-starter-webmvc on Boot 4.1) makes it clearly distinguishable from spring_initializr and maven_package.

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

Usage Guidelines4/5

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

Usage context is clear: call it when you have a human-style need ("jpa", "web", "oauth2 client") and want verified coordinates. It does not explicitly name sibling alternatives (e.g. spring_initializr for whole projects) or state when not to use it, so it stops short of full routing guidance.

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