Skip to main content
Glama

Scan Dependency

scan_dependency
Read-onlyIdempotent

Composite "should I add this npm package to my project" check in ONE call — fans out across deps.dev (license + advisories + version history) and bundlephobia (gzipped/minified bundle size, dependency count, ESM/tree-shake support). Use whenever an agent asks "is X safe / popular / small" or "what does adding lodash cost me". Returns a summary block (is_latest, license, published_at, advisory_count, bundle_kb_min, bundle_kb_gz, dependency_count, has_esm, tree_shakeable), per-advisory detail, links, and a list of recent alternative versions. NPM ecosystem only in v1; PyPI / Maven / Cargo / Go fall under deps.dev:version directly. Partial failures degrade gracefully — bundlephobia's first measurement on a new version can take 5-30s; sources_failed will list it if it times out, the rest still returns.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
packageYesnpm package name. Scoped packages (e.g. "@types/node") are accepted.
versionNoSpecific version to check (e.g., "18.3.1"). Defaults to the latest published version when omitted.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description goes beyond by disclosing: 'Partial failures degrade gracefully — bundlephobia's first measurement on a new version can take 5-30s; sources_failed will list it if it times out, the rest still returns.' This is valuable behavioral context not captured in annotations.

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 well-structured with a clear purpose statement first, followed by details. It is moderately long but each sentence adds value (usage, scope, return fields, caveats). Slightly verbose but not wasteful. Front-loaded with key purpose.

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 is remarkably complete. It enumerates the return block fields (is_latest, license, advisory_count, bundle sizes, etc.), mentions per-advisory details, links, and alternative versions. It also covers limitations (NPM only, partial failures, timing). This compensates for the missing output schema.

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 the schema already documents both parameters (package, version) clearly. The description adds minimal additional meaning for the parameters themselves, mostly focusing on the composite nature and return fields. Baseline 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 the composite nature of the tool, combining deps.dev and bundlephobia, and explicitly frames it as answering 'should I add this npm package'. It distinguishes from siblings by focusing on npm dependency scanning (NPM ecosystem only), which contrasts with related tools like check_url_safety or deep_research.

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 usage advice: 'Use whenever an agent asks "is X safe / popular / small" or "what does adding lodash cost me".' Also provides clear exclusion guidelines: 'NPM ecosystem only in v1; PyPI / Maven / Cargo / Go fall under deps.dev:version directly.' This helps the agent decide when to use this tool versus alternatives.

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

A3.6/5.0
Disambiguation2/5

The set contains multiple near-duplicate tools: ask_pipeworx, ask_pipeworx_beta, and ask_pipeworx_grounded overlap heavily (beta is explicitly identical right now), and discover_tools vs suggest_questions both serve a 'what can I do' purpose. The server name 'Outlook Mail' also misleads since only 5 of 36 tools are email-related, creating domain confusion.

Naming Consistency4/5

Most tools follow a readable snake_case verb_noun or prefixed pattern (outlook_list_messages, polymarket_edges, ask_pipeworx). Minor deviations like ai_visibility_check (instead of check_ai_visibility) and pipeworx_feedback/pipeworx_trending (noun-first) are present but don't seriously obscure meaning.

Tool Count2/5

36 tools is well beyond a typical well-scoped set, and the vast majority belong to unrelated Pipeworx/Polymarket domains while the server claims to be Outlook Mail. The count is padded by redundant variants (ask_pipeworx_beta, multiple polymarket scanning tools) that could be consolidated.

Completeness2/5

For the stated Outlook Mail purpose, the surface is read-only: you can list, search, and get messages/profile/folders, but there is no send, reply, delete, move, or mark-as-read capability—an obvious dead end for email workflows. The broader data-research side is more extensive but still lacks update paths for subscriptions/memories.