qart.uk QR studio
Server Details
qart.uk MCP server: resolve scanned codes, browse the free pool, and buy QR artwork.
- 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.7/5 across 8 of 8 tools scored. Lowest: 4/5.
Each tool has a clearly distinct purpose—browsing free pool, buying outright, explaining, pricing, dither parameters, matrix, encoding preview, and resolution. Descriptions explicitly cross-reference and disambiguate (e.g., 'Do NOT use it to...' and 'For the actual matrix, call get_qr_matrix').
All tool names follow a consistent verb_noun snake_case pattern (browse, buy, explain, get, get, get, preview, resolve). The only minor deviation is 'buy_qr_outright' with an adverb, but it remains predictable and readable.
With 8 tools, the set sits comfortably in the ideal 3-15 range. Each tool serves a distinct informational or utility function for QR analysis and qart.uk, so the scope feels appropriate and well-scoped.
The set has significant gaps for core qart.uk workflows: there is no tool to claim a free code, buy credits, or execute a purchase—only informational descriptions. Additionally, browse_my_pool is referenced but not provided, leaving signed-in flows as dead ends. Many tools are 'how to' rather than actionable, which will cause agent failures when users expect completion.
Available Tools
8 toolsbrowse_free_poolAInspect
List the QR artwork currently claimable for free on qart.uk, one per style, with a preview image URL for each. This is the ANONYMOUS shelf — the same selection every signed-out visitor sees, and these codes are what a guest can claim. Use it to show someone what is available or to describe the styles on offer. If you are acting for a signed-in account and want codes THAT account can actually claim, use browse_my_pool instead — the two storefronts differ, and a code from here may 403 on a claim.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behavioral traits: it is the anonymous shelf, identical to what a signed-out visitor sees, and codes may 403 on claim. This goes beyond a bare purpose statement, though it doesn't cover aspects like pagination or response structure (not critical for a 0-param list).
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 focused sentences, with the core function stated first. Every clause earns its place: the anonymous-shelf clarification, the usage suggestion, and the cross-reference to the sibling tool. No fluff or redundancy.
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 0-parameter tool with no output schema, the description covers what it does, who it's for, when to use it, and a critical limitation (403 on claim). It also points to the correct alternative, making it self-sufficient for the agent.
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 has zero parameters, so there is nothing to explain. The description adds relevant context about the selection scope ('one per style') and preview image URLs, which is more than enough given the parameter-free interface.
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 opens with a precise verb and resource: 'List the QR artwork currently claimable for free on qart.uk, one per style, with a preview image URL for each.' It fully differentiates from sibling tools by explicitly naming browse_my_pool as the signed-in alternative.
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?
Clear usage context is provided: 'Use it to show someone what is available or to describe the styles on offer.' It also gives explicit when-not guidance, warning that signed-in accounts should use browse_my_pool instead to avoid 403 errors, and explains why.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buy_qr_outrightAInspect
How to buy ONE finished QR artwork with no account at all, paying from your own wallet over x402. Returns the live price and the exact request to make.
This is the right tool when you have a wallet but no qart.uk account: get_credit_packs buys CREDITS, which still need an account to spend, and the Studio tools all require an OAuth token. This path requires neither — you GET https://qart.uk/api/v1/qr?url=..., it answers 402, you retry with a PAYMENT-SIGNATURE header, and the PNG comes back in the response body.
You are charged ONLY if a real QR detector decodes the image: settlement runs after the scan verdict, so a request that produces nothing scannable is never settled and costs you nothing. Pay in USDC on Base — you do not need ETH, because the facilitator submits the transaction.
Cannot be performed through MCP itself: a payment rides in an HTTP header and there is nowhere to put one here. This tool tells you the call; you make it.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The https destination you want the QR to encode. Optional — without it you get the price and the call shape. | |
| size | No | Pixel size. 1024 costs more. Defaults to 768. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full behavioral disclosure. It reveals the exact HTTP flow (GET → 402 → retry with PAYMENT-SIGNATURE header), explains settlement logic (charged only if a QR detector decodes), specifies payment method (USDC on Base, no ETH needed), and clearly states the tool does not execute the purchase but only returns the request. This is thorough and non-misleading.
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 organized into clear paragraphs with front-loaded purpose in the first sentence. Every sentence contributes: how to use, when to use, payment mechanics, and critical limitation. It is appropriately sized for the tool's complexity and contains no filler or redundancy.
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?
Despite having no output schema, the description explains exactly what the tool returns (live price and exact request). It covers the full context: prerequisites (wallet, no account), process (HTTP flow), settlement, payment network, and the MCP limitation. For a tool of this complexity, the description is complete and leaves no major operational ambiguity.
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 input schema provides 100% coverage with descriptions for both `url` and `size`, so the baseline is 3. The description adds minimal semantic value beyond the schema: it shows how `url` is used in the HTTP request ('GET https://qart.uk/api/v1/qr?url=...') but does not elaborate on `size` beyond what the schema already states. No additional parameter details are needed.
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: 'buy ONE finished QR artwork' and immediately clarifies that it 'Returns the live price and the exact request to make,' which is distinct from merely purchasing. It also explicitly differentiates from siblings by noting that get_credit_packs and Studio tools require an account or OAuth token, while this tool does not.
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 description explicitly states when to use this tool: 'the right tool when you have a wallet but no qart.uk account.' It names alternatives (get_credit_packs, Studio tools) and explains why they are unsuitable. It also clearly states a limitation: 'Cannot be performed through MCP itself' and instructs the user to make the HTTP call externally, providing a complete when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_qartAInspect
Explain how qart.uk works: scan verification, retargeting a printed code, the free claim pool and its daily allowances, Studio pricing, and what happens to credits when a run is stopped or fails. Use this before guessing at product details — pricing and allowances change and this returns the current text.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Which aspect to explain. Defaults to overview. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool returns 'current text' and that pricing/allowances change, implying dynamic content and read-only behavior. However, it does not explicitly state side-effect-free nature or any prerequisites, limiting transparency.
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 two sentences, front-loaded with the tool's purpose and includes usage guidance without fluff. Every sentence earns its place.
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 simple tool with one optional parameter and no output schema, the description covers purpose, usage, and key behavioral context (current text, changing data). It lacks explicit mapping to all enum values and return formatting, but is adequate for the tool's simplicity.
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 provides 100% coverage for the single 'topic' parameter with enum values and a description. The description adds color by listing example topics like scan verification and Studio pricing, but does not map them explicitly to the enum values. Thus it adds marginal 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?
The description uses the specific verb 'Explain' with the resource 'how qart.uk works' and lists concrete aspects (scan verification, retargeting, free claim pool, Studio pricing, credits). This clearly distinguishes it from sibling tools like buy_qr_outright or resolve_qart_code, which perform actions rather than explanations.
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 description explicitly advises to 'Use this before guessing at product details' and notes that 'pricing and allowances change and this returns the current text.' This gives clear when-to-use context, though it does not name specific sibling tools as alternatives for different tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credit_packsAInspect
What Studio credits cost: the packs on sale, their price in USD, and roughly how many images each buys. Anonymous — this is a price list. Read it rather than quoting a price from memory; packs change.
An agent that runs out mid-task can top up WITHOUT a human, paying from its OWN wallet: POST /api/qart/x402/credits?pack=... with a qart:purchase bearer token. The money comes from the application's wallet, never the user's card. Stripe checkout (POST /api/qart/checkout) remains human-only; hand the user the purchase URL for that.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that the tool is anonymous, acts as a price list, and that pack prices can change. However, it doesn't detail response shape or error behavior, though that's less critical for a simple list.
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 front-loaded with the core purpose, then appends operational guidance about purchasing. While slightly longer than strictly necessary, the extra context is valuable.
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 zero-parameter tool with no output schema, the description provides complete context: what it returns, that it's anonymous, and even next-step actions for purchasing. It fully equips an agent to use the tool and act on its results.
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 input schema has zero parameters, so description is not required to explain parameters. It adds meaning by describing the content of the returned list.
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 that the tool lists Studio credit packs, their USD prices, and approximate image yields. This explicitly distinguishes it from sibling tools like buy_qr_outright by establishing it as a price list resource.
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 instructs agents to consult this list rather than recalling prices from memory, and distinguishes between self-service top-up (POST /api/qart/x402/credits) and human-only Stripe checkout. This provides clear when/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dither_qr_parametersAInspect
The complete parameter contract for qart.uk's dithered photo QR recipe — an error-diffused technique (after andrew-t) that dithers a photograph into the space around each QR module, so the finished 1-bit image reads as a picture and still scans.
THIS TOOL GENERATES NOTHING. There is no API for the technique and no endpoint that will run it for you: it is a browser-side generator, and this tool returns the parameters, ranges, defaults and algorithm order so that YOU can implement it or instruct someone who will. Pair it with get_qr_matrix, which supplies the module grid and the function-pattern map the algorithm needs.
It also returns the honest limits, which matter before anyone prints anything: no scan verdict is computed anywhere in this path, error correction wants to stay at H, and stricter detectors (zbar) reject output that phone-grade detectors accept. Treat a dithered code as untested until someone scans the actual printed sheet.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description takes full responsibility for disclosure. It states the tool has no API, is browser-side, returns no scan verdict, error correction should stay at H, and stricter detectors like zbar reject phone-grade output. It even cautions to treat output as untested until physically scanned. This is thorough and honest about limitations.
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?
Despite being long, the description is front-loaded with the core purpose, then uses short paragraphs for non-generation, usage pairing, and limitations. Every sentence adds essential information; no fluff or repetition.
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 there is no output schema and no annotations, the description is remarkably complete. It explains what the tool returns, what it does not do, what to pair it with, and practical caveats about scan reliability. An agent would have enough context to invoke it correctly and interpret its role.
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 tool has zero input parameters, so the schema is trivial and the baseline is 4. The description adds context about the nature of the parameters it returns (ranges, defaults, algorithm order), which helps understand the output but does not need to explain input semantics since there are none.
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 identifies the tool as an information-returning tool that provides 'the parameters, ranges, defaults and algorithm order' for qart.uk's dithered photo QR recipe. It distinguishes itself from siblings by explicitly stating it generates nothing and pointing to get_qr_matrix for the module grid.
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 clear context: the tool is for implementing the technique yourself ('so that YOU can implement it or instruct someone who will') and it should be paired with get_qr_matrix. However, it does not explicitly enumerate alternative tools or state when not to use this tool, relying on the pairing note and the 'generates nothing' caveat to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_qr_matrixAInspect
Return the actual QR MODULE GRID for a payload — the black/white matrix, plus a per-module map of which modules are function patterns (finder, separator, timing, alignment, format info, version info, dark module) and which carry data. Both come back as one row string per row. Costs nothing, mints nothing, stores nothing.
Use this when you are going to RENDER or transform a QR yourself: dithering a photo into it, drawing it as an SVG, laying it out for print, or reasoning about which modules are safe to alter. The function-pattern map is the point — any technique that paints over a QR has to know which modules a scanner uses to FIND the code (finder, timing, alignment) versus which merely carry bits.
Do NOT use it to check whether a payload fits — preview_qr_encoding is smaller and answers that. Do NOT use it to get a qart.uk product: this is a plain standards QR, with no artwork, no scan verdict and no alias behind it. The matrix is canonical and untransformed: invert, rotation, mirror and any subpixel scaling are yours to apply afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| ecc | No | Error correction level. Defaults to H, which is what any paint-over-the-code technique needs. | |
| lat | No | For 'geo': latitude. | |
| lng | No | For 'geo': longitude. | |
| org | No | For 'vcard': organization. | |
| url | No | For 'url': the destination. For 'vcard'/'mecard': the website. | |
| auth | No | For 'wifi': security type. Defaults to WPA. | |
| body | No | For 'mailto': message body. | |
| mask | No | Which of the 8 standard mask patterns to apply. 'auto' (default) picks the lowest-penalty one, exactly as the encoder in the browser does. All 8 are legal and scan identically; they differ only in how the light and dark modules are laid out, which is worth pinning when you are fitting a picture to the grid. | |
| name | No | For 'vcard'/'mecard': full name. | |
| ssid | No | For 'wifi': network name. | |
| text | No | For 'text': the literal text. | |
| No | Email address, for 'vcard'/'mecard'/'mailto'. | ||
| phone | No | Phone number, for 'vcard'/'mecard'/'tel'/'sms'. | |
| title | No | For 'vcard': job title. | |
| hidden | No | For 'wifi': hidden network. | |
| address | No | For 'vcard': postal address. | |
| message | No | For 'sms': message text. | |
| subject | No | For 'mailto': subject line. | |
| version | No | Force a QR version (1-40, size 21-177 modules). Omit for the smallest that fits. Pinning BELOW the fit is impossible and is raised to the fit, matching the Studio. | |
| password | No | For 'wifi': network password. | |
| payloadKind | No | What the code should contain. Defaults to url. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels: it states no side effects ('Costs nothing, mints nothing, stores nothing') and clarifies the output is canonical/untransformed, leaving inversion, rotation, mirror, and scaling to the caller. This gives the agent essential behavioral expectations.
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 focused paragraphs — purpose, when to use, and what not to use/behavioral caveats. Every sentence earns its place, with no redundancy or fluff. The structure front-loads the core output, then usage, then limitations.
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?
Despite lacking an output schema and having 21 parameters, the description is remarkably complete. It explains the return format (row strings), the function-pattern map, and the intended use cases plus exclusions. An agent can correctly decide when to invoke this tool and what to expect, with parameter details available in the schema.
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 input schema already covers all 21 parameters with detailed descriptions (100% coverage), so the baseline is 3. The description adds value by explaining the practical rationale for key parameters: ecc defaults to H because paint-over-the-code needs it, and mask patterns are all legal but differ only in layout, useful when fitting a picture. This goes beyond the schema's descriptions.
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 what the tool does with a specific verb and resource: returns the QR module grid (black/white matrix) plus a per-module map of function patterns vs data. It explicitly differentiates itself from siblings by naming preview_qr_encoding and explain_qart as different tools, and by emphasizing the function-pattern map as the unique value.
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 description gives explicit when-to-use guidance: 'Use this when you are going to RENDER or transform a QR yourself' and describes concrete scenarios (dithering, SVG, print). It also includes clear 'Do NOT use' directives with alternatives (preview_qr_encoding for fit checking) and clarifies that it is not a qart.uk product.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_qr_encodingAInspect
Work out how a payload will encode as a QR code, without creating anything. Returns the exact string the pixels would carry, its byte length, the QR version and module count required, the capacity remaining at that version, and any warnings. Costs nothing and mints nothing.
Use this to answer questions like "will this URL fit at error correction level H" or "how much does a long Wi-Fi password cost me in QR density". Higher ECC survives damage better but needs more modules for the same data; more modules print smaller and get harder to scan.
payloadKind 'qart_code' sizes the RETARGETABLE variant instead: the pixels carry a 16-byte qart.uk/_ link rather than your data, which is usually several versions smaller. Compare the two before committing to a print.
This returns metadata only, never the module grid. For the actual black/white matrix, call get_qr_matrix.
| Name | Required | Description | Default |
|---|---|---|---|
| ecc | No | Error correction level, lowest to highest. Defaults to the Studio default if omitted. | |
| url | No | For payloadKind 'url': the destination. | |
| name | No | For payloadKind 'vcard': full name. | |
| ssid | No | For payloadKind 'wifi': network name. | |
| text | No | For payloadKind 'text': the literal text. | |
| No | For payloadKind 'vcard': email address. | ||
| phone | No | For payloadKind 'vcard': phone number. | |
| version | No | Force a QR version (size). Omit to use the smallest that fits. | |
| password | No | For payloadKind 'wifi': network password. | |
| payloadKind | Yes | What the code should contain. 'qart_code' sizes the retargetable variant — a 16-byte qart.uk/_ link instead of your data. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states 'Costs nothing and mints nothing' (no side effects), clarifies it returns metadata only, explains trade-offs of ECC and module count, and details the retargetable qart_code variant behavior. This is thorough and transparent.
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 concise, with every sentence contributing value. It front-loads the core purpose, then provides examples, trade-offs, the qart_code special case, and a pointer to the sibling tool. No fluff or redundancy.
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 there is no output schema, the description fully covers return values and limitations. It addresses the 10-parameter complexity by explaining how payload kinds work and when to use alternatives, making the tool's behavior clear without needing to enumerate every schema field.
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%, so baseline is 3. The description adds meaningful cross-parameter context: explains how ECC affects module count, how version affects scanability, and how payloadKind 'qart_code' changes the payload to a 16-byte link. This goes beyond the schema's per-parameter descriptions, though it doesn't detail every parameter's syntax.
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 tool computes QR encoding metadata without creating anything, listing exact return values (string, byte length, version, module count, capacity, warnings). It explicitly distinguishes itself from sibling tool get_qr_matrix by noting it never returns the module grid.
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?
Provides explicit use cases ('will this URL fit at error correction level H') and when-not-to-use: 'For the actual black/white matrix, call get_qr_matrix.' Also advises comparing qart_code vs normal payloads before printing, giving clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_qart_codeAInspect
Resolve a scanned qart.uk code to the URL it currently points at. Accepts the alias ('ab12cde'), or a full qart.uk URL to pull it out of. Returns targetUrl, or disabledReason if the owner retired it. This does not count as a scan and will not affect the owner's statistics. Only the '' code class resolves here; older qart.uk links of other shapes are not in this pool.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code to resolve — '_ab12cde', '/_ab12cde', or 'https://qart.uk/_ab12cde'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It reveals that the tool returns either targetUrl or disabledReason, that it does not count as a scan, and that it only handles the '_' class codes. This gives the agent a clear picture of side effects and outcomes.
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 three sentences, dense and free of fluff. Every sentence adds relevant detail: purpose, accepted input forms, return behavior, scan-count caveat, and code-class restriction.
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 simple one-parameter tool with no annotations and no output schema, the description is fully sufficient. It explains the operation, input normalization, output possibilities, and exclusions, leaving no significant gaps for the agent to guess.
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% for the single 'code' parameter, so the baseline is 3. The description adds value by showing accepted input variants (alias, with slash, or full URL) and reinforces the '_' class restriction, which helps clarify normalization beyond the schema's examples.
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 a specific verb and resource: 'Resolve a scanned qart.uk code to the URL it currently points at.' It distinguishes itself from sibling tools by explicitly scoping to the '_' code class and excluding older link shapes.
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 description gives clear when-to-use and when-not-to-use guidance: it applies to '_' codes only, not older qart.uk links. It also notes that resolution does not count as a scan, which is useful context, though it does not explicitly name an alternative tool.
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!
Related MCP Servers
Alicense-qualityAmaintenanceQR Code AI - MCP server providing AI-powered tools and automation by MEOK AI Labs10MIT- Alicense-qualityDmaintenanceAn MCP server that provides tools for scanning and extracting data from QR codes using single or multiple image URLs. It supports both individual and batch processing to retrieve encoded information from images hosted online.26MIT
- Flicense-qualityDmaintenanceAn advanced MCP server for generating styled QR codes with logos, batch processing, and specialized formats like WiFi or vCards. It also provides tools to decode existing QR code images and analyze their quality or content.

qr-cow MCP serverofficial
AlicenseAqualityCmaintenanceMCP server that exposes the qr-cow.com API, enabling AI clients to create, style, manage, and analyze QR codes through natural language.8MIT