CafeDev
Server Details
Search free LATAM tech jobs and companies on CafeDev (no auth).
- Status
- Healthy
- Uptime
- 99.5% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clearly distinct resource and action: company lookup, job lookup, company listing, and job search. There is little chance of confusing get_company with list_companies or get_job with search_jobs.
All four tools follow a consistent snake_case verb_noun pattern: get_company, get_job, list_companies, search_jobs. The convention is predictable and easy to scan.
Four tools is reasonable for a focused job/company lookup server, though the surface is somewhat thin. It covers the core read-only workflows without extraneous tools.
The surface covers company lookup, job lookup, company listing, and job search, which is solid for a read-only job board API. Minor gaps remain, such as listing all jobs for a given company or richer filtering, but agents can mostly work around them.
Available Tools
4 toolsget_companyGet a CafeDev companyARead-onlyInspect
Get company details and its number of open jobs by slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds one useful behavioral detail beyond that — the response also includes an open-jobs count — but says nothing about auth requirements, error behavior for unknown slugs, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that delivers the resource, the lookup key, and an important return field with zero filler. Nothing is wasted and nothing essential is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with no output schema, the description is nearly sufficient: it covers what is fetched and one salient return field, and the annotations cover safety. It is only marginally thin on slug-sourcing and miss/error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'slug' parameter; the schema only supplies a pattern, not an explanation. The description partially compensates by saying 'by slug', implying it is a company identifier, but adds no format, case, or sourcing guidance beyond what the pattern already encodes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and resource ('company details'), plus a notable return field ('number of open jobs'), so the agent knows exactly what this tool retrieves. It stops short of differentiating itself from siblings like list_companies or get_job, but the verb+resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'by slug' phrasing signals a direct single-entity lookup as opposed to the sibling list_companies or search_jobs. There is no explicit statement of when to prefer this tool, nor any prerequisite or exclusion, so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobGet a CafeDev jobBRead-onlyInspect
Get the full details of an open job by its CafeDev ID, including up to 3 related open jobs for a similar role.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds one genuinely non-obvious behavior — that the response bundles up to 3 similar open jobs — but says nothing about error/not-found behavior or what happens for closed or expired jobs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the retrieval key and return contents front-loaded; no filler or redundancy. It is perhaps a touch terse for a tool whose return shape is undocumented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must sketch the return value; it does so only loosely ('full details', 'up to 3 related open jobs') without naming fields or format. Adequate for selecting the tool, thin for interpreting its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 0%, so the description is the sole source of meaning. It clarifies the ID is a CafeDev-specific job identifier, but adds no format, length (maxLength 64), or example beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (job) with the identifying key (CafeDev ID) and even previews the payload ('full details ... including up to 3 related open jobs'). It is clearly distinguishable from list_companies/search_jobs in intent, though it never explicitly names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent must already hold a specific job ID to call this, and the 'open job' qualifier hints that only open postings are retrievable. No alternatives (e.g. search_jobs) or when-not-to-use conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_companiesList CafeDev companiesBRead-onlyInspect
List companies that currently have open jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered by structured data. The description adds one real behavioral fact beyond that: the result set is filtered to companies with open jobs, which affects what the caller will receive. It says nothing about pagination behavior or result ordering despite the tool having page/limit controls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no filler, with the filtering constraint front-loaded. Every word earns its place and there is no redundancy with the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with annotations covering the safety profile and no output schema, the description is close to sufficient: the resource and its filter are clear. The only meaningful gap is pagination semantics, which matter given the tool returns a capped, paged list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description never mentions the page or limit parameters, their defaults (1 and 10), the limit cap of 20, or that results are paginated. With two undocumented parameters and no compensating text, an agent learns nothing about controlling result volume from the definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (List) and resource (companies) with a meaningful scope qualifier — only companies that currently have open jobs. This cleanly separates it from get_company (single company lookup), but it does not explicitly position itself against search_jobs or get_job, which it could reasonably be confused with when an agent wants job-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope phrase 'currently have open jobs' implicitly tells an agent when this is appropriate (discovering employers with active postings), but there is no explicit when-to-use versus when-not-to-use guidance and no named alternative among the siblings. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsSearch CafeDev jobsBRead-onlyInspect
Search open technology jobs. Omit query to list the newest jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered by structured data. The description adds the behavioral fact that an empty query falls back to a newest-jobs listing, which is genuinely useful, but says nothing about pagination behavior, result caps, or freshness of the 'open jobs' data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler, and the core action is front-loaded ahead of the optional-parameter nuance. Nothing here needs to be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated search tool with three undocumented parameters and no output schema, the description is thin but not misleading: it covers the primary action and the zero-argument case. It leaves the agent without guidance on pagination or result volume, which matters for a search endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden for all three parameters, yet it only addresses 'query' (and only by omission behavior). The 'page' and 'limit' parameters, including their defaults and the limit maximum of 20, are left entirely unexplained in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Search open technology jobs'), so an agent knows exactly what the tool returns. It does not name or contrast the sibling retrieval tools (get_job, get_company, list_companies), but the search-vs-fetch distinction is reasonably self-evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies one useful usage rule: omitting the query lists the newest jobs, which tells the agent the parameter is optional and what the fallback behavior is. There is no guidance on when to prefer this over get_job or list_companies, and no note on typical search intent, so usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_company - First observed
get_job - First observed
list_companies - First observed
search_jobs
Related MCP Connectors
Recruiter-scoped search across Latin America's largest tech talent pool. OAuth-authenticated.
Pre-vetted senior LATAM engineers for US startups: hiring leads, open roles, applications.
Search remote jobs from company career pages by title, location, seniority, salary, and tech stack.
Search developer jobs read straight from employers' hiring systems: stack, level, remote, salary.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables real-time job search across thousands of companies' open roles from Greenhouse, Lever, Ashby, and SmartRecruiters, with full-text filtering and company-specific queries, no API key required.2MIT
- AlicenseAqualityCmaintenanceEnables AI agents to search and triage LATAM tech job vacancies from the Get on Board public API, with tools for full-text search, filtering by category or company, and optional job detail retrieval.5MIT
- AlicenseAqualityCmaintenanceLive tech-hiring intelligence for AI agents. Search 130K+ open jobs collected daily from ~500 tech companies' own career sites â plus company hiring profiles, tech stacks, salary benchmarks, and skill trends. Five tools work with no account.31207 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables conversational job search on Computrabajo, including reading full job postings, viewing your CV, and applying to jobs with explicit confirmation.22 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.