passwd-mcp defines 5 tools with clear naming conventions (all start with action verbs: passwd_login, list_secrets, get_secret, get_totp_code, get_current_user). All tools have descriptions and input schemas are visible with type definitions. However, several critical gaps reduce the score: (1) parameter descriptions lack depth and validation guidance; (2) output schemas are not explicitly documented; (3) error handling and recovery guidance are absent; (4) no tool annotations (readOnlyHint, idempotentHint) despite all being read-only; (5) passwd_login description relies on example values and could be clearer. The server follows basic tool definition patterns but falls short of production-grade LLM optimization.
Get the currently authenticated user's profile information.
Get secret details. Sensitive fields (password, keys, etc.) are redacted — use passwd CLI exec --inject to use credentials without exposing them.
Get the current TOTP (Time-based One-Time Password) code for a secret that has TOTP configured.
List password records from passwd.team. Supports filtering by query text and secret type.
Authenticate with passwd.team using Google OAuth. Call without redirectUrl to get the login URL, then call again with the redirect URL containing the auth code.
Output schemas are not documented. LLMs cannot predict the structure of responses and cannot chain tools effectively.
passwd_login description contains example behavior ('Call without redirectUrl to get the login URL, then call again with the redirect URL') that may cause LLMs to hallucinate these specific sequences rather than adapting to the auth flow.
Parameter descriptions lack validation guidance. 'query' in list_secrets has no length limits, format constraints, or examples. 'offset' and 'limit' lack numeric bounds (defaults and maximums).
No error recovery guidance. Descriptions do not explain what to do if authentication fails, a secret ID is invalid, or TOTP is not configured. LLMs have no guidance for recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
All tools marked as READ_ONLY but lack tool annotations (readOnlyHint). Modern MCP clients expect tool metadata in the definition, not external risk classification.
get_secret description states 'Sensitive fields (password, keys, etc.) are redacted' but does not explain what fields ARE returned, causing LLMs to guess about response structure and potentially miss available data.