# jopp

> Search open jobs in Switzerland and Liechtenstein and read jopp job briefs.

- name: ai.jopp/jobs
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 100/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.jopp%2Fjobs
- tools: https://api.protogrid.dev/v1/servers/ai.jopp%2Fjobs/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "jobs": {
      "type": "http",
      "url": "https://jopp.ai/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 99
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-97% +updated-8d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 100/100 (strong)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,251 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 1 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 5, about 1,251 tokens to load them all
- tool set hash: d5b268a07f2f5b078fa70480b2dea6c6
- tools last changed: 2026-10-17T22:41:29.173Z
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.jopp/jobs.svg)](https://protogrid.dev/servers/ai.jopp/jobs)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `search_jobs` changed (description, inputSchema)
  - before: Search open jobs in Switzerland and Liechtenstein by keywords and filters. Only jobs whose advert is still online are returned. Returns up to 20 jobs per page, newest first for filter-only searches; keyword searches rank by relevance, favouring recent adverts and mixing companies. Use get_job for a job's full description.
  - after: Search open jobs in Switzerland and Liechtenstein by keywords and filters. Only jobs whose advert is still online are returned. Lehrstellen are listed only with segment apprenticeships. Returns up to 20 jobs per page, newest first for filter-only searches; keyword searches rank by relevance, favouring recent adverts and mixing companies. Use get_job for a job's full description.

Full history: https://api.protogrid.dev/v1/servers/ai.jopp%2Fjobs/changes

## Remotes

- https://jopp.ai/mcp (streamable-http, auth none, reachable true, uptime30d 0.96875)

## Packages

_none_

## Tools (5)

- `fetch`: The full text of one job by its id from search, as a readable document.
- `get_job`: Full details of one job by its id from search_jobs: facts, salary, description (usually a jopp brief) and the link to the original advert.
- `list_categories`: jopp's occupation categories and their roles, for the category and role filters of search_jobs. Pass a category key to get its roles with typical job titles.
- `search`: Keyword search over open jobs in Switzerland; returns ids, titles and links. search_jobs offers filters and more fields.
- `search_jobs`: Search open jobs in Switzerland and Liechtenstein by keywords and filters. Only jobs whose advert is still online are returned. Lehrstellen are listed only with segment apprenticeships. Returns up to 20 jobs per page, newest first for filter-only searches; keyword searches rank by relevance, favouring recent adverts and mixing companies. Use get_job for a job's full description.
