MCP server that parses resume text and extracts structured data with confidence scoring using OpenAI
The server defines a single tool 'parse-resume' with reasonable naming and a complete input schema. The tool description is present but generic, and parameter descriptions are adequate but lack depth. The output schema is inferred from the code (JSON-stringified parsed resume) but not explicitly documented. Error handling exists but is minimal. The implementation uses the MCP SDK correctly and defines the tool via z.string() and z.object() schemas, which are properly visible in the source code.
Parse given resume text
Output schema is undocumented. The tool returns JSON-stringified resume data, but the structure and fields of the parsed resume are not documented. LLMs cannot predict what fields will be present or plan downstream operations.
Tool description is vague ('Parse given resume text'). It does not explain WHEN to use this tool, what formats it accepts, what confidence scoring means, or what 'standardization' entails. LLMs need explicit guidance.
Parameter 'options' is weakly described as 'Optional parsing configuration' with no guidance on when each sub-option should be used. The 'confidenceThreshold' default of 0.3 is not justified. LLMs cannot reason about when to adjust these knobs.
No error handling guidance. If parsing fails (malformed resume, unsupported format), the tool does not return actionable recovery instructions. Error responses are unstructured.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Parameter 'sectionPriorities' is an unordered array of strings with no enum constraint. LLMs may pass arbitrary section names that the parser does not recognize, causing silent failures or unexpected behavior.