Skip to main content
Glama
qr-maker-io

qr-maker

by qr-maker-io

@qr-maker/mcp-server

Glama score npm

MCP (Model Context Protocol) server for QR Maker — generate styled QR codes, manage dynamic short links with click analytics, and publish micro-landing pages from any AI assistant.

Quick Start

Claude Code

Add to ~/.claude/claude_code_config.json:

{
  "mcpServers": {
    "qr-maker": {
      "command": "npx",
      "args": [
        "@qr-maker/mcp-server",
        "--api-key=qk_live_YOUR_API_KEY"
      ]
    }
  }
}

Restart Claude Code and type /mcp to verify.

Cursor / Windsurf

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "qr-maker": {
      "command": "npx",
      "args": ["@qr-maker/mcp-server", "--api-key=qk_live_YOUR_API_KEY"]
    }
  }
}

Environment Variables

Instead of --api-key, you can set:

export QR_MAKER_API_KEY=qk_live_YOUR_API_KEY
export QR_MAKER_API_URL=https://api.qr-maker.io  # default

Related MCP server: QrVerloz MCP Server

Get Your API Key

  1. Sign up at qr-maker.io

  2. Go to Settings → API Keys

  3. Click Create Key and copy it

Available Tools (19)

QR Code Generation

Tool

Description

generate_qr

Generate a styled QR code with custom colors, dots, logos, and frames

batch_generate

Batch generate up to 100 QR codes (Pro+)

get_batch_status

Poll batch job status

Tool

Description

create_short_link

Create a tracked short link with click analytics

list_links

List short links with click counts

get_link

Get details of a specific short link

update_link

Update target URL, status, or expiration

delete_link

Permanently delete a short link

get_link_analytics

Click analytics — countries, devices, daily breakdown

Style Presets

Tool

Description

create_template

Save a reusable QR style preset

list_templates

List saved style presets

update_template

Update a style preset

delete_template

Delete a style preset

render_template

Generate QR using a saved style preset

Landing Pages

Tool

Description

publish_landing

Publish HTML landing page + short link + QR in one call

get_landing

Get landing page details

update_landing

Update landing HTML and re-publish

Account

Tool

Description

get_usage

Check current quota and usage

get_capabilities

Feature matrix for your plan

Example Prompts

Once connected, try:

  • "Generate a QR code for my website with purple rounded dots"

  • "Create a short link for https://qr-maker.io and show me the analytics"

  • "Publish a landing page for my restaurant with a menu and WhatsApp button"

  • "List my style presets and render one with new content"

Testing with MCP Inspector

npx @modelcontextprotocol/inspector \
  npx @qr-maker/mcp-server -- \
  --api-key=qk_live_YOUR_KEY

Documentation

License

MIT

Available Tools

19 tools
batch_generateA

Generate multiple QR codes in bulk (up to 100). Requires Pro tier or above. Returns a batch ID to poll for status. Each item can have different content and style.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of QR generation requests (max 100)
webhook_urlNoOptional webhook URL to notify when batch is complete

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and discloses key behavioral traits: it requires Pro tier access, returns a batch ID for polling, supports up to 100 items, allows different content and style per item, and mentions an optional webhook for notifications. However, it lacks details on rate limits, error handling, or exact response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by essential details in three concise sentences with zero waste. Each sentence adds critical information: tier requirement, return mechanism, and item flexibility, making it efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does well by covering purpose, prerequisites, return mechanism (batch ID for polling), scale limits, and item flexibility. However, it lacks details on the polling process (e.g., how to use 'get_batch_status'), error cases, or output format, leaving some gaps for a bulk generation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'items' array and 'webhook_url' parameters. The description adds marginal value by mentioning 'Each item can have different content and style' for 'items', but does not provide additional syntax or format details beyond what the schema offers, aligning with the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Generate multiple QR codes in bulk') and resource ('QR codes'), specifies the scale ('up to 100'), and distinguishes from the sibling 'generate_qr' tool by emphasizing bulk operations versus single QR code generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('Generate multiple QR codes in bulk') and mentions a prerequisite ('Requires Pro tier or above'), but does not explicitly state when not to use it or name alternatives like 'generate_qr' for single QR codes, though the bulk focus implies differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_templateA

Save a QR code style preset. Style presets store visual settings (colors, dot styles, logos, dimensions) that can be applied to any content via render_template. Styles are unlimited and do not count against your quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStyle preset name (1-255 chars)
descriptionNoOptional description (max 1000 chars)
optionsYesQR styling options to save as preset (same as generate_qr style param)
tagsNoOptional tags for organization (max 20)
is_publicNoWhether this style is publicly visible. Default: false.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool creates persistent presets ('store visual settings'), mentions quota implications ('do not count against your quota'), and hints at public visibility ('publicly visible' via is_public parameter). However, it doesn't cover important behavioral aspects like error conditions, response format, or whether creation is idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly sized with two sentences that each earn their place. The first sentence states the core purpose, the second adds important contextual information about unlimited usage and quota implications. No wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with 5 parameters, 100% schema coverage, but no annotations and no output schema, the description is adequate but has gaps. It explains the purpose and some behavioral context but doesn't describe what happens after creation (success response, error cases) or how the created template can be used beyond the render_template mention.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value beyond the schema - it only implies that 'options' parameter contains 'QR styling options' and mentions 'publicly visible' which relates to 'is_public'. Baseline 3 is appropriate when the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Save a QR code style preset'), the resource ('visual settings'), and distinguishes from siblings by explaining what style presets are and how they differ from quota-limited operations. It explicitly mentions application via 'render_template' which is a sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('store visual settings that can be applied to any content via render_template') and mentions that styles are unlimited and don't count against quota. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_templateA

Permanently delete a QR code style preset. This action cannot be undone. Short links using this style will keep their current QR appearance.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_idYesThe style preset ID to delete

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates critical behavioral traits: the permanence of the action ('Permanently delete', 'cannot be undone') and the impact on existing resources ('Short links using this style will keep their current QR appearance'), which are essential for safe tool invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise and front-loaded, with two sentences that each earn their place: the first states the core action and irreversibility, and the second clarifies the impact on existing links. There's zero wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description is reasonably complete. It covers the irreversible nature and downstream effects, though it could mention authentication needs or error conditions. Given the single parameter with full schema coverage, it's mostly adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the parameter 'template_id' fully documented as 'The style preset ID to delete'. The description doesn't add any additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Permanently delete') and resource ('QR code style preset'), distinguishing it from sibling tools like delete_link (which deletes links) and update_template (which modifies templates). It precisely identifies what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool by stating it's for deleting style presets, with an implicit alternative being update_template for modifications. However, it doesn't explicitly mention when NOT to use it (e.g., for deleting links vs. templates) or name specific sibling alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_qrA

Generate a styled QR code image with custom colors, logos, dot styles, and corner shapes. Supports PNG and SVG output. Returns base64-encoded image data. When the content is a URL, a tracked short link is created automatically — the QR encodes the short URL for click analytics.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe data to encode in the QR code (URL, text, vCard, etc.). Max 4096 characters.
formatNoOutput image format. Default: png.
template_idNoOptional template ID to use as base style. Overrides from style param are merged on top.
styleNoQR code styling options

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context beyond basic functionality, such as automatic tracked short link creation for URLs and base64-encoded output, but lacks details on permissions, rate limits, error handling, or response format. It adequately describes key behaviors but misses some operational aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the first sentence covering the core purpose and key features. Each subsequent sentence adds necessary details (output formats, encoding, URL handling) without redundancy. It efficiently conveys essential information in three concise sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, nested objects, no output schema, and no annotations), the description is mostly complete. It covers purpose, styling, output formats, encoding, and URL-specific behavior. However, it lacks details on error cases, performance limits, or example usage, which would enhance completeness for a tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal semantic value beyond the schema, mentioning PNG and SVG output formats and tracked short links for URLs, which relate to 'content' and 'format' parameters. However, it does not elaborate on 'template_id' or 'style' beyond what the schema provides, keeping the score at baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Generate a styled QR code image') and resource ('QR code'), distinguishing it from siblings like 'create_short_link' or 'render_template' by focusing on QR generation with styling features. It explicitly mentions custom colors, logos, dot styles, and corner shapes, making the purpose distinct and comprehensive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool—for generating QR codes with styling and analytics—and implies usage for URLs (tracked short links) versus other content. However, it does not explicitly state when not to use it or name alternatives among siblings, such as 'batch_generate' for multiple codes or 'create_short_link' for links without QR generation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_batch_statusA

Check the status of a batch QR generation job. Use after batch_generate to poll for completion. Returns total, completed, failed counts and individual item statuses.

ParametersJSON Schema
NameRequiredDescriptionDefault
batch_idYesThe batch job ID returned by batch_generate

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the polling nature of the tool, the return format (counts and individual statuses), and implies it's a read-only status check (not a mutation). However, it doesn't mention potential rate limits, error conditions, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly focused sentences with zero waste: first states purpose, second provides usage guidance, third describes return values. Every sentence adds essential information, and the description is appropriately front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter status-checking tool with no output schema, the description provides good coverage: purpose, usage context, and return format. It doesn't need to explain parameters since schema coverage is complete. However, without annotations or output schema, it could benefit from more detail about error cases or response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single parameter. The description adds minimal value by mentioning the batch_id comes from batch_generate, but doesn't provide additional semantic context beyond what's in the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Check the status') and resource ('batch QR generation job'), distinguishing it from siblings like batch_generate (which creates jobs) or generate_qr (which creates single QRs). It explicitly identifies the target resource type and operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('Use after batch_generate to poll for completion'), naming the specific sibling tool that precedes it. This clearly establishes the workflow context and distinguishes it from other status-checking tools like get_link or get_usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_capabilitiesA

Get the full feature matrix for your current API key tier. Shows available features, rate limits, quota, analytics retention, SLA, and upgrade options. Call this first to understand what operations are available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the tool returns feature matrix, rate limits, quota, etc., which gives some behavioral context about what information is provided. However, it doesn't disclose response format, error conditions, or whether this affects rate limits itself. The description adds value but lacks comprehensive behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence explains what the tool does, and the second provides crucial usage guidance. Every word earns its place, and the structure is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description provides good context about what information is returned (feature matrix with specific elements) and when to use it. However, without annotations or output schema, it could benefit from more detail about the return format or structure. It's mostly complete for a simple informational tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and instead focuses on what the tool returns, which is correct for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'full feature matrix for your current API key tier', specifying it shows available features, rate limits, quota, analytics retention, SLA, and upgrade options. It distinguishes from siblings by focusing on API capabilities rather than link/template management or generation operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Call this first to understand what operations are available', providing clear when-to-use guidance. It implies this tool should be used before other operations to check API limits and features, distinguishing it from siblings that perform specific actions like creating links or templates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_landingA

Retrieve full details of a published micro-landing page by its ID. Returns the page title, public URL (via its associated short link), HTML content, publish status, version history, and the short link code used for QR code generation. Use this to verify a landing page was published correctly, retrieve its public URL to share or encode in a QR, or inspect its current content before calling update_landing. The landing_id is returned by publish_landing when the page is created.

ParametersJSON Schema
NameRequiredDescriptionDefault
landing_idYesThe landing page ID

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool as a read-only retrieval operation (implied by 'Retrieve'), specifies the return data (title, URL, HTML, etc.), and mentions dependencies (ID from 'publish_landing'). However, it lacks details on error handling, rate limits, or authentication needs, which are minor gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage guidelines and parameter context in two efficient sentences. Every sentence adds value without redundancy, making it highly concise and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does a good job covering the tool's purpose, usage, and parameter semantics. It could be more complete by detailing the exact return structure or error cases, but it provides sufficient context for effective use in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a clear description for 'landing_id', so the baseline is 3. The description adds value by explaining the parameter's origin ('returned by publish_landing') and its role in identifying a published page, enhancing understanding beyond the schema's basic definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Retrieve full details'), resource ('published micro-landing page'), and distinguishes it from siblings by specifying it's for retrieving by ID rather than listing, publishing, or updating. It explicitly mentions what it returns, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: to verify publication, retrieve the public URL for sharing or QR codes, or inspect content before updating. It also references the sibling tool 'update_landing' as an alternative for modifications and 'publish_landing' as the source of the ID, clearly differentiating use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageA

Check current billing period usage, quota limits, and estimated cost. Shows QR codes generated, links created, and API calls for the current month.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes what data is returned (usage, quotas, costs, QR codes, links, API calls) but lacks details on behavioral traits like whether this requires authentication, if data is real-time or cached, or any rate limits. The description adds value by specifying scope but misses key operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that are front-loaded with the core purpose and then detail specific metrics. Every word earns its place, with no redundancy or fluff, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (read-only usage reporting), lack of annotations, and no output schema, the description is moderately complete. It covers what data is returned but lacks details on format, timeframes beyond 'current month', or error handling. For a tool with no structured behavioral hints, it should provide more operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are 0 parameters, and schema description coverage is 100%, so the baseline is 4. The description appropriately does not discuss parameters, as none exist, and instead focuses on the tool's output semantics, which is helpful given the lack of an output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Check', 'Shows') and resources ('billing period usage, quota limits, estimated cost, QR codes generated, links created, API calls'), distinguishing it from siblings like get_capabilities or get_link_analytics which focus on different aspects of the system.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('current month', 'current billing period') but does not explicitly state when to use this tool versus alternatives like get_capabilities (which might show system capabilities) or get_link_analytics (which focuses on link-specific metrics). No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_templatesA

List saved QR code style presets. Styles store visual settings (colors, dots, logos) that can be reused across QR codes. Supports cursor pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor from previous response
limitNoNumber of templates per page (1-100). Default: 25.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it's a read operation (implied by 'List'), it supports pagination ('cursor pagination'), and it returns reusable style presets. It doesn't mention rate limits, authentication needs, or error conditions, but covers the essential read/list behavior adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: first defines the purpose and resource, second adds behavioral context (pagination). Every phrase adds value with zero waste, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with 2 parameters, 100% schema coverage, and no output schema, the description is minimally complete. It covers what the tool does and pagination support, but lacks details on return format, error handling, or example usage. Given the low complexity, it's adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain pagination mechanics or default behaviors). Baseline 3 is appropriate when schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('saved QR code style presets'), and explains what these presets are ('visual settings like colors, dots, logos'). However, it doesn't explicitly differentiate from sibling tools like 'create_template' or 'render_template', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning 'cursor pagination' for handling large result sets, suggesting when this tool is appropriate. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'get_capabilities' or 'list_links', nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_landingA

Publish an HTML landing page and get back a hosted URL, tracked short link, and QR code image in one call. The landing is published to CDN and a short link is created for QR tracking. Free-tier landings include a watermark footer.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesThe full HTML content of the landing page. Max 2MB.
titleNoOptional title for the landing page. Max 200 characters.
formatNoQR code output format. Default: png.
styleNoQR code styling options (same as generate_qr style)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context: the landing is published to a CDN, a short link is created for QR tracking, and free-tier includes a watermark. However, it lacks details on permissions, rate limits, error handling, or what happens on repeated calls (e.g., idempotency).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core functionality in the first sentence, followed by additional context in subsequent sentences. Every sentence adds value: the first explains the action and outputs, the second details the publishing and tracking process, and the third notes the free-tier limitation. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides good context on what the tool does and some behavioral aspects (CDN publishing, tracking, watermark). However, it lacks details on return values (beyond mentioning outputs), error cases, or performance characteristics, leaving gaps for an AI agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any parameter-specific semantics beyond what the schema provides (e.g., it doesn't explain 'style' options in detail). Baseline score of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('publish an HTML landing page') and the outcome ('get back a hosted URL, tracked short link, and QR code image in one call'), distinguishing it from sibling tools like 'generate_qr' or 'create_short_link' which handle only parts of this functionality. It specifies the resource (HTML landing page) and the comprehensive result set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'Free-tier landings include a watermark footer,' which suggests when this tool might be appropriate (for publishing with tracking features). However, it does not explicitly state when to use alternatives like 'render_template' or 'update_landing,' nor does it provide exclusions or prerequisites for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_templateA

Generate a QR code by applying a saved style preset to new content. Looks up the template by ID, merges any provided overrides on top of the stored style options, then renders the QR code. Returns a public image URL and, for PNG output, an inline base64 image. Use this instead of generate_qr when the user has a saved brand style they want to reuse — avoids re-specifying all style options each time. Use overrides to tweak individual properties (e.g. foreground color) without changing the saved preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_idYesID of the template to render
contentYesData to encode in the QR code (URL, text, etc.)
formatNoOutput format. Default: png.
overridesNoOptional style overrides to apply on top of the template

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing key behaviors: it describes the multi-step process (lookup template, merge overrides, render), specifies the return format ('Returns a public image URL and, for PNG output, an inline base64 image'), and mentions the purpose of overrides. However, it doesn't cover potential error conditions 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Perfectly structured with three sentences: first states purpose and process, second provides usage guidelines with clear alternative, third explains overrides with example. Every sentence adds essential information with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description does an excellent job covering purpose, usage, and behavior. It explains the return format and provides context about template-based generation. The only minor gap is lack of explicit error handling or performance characteristics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds some value by explaining the relationship between template_id and overrides ('merges any provided overrides on top of the stored style options') and providing an example for overrides ('e.g. foreground color'), but doesn't significantly enhance parameter understanding beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Generate a QR code by applying a saved style preset to new content') and distinguishes it from sibling tool 'generate_qr' by emphasizing template reuse. It identifies the resource (QR code) and verb (generate with template) precisely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('Use this instead of generate_qr when the user has a saved brand style they want to reuse') and provides guidance on when to use overrides ('Use overrides to tweak individual properties without changing the saved preset'). Clear alternative tool is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_landingA

Update a landing page HTML content and re-publish to CDN. The existing short link and QR code continue to work — only the page content changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
landing_idYesThe landing page ID to update
htmlYesNew HTML content for the landing page
titleNoOptional new title

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a mutation operation ('update'), it triggers a CDN re-publish, and it preserves existing short links and QR codes. It lacks details on permissions, rate limits, or error handling, but covers essential operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by an important behavioral detail. Both sentences are essential—no wasted words—making it highly efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description does a good job covering purpose, behavior, and context. It could be more complete by addressing potential side effects or response format, but it provides sufficient guidance for basic use given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter-specific information beyond what the schema provides, such as formatting details or constraints. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('update a landing page HTML content and re-publish to CDN'), identifies the resource ('landing page'), and distinguishes it from siblings like 'publish_landing' by specifying that only content changes while short links and QR codes remain functional.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('update a landing page HTML content') and implicitly differentiates it from 'publish_landing' by noting that existing short links and QR codes continue to work. However, it does not explicitly state when not to use it or mention alternatives like 'update_template'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_templateA

Update an existing QR code style preset. Accepts partial updates — only the fields you provide are changed; omitted fields keep their current values. The options field, if provided, fully replaces the stored style options. Use this to rename a preset, adjust colors or shapes, change visibility (is_public), or update tags for searchability. Returns the updated template object including its ID, name, options, and timestamps. Call list_templates first if you need to find the template_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_idYesThe style preset ID to update
nameNoNew name
descriptionNoNew description
optionsNoNew QR styling options (replaces existing)
is_publicNoWhether this style is publicly visible
tagsNoNew tags

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: partial update semantics (omitted fields unchanged), replacement behavior for the options field, and the return value (updated template object). However, it lacks details on error conditions, authentication needs, or rate limits, which would be helpful for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and partial update behavior, followed by usage examples and a prerequisite tip. Every sentence adds value: the first defines the tool, the second explains parameter behavior, the third gives use cases, the fourth specifies returns, and the fifth advises on finding IDs. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description does well by explaining update semantics, return content, and prerequisites. It covers the essential context given the complexity. A slight deduction because it doesn't mention potential side effects or error handling, which would enhance completeness for an update operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some context by explaining that options 'fully replaces the stored style options' and linking parameters to use cases (e.g., name for renaming, tags for searchability), but this is marginal value beyond the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Update') and resource ('existing QR code style preset'), distinguishing it from siblings like create_template (creation) and delete_template (deletion). It specifies this is for partial updates of style presets, making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('to rename a preset, adjust colors or shapes, change visibility, or update tags') and when to use an alternative ('Call list_templates first if you need to find the template_id'). It also clarifies the partial update behavior, helping differentiate from full replacements.

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. Dates show when Glama detected each change.

  1. 19 tool updatesv0.1.0
    • First observedbatch_generate
    • First observedcreate_short_link
    • First observedcreate_template
    • First observeddelete_link
    • First observeddelete_template
    • First observedgenerate_qr
    • First observedget_batch_status
    • First observedget_capabilities
    • First observedget_landing
    • First observedget_link
    • First observedget_link_analytics
    • First observedget_usage
    • First observedlist_links
    • First observedlist_templates
    • First observedpublish_landing
    • First observedrender_template
    • First observedupdate_landing
    • First observedupdate_link
    • First observedupdate_template

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no significant overlap. For example, generate_qr creates a single QR code, batch_generate handles bulk generation, and render_template applies saved styles, while tools like create_short_link, get_link_analytics, and update_link manage short links distinctly. The descriptions reinforce these boundaries, making misselection unlikely.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, such as generate_qr, create_short_link, delete_template, get_batch_status, list_links, update_landing, and publish_landing. This predictability aids in understanding and usage without any deviations in style.

Tool Count4/5

With 19 tools, the count is slightly high but reasonable for the server's comprehensive scope covering QR generation, short links, templates, analytics, and landing pages. Each tool serves a specific function, though it might feel heavy for simpler use cases, but it aligns well with the feature-rich domain.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for QR codes, short links, templates, and landing pages, including creation, retrieval, updating, deletion, and analytics. There are no obvious gaps; agents can handle all core workflows from generation to management and tracking without dead ends.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Dynamic QR code platform for AI agents. Create, customize, and track QR codes without regenerating images. 37 tools covering 11 QR types (URL, vCard, WiFi, event…).
    37
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    QrVerloz lets AI agents create QR codes instantly — no account needed, active for 90 days, and claimable at any time to make them permanent. Retarget the destination URL whenever you need, without reprinting.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables creation of short links, dynamic QR codes, UTM templates, and hosted vCards with click/scan analytics through natural language conversations.
    100
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qr-maker-io/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server