MCP server for the Get on Board public API — search LATAM tech jobs from Claude, Cursor or any MCP client
Solid foundation with clear naming, good descriptions, and complete input schemas. All 5 tools follow verb_noun convention (search_jobs, list_categories, get_job, etc.). Descriptions are substantive (100-200 chars), explaining WHAT and WHEN. Input schemas use Zod with proper types, min/max constraints, and defaults. However, output schemas are undocumented, responses are JSON strings without declared structure. Error handling is minimal (only get_job hints at token requirement). No tool annotations (readOnlyHint, idempotentHint). Parameter descriptions could be more prescriptive about format/constraints.
Fetch one job by id (the slug in its URL). Requires GETONBRD_API_TOKEN — without it the API returns 401; prefer search_jobs, whose results already include descriptions.
List open jobs in one category. Use list_categories for valid ids (e.g. "programming", "machine-learning-ai", "sysadmin-devops-qa").
List open jobs published by one company. The company id is its slug on getonbrd.com, e.g. "2brains" for getonbrd.com/companies/2brains.
List all job categories with their ids (paginated; there are ~6 pages by default page size).
Full-text search over Get on Board job listings (LATAM tech jobs). Returns compact job objects with salary band, remote modality, countries and application count. Search results include the job description, so no extra call is needed to triage.
Output schemas undocumented. Tools return JSON strings (jobList, compactJob) without declared structure. LLMs cannot plan downstream operations or extract fields reliably.
No tool annotations. All tools are read-only but lack readOnlyHint. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Minimal error guidance. get_job returns a text message when token is missing, but other tools (search_jobs, jobs_by_category) do not document API error scenarios or recovery steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Parameter descriptions lack prescriptive format guidance. 'Company slug' and 'Category id' do not explain valid format, length, or character restrictions. LLMs may pass invalid values.
list_categories missing per_page description. Parameter exists with constraints but no description explaining its purpose or typical values.