MCP server for Random Profiles API — generate fake user profiles and companies for AI agents
Server has 5 tools with complete schemas and descriptions. Naming follows verb_noun pattern (claim_, get_). Descriptions are detailed and context-aware (avg ~180 chars), exceeding baseline of 194 chars. All parameters have type definitions and descriptions. However, output schemas are not documented, responses are inferred from code but not formally specified. Error handling is present but inconsistent: claim_api_key returns structured error responses, but other tools throw raw Error objects. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear semantic differences (claim_api_key is WRITE, others are READ_ONLY). Parameter constraints are well-specified (enums, min/max), but no guidance on pagination or result limits for get_profiles (which accepts count 1-100 but no offset/limit pattern).
Claim a free Random Profiles API key using an email address. Use this tool the FIRST time no key is configured — the key will be returned in the response and also emailed to the user as a receipt. Subsequent calls use the cached key automatically, so you only need to do this once per machine. ALWAYS ask the user for their real email before calling this — don't make one up.
Get a specific profile photo by UUID. Returns the image as JPEG. Each call consumes 1 image unit from your daily limit.
Get a single profile by UUID.
Get random fake user profiles for testing and seed data. Returns realistic profiles with 100+ fields including names, jobs, addresses, financials, network data, documents, and more.
Get a random profile photo. Returns the image as JPEG. Each call consumes 1 image unit from your daily limit.
Output schemas not documented. Code shows responses are JSON objects, but tool definitions do not specify return type structure. LLMs cannot plan downstream calls or extract fields without documented schemas.
Tool annotations missing. claim_api_key is WRITE (modifies state, caches key), but no destructiveHint or idempotentHint. get_profiles/get_profile/get_*_image are READ_ONLY but lack readOnlyHint. Agents cannot distinguish safe-to-retry from stateful operations.
Error handling inconsistent. claim_api_key returns structured error responses with isError=true and actionable text. Other tools throw raw Error objects (e.g., 'API error 401: ...'). Agents cannot reliably parse or recover from failures in get_profiles, get_profile, etc.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
get_profile description is minimal (60 chars: 'Get a single profile by UUID.'). Does not explain when to use vs get_profiles, what fields are returned, or how to chain with other tools. Baseline is 194 chars; this is 30% of expected.
No pagination or result-limiting guidance. get_profiles accepts count 1-100 but no offset/cursor. If an agent requests 100 profiles repeatedly, no mechanism to fetch next batch. Baseline pattern requires pagination for list tools.