This server has only 1 tool with minimal schema definition. The tool name is appropriate (verb_noun pattern: 'get_clerk_user_data'), and has a short description (44 chars), but the tool registration in app/[transport]/route.ts shows NO input schema whatsoever. The tool accepts authInfo via context (not explicit parameters), making it impossible for clients to understand what inputs are required or what format they expect. The description is too vague ('Gets data about the Clerk user that authorized this request'), it does not explain WHEN to call it, what the return structure is, or what fields the response contains. There is no documented output schema. No error handling guidance. Security: the tool relies on server-side token verification via withMcpAuth, which is correct, but the tool definition itself provides no indication of required permissions or scope.
Gets data about the Clerk user that authorized this request
No input schema defined. Tool registration passes only name and description; no JSON Schema with types or input parameter definitions are visible. Clients cannot validate inputs or understand what the tool expects.
Description is vague and too short (44 chars). Does not explain WHEN to call it (vs other user-data tools), what parameters are required, or what the return structure contains. Pattern requires 10-1024 chars with explicit WHAT/WHEN/PREREQUISITES guidance.
No output schema documented. The tool returns a content array with JSON-stringified userData, but LLMs cannot infer the fields or structure of that userData object. This violates the requirement that tools return documented structured objects with typed fields.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 40 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 14 | - | v1 |
No error handling guidance. If the user is not found, if the token is invalid, or if the Clerk API is unavailable, the tool provides no recovery hints for the LLM. Pattern requires actionable error messages that tell the agent what to do next.
Tool definition does not declare permissions or scope. Users cannot understand what privileges this tool requires (read:user, read:profile, etc.). Pattern requires explicit scope declaration.