Server definition
- Hash
- sha256:b241b228ea39c23d9ba4089e317f471287e065bd969c3412284be305b31de2a6
- What it is
- What a remote MCP server returned when asked what it offers: 2 tools
The blob, as servednamed by its sha256
{
"instructions": "Search and retrieve job postings on Nationale Vacaturebank. Call search_jobs first to find listings; use get_job with an id from the search result to fetch full details. All listings are in Dutch.",
"tools": [
{
"description": "Fetch the full details of a single job posting by id. Use this after `search_jobs` to retrieve the complete description, requirements, salary breakdown, and company information for a listing. Returns an error result if the id is unknown.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"description": "Numeric or UUID job identifier. Get this from search_jobs results.",
"pattern": "^(\\d+|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "get_job",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"careerLevel": {
"type": "string"
},
"categories": {
"items": {
"type": "string"
},
"type": "array"
},
"company": {
"additionalProperties": false,
"properties": {
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"name": {
"type": "string"
}
},
"required": [
"name",
"description"
],
"type": "object"
},
"contractType": {
"type": "string"
},
"customFields": {
"anyOf": [
{
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"educationLevel": {
"type": "string"
},
"id": {
"type": "string"
},
"industries": {
"items": {
"type": "string"
},
"type": "array"
},
"location": {
"type": "string"
},
"publishingDate": {
"type": "string"
},
"requirements": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"salary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"title": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
},
"workingHours": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"workingPlace": {
"anyOf": [
{
"enum": [
"Werken op afstand",
"Werken op locatie",
"Hybride"
],
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"title",
"description",
"requirements",
"publishingDate",
"url",
"company",
"location",
"workingHours",
"workingPlace",
"salary",
"contractType",
"educationLevel",
"careerLevel",
"categories",
"industries",
"customFields"
],
"type": "object"
}
},
{
"description": "Search the live Dutch job catalogue for openings matching the given criteria. Use this when the user wants to find jobs by role, location, salary, contract type, remote/onsite preference, or education level. Each result carries an `id` you can pass to `get_job` for the full record. Pagination metadata (`page`, `totalPages`, `total`) is included so the client can decide whether to fetch the next page.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"careerLevel": {
"description": "Filter by career level. Multi-select. Dutch values: 'Geen ervaring' (no experience), 'Starter', 'Ervaren' (experienced), 'Leidinggevend' (manager), 'Senior management', 'Directie' (board).",
"items": {
"enum": [
"Geen ervaring",
"Starter",
"Ervaren",
"Leidinggevend",
"Senior management",
"Directie"
],
"type": "string"
},
"minItems": 1,
"type": "array"
},
"category": {
"description": "Filter by job category (the on-site 'Vakgebied' filter). Multi-select. Dutch values, e.g. 'Automatisering/Internet' (IT), 'Medisch/Zorg' (medical/care), 'Marketing/PR/Communicatie'.",
"items": {
"enum": [
"Administratief/Secretarieel",
"Automatisering/Internet",
"Beleid/Bestuur/Staf",
"Beveiliging/Defensie/Politie",
"Commercieel/Verkoop",
"Consultancy/Advies",
"Design/Creatie/Journalistiek",
"Directie/Management algemeen",
"Financieel/Accounting",
"Financiele dienstverlening",
"HR/Training/Opleiding",
"Horeca/Detailhandel",
"Inkoop/Logistiek/Transport",
"Juridisch",
"Klantenservice/Callcenter/Receptie",
"Marketing/PR/Communicatie",
"Medisch/Zorg",
"Onderwijs/Onderzoek/Wetenschap",
"Productie/Uitvoerend",
"Techniek",
"Overig"
],
"type": "string"
},
"minItems": 1,
"type": "array"
},
"contractType": {
"description": "Filter by contract type. Multi-select. Dutch labour-market values: 'Vast' (permanent), 'Tijdelijk' (temporary), 'Freelance', 'ZZP' (self-employed), 'Stage' (internship), etc.",
"items": {
"enum": [
"Bijbaan",
"Freelance",
"Interim",
"Leer-werk overeenkomst",
"Stage",
"Thuiswerk",
"Tijdelijk",
"Vakantiewerk",
"Vast",
"Vrijwilliger",
"ZZP",
"Zelfstandig/Franchise"
],
"type": "string"
},
"minItems": 1,
"type": "array"
},
"distance": {
"description": "Search radius in kilometres around the given location. Use 'city' for an exact city match or '0' for nationwide (500 km).",
"enum": [
"0",
"10",
"20",
"30",
"40",
"50",
"75",
"100",
"city"
],
"type": "string"
},
"educationLevel": {
"description": "Filter by required education level. Multi-select. Use the Dutch abbreviation: 'WO' (university), 'HBO' (applied university), 'MBO' (vocational), etc.",
"items": {
"enum": [
"Postdoctoraal",
"WO",
"HBO",
"MBO",
"VWO",
"HAVO",
"VMBO/MAVO",
"LBO",
"Lagere school"
],
"type": "string"
},
"minItems": 1,
"type": "array"
},
"employmentType": {
"description": "Filter by hours. 'fulltime' = 33-40h/week, 'parttime' = 1-32h/week. Omit to include both.",
"enum": [
"fulltime",
"parttime"
],
"type": "string"
},
"industry": {
"description": "Filter by industry (the on-site 'Branche' filter). Multi-select. Dutch values, e.g. 'ICT', 'Gezondheidszorg/Welzijn', 'Onderwijs/Opleiding'.",
"items": {
"enum": [
"Accountancy",
"Advies/Consultancy",
"Afval en milieu",
"Automotive",
"Banken/Financiële dienstverlening",
"Beveiliging/Bewaking",
"Bouw/Installatie",
"Chemie/Petrochemie",
"Detailhandel",
"Elektronica",
"Energie/Gas/Water",
"FMCG",
"Facilitaire dienstverlening",
"Farmacie",
"Gezondheidszorg/Welzijn",
"Handel/Groothandel",
"Horeca",
"ICT",
"Industrie",
"Internet",
"Juridische dienstverlening",
"Kunst/Cultuur/Entertainment",
"Landbouw/Bosbouw/Visserij",
"Makelaardij/Vastgoed",
"Maritiem",
"Media/Uitgeverijen/TV",
"Mode/Textiel/Cosmetica",
"Onderwijs/Opleiding",
"Overheid/Non-profit",
"Personen vervoer",
"Reclame/PR/Communicatie",
"Sport/Recreatie/Toerisme",
"Techniek",
"Telecom",
"Transport/Opslag/Distributie",
"Uitzend/Detachering/W&S",
"Verzekeringen/Assurantiën",
"Zakelijke dienstverlening",
"Overig"
],
"type": "string"
},
"minItems": 1,
"type": "array"
},
"limit": {
"anyOf": [
{
"const": 1,
"type": "number"
},
{
"const": 2,
"type": "number"
},
{
"const": 6,
"type": "number"
},
{
"const": 10,
"type": "number"
},
{
"const": 25,
"type": "number"
}
],
"default": 10,
"description": "Number of results to return. Capped at 25 to keep responses compact; use pagination for more."
},
"location": {
"description": "Dutch city, municipality, or province name. Combined with 'distance' for radius search.",
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"page": {
"default": 1,
"description": "1-based page index. Combine with 'limit' for pagination.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"postedBy": {
"description": "Filter by who posted the listing. 'direct_employer_and_media_bureau' = direct employer, 'human_resource_manager' = third-party recruiter. Omit to include both.",
"enum": [
"direct_employer_and_media_bureau",
"human_resource_manager"
],
"type": "string"
},
"query": {
"description": "Free-text keywords. Optional; if omitted, returns the most recent jobs matching the other filters.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"salaryMin": {
"description": "Minimum gross monthly salary in euros. Discrete steps: 0, 1500, 2500, 3500, 5000, 7000.",
"enum": [
0,
1500,
2500,
3500,
5000,
7000
],
"type": "number"
},
"sort": {
"default": "relevance",
"description": "Sort order. 'relevance' weighs the query, 'date' is freshness, 'distance' requires 'location', 'popularity' weighs view count.",
"enum": [
"relevance",
"date",
"distance",
"popularity"
],
"type": "string"
},
"workingPlace": {
"description": "Filter by work arrangement. 'remote' = work from home only, 'hybrid' = mixed, 'onsite' = office only.",
"items": {
"enum": [
"remote",
"hybrid",
"onsite"
],
"type": "string"
},
"minItems": 1,
"type": "array"
}
},
"type": "object"
},
"name": "search_jobs",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jobs": {
"items": {
"additionalProperties": false,
"properties": {
"company": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"location": {
"type": "string"
},
"publishingDate": {
"type": "string"
},
"salary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"title": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
},
"workingHours": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"title",
"company",
"location",
"salary",
"publishingDate",
"workingHours",
"description",
"url"
],
"type": "object"
},
"type": "array"
},
"page": {
"description": "1-based index of the page returned (echo of the input `page`).",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"total": {
"description": "Total number of matching jobs across all pages.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"totalPages": {
"description": "Total number of pages available for this query at the current `limit`.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"jobs",
"page",
"totalPages",
"total"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:b241b228ea39c23d9ba4089e317f471287e065bd969c3412284be305b31de2a6 | sha256sum