package-intel-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool targets a distinct aspect of package intelligence: snapshot (overview), vulns (security), deps (dependencies), and downloads (popularity). No two tools overlap in purpose.
Naming Consistency5/5All tools follow a consistent package_<topic> pattern with lowercase snake_case. The naming is predictable and uniform across the set.
Tool Count5/5Four tools is well-scoped for a package intelligence server, covering the core facets without unnecessary bloat. Each tool earns its place.
Completeness5/5The four tools provide comprehensive read-only coverage of package metadata, vulnerabilities, dependencies, and downloads, leaving no obvious gaps for the stated purpose.
Average 4.1/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 42 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
Tools from this server were used 2 times in the last 30 days.
This repository includes a glama.json configuration file.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint:true and openWorldHint:true, so the safety profile is known. The description adds 'Free, no payment required,' which is a helpful behavioral trait beyond annotations. However, it does not disclose the ecosystem-specific behavior of the 'range' parameter (e.g., PyPI returns only last-week, crates.io returns a 90-day total), leaving that to the schema. This is not a contradiction but a moderate gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core action, and contains no unnecessary filler. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no output schema and full parameter schema coverage, the description is adequate. It clearly states the core purpose, and the schema fills in the ecosystem-specific range behavior. It does not mention return format or limitations beyond what's in the schema, but neither is required for such a straightforward use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for all three parameters, including the important caveats about 'range'. The description itself adds no parameter-specific meaning beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('download counts for an npm, PyPI or crates.io package'), making the tool's functionality immediately clear. It also distinguishes itself from sibling tools like package_snapshot, package_vulns, and package_deps, which address different concerns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but offers no explicit guidance on when to use it over alternatives or when not to. The sibling names (snapshot, vulns, deps) make the comparison obvious, but the usage context is implied rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide readOnlyHint and openWorldHint, so the read-only nature is already disclosed. The description adds value by stating 'Free, no payment required,' which is a meaningful operational detail, and by listing the exact data points returned. It does not mention potential rate limits or registry availability, but given the annotation coverage, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the primary purpose, and each sentence adds distinct value: the first clarifies the tool's output, the second addresses a potential user concern (cost). No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description explicitly enumerates the return fields (version, license, description, repository, downloads, maintainers, publish date, deprecation status). Combined with the annotations (read-only, open-world) and a clear ecosystem enum in the schema, the description provides a complete and actionable picture of the tool's behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (name and ecosystem) with 100% coverage. The tool description mentions the ecosystems and examples like 'express' in the schema, but adds no additional parameter meaning beyond what the schema provides. Thus the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource ('a consolidated snapshot of an npm, PyPI or crates.io package') and the scope (a list of eight specific data points). It distinguishes itself from sibling tools like package_vulns and package_downloads by offering a general overview rather than a focused sub-topic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining a general package overview, but it does not explicitly mention when to use this tool over alternatives like package_vulns, package_deps, or package_downloads. There is no 'when to use' or 'instead of' guidance, so guidance is reasonable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and open-world hints. The description adds meaningful context: it specifies the output includes direct/transitive dependencies with versions, counts, and deprecated flags, and also notes the service is free. This goes beyond the schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the tool's purpose. It includes only essential information, with the 'Free' note being compact and useful. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately explains the return information: direct and transitive dependencies, versions, counts, and deprecated flags. It covers supported ecosystems and the optional version parameter. Minor gaps like error behavior or depth limits are not addressed, but the core is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (ecosystem, name, version) already documented including enums and examples. The description adds no additional parameter-level details beyond repeating the ecosystem types, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb 'Get' and resource 'dependency graph' for npm, PyPI, or crates.io packages. It differentiates from siblings by focusing on dependency analysis rather than snapshots, vulnerabilities, or download statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (when you need dependency graphs for supported ecosystems), but it does not explicitly name alternatives or state when not to use it. Sibling tools are not referenced, though their purposes are distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. The description adds valuable context beyond this: the data source (OSV.dev), version scoping behavior, and the note that it is free (no payment required). It does not contradict any annotations and covers the key behavioral aspects for a read-only enumeration tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, then clarifies the key behavioral nuance (version scoping), and ends with a useful cost-related note. Every sentence earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, the description covers the essential aspects: purpose, source, version behavior, and cost. It doesn't describe the return format, but with no output schema and a clear 'list' verb, this is a minor gap. The description is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all three parameters. The description adds meaningful semantics for the version parameter by explaining the difference between passing a version (scope to that version) and omitting it (see all advisories). This goes beyond the schema's minimal description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('known vulnerabilities') and explicitly specifies supported ecosystems (npm, PyPI, crates.io). It distinguishes itself from sibling tools like package_snapshot, package_deps, and package_downloads by focusing on vulnerabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool to check security vulnerabilities for a package. It explains the optional version parameter and the behavior when omitted, providing practical usage guidance. It doesn't explicitly mention alternatives or exclusions, but the purpose is so distinct that the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/adam121393/package-intel'
If you have feedback or need assistance with the MCP directory API, please join our Discord server