HostDirect hosting comparison
Server Details
Compare Dutch hosting, email and cloud packages with price dates, source links and limitations.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
The three tools represent distinct access patterns: catalogue search, single-provider retrieval by ID, and multi-provider comparison. Although search and compare both return multiple providers, their inputs and purposes are clearly separated, so an agent can select the right tool without ambiguity.
All tools follow a consistent snake_case verb_noun convention: search_providers, get_provider, compare_providers. Pluralization also tracks semantics appropriately for retrieving one versus multiple providers.
Three tools are well-scoped for a focused hosting comparison server: search the catalogue, retrieve a provider, and compare selected providers. Each tool earns its place, and there are no redundant maintenance or auxiliary tools.
The read-only lifecycle is covered: search, retrieve by ID, and compare multiple providers. Minor gaps exist around explicit category listing or richer filtering, but the core comparison workflow is complete and workable through search.
Available Tools
3 toolscompare_providersVergelijk geselecteerde aanbiedersARead-onlyIdempotentInspect
Return 2 to 6 public provider profiles together with evidence and caveats. Compare like-for-like products yourself. Does not calculate a winner, buy hosting or change data.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| providers | Yes | |
| disclosure | Yes | |
| limitations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the bar is lower; the description still adds real context by stating the result includes evidence and caveats and that no winner is computed, no hosting is purchased and no data changes. It stops short of describing behavior for unknown or duplicate IDs or whether result order follows the input order.
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 short sentences with the payload, the agent's responsibility, and the explicit non-behaviors in that order. Nothing is repeated and the exclusions are front-loaded where they matter.
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?
An output schema exists, so return structure need not be explained, and the tool takes a single required array. The description covers scope, count, and side-effect boundaries adequately; only edge-case behavior for invalid IDs is unaddressed.
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?
The schema already documents the sole parameter thoroughly (exact provider ID from search_providers, minItems 2, maxItems 6, uniqueItems, pattern). The description only restates the 2-to-6 cardinality, adding no new meaning about ID format, ordering, or partial-failure handling, so this sits at the baseline.
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 and resource ('Return 2 to 6 public provider profiles together with evidence and caveats') and scopes the output size. It does not name the sibling it differs from (get_provider returns one, search_providers finds IDs), so the agent must infer the multi-item boundary from the '2 to 6' phrasing.
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 implied by the cardinality ('2 to 6' profiles) and by the exclusion 'Does not calculate a winner', which tells the agent the ranking work is its own. There is no explicit statement of when to prefer this over get_provider or search_providers, and no note that IDs must first come from search_providers beyond what the schema says.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_providerLees aanbieder en prijsbronnenARead-onlyIdempotentInspect
Get one published provider by ID, including selected package, historical/unknown price status, location evidence and source URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Exact provider ID returned by search_providers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| providers | Yes | |
| disclosure | Yes | |
| limitations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond that — the record is limited to 'published' providers and includes price-status and location evidence — but it is silent on failure behavior, such as what happens for an unpublished or unknown ID.
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 front-loaded sentence with the verb and resource first, followed by the notable fields returned; nothing is redundant. The trailing field list is slightly dense but each item signals a distinct aspect of the payload.
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?
With an output schema present, the description need not explain return values, and annotations cover the safety semantics, so remaining gaps are small. The main omission is error/not-found behavior and any hint about when this lookup is preferable to the sibling tools.
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% and the single 'id' parameter already carries its pattern, length bounds, and the note that it comes from search_providers. The description's only added meaning is the 'published' qualifier on which IDs are valid, which is a modest but real contribution over the 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?
States a specific verb and resource ('Get one published provider by ID') and scopes the result to a single record, which contrasts implicitly with the plural listing/compare siblings. It does not name search_providers or compare_providers as alternatives, so the differentiation is left partly to inference.
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 singular 'one ... by ID' suggests a detail lookup after a search, but the description never states when to choose this over search_providers or compare_providers. No exclusions or prerequisites (e.g. what to do with an ID that isn't published) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_providersZoek hosting, e-mail en opslagARead-onlyIdempotentInspect
Search the finite public HostDirect catalogue by provider/package name and category. Returns all matches (at most the catalogue size), original price status, source dates and limitations. No ranking or live price guarantee. No pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional case-insensitive text in provider name, package or description. | |
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| providers | Yes | |
| disclosure | Yes | |
| limitations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/closed-world annotations, it discloses the key behavioral traits: results are exhaustive up to the catalogue size, there is no ranking, no live price guarantee and no pagination, and results carry original price status, source dates and limitations. That is exactly the context an agent needs before trusting the output.
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 short, front-loaded sentences with no filler. The only minor redundancy is 'finite' paired with 'at most the catalogue size', which say the same thing twice.
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?
An output schema exists so return values need not be spelled out, and the description still flags the caveats an agent should carry (no ranking, no live prices, completeness bounds). It could have noted how query and category combine, but that is a small gap.
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?
The description restates that searching is done by provider/package name and category, which the schema already conveys, and it omits the fact that the free-text query also matches the description field. With only 50% schema description coverage, it does not fully compensate, though the enum for category is self-documenting.
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 concrete verb and resource ('Search the finite public HostDirect catalogue') and scopes it to 'provider/package name and category'. That makes it distinguishable from get_provider and compare_providers by inference, but it never explicitly contrasts itself with 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 implied: you search the catalogue by name or category. There is no explicit guidance on when to prefer compare_providers or get_provider, nor on what to do when no match is found, 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
compare_providers1 field changed- changed
Output schema / properties / providers / itemsPrevious value: -{ - "additionalProperties": false, - "description": "", - "properties": { - "category": { - "description": "Service category.", - "type": "string" - }, - "description": { - "description": "Public summary.", - "type": "string" - }, - "id": { - "description": "Stable provider ID.", - "type": "string" - }, - "location": { - "additionalProperties": false, - "description": "", - "properties": { - "backup": { - "description": "Backup evidence and uncertainties.", - "type": "string" - }, - "documented": { - "description": "Primary location evidence only, not proof for all subprocessors or backups.", - "type": "boolean" - }, - "limitations": { - "description": "Limits of the location evidence.", - "type": "string" - }, - "passport": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "primary": { - "description": "Primary data location.", - "type": "string" - }, - "region": { - "description": "eu, eu-ch or unknown; Switzerland is separate from the EU.", - "type": "string" - } - }, - "required": [ - "region", - "documented", - "primary", - "backup", - "limitations", - "passport" - ], - "type": "object" - }, - "migration": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "name": { - "description": "Provider name.", - "type": "string" - }, - "package": { - "description": "Exact selected package.", - "type": "string" - }, - "price": { - "additionalProperties": false, - "description": "", - "properties": { - "checked": { - "description": "Original source review date; not export time.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "conditions": { - "description": "Displayed price conditions, including historic status.", - "type": "string" - }, - "label": { - "description": "Public displayed price.", - "type": "string" - }, - "offer": { - "additionalProperties": false, - "description": "Selected price basis only; other contract options may be explained on the profile.", - "properties": { - "billingMonths": { - "description": "Billing interval in months, not necessarily the minimum contract duration.", - "minimum": 0, - "type": "integer" - }, - "conditions": { - "description": "Scope, billing unit, assumptions and limitations.", - "type": "string" - }, - "currency": { - "description": "Currency of source amounts.", - "enum": [ - "EUR" - ], - "type": "string" - }, - "extras": { - "description": "", - "items": { - "description": "Excluded or unconfirmed additional cost.", - "type": "string" - }, - "type": "array" - }, - "introCents": { - "description": "Source monthly or usage-unit introductory amount in eurocents, before VAT conversion.", - "minimum": 0, - "type": "integer" - }, - "introMonths": { - "description": "Months at the introductory rate; zero means no introductory period.", - "minimum": 0, - "type": "integer" - }, - "kind": { - "description": "Products with different billing models are not interchangeable.", - "enum": [ - "subscription", - "usage", - "free" - ], - "type": "string" - }, - "promo": { - "description": "Whether the recorded offer is promotional.", - "type": "boolean" - }, - "promoEnd": { - "description": "Recorded promotion end date YYYY-MM-DD, or empty if not specified.", - "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$", - "type": "string" - }, - "regularCents": { - "description": "Source monthly or usage-unit renewal amount in eurocents; not a future price guarantee.", - "minimum": 0, - "type": "integer" - }, - "setupCents": { - "description": "One-time source setup fee; null means unconfirmed, not zero.", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "term": { - "description": "Contract, prepayment and renewal conditions.", - "type": "string" - }, - "vat": { - "description": "gross: VAT included; net21: exclude 21 percent VAT; assumed_gross: inclusion assumed, not confirmed.", - "enum": [ - "gross", - "net21", - "assumed_gross", - "unknown" - ], - "type": "string" - } - }, - "required": [ - "currency", - "kind", - "vat", - "introCents", - "introMonths", - "regularCents", - "billingMonths", - "setupCents", - "promo", - "promoEnd", - "term", - "conditions", - "extras" - ], - "type": [ - "object", - "null" - ] - }, - "renewalLabel": { - "description": "Public renewal description.", - "type": "string" - }, - "sources": { - "description": "Official evidence for the selected price basis.", - "items": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "type": "array" - }, - "status": { - "description": "checked: approved within validity rules; historical: last approved basis, not confirmed current; unknown: no publishable basis.", - "enum": [ - "checked", - "historical", - "unknown" - ], - "type": "string" - }, - "term": { - "description": "Contract and billing conditions.", - "type": "string" - } - }, - "required": [ - "label", - "renewalLabel", - "conditions", - "term", - "status", - "checked", - "offer", - "sources" - ], - "type": "object" - }, - "profile": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "purchase": { - "additionalProperties": false, - "description": "", - "properties": { - "affiliateAvailable": { - "description": "Profile may contain a disclosed affiliate link.", - "type": "boolean" - }, - "checkout": { - "description": "Orders and payments occur with the provider, not HostDirect.", - "type": "string" - }, - "profile": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "providerUrl": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - } - }, - "required": [ - "profile", - "providerUrl", - "affiliateAvailable", - "checkout" - ], - "type": "object" - }, - "sources": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "checked": { - "description": "Original source review date; not export time.", - "format": "date", - "type": "string" - }, - "id": { - "description": "Stable source reference.", - "type": "string" - }, - "label": { - "description": "Source title.", - "type": "string" - }, - "url": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - } - }, - "required": [ - "id", - "label", - "url", - "checked" - ], - "type": "object" - }, - "type": "array" - }, - "specifications": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "suitable": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "unsuitable": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "id", - "name", - "package", - "category", - "description", - "profile", - "price", - "location", - "suitable", - "unsuitable", - "specifications", - "migration", - "sources", - "purchase" - ], - "type": "object" -}New value: +null
- Changed
get_provider1 field changed- changed
Output schema / properties / providers / itemsPrevious value: -{ - "additionalProperties": false, - "description": "", - "properties": { - "category": { - "description": "Service category.", - "type": "string" - }, - "description": { - "description": "Public summary.", - "type": "string" - }, - "id": { - "description": "Stable provider ID.", - "type": "string" - }, - "location": { - "additionalProperties": false, - "description": "", - "properties": { - "backup": { - "description": "Backup evidence and uncertainties.", - "type": "string" - }, - "documented": { - "description": "Primary location evidence only, not proof for all subprocessors or backups.", - "type": "boolean" - }, - "limitations": { - "description": "Limits of the location evidence.", - "type": "string" - }, - "passport": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "primary": { - "description": "Primary data location.", - "type": "string" - }, - "region": { - "description": "eu, eu-ch or unknown; Switzerland is separate from the EU.", - "type": "string" - } - }, - "required": [ - "region", - "documented", - "primary", - "backup", - "limitations", - "passport" - ], - "type": "object" - }, - "migration": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "name": { - "description": "Provider name.", - "type": "string" - }, - "package": { - "description": "Exact selected package.", - "type": "string" - }, - "price": { - "additionalProperties": false, - "description": "", - "properties": { - "checked": { - "description": "Original source review date; not export time.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "conditions": { - "description": "Displayed price conditions, including historic status.", - "type": "string" - }, - "label": { - "description": "Public displayed price.", - "type": "string" - }, - "offer": { - "additionalProperties": false, - "description": "Selected price basis only; other contract options may be explained on the profile.", - "properties": { - "billingMonths": { - "description": "Billing interval in months, not necessarily the minimum contract duration.", - "minimum": 0, - "type": "integer" - }, - "conditions": { - "description": "Scope, billing unit, assumptions and limitations.", - "type": "string" - }, - "currency": { - "description": "Currency of source amounts.", - "enum": [ - "EUR" - ], - "type": "string" - }, - "extras": { - "description": "", - "items": { - "description": "Excluded or unconfirmed additional cost.", - "type": "string" - }, - "type": "array" - }, - "introCents": { - "description": "Source monthly or usage-unit introductory amount in eurocents, before VAT conversion.", - "minimum": 0, - "type": "integer" - }, - "introMonths": { - "description": "Months at the introductory rate; zero means no introductory period.", - "minimum": 0, - "type": "integer" - }, - "kind": { - "description": "Products with different billing models are not interchangeable.", - "enum": [ - "subscription", - "usage", - "free" - ], - "type": "string" - }, - "promo": { - "description": "Whether the recorded offer is promotional.", - "type": "boolean" - }, - "promoEnd": { - "description": "Recorded promotion end date YYYY-MM-DD, or empty if not specified.", - "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$", - "type": "string" - }, - "regularCents": { - "description": "Source monthly or usage-unit renewal amount in eurocents; not a future price guarantee.", - "minimum": 0, - "type": "integer" - }, - "setupCents": { - "description": "One-time source setup fee; null means unconfirmed, not zero.", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "term": { - "description": "Contract, prepayment and renewal conditions.", - "type": "string" - }, - "vat": { - "description": "gross: VAT included; net21: exclude 21 percent VAT; assumed_gross: inclusion assumed, not confirmed.", - "enum": [ - "gross", - "net21", - "assumed_gross", - "unknown" - ], - "type": "string" - } - }, - "required": [ - "currency", - "kind", - "vat", - "introCents", - "introMonths", - "regularCents", - "billingMonths", - "setupCents", - "promo", - "promoEnd", - "term", - "conditions", - "extras" - ], - "type": [ - "object", - "null" - ] - }, - "renewalLabel": { - "description": "Public renewal description.", - "type": "string" - }, - "sources": { - "description": "Official evidence for the selected price basis.", - "items": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "type": "array" - }, - "status": { - "description": "checked: approved within validity rules; historical: last approved basis, not confirmed current; unknown: no publishable basis.", - "enum": [ - "checked", - "historical", - "unknown" - ], - "type": "string" - }, - "term": { - "description": "Contract and billing conditions.", - "type": "string" - } - }, - "required": [ - "label", - "renewalLabel", - "conditions", - "term", - "status", - "checked", - "offer", - "sources" - ], - "type": "object" - }, - "profile": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "purchase": { - "additionalProperties": false, - "description": "", - "properties": { - "affiliateAvailable": { - "description": "Profile may contain a disclosed affiliate link.", - "type": "boolean" - }, - "checkout": { - "description": "Orders and payments occur with the provider, not HostDirect.", - "type": "string" - }, - "profile": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "providerUrl": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - } - }, - "required": [ - "profile", - "providerUrl", - "affiliateAvailable", - "checkout" - ], - "type": "object" - }, - "sources": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "checked": { - "description": "Original source review date; not export time.", - "format": "date", - "type": "string" - }, - "id": { - "description": "Stable source reference.", - "type": "string" - }, - "label": { - "description": "Source title.", - "type": "string" - }, - "url": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - } - }, - "required": [ - "id", - "label", - "url", - "checked" - ], - "type": "object" - }, - "type": "array" - }, - "specifications": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "suitable": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "unsuitable": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "id", - "name", - "package", - "category", - "description", - "profile", - "price", - "location", - "suitable", - "unsuitable", - "specifications", - "migration", - "sources", - "purchase" - ], - "type": "object" -}New value: +null
- Changed
search_providers1 field changed- changed
Output schema / properties / providers / itemsPrevious value: -{ - "additionalProperties": false, - "description": "", - "properties": { - "category": { - "description": "Service category.", - "type": "string" - }, - "description": { - "description": "Public summary.", - "type": "string" - }, - "id": { - "description": "Stable provider ID.", - "type": "string" - }, - "location": { - "additionalProperties": false, - "description": "", - "properties": { - "backup": { - "description": "Backup evidence and uncertainties.", - "type": "string" - }, - "documented": { - "description": "Primary location evidence only, not proof for all subprocessors or backups.", - "type": "boolean" - }, - "limitations": { - "description": "Limits of the location evidence.", - "type": "string" - }, - "passport": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "primary": { - "description": "Primary data location.", - "type": "string" - }, - "region": { - "description": "eu, eu-ch or unknown; Switzerland is separate from the EU.", - "type": "string" - } - }, - "required": [ - "region", - "documented", - "primary", - "backup", - "limitations", - "passport" - ], - "type": "object" - }, - "migration": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "name": { - "description": "Provider name.", - "type": "string" - }, - "package": { - "description": "Exact selected package.", - "type": "string" - }, - "price": { - "additionalProperties": false, - "description": "", - "properties": { - "checked": { - "description": "Original source review date; not export time.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "conditions": { - "description": "Displayed price conditions, including historic status.", - "type": "string" - }, - "label": { - "description": "Public displayed price.", - "type": "string" - }, - "offer": { - "additionalProperties": false, - "description": "Selected price basis only; other contract options may be explained on the profile.", - "properties": { - "billingMonths": { - "description": "Billing interval in months, not necessarily the minimum contract duration.", - "minimum": 0, - "type": "integer" - }, - "conditions": { - "description": "Scope, billing unit, assumptions and limitations.", - "type": "string" - }, - "currency": { - "description": "Currency of source amounts.", - "enum": [ - "EUR" - ], - "type": "string" - }, - "extras": { - "description": "", - "items": { - "description": "Excluded or unconfirmed additional cost.", - "type": "string" - }, - "type": "array" - }, - "introCents": { - "description": "Source monthly or usage-unit introductory amount in eurocents, before VAT conversion.", - "minimum": 0, - "type": "integer" - }, - "introMonths": { - "description": "Months at the introductory rate; zero means no introductory period.", - "minimum": 0, - "type": "integer" - }, - "kind": { - "description": "Products with different billing models are not interchangeable.", - "enum": [ - "subscription", - "usage", - "free" - ], - "type": "string" - }, - "promo": { - "description": "Whether the recorded offer is promotional.", - "type": "boolean" - }, - "promoEnd": { - "description": "Recorded promotion end date YYYY-MM-DD, or empty if not specified.", - "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$", - "type": "string" - }, - "regularCents": { - "description": "Source monthly or usage-unit renewal amount in eurocents; not a future price guarantee.", - "minimum": 0, - "type": "integer" - }, - "setupCents": { - "description": "One-time source setup fee; null means unconfirmed, not zero.", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "term": { - "description": "Contract, prepayment and renewal conditions.", - "type": "string" - }, - "vat": { - "description": "gross: VAT included; net21: exclude 21 percent VAT; assumed_gross: inclusion assumed, not confirmed.", - "enum": [ - "gross", - "net21", - "assumed_gross", - "unknown" - ], - "type": "string" - } - }, - "required": [ - "currency", - "kind", - "vat", - "introCents", - "introMonths", - "regularCents", - "billingMonths", - "setupCents", - "promo", - "promoEnd", - "term", - "conditions", - "extras" - ], - "type": [ - "object", - "null" - ] - }, - "renewalLabel": { - "description": "Public renewal description.", - "type": "string" - }, - "sources": { - "description": "Official evidence for the selected price basis.", - "items": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "type": "array" - }, - "status": { - "description": "checked: approved within validity rules; historical: last approved basis, not confirmed current; unknown: no publishable basis.", - "enum": [ - "checked", - "historical", - "unknown" - ], - "type": "string" - }, - "term": { - "description": "Contract and billing conditions.", - "type": "string" - } - }, - "required": [ - "label", - "renewalLabel", - "conditions", - "term", - "status", - "checked", - "offer", - "sources" - ], - "type": "object" - }, - "profile": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "purchase": { - "additionalProperties": false, - "description": "", - "properties": { - "affiliateAvailable": { - "description": "Profile may contain a disclosed affiliate link.", - "type": "boolean" - }, - "checkout": { - "description": "Orders and payments occur with the provider, not HostDirect.", - "type": "string" - }, - "profile": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - }, - "providerUrl": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - } - }, - "required": [ - "profile", - "providerUrl", - "affiliateAvailable", - "checkout" - ], - "type": "object" - }, - "sources": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "checked": { - "description": "Original source review date; not export time.", - "format": "date", - "type": "string" - }, - "id": { - "description": "Stable source reference.", - "type": "string" - }, - "label": { - "description": "Source title.", - "type": "string" - }, - "url": { - "description": "Absolute public URL.", - "format": "uri", - "type": "string" - } - }, - "required": [ - "id", - "label", - "url", - "checked" - ], - "type": "object" - }, - "type": "array" - }, - "specifications": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "suitable": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - }, - "unsuitable": { - "description": "", - "items": { - "additionalProperties": false, - "description": "", - "properties": { - "refs": { - "description": "", - "items": { - "description": "ID in this provider sources array.", - "type": "string" - }, - "type": "array" - }, - "text": { - "description": "Public editorial claim.", - "type": "string" - } - }, - "required": [ - "text", - "refs" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "id", - "name", - "package", - "category", - "description", - "profile", - "price", - "location", - "suitable", - "unsuitable", - "specifications", - "migration", - "sources", - "purchase" - ], - "type": "object" -}New value: +null
3 tool updates
- First observed
compare_providers - First observed
get_provider - First observed
search_providers
Related MCP Connectors
Verified cloud storage provider facts: prices, storage, encryption. Dated and source-cited.
Dutch supermarket deals and regular prices (Albert Heijn, Jumbo, Lidl...): where it's cheapest.
Dutch price comparison, starting with travel eSIMs: total price, delivery and price history.
Dutch energy market, open data computed nightly: cheapest contracts, market levels, offer lifecycle
Related MCP Servers
- AlicenseBqualityDmaintenanceCompare parcel and letter delivery prices across 60+ carriers in 27 European countries.1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Dutch supermarkets and drugstores, enabling product search, price comparison, promotions, shopping lists, meal planning, price alerts, and budget tracking via natural language.MIT
- AlicenseAqualityAmaintenanceAzure VM sizes and USD list prices for 1,400+ sizes in 24 regions, refreshed weekly: find the cheapest size for vCPU, memory or GPU needs, estimate monthly cost with reservations and savings plans, and track weekly price changes.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to compare prices, track budgets, and find promotional deals across major Dutch supermarkets and drugstores. It supports automated shopping list optimization, meal planning, and price history alerts for stores like Albert Heijn, Jumbo, and Kruidvat.20MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.