Denia Print
Server Details
Print shop in Spain: products, exact prices, quote requests and order status for AI assistants
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 8 tools
Most tools target clearly distinct actions: list_products/get_product/get_price form a clean browse-to-price ladder, and request_quote (new) vs message_team (existing order) is explicitly disambiguated in the descriptions. The only slight overlap is order_status vs send_status_link, which both concern an order's status page, but their outputs (status content vs mailing the link) differ enough to distinguish.
Most names follow a clean verb_noun pattern (get_price, get_product, list_products, message_team, request_quote, send_status_link). The two noun-only names (order_status, shop_info) deviate by dropping the verb prefix, a minor inconsistency but still readable and predictable.
Eight tools is well-scoped for a print-shop ordering server, with each tool earning its place across product browsing, pricing, quoting, order tracking, and support. No redundant or filler tools are present.
The surface covers the full customer lifecycle: discovery (list_products/get_product), pricing (get_price), new business (request_quote), order tracking/support (order_status, message_team, send_status_link), and FAQ (shop_info). Minor gaps exist—no direct order placement or cart/checkout tool—but the quote-driven model and workarounds make this acceptable.
Available Tools
8 toolsget_pricePriceARead-onlyInspect
The exact price of a product with the chosen options and quantity, for delivery in Spain: excl. IVA, the IVA (21 %) and the total, plus the prices of the other quantities. Options left out take the default.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | ||
| slug | Yes | ||
| express | No | Express production where the product has it. | |
| options | No | Option key -> value id, from get_product, e.g. {"papel":"mate350"}. | |
| quantity | Yes | One of the quantities of get_product, e.g. "500". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, so the bar is lower. The description adds real context beyond annotations: the delivery locale (Spain), the price breakdown it computes (excl. IVA, 21% IVA, total, prices for other quantities), and default handling for omitted options.
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?
A single front-loaded sentence that starts with what the tool returns and appends the IVA/quantity detail. Dense but every clause contributes; not bloated.
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 no output schema, the description usefully describes the returned breakdown, but leaves questions open: currency, whether IVA always applies for non-Spain contexts, and the undocumented lang/slug parameters. Adequate but not fully rounded for a 5-param 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 60%, so the schema carries most of the load (express, options, quantity are documented). The description adds one meaningful rule the schema lacks ('options left out take the default') but says nothing about lang or slug, leaving gaps in the uncovered 40%.
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+resource ('get the exact price of a product') and details the computed output (excl. IVA, IVA 21%, total, other quantities). It is clearly a price-lookup rather than a product/quote tool, though it never explicitly names or contrasts a sibling like get_product or request_quote.
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 ('with the chosen options and quantity', 'options left out take the default') but there is no explicit when-to-use statement or exclusion relative to get_product or request_quote. The routing to get_product for obtaining slugs/options lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productProduct optionsBRead-onlyInspect
The options of one product (format, paper, finish, ...), each with its id and label, the quantities, the default choice and the usual delivery time in working days.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | ||
| slug | Yes | Product id from list_products, e.g. tarjetas-de-visita or flyers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds useful context about the return contents (options, ids, labels, quantities, defaults, delivery times), which helps an agent understand the shape of the response. No additional behavioral traits like rate limits or auth are mentioned, but with annotations present, this is adequate.
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?
The description is a single sentence that front-loads the core purpose and enumerates returned data. It is efficient and waste-free, though the list of return fields could be seen as slightly verbose given the lack of an output schema.
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 no output schema, the description does a decent job of summarizing the returned data, which is necessary. However, it omits any mention of the lang parameter or when to use this tool versus siblings. For a 2-parameter tool with 50% schema coverage, more could be said about parameter semantics and usage.
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 description coverage is 50% – the slug parameter is well-documented in the schema, but the lang parameter has no description there. The description doesn't mention lang at all, missing the opportunity to clarify it. However, the description does implicitly define what the slug represents ('one product'), which slightly aids understanding.
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 the verb (get/fetch) and resource (product options), enumerating the specific data returned: format, paper, finish, ids, labels, quantities, defaults, delivery times. This is far more specific than 'Product options' alone. However, it doesn't explicitly differentiate from siblings like get_price or list_products, which is the only gap preventing a 5.
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?
There is no guidance on when to use this tool versus alternatives. The schema mentions list_products as the source of the slug, but the description doesn't state when get_product is preferred over get_price or list_products. No conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_productsList productsARead-onlyInspect
All products Denia Print prices online, with the lowest price (excl. IVA, smallest run, cheapest options) and the product page. Use get_product for the options of one.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for names and links (default en). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this is a safe read, lowering the bar. The description usefully discloses the pricing basis (lowest price, excl. IVA, smallest run, cheapest options), which is real context, but says nothing about result volume, pagination or ordering for a tool that returns 'all products'.
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 short sentences, front-loaded with the payload description and ending with the sibling routing. The first sentence is a run-on clause that takes a moment to parse, which costs it the top score.
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?
For a one-optional-param, read-only list tool with no output schema, the description adequately conveys what comes back (products, their lowest price, product pages). It does not need to explain return values further, though a note on result size would complete it.
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 description coverage is 100% and the single optional 'lang' parameter is fully documented in the schema, so the baseline of 3 applies. The description never mentions language selection, adding no meaning beyond 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?
It names the resource (all products) and the payload it returns (lowest price and the product page), and explicitly distinguishes itself from get_product ('Use get_product for the options of one'). An agent can separate the two siblings without opening either schema, despite the slightly garbled phrasing 'Denia Print prices online'.
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?
It gives an explicit alternative for one clear case: when you want the options of a single product, use get_product. It stops short of stating the broader when-to-use conditions (e.g. versus get_price or shop_info), so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message_teamMessage about an orderAInspect
Sends a question or change request about an existing order to the team (it lands in the order, the team replies by e-mail). Needs the reference and the order's e-mail address. For something new use request_quote.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| message | Yes | ||
| reference | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=true; the description adds real behavioral context beyond that — the message lands in the order thread rather than being a fire-and-forget email, the team replies by e-mail, and reference plus the order's e-mail are prerequisites. It stops short of stating whether the email must match the order owner or what happens on a mismatch.
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 compact sentences, no waste: action first, then the side effect and prerequisites, then the sibling routing. Front-loaded and readable.
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?
For a non-destructive write with three required params and no output schema, the description covers the action, its observable effect (lands in the order, reply by e-mail), and required inputs. Minor gap: no indication of validation failures (e.g., unknown reference) or whether the reply is asynchronous.
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 0%, so the description carries the burden, and it usefully disambiguates two of three params: 'reference' is the order reference and 'email' is specifically the order's e-mail address (not an arbitrary sender). The 'message' param is left implicit, but its meaning is evident from the tool's purpose.
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 (sends) and resource (question or change request about an existing order to the team), which is unambiguous to an agent. It also names the sibling request_quote as the wrong tool for new requests, so message_team is distinguishable without opening any schema.
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?
Explicit when-to-use is given ('about an existing order') and an explicit alternative with its triggering condition ('For something new use request_quote'). The agent has both the positive and the exclusionary routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
order_statusWhere is my order?ARead-onlyInspect
The status of an existing order or quote request: progress, expected delivery or pickup, tracking, the proof. Needs the reference (DP-..., in the confirmation e-mail) and the e-mail address (or phone) the order was placed with.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The e-mail address (or phone number) of the order. | ||
| reference | Yes | e.g. DP-261002-ABCD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered; the description adds meaningful context beyond that by disclosing the identity/verification requirement (reference plus the e-mail or phone the order was placed with). It stops short of describing failure behavior or rate limits.
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 the resource and returned data, then the prerequisites. Minor bloat in the trailing list ('the proof') but no wasted sentences.
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 no output schema, the description usefully enumerates the returned fields and states both required inputs, making it adequate for this simple read-only lookup. It could still note error/not-found behavior, but nothing essential is missing.
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 both parameters are documented, so the schema carries the load. The description adds only marginal value — where to find the reference (confirmation e-mail) — which is a small hint beyond the 'DP-261002-ABCD' example already in 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+resource ('status of an existing order or quote request') and enumerates what is returned: progress, expected delivery/pickup, tracking, proof. This clearly separates it from siblings like send_status_link and request_quote.
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 rather than stated: it tells the agent the operation targets an existing order/quote and names the required inputs, but never says when to prefer this over send_status_link or what to do when the reference is not found.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_quoteRequest a quoteAInspect
Sends a quote request to Denia Print for the user, like the form on the site: the team replies with a written quote, without obligation, and the user gets a confirmation by e-mail with a link to follow it. Only with the user's consent and their real contact details.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The user's language for the reply (default es). | |
| name | Yes | ||
| Yes | |||
| phone | No | ||
| details | Yes | What the user needs: product, size, quantity, deadline, design or not. | |
| product | No | What it is, e.g. "500 business cards" (or a slug). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, open-world, non-destructive behavior, and the description adds real side-effect context: a team reply arrives as a written quote, no obligation is incurred, and the user gets a confirmation e-mail with a tracking link. This explains the round-trip consequence beyond what the annotations convey. Minor gaps (no auth/rate-limit detail) keep it from 5.
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?
A single front-loaded sentence that leads with the core action before the outcome. It is dense and mostly earns its words, though slightly run-on and could be split for readability.
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?
For a mutating, open-world tool with no output schema, the description explains what happens after invocation (team reply, confirmation e-mail, follow-up link), which is the key missing context. It omits explicit return values or consent handling detail, but with annotations covering safety it is largely complete.
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 only 50%, and the description compensates only weakly: it stresses that 'real contact details' are required, implying name/email/phone must be genuine, but adds no format or meaning for lang, product, or details beyond what the schema already says. Adequate but not compensating fully for the coverage gap.
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 states a specific verb+resource combination — sending a quote request to Denia Print — and distinguishes itself from price-lookup siblings like get_price by implying it initiates a human/team response rather than returning data. It doesn't name a sibling explicitly, so it falls just short of a 5.
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?
It gives a precondition for use ('Only with the user's consent and their real contact details'), which is useful guidance, but provides no explicit when/when-not or direct comparison to alternatives such as get_price or message_team. Usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_status_linkMail the status pageAInspect
Mails the link of the order's status page (approve the proof, send the file, pay, write to the team) to the order's own e-mail address. Needs the reference and that e-mail address.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| reference | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare this is a non-destructive write, and the description is consistent with that. It adds a meaningful behavioral detail — the mail goes to the order's own address rather than an arbitrary recipient — but says nothing about re-send behavior, rate limits, or that an outbound e-mail cannot be recalled.
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 dense, front-loaded sentence that leads with the action and recipient, then the prerequisites. The nested parenthetical is slightly heavy but every clause carries information.
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?
For a mutation tool with no output schema and only minimal annotations, the description covers the action, recipient, and required inputs, but omits failure modes and any warning that sending a page link to a customer is an irreversible outbound side effect.
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 0%, so the description must carry the load: it names both parameters, confirms they are required, and clarifies that 'email' is specifically the order's own e-mail address while 'reference' identifies the order. It stops short of stating the expected format of the reference.
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 concrete verb and object: it mails the order's status-page link to the order's own e-mail address, and enumerates what the page enables (approve proof, send file, pay, write to team). That distinguishes it from siblings like message_team and order_status, though it never names them.
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 through the parenthetical list of actions the recipient can take, and the description notes the prerequisites (reference and e-mail address). It gives no explicit when-to-use guidance or when to prefer order_status or message_team instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shop_infoHow Denia Print worksARead-onlyInspect
Answers to common questions: how to order, proof and payment, payment methods, print files, delivery, pickup in Dénia, languages, the customer account, samples, contact, conditions. Without a topic: all of them.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds one genuinely useful behavioral fact not present in the schema—that omitting the topic returns all topics—but says nothing about whether answers are static content or generated responses.
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?
Front-loaded with the purpose, then a compact topic list, then a short default-behavior sentence. The enumeration is long but it maps directly onto the enum and every clause is functional; nothing is padded.
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?
For a read-only, single-optional-enum tool with no output schema, the definition supplies enough to invoke it correctly: purpose, the topic vocabulary, and the no-topic default. No return format is explained, but with no output schema that is a minor 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?
There is only one parameter and it is a fully self-descriptive enum, so the schema does most of the work. The description re-lists the same topic values in prose, which mirrors rather than extends the enum, but the optional/default behavior is clarified by the 'without a topic' note.
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 states a specific purpose—answers to common questions about how Denia Print works—and enumerates the covered domains (ordering, payment, delivery, pickup, etc.). This clearly distinguishes it from transactional siblings like get_price, order_status, and request_quote. It stops short of 5 because it never explicitly frames itself as a static FAQ/informational tool versus a live data lookup.
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?
The only explicit usage rule is 'Without a topic: all of them,' which governs the optional parameter rather than when to pick this tool over siblings. There is no statement of when to use shop_info versus order_status or message_team; the agent must infer it is the general-information fallback.
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.
8 tool updates
- First observed
get_price - First observed
get_product - First observed
list_products - First observed
message_team - First observed
order_status - First observed
request_quote - First observed
send_status_link - First observed
shop_info
Related MCP Connectors
Print-on-demand fulfillment: manage orders, catalog and account from AI clients. Writes ask first.
Print-on-demand catalog, listings, and fulfillment for AI agents.
Spanish Veri*factu invoicing: create invoices, expenses and VAT returns from your AI assistant.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables AI agents to browse products, upload designs, place print orders, track shipments, and manage account balance via natural language.14 npmMIT- AlicenseNot gradedqualityBmaintenance把「印懿报价」的报价能力提炼成一个可安装到各类 AI 工具的 Skill,覆盖印刷包装 120+ 品类(纸盒/纸箱/手提袋/画册/宣传页/卡片/不干胶等),支持材质、后工艺与小批量数码印刷计价。Apache 2.0
- AlicenseAqualityCmaintenanceProvides access to official Spanish fiscal data and tools based on AEAT and BOE sources, covering income tax, VAT, and regional deductions. It enables AI assistants to answer tax-related queries and verify filing deadlines using verified information.1033 npm13MIT

Factuarea MCPofficial
AlicenseNot gradedqualityBmaintenanceProvides 450+ tools for Spanish businesses to handle invoicing, purchases, catalog, tax filings, time tracking, and automations via natural language in MCP clients.200 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.