Wraps the Greenhouse Harvest API v1 to provide MCP tools for accessing candidates, jobs, and applications from Greenhouse ATS
All 5 tools have explicit schemas with type definitions and descriptions. Naming follows verb_noun pattern (list_*, get_*). However, descriptions are minimal (10-40 chars), parameter descriptions lack actionable constraints, output schemas are undocumented, and critical security issue: _apiKey exposed as a tool parameter instead of server-side injection. No error handling guidance, no pagination metadata (total count, next_cursor), and no documentation of what fields are returned. Baseline: avg tool description should be 194 chars; these average ~25 chars.
Get a single candidate by ID from Greenhouse.
Get a single job by ID from Greenhouse.
List job applications from Greenhouse ATS.
List candidates from Greenhouse ATS.
List jobs from Greenhouse ATS.
API key exposed as tool parameter (_apiKey). Credentials must never appear in tool parameters, use server-side secret injection via environment variables or vault. Agent traces log every parameter; secrets leak into logs and prompt history.
Tool descriptions are 10-40 characters; baseline is 194 chars (p10=34, p90=392). Descriptions lack context for LLM selection: no explanation of WHEN to use each tool, WHAT it returns, or HOW it differs from similar tools. E.g., 'List candidates from Greenhouse ATS' does not explain pagination behavior, filtering options, or result structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields without knowing what the response contains. No documentation of returned fields, data types, or structure.
List tools lack pagination metadata. No documentation of whether results are capped, whether total_count or next_cursor is returned, or how to fetch subsequent pages. Large result sets risk context window exhaustion.
No error handling guidance. Tool implementation throws generic errors ('Greenhouse API error (status): text') without actionable recovery steps. LLMs cannot determine if errors are retryable, user-fixable, or fatal.