Crates.io MCP — wraps the crates.io REST API v1 (free, no auth)
Three tools with clear verb-noun naming (search_crates, get_crate, get_versions) and solid descriptions (avg 155 chars, within 10-1024 baseline). All tools have complete input schemas with type definitions and required fields. However, output schemas are NOT documented, LLMs cannot predict return structure. Parameter descriptions are minimal (e.g., 'Crate name' lacks format/constraint guidance). No error handling guidance, no pagination documentation for search results, no per-parameter type suffixes (e.g., 'crate_name' vs 'name'). Missing tool annotations (readOnlyHint, idempotentHint). Transport unknown, cannot assess protocol readiness fully.
Get metadata for a specific crate: name, description, total downloads, newest version, repository, homepage, and categories.
List all published versions for a crate, ordered newest first. Returns version number, download count, and publish date.
Search crates.io for Rust crates by keyword. Returns name, description, total downloads, newest version, and repository URL.
Output schemas not documented. LLMs cannot predict return structure (fields, types, nesting). Agents must infer from trial-and-error.
Parameter descriptions lack format/constraint guidance. 'Crate name' does not explain case sensitivity, length limits, or valid characters. 'Number of results' lacks min/max bounds (stated as 1-100 in description but not in schema).
No error handling guidance. cratesGet() throws generic errors ('Crate not found', 'API error') without recovery hints. LLMs cannot self-correct or know whether to retry.
search_crates returns potentially large result sets without documented pagination or result limits. No 'next_cursor' or 'total' guidance in tool description. Can exhaust context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Tool annotations missing. No readOnlyHint, idempotentHint, or destructiveHint declared. LLMs cannot determine safety/retry semantics without explicit hints.