stellenonline.de Jobsuche
Server Details
Read-only search across current job listings on stellenonline.de (German job portal).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Score is being calculated.
Available Tools
3 toolscount_jobsInspect
Count how many jobs match a search without returning full results. Returns structured JSON.
Use this when the user asks "how many jobs..." (in any language), including salary-constrained counts like "how many jobs pay at least 60k?" or "how many jobs advertise a salary at all?" (use has_salary=True).
Args: q: Search keywords, e.g. "Softwareentwickler Python" location: City or region, e.g. "München", "Bodensee" working_plan: "Vollzeit", "Teilzeit", "Homeoffice", or "Minijob" job_offer_type: "Arbeitsplatz", "Ausbildung", "Praktikum", "Freiberuflich", "Werkstudent", "Trainee", "Duales-Studium" min_salary: Minimum ANNUAL gross salary in EUR (optional), e.g. 60000. Filtered server-side with the same semantics as search_jobs: monthly/hourly amounts are normalised to a yearly figure first, and salary ranges match on overlap. A job with range 30.000–45.000 € is counted at min_salary=40000 (ranges overlap). max_salary: Maximum annual gross salary in EUR (optional, same semantics). A job with range 30.000–45.000 € is NOT counted at max_salary=25000. has_salary: If True, count only jobs that advertise a salary at all (regardless of amount). If False, count only jobs WITHOUT a salary. Leave unset to ignore. Use this for "how many jobs have a salary?"; combine with min_salary/max_salary as needed.
Returns: On success: {"count": int, "filters": {"q": str|null, "location": str|null, "working_plan": str|null, "job_offer_type": str|null, "min_salary": float|null, "max_salary": float|null, "has_salary": bool|null}} On error: {"error": str}
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| location | No | ||
| has_salary | No | ||
| max_salary | No | ||
| min_salary | No | ||
| working_plan | No | ||
| job_offer_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_total_jobsInspect
Get the total number of jobs in the database (no filters). Returns structured JSON.
Returns the complete job count. Use this to check the overall index size.
Returns: On success: {"total_jobs": int} On error: {"error": str}
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jobsInspect
Search for jobs in the STON job database. Returns structured JSON.
Call this tool ONCE per user request, then present the returned jobs list
to the user in whatever format fits (markdown list, table, plain text).
Always include the apply link from the url field for each job.
If has_more is true, mention total_found and ask whether to fetch more.
NEVER call this tool multiple times in a row to collect all pages automatically.
To count results without fetching full job data, prefer count_jobs. If a
filter you need isn't on count_jobs, call this tool with rows=1 and read
total_found (the count is server-side and independent of rows).
Args: q: Search keywords (German job market — examples: "Softwareentwickler Python", "Krankenpfleger") location: City, region or area, e.g. "München", "Ravensburg", "Bodensee", "Baden-Württemberg" radius: Search radius in km around the location, e.g. 25, 50 (default: server setting) working_plan: One of: "Vollzeit", "Teilzeit", "Minijob", "Homeoffice" (comma-separated for multiple) job_offer_type: One of: "Arbeitsplatz", "Ausbildung", "Praktikum", "Freiberuflich", "Werkstudent", "Trainee", "Duales-Studium" (comma-separated for multiple) min_salary: Minimum ANNUAL gross salary in EUR (optional), e.g. 60000. Filtered server-side. Jobs advertised per month/hour are normalised to a yearly figure first, so e.g. 5000/month matches min_salary=60000. Salary ranges match on OVERLAP, not containment: a job advertised as 30.000–45.000 € IS returned at min_salary=40000 (the ranges overlap), and is NOT returned at max_salary=25000. max_salary: Maximum annual gross salary in EUR (optional, same overlap semantics) has_salary: If True, return only jobs that advertise a salary at all (any amount); if False, only jobs without one. Leave unset to ignore. sort: "relevance" (default) or "date" (newest first) page: Page number starting at 1 rows: Results per page, 1-50 (default: 25)
Returns: On success: { "total_found": int, "page": int, "rows": int, "total_pages": int, "has_more": bool, "salary_filter": null | {"min_salary": float|null, "max_salary": float|null}, "jobs": [ { "id": str, "title": str, "company_name": str, "location": str, "date": str (ISO-8601), "url": str, "salary": null | {"annual_eur": float, "monthly_eur": float, "currency": str, "min_annual_eur"?: float, "max_annual_eur"?: float, "data_quality"?: "suspect"} # implausibly high → likely a data error }, ... ] } On error: {"error": str}
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| page | No | ||
| rows | No | ||
| sort | No | ||
| radius | No | ||
| location | No | ||
| has_salary | No | ||
| max_salary | No | ||
| min_salary | No | ||
| working_plan | No | ||
| job_offer_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
count_jobs - First observed
get_total_jobs - First observed
search_jobs
Related MCP Connectors
Search public procurement notices from 17 sources across Germany, the EU and the UK. Read-only.
Search and retrieve job postings on Intermediair (read-only).
Search and retrieve job postings on Nationale Vacaturebank, the largest Dutch jobs site (read-only).
Search live job openings in many countries and languages, and read a full job ad.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to browse recent job postings from a keyless European (Germany-heavy) job board, keyword-search them client-side by title, company or tag, and fetch full HTML descriptions for individual listings, with pagination and remote-only filtering.55 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables searching for job listings on the German job portal Stepstone.de with multi-term queries, location targeting by postal code and radius, and detailed job information retrieval through session-aware follow-ups.9MIT
- FlicenseNot gradedqualityBmaintenanceEnables read-only access to Kleinanzeigen.de listings, including compact search, listing details, availability checks, and route calculations with optional distance and driving information.-
- AlicenseNot gradedqualityDmaintenanceVerified job search: every listing is opened and confirmed live and accepting applicants within the last 72 hours, and re-verified on a rolling clock, so agents can recommend jobs without ghost-job or dead-link risk. Read-only, no auth.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.