Skip to main content
Glama

Evaluate an exact dependency change in project context

evaluate_dependency_change
Read-onlyIdempotent

CALL immediately before adding or upgrading an npm dependency. Answers "is this exact version safe to take on" from registry metadata, advisory deltas, provenance, license, and repository evidence, and returns blockers, warnings, a recommendation, and a verification plan. Example: {"dependency":"lodash","to_version":"4.17.21"}. Only dependency is required — omit to_version to evaluate the latest published version, exactly as npm install <pkg> would. to_version also accepts a dist-tag ("latest") or a SemVer range ("^4.17.0"); it resolves to one exact version, reported back in change.to_version. Everything RepoPilot can infer is inferred, and every default, repair, and resolution is listed in input_adjustments. Evaluates only; never installs or edits anything.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
intentNoOptional free text describing why you are making this change. Advisory only; it changes no verdict.
projectNoOptional, source-free facts about the project you are changing. Supplying it adds Node/peer/license compatibility and a command-level verification plan. Omit it entirely and compatibility comes back "unknown" - read that as not checked, never as no problem found. Every field is optional; anything missing is defaulted and reported in input_adjustments, never rejected. Never send source code.
dependencyYesA STRING: the npm package name on its own, with no version and no surrounding object — "lodash", "@types/node". Not {"name":...}, not {"lodash":"^4.17.0"}, not a list. The version goes in to_version, the currently installed one in from_version.
to_versionNoA STRING: the version you intend to install — an exact version ("4.18.1"), a dist-tag ("latest"), or a SemVer range ("^4.17.0"). Quote it even when it looks numeric ("19", not 19). Omit to evaluate the latest published version.
from_versionNoThe version currently installed, or omitted when adding a new dependency. Supplying it produces a before/after advisory comparison.
policy_profileNoNamed team dependency policy. Strict requires provenance and denies package install hooks. Must be spelled exactly — a near-miss spelling is rejected rather than guessed, because reading it wrong would answer under a policy you did not ask for.balanced
dependency_typeNoWhere the dependency goes, in THESE words: "runtime" for a dependencies entry, "development" for devDependencies. The manifest and CLI spellings ("dev", "devDependencies", "--save-dev", "prod") are mapped onto these and reported in input_adjustments.runtime
package_managerNoOptional. Only affects the commands and lockfile named in the verification plan. Inferred from project.lockfile_path when you send a project snapshot, and assumed to be npm otherwise.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolYes
agentYes
statusYes
schema_versionYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already carry the safety profile (readOnlyHint=true, destructiveHint=false, idempotentHint=true), and the description's 'Evaluates only; never installs or edits anything' is consistent with them, not contradictory. Beyond the annotations, it discloses valuable non-obvious behavior: the tool auto-infers inputs and 'every default, repair, and resolution is listed in input_adjustments,' and that to_version 'resolves to one exact version, reported back in change.to_version.' These are behavioral traits the annotations cannot express.

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?

Every sentence earns its place — timing, purpose, example, parameter semantics, inference behavior, safety — and the most decision-relevant info (when to call, what it answers) is front-loaded. It is a dense single paragraph rather than structured lines, and 'Evaluates only' mildly duplicates what annotations already convey, which keeps it just shy of a 5.

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 an 8-parameter tool with nested objects and enums, the description covers the essential invocation story: required field, optional fields' behavior, default resolution, inference/adjustment reporting, and the non-mutating guarantee. Output shape is covered by the output schema, so its omission is fine. The only gap is that the 'unknown means not checked' caveat for project compatibility lives in the schema's project description rather than the main description, but it is discoverable.

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 documents every parameter, setting a baseline of 3. The description adds genuine meaning on top: the npm-install parity analogy ('exactly as npm install <pkg> would'), the explicit 'Only dependency is required' framing, and the resolution behavior (dist-tags/ranges collapse to one exact version, reported in change.to_version). This goes beyond restating the schema.

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 names a specific verb (evaluate/answers), a precise resource (an npm dependency version), and the decision it supports ('is this exact version safe to take on'). It also enumerates the evidence sources (registry metadata, advisory deltas, provenance, license, repository) and the returned outputs (blockers, warnings, recommendation, verification plan), which clearly separates it from siblings like verify_dependency_change (post-change) and analyze_repo (repo-wide, not dependency-specific).

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?

Gives explicit timing context: 'CALL immediately before adding or upgrading an npm dependency,' which tells the agent exactly when in a workflow this tool belongs. It also clarifies what the tool will NOT do ('Evaluates only; never installs or edits anything'). However, it does not name sibling alternatives or state when to use check_dependency or verify_dependency_change instead, so a bit 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation3/5

The set separates into repo-orientation, dependency-checking, and change-risk workflows, but there is real overlap: analyze_repo/get_artifact/plan_repo_task all provide orientation and reading order, and check_dependency vs. evaluate_dependency_change both fire before adding/upgrading a dependency. The descriptions help clarify intent, yet an agent could still struggle to pick the right one in unfamiliar scenarios.

Naming Consistency5/5

Every tool follows a consistent verb_noun snake_case pattern: analyze_repo, check_dependency, compare_repos, evaluate_dependency_change, get_artifact, plan_repo_task, verify_dependency_change. The verbs are descriptive and the pattern makes the lifecycle stages predictable and easy to navigate.

Tool Count5/5

Eight tools is well within the ideal range for a server focused on repository and dependency due diligence. Each tool addresses a distinct phase of the workflow—orientation, planning, risk scoring, comparison, evaluation, and verification—without bloating the surface.

Completeness4/5

The server covers the core lifecycle well: understanding a repo, planning work, assessing change risk, evaluating dependencies, comparing options, and verifying updates. Minor gaps exist, such as no tool for auditing an entire dependency tree or comparing more than two candidates, but these are workable limitations rather than fatal omissions.

Resources