A package manager for Model Context Protocol (MCP) servers with a registry server and CLI tools for managing MCP server packages.
MCPM exposes 6 tools with basic naming and minimal descriptions. Tool names follow verb_noun convention (list, create, publish, install, uninstall, configure), which is positive. However, descriptions are extremely brief (10-50 chars), well below the 194-char baseline for production tools. Input schemas are present but lack depth: parameters have type and description, but no enums for constrained values (e.g., 'action' in configure has enum, but 'target' and 'target_ide' accept free-form strings). Output schemas are completely undocumented, no indication of what these tools return. Error handling is absent from visible code. The 'publish' and 'uninstall' tools perform destructive/sensitive operations but lack confirmation patterns or permission gates. No evidence of secret injection for registry credentials.
Configures an installed MCP package for a target IDE.
Create an MCP server package (zip) from the current directory.
Installs a package or configures a server.
Fetches and lists packages and servers from the registry.
Publish an MCP server package to the registry.
Uninstalls a package or de-configures a server.
Output schemas completely undocumented. No indication of what list, create, publish, install, uninstall, or configure return. LLMs cannot plan downstream calls or extract required fields (e.g., package_id for chaining).
Descriptions are 10-50 characters, far below 194-char baseline. 'Installs a package or configures a server' (50 chars) lacks context on when to use install vs configure, prerequisites, or side effects. Descriptions must answer WHAT, WHEN, and WHAT IT RETURNS.
Destructive operations (publish, uninstall) lack confirmation or dry-run patterns. No evidence of permission gates or audit logging. An agent could uninstall a critical package without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Parameters 'target', 'target_ide', and 'package_name' accept free-form strings with no enum constraints or validation hints. LLMs will hallucinate invalid values. No guidance on valid target names (e.g., 'windsurf', 'cursor', 'vscode').
No error handling guidance visible. If publish fails (invalid zip, duplicate version, auth error), no indication of what the LLM should do next. No recovery patterns or actionable error messages.