MCP Server Agent for Resume Analysis - analyzes resumes and matches them to job descriptions using Google's Generative AI
Resume MCP has 3 tools with basic schemas and descriptions, but significant gaps prevent production use. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization) and input schemas with type definitions. However, parameter descriptions are minimal or absent, output schemas are undocumented, and error handling is not visible. The tool names are action-oriented (analyze_, match_, rank_) but descriptions lack context on when to use each tool vs. alternatives. No evidence of pagination, result limits, or recovery guidance in error cases. Source code shows FastAPI setup but tool implementation details (resume_analyzer.py) are not provided, making it impossible to verify actual behavior, error handling, or output structure.
Analyze a resume to extract key information
Compare a resume against a job description to determine fit
Rank multiple resumes against a job description
Parameter descriptions missing or trivial. 'resume_text' and 'job_description' have minimal context; LLMs cannot infer expected format, length, or structure. No guidance on whether plain text, markdown, or structured JSON is expected.
Output schemas completely undocumented. No visibility into what analyze_resume returns (extracted fields? confidence scores?), what match_resume_to_job returns (match percentage? reasoning?), or what rank_candidates returns (ranked list? scores?). LLMs cannot plan downstream actions.
Tool descriptions too short (10-50 chars vs. 50-200 char baseline). 'Analyze a resume to extract key information' lacks context on what 'key information' means, when to call this vs. match_resume_to_job, or what the output structure is.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
No error handling guidance visible. No indication of how tools fail (invalid resume format? API timeout?), whether errors are retryable, or what the LLM should do next. Recovery patterns missing.
rank_candidates accepts array of resume objects but no pagination, limit, or result capping documented. Ranking 1000 candidates could blow context window. No guidance on max candidates or result structure.