Skip to main content
Glama

get_project_dependencies

Retrieve a project's dependency graph and filter runtime versus build dependencies by project or workspace path to analyze architecture and impact.

Instructions

Project dependency graph with runtime vs build filtering.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_project_dependencies"
  }
}

Input Schema

NameRequiredDescriptionDefault
typeNoType: 'all', 'runtime', or 'build'. Default: 'all'.all
limitNoMax results (default: 50).
projectFilterNoOptional project name filter.
workspacePathNoOptional workspace root path.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.80.5

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations supplied, the description carries the full disclosure burden but says nothing about safety, side effects, permissions, or whether the workspace must be indexed. It also leaves unclear whether the returned graph is complete or truncated by the limit, and whether results are nodes/edges or a summary.

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?

It is a single front-loaded clause with no redundant wording or filler. The economy is real, though it comes at the cost of substance rather than through disciplined editing.

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

Completeness2/5

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

For a graph-returning tool with four parameters, no annotations, and no output schema, one line is not enough: the description never explains what a 'dependency graph' contains, how limit interacts with traversal, or what the agent receives. An agent could call it, but could not predict the result shape or scope.

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 description coverage is 100%, so all four parameters are already documented with defaults and the allowed 'type' values. The phrase 'runtime vs build filtering' adds only light confirmation of the type parameter's intent and says nothing about how projectFilter or workspacePath scope the graph.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource (a project dependency graph) and one attribute (runtime vs build filtering), but it is a noun phrase with no verb, so it never states whether the tool retrieves, builds, or analyzes the graph. It loosely distinguishes the tool from siblings like get_call_chain or get_project_entry_points, but only by naming the artifact, not the operation.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of alternatives such as get_architecture_map, get_call_chain, or get_affected_tests. No prerequisites (e.g., whether the workspace must be indexed first), no exclusions, and no statement of what questions this graph answers.

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