MCP server that provides Google Jobs search functionality via SerpAPI, supporting multi-language and flexible search parameters
Single-tool server with a well-structured schema and comprehensive parameter documentation. The search_jobs tool has a complete JSON Schema with all 9 parameters properly typed and described. Descriptions are detailed but contain example values (pattern anti-pattern). The tool name follows verb_noun convention (search_jobs). However, the description lacks clarity on when to use this tool versus alternatives, error handling is not documented, and output schema is completely missing, we cannot see what the API returns or how results are structured. No tool annotations (readOnlyHint, etc.). The server implements multi-language localization which is a nice touch but undocumented in the tool interface.
Google Jobs API search tool. Supported search parameters: 1. Basic Search: Job title or keywords 2. Location: City or region 3. Time Filter: Recently posted jobs 4. Job Type: Full-time, part-time, contract, internship 5. Salary Range: Filter by compensation 6. Geographic Range: Set search radius 7. Language: Multi-language support All parameters except 'query' are optional and can be freely combined.
Output schema not documented, source code shows no return type specification for search_jobs results. The tool description mentions 'statistics', 'position', 'company', 'salary', etc. but the actual response structure is invisible. LLMs cannot reliably extract or chain results without knowing the output schema.
Description contains example values ('software engineer', 'data analyst', 'New York', 'London', '$50K+', '10mi') which LLMs tend to reuse literally instead of adapting to context. Should use enum constraints and format descriptions instead.
No error handling or recovery guidance documented. If an API call fails (invalid query, rate limit, malformed location), there is no guidance on what the LLM should do next. Should document common failures and suggest fallback strategies.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 63 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 61 | - | v1 |
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). The tool is read-only (safe to retry), but this is not signaled to the MCP client. Should include readOnlyHint: true in tool metadata.
Pagination is supported (page parameter, 10 results per page) but there is no guidance on what happens when you exceed available pages, whether total_count is returned, or how to detect the end of results. LLMs may loop infinitely.
API key (SERP_API_KEY) is properly injected via environment variable and not exposed as a parameter, this is correct. However, there is no documentation of this pattern in the tool description or server README, which may confuse agents about how authentication works.