Skip to main content
Glama

Get resolved dependency graph

get_dependency_graph
Read-onlyIdempotent

The fully resolved dependency graph for one exact package version, via deps.dev. Returns a flat nodes[] array plus integer-index edges[] (walk from/to to rebuild the tree). Each node carries relation (self | direct | indirect) and a direct boolean; node[0] is always the queried root (relation: self). Node order is NOT stable — look nodes up by name/relation, never by positional index. system is case-insensitive and lowercased (npm, pypi, cargo, go, maven, nuget). version is REQUIRED (a graph is resolved for one exact version).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesPackage name / id.
systemYesPackage system / ecosystem for deps.dev. Case-insensitive, lowercased server-side.
versionYesExact version to resolve (e.g. 18.2.0). Required.

TDQS

A4.5/5.0
Behavior5/5

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

The description goes beyond the annotations by detailing the return format (flat nodes[], integer-indexed edges[]), the stable root node (node[0] with relation: self), and the critical caveat that node order is NOT stable and must be looked up by name/relation. It also clarifies system case-insensitivity and the requirement for version, adding valuable behavioral context beyond the readOnly/idempotent hints.

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 two sentences, front-loaded with the purpose, then packed with essential behavioral details. Every sentence earns its place; there is no filler or redundancy. The structure efficiently communicates the return format, node/edge semantics, and important caveats without being bloated.

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 tool with no output schema, the description thoroughly explains the return structure (nodes, edges, relation, direct boolean), the root node convention, the unstable ordering, and parameter constraints. It covers all functional aspects an agent needs to invoke the tool and interpret results, making it highly complete given the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100% with each parameter already described. The description adds emphasis on version being required and system being case-insensitive, but these are largely restatements of the schema constraints. It doesn't substantially enrich parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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 clearly states it returns 'the fully resolved dependency graph for one exact package version' via deps.dev, which is a specific and unambiguous purpose. It distinguishes itself from sibling tools (downloads, versions, vulnerabilities) by focusing on the graph structure with nodes and edges.

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?

The description makes clear the tool is for resolving a dependency graph for a single exact version, and explicitly notes version is required. It doesn't provide explicit exclusions or alternatives, but the context of being a graph resolution tool is clear given the sibling tools and the emphasis on one exact version.

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.4/5.0
Disambiguation4/5

Most tools have clear, distinct purposes, but get_package and get_ecosystems_package both return package metadata and could be confused; search_ecosystems and search_packages also share a similar naming pattern though their behavior differs (exact cross-registry lookup vs fuzzy within a registry). Overall, descriptions help disambiguate.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: get_ for fetching specific data, search_ for searching. No mixed conventions or vague verbs, making the API predictable.

Tool Count5/5

10 tools is well-scoped for a package/dependency intelligence server. Each tool covers a distinct aspect (metadata, versions, dependencies, downloads, vulnerabilities, insights, search) without feeling bloated or thin.

Completeness4/5

The tool surface covers core package lookups, version listing, dependency graphs, download stats, vulnerabilities (single and batch), and security insights. Minor gaps exist, such as no direct tool for comparing packages or listing maintainer info, but these are not essential for the stated purpose.