Nationale Vacaturebank Jobs
Server Details
Search and retrieve job postings on Nationale Vacaturebank, the largest Dutch jobs site (read-only).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 2 of 2 tools scored.
The two tools have clearly distinct purposes: search_jobs for querying listings and get_job for retrieving details by ID. There is no overlap or ambiguity.
Both tools follow the consistent verb_noun pattern with snake_case (search_jobs, get_job), making them predictable and easy to understand.
While only two tools exist, they adequately cover the core read operations for a job search API. A few more tools (e.g., filtering options) might be expected, but the count is reasonable for a focused service.
The tool surface is complete for a read-only job search service: search with multiple criteria and detailed retrieval. No obvious gaps are present given the domain.
Available Tools
2 toolsget_jobGet jobARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric or UUID job identifier. Get this from search_jobs results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| title | Yes | |
| salary | Yes | |
| company | Yes | |
| location | Yes | |
| categories | Yes | |
| industries | Yes | |
| careerLevel | Yes | |
| description | Yes | |
| contractType | Yes | |
| customFields | Yes | |
| requirements | Yes | |
| workingHours | Yes | |
| workingPlace | Yes | |
| educationLevel | Yes | |
| publishingDate | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: 'Returns an error result if the id is unknown.' Annotations already indicate read-only, idempotent, non-destructive; description complements with error behavior.
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 sentences, front-loaded with purpose, no wasted words. Efficient and clear.
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?
Given output schema exists, description covers purpose, usage, and error behavior. Sufficient for a simple fetch tool.
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 coverage is 100% with clear description for 'id'. Tool description does not add extra parameter info beyond schema.
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?
Description clearly states 'Fetch the full details of a single job posting by id' with specific verb and resource. It distinguishes from sibling search_jobs by saying 'Use this after search_jobs.'
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?
Explicitly says when to use ('after search_jobs'). Implicitly tells when not to (no mention of listing). Mentions error behavior for unknown id, providing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsSearch jobsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page index. Combine with 'limit' for pagination. | |
| sort | No | Sort order. 'relevance' weighs the query, 'date' is freshness, 'distance' requires 'location', 'popularity' weighs view count. | relevance |
| limit | No | Number of results to return. Capped at 25 to keep responses compact; use pagination for more. | |
| query | No | Free-text keywords. Optional; if omitted, returns the most recent jobs matching the other filters. | |
| category | No | 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'. | |
| distance | No | Search radius in kilometres around the given location. Use 'city' for an exact city match or '0' for nationwide (500 km). | |
| industry | No | Filter by industry (the on-site 'Branche' filter). Multi-select. Dutch values, e.g. 'ICT', 'Gezondheidszorg/Welzijn', 'Onderwijs/Opleiding'. | |
| location | No | Dutch city, municipality, or province name. Combined with 'distance' for radius search. | |
| postedBy | No | Filter by who posted the listing. 'direct_employer_and_media_bureau' = direct employer, 'human_resource_manager' = third-party recruiter. Omit to include both. | |
| salaryMin | No | Minimum gross monthly salary in euros. Discrete steps: 0, 1500, 2500, 3500, 5000, 7000. | |
| careerLevel | No | Filter by career level. Multi-select. Dutch values: 'Geen ervaring' (no experience), 'Starter', 'Ervaren' (experienced), 'Leidinggevend' (manager), 'Senior management', 'Directie' (board). | |
| contractType | No | Filter by contract type. Multi-select. Dutch labour-market values: 'Vast' (permanent), 'Tijdelijk' (temporary), 'Freelance', 'ZZP' (self-employed), 'Stage' (internship), etc. | |
| workingPlace | No | Filter by work arrangement. 'remote' = work from home only, 'hybrid' = mixed, 'onsite' = office only. | |
| educationLevel | No | Filter by required education level. Multi-select. Use the Dutch abbreviation: 'WO' (university), 'HBO' (applied university), 'MBO' (vocational), etc. | |
| employmentType | No | Filter by hours. 'fulltime' = 33-40h/week, 'parttime' = 1-32h/week. Omit to include both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | |
| page | Yes | 1-based index of the page returned (echo of the input `page`). |
| total | Yes | Total number of matching jobs across all pages. |
| totalPages | Yes | Total number of pages available for this query at the current `limit`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. The description adds behavioral context about pagination metadata (page, totalPages, total) and the relationship to get_job. It does not disclose potential errors, rate limits, or auth needs, but the annotation coverage lowers the burden.
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?
Three sentences, front-loaded with purpose, then usage, then output structure. No wasted words. Every sentence adds value.
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?
Given the complexity (15 params, 0 required) and presence of an output schema, the description is complete. It covers purpose, usage, output fields (id, pagination), and ties to the sibling tool. The output schema handles return details.
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 coverage is 100% with detailed descriptions for all 15 parameters. The description does not add significant meaning beyond listing filter categories (e.g., 'by role, location, salary'). Baseline 3 is appropriate.
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 clearly states 'Search the live Dutch job catalogue for openings matching the given criteria', specifying the verb (Search), resource (live Dutch job catalogue), and scope. It also distinguishes from sibling tool get_job by mentioning that results carry an id for the full record.
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?
Explicitly states when to use: 'Use this when the user wants to find jobs by role, location, salary, contract type, remote/onsite preference, or education level.' It also provides guidance on the sibling tool: 'Each result carries an `id` you can pass to `get_job` for the full record.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!