Skip to main content
Glama

pio_deps_check

Audit library dependencies to identify name collisions, unpinned specs, missing or leftover libraries, and circular dependencies, with actionable fixes.

Instructions

Audit the project's library dependencies before they bite: compares lib_deps against what is installed in .pio/libdeps/, lib/, and lib_extra_dirs, and reports name collisions (two libraries with the same name, where lib_deps order silently decides which one wins), unpinned specs, declared-but-missing and leftover libraries, and circular dependencies between manifests. build=true also runs pio run and returns the LDF dependency graph as a tree, flagging a RecursionError as a cycle. Each issue carries a severity, message, and a concrete fix.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
envNo
buildNo
project_dirNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.0

TDQS

A4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers thoroughly. It discloses exact comparison locations, the side effect of build=true running pio run, the LDF tree output, the RecursionError interpretation, and the per-issue structure (severity, message, fix). This leaves little room for surprise.

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?

The description is dense and front-loaded with the core purpose, and every clause adds a concrete behavior or output detail. The only minor rhetorical extra is 'before they bite,' but the length is justified given the tool's complexity.

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?

The description covers the core audit behavior, the build-mode side effect, and the output format sufficiently, with the output schema handling return-value details. Gaps remain around project_dir semantics and when to choose this over sibling tools, but the overall context is strong.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only explains build=true and implies env's role in the .pio/libdeps/<env> path, but it never documents project_dir or the accepted format/defaults for env. project_dir is entirely absent from the description.

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 states a specific verb ('Audit') and resource ('the project's library dependencies'), then enumerates concrete checks: name collisions, unpinned specs, missing/leftover libraries, and circular dependencies. This level of specificity clearly distinguishes it from sibling tools like pio_pkg_list or pio_check.

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

Usage Guidelines3/5

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

The description offers contextual guidance ('before they bite') and implies this is used to proactively audit dependencies before building. However, it never explicitly says when to prefer this tool over related siblings like pio_pkg_list, pio_pkg_outdated, or pio_check, nor does it state when not to use it.

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