Skip to main content
Glama

Search what changed in this project's dependencies

search_changes
Read-onlyIdempotent

Find what changed in your installed dependencies after your training cutoff: removed or renamed APIs, new required arguments, changed defaults. Call before editing library code or config.

Instructions

Searches what changed in this project's dependencies since your training data, for the versions it has installed: removed, renamed and moved APIs, options and config keys, new required arguments, changed defaults and behavior, file conventions. Sources are the installed versions' type declarations, every release-note item since your training data and the packages' upgrade guides; each result says which.

Call it BEFORE your first edit whenever the task touches a library's API or a config file, even for libraries you know well and even when you're sure: your training data predates these versions, and the API you remember may be gone. Also call it when a type error or warning names a package's API.

Describe what you are about to do in your own words; old names are fine and often best. Good: 'resolve alias for a module in next.config', 'middleware that redirects with cookies', 'zod error message per parse', 'tsconfig baseUrl paths aliases', 'mongoose pre save hook next'. Bad (too vague): 'config', 'errors'. Keep one topic per call; call again for another. Do not call it more than 4 times for one question.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "search_changes"
  }
}

Input Schema

NameRequiredDescriptionDefault
cwdNoProject directory containing package.json (default: the server's working directory)
limitNoResults to return (default 8)
modelNoYour own model id (e.g. claude-opus-5-5). Defaults to the model configured in the coding agent's settings.
queryYesWhat you're about to do or look up, in your own words: an API, option, config key, file or error message. Old names are fine.
cutoffNoTraining cutoff (YYYY-MM or YYYY-MM-DD) to use instead of a model id.
packageNoLimit to one npm package of this project, e.g. `next`, `zod`, `typescript` (default: all of them)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/open-world, so the description correctly spends its budget on traits annotations cannot express: the sources consulted (type declarations, every release-note item since the training cutoff, upgrade guides) and the fact that each result labels its source, plus a call-rate ceiling of 4 per question. That is real behavioral context an agent cannot get from structured fields.

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 purpose sentence, then when-to-call, then how-to-query, then constraints; no sentence is filler. The five good examples plus two bad ones are slightly longer than needed to convey the pattern, which keeps it just short of maximum efficiency.

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?

For a 6-parameter, no-output-schema read tool, everything an agent needs is present: what it returns and where the data comes from, when to invoke it, how to phrase the query, and how many times it may be called. Nothing material is left to inference.

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 baseline is 3, and the description exceeds it by teaching how to fill 'query': old names are acceptable and often best, one topic per call, with concrete good examples ('resolve alias for a module in next.config', 'mongoose pre save hook next') and anti-examples ('config', 'errors'). It adds interpretive value beyond the schema's terse field descriptions, though it does not further explain cwd/model/cutoff interplay.

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?

States a specific verb and resource ('searches what changed in this project's dependencies') and then enumerates the exact change classes it surfaces: removed/renamed/moved APIs, options, config keys, new required args, changed defaults, file conventions. The scope phrase 'this project's dependencies... the versions it has installed' implicitly separates it from package_changes and project_changes, but no sibling is named outright, so an agent must still infer the boundary.

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?

Explicit triggering conditions: call before the first edit whenever the task touches a library API or config file, even for well-known libraries, and whenever a type error names a package's API. It also gives an exclusion/budget rule ('do not call it more than 4 times for one question') and a topic-scoping rule ('keep one topic per call; call again for another'), which is unusually complete routing guidance.

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