MCP server that returns the README.md for any npm package (GitHub first, npm fallback).
Single tool 'readme' has a clear verb-noun name and acceptable description (67 chars). Input schema is properly defined with Zod types and descriptions for both parameters. However, output schema is undocumented, the tool returns text content but LLMs cannot see the structured response format. Parameter descriptions are adequate but lack format constraints (e.g., semver format for version). Error handling returns generic error strings without recovery guidance. No tool annotations present.
Get the README for an npm package.
Output schema not documented. Tool returns text content but LLMs cannot infer the response structure (content array with text type). This violates pattern:tool which requires documented return types.
Version parameter lacks format constraint. Description says 'Semver' but does not specify valid format (e.g., '1.2.3', 'latest', '^1.0.0'). LLMs may pass invalid semver strings.
Error messages are generic strings without recovery guidance. E.g., 'registry HTTP 404' does not tell the LLM what to do next (try a different package name? check spelling?). Violates pattern:recovery-guide.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tool is read-only and idempotent but these hints are not declared, limiting client optimization.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Package name parameter accepts free-form string with no validation. LLMs may pass invalid npm package names (spaces, special chars). Should validate early and return actionable error.