QRMint
Server Details
Free styled QR code generator API. Create QR codes with custom colors, logos, and frame templates. Supports URL, WiFi, Email, Phone, SMS. No API keys required.
- 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
Score is being calculated. Check back soon.
Available Tools
4 toolsgenerate_qrBInspect
Generate a styled QR code image. Supports custom colors, gradients, module styles (square, rounded, dots, classy-rounded), error correction, and frame templates.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data to encode (URL, text, WiFi, email, phone, or SMS) | |
| size | No | Image size in pixels (default: 512) | |
| style | No | Module shape (default: square) | |
| format | No | Output format (default: png) | |
| margin | No | Quiet zone margin (default: 4) | |
| frameId | No | Frame template ID from list_frames | |
| background | No | Background hex color without # (default: ffffff), or "transparent" | |
| foreground | No | Foreground hex color without # (default: 000000) | |
| frameLabel | No | Custom text label for the frame (overrides default frame text, max 50 chars) | |
| gradientType | No | Gradient type for foreground (overrides foreground color) | |
| gradientAngle | No | Gradient angle in degrees for linear gradients (default: 0) | |
| gradientColors | No | Comma-separated hex colors without # for gradient (2-4 colors, e.g., "ff0000,0000ff") | |
| errorCorrectionLevel | No | Error correction level (default: M) |
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 of behavioral disclosure. It identifies the output as an 'image' but does not specify the return format (binary data vs. URL), nor does it clarify side effects, rate limits, or the dependency on 'list_frames' for valid frame IDs. It adequately describes functional capabilities but lacks operational behavior details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficiently structured sentence. The main clause 'Generate a styled QR code image' presents the core action upfront, while the subordinate clause 'Supports...' lists key capabilities without redundancy. Every phrase serves a distinct purpose (scope definition + feature enumeration).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters and no output schema, the description should disclose the return format or image location. While it mentions 'frame templates', it does not explicitly state that 'list_frames' must be called first. The description is sufficient for basic invocation but incomplete regarding output handling and prerequisite workflows for a moderately complex generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description adds value by semantically grouping parameters into conceptual categories: 'custom colors' (foreground/background), 'gradients' (gradientType/angle/colors), 'module styles' (style), and 'frame templates' (frameId). This thematic mapping helps the agent understand parameter relationships beyond the schema's individual field 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 the tool 'Generate[s] a styled QR code image' with specific verb and resource. It distinguishes the scope (styled) via enumeration of styling capabilities (colors, gradients, module styles). However, it fails to explicitly differentiate from sibling tool 'generate_typed_qr', leaving ambiguity about which generator to select.
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?
No guidance is provided on when to use this tool versus 'generate_typed_qr' or other alternatives. It omits the prerequisite workflow that 'frameId' requires calling 'list_frames' first to obtain valid template IDs, despite the schema mentioning this dependency.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_typed_qrAInspect
Generate a structured QR code from typed data (WiFi credentials, vCard contact, Email, Phone, SMS, Calendar Event, EPC payment, or Geographic location). Returns a QR code image.
| Name | Required | Description | Default |
|---|---|---|---|
| bic | No | EPC: BIC/SWIFT code (8 or 11 chars) | |
| end | No | Event: End date/time in ISO 8601 format | |
| url | No | vCard: Website URL | |
| body | No | Email: Message body | |
| iban | No | EPC: IBAN (required for epc type, e.g., DE89370400440532013000) | |
| name | No | EPC: Beneficiary name (required for epc type, max 70 chars) | |
| size | No | Image size in pixels (default: 512) | |
| ssid | No | WiFi: Network name (required for wifi type) | |
| text | No | EPC: Unstructured remittance info (max 140 chars, mutually exclusive with reference) | |
| type | Yes | Structured data type | |
| No | vCard/Email: Email address (required for email type) | ||
| label | No | Geo: Location label shown in maps app (max 100 chars) | |
| phone | No | vCard: Phone number | |
| start | No | Event: Start date/time in ISO 8601 format (required for event type) | |
| style | No | Module shape (default: square) | |
| title | No | vCard/Event: Job title or event title | |
| amount | No | EPC: Amount in EUR (0.01–999999999.99) | |
| format | No | Output format (default: png) | |
| hidden | No | WiFi: Hidden network | |
| margin | No | Quiet zone margin (default: 4) | |
| number | No | Phone/SMS: Phone number (required for phone/sms types) | |
| frameId | No | Frame template ID from list_frames | |
| message | No | SMS: Message text | |
| purpose | No | EPC: SEPA purpose code (max 4 chars) | |
| subject | No | Email: Subject line | |
| lastName | No | vCard: Last name (required for vcard type) | |
| latitude | No | Geo: Latitude (required for geo type, -90 to 90) | |
| location | No | Event: Location | |
| password | No | WiFi: Network password | |
| firstName | No | vCard: First name (required for vcard type) | |
| longitude | No | Geo: Longitude (required for geo type, -180 to 180) | |
| reference | No | EPC: Structured creditor reference (max 35 chars, mutually exclusive with text) | |
| background | No | Background hex color without # (default: ffffff), or "transparent" | |
| encryption | No | WiFi: Encryption type (default: WPA) | |
| foreground | No | Foreground hex color without # (default: 000000) | |
| frameLabel | No | Custom text label for the frame (overrides default frame text, max 50 chars) | |
| description | No | Event: Description | |
| organization | No | vCard: Organization name | |
| errorCorrectionLevel | No | Error correction level (default: M) |
Tool Definition Quality
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 states 'Returns a QR code image' indicating the output modality, but fails to disclose error handling, whether the image is returned as base64/binary data, rate limits, or validation behavior when type-specific required fields are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence front-loads the core action and supported types; the second clarifies the output format. Every word 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?
Given 39 parameters across 8 distinct data types with conditional requirements, the description is adequate but minimal. It compensates for the missing output schema by stating an image is returned, but lacks guidance on the conditional nature of parameter requirements (though the schema handles this) and output format specifics (PNG/SVG options).
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?
With 100% schema coverage, the baseline is high. The description adds valuable semantic context by mapping the abstract 'type' parameter to concrete use cases (WiFi credentials, vCard contact, etc.), helping the agent understand which parameters to use for each scenario, though it doesn't add syntax details 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?
Excellent specificity: 'Generate a structured QR code from typed data' clearly distinguishes this from sibling 'generate_qr' by emphasizing structured formats. The parenthetical enumeration of supported types (WiFi, vCard, Email, etc.) precisely defines the tool's domain.
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 implies usage by listing supported data types, suggesting when to select this tool (for structured data like contacts or WiFi credentials). However, it lacks explicit guidance contrasting this with 'generate_qr' or prerequisites like calling 'list_frames' before using the frameId parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_framesAInspect
List all available QR code frame templates
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full disclosure burden. It establishes scope ('all available') and domain ('QR code frame templates') but fails to describe return format, pagination behavior, or what constitutes a frame template—critical gaps given no output schema exists.
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?
Single sentence with no wasted words; front-loaded with verb. Efficient for a zero-parameter tool, though the brevity comes at the cost of omitting usage context and return value description that would justify a fifth point.
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?
Adequate for identifying the operation, but incomplete given no output schema exists. The description should describe what a frame template contains (fields, format) or the return structure. Lacks workflow context (prerequisites for using the listed frames).
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?
Zero parameters present, which per rubric establishes a baseline of 4. The description implies no filtering capabilities (list 'all'), which aligns with the empty schema, but does not add syntax guidance since none is 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?
Specific verb 'List' + resource 'QR code frame templates' clearly identifies the operation. The term 'frames' distinguishes it from sibling 'list_types' (which lists types, not frames), and 'List' distinguishes it from 'generate_qr' and 'generate_typed_qr' siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to invoke this tool versus alternatives. It does not mention that this should be called before generate_qr to select a frame template, nor does it clarify the relationship to list_types despite the overlapping 'list' verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_typesAInspect
List all supported structured QR data types (WiFi, vCard, Email, Phone, SMS, Event, EPC, Geo) with their required and optional fields
| 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 provided, the description carries the full burden of behavioral disclosure. It effectively specifies the return payload structure (types with their required and optional fields), which is the critical behavioral aspect for this zero-parameter introspection tool. It does not, however, mention safety properties like idempotency or read-only nature.
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?
Single sentence is front-loaded with the action verb. Every clause earns its place: the parenthetical examples clarify scope, and 'with their required and optional fields' previews the return structure. No redundant or filler text present.
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 zero parameters, no annotations, and no output schema, the description achieves completeness by explicitly documenting what the return value contains (the supported types and their field specifications), effectively substituting for a missing output schema definition.
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?
Input schema has zero parameters, establishing a baseline of 4. The description appropriately does not discuss parameters (as none exist), maintaining that baseline without adding parameter-specific semantics that would be impossible given the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'List' with clear resource 'structured QR data types' and enumerates examples (WiFi, vCard, etc.). It distinguishes from sibling generate_typed_qr by being a discovery/metadata tool rather than a generation tool, and from list_frames by targeting data types rather than visual frames.
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 implies this is a discovery tool for structured QR types, suggesting use before generate_typed_qr, but does not explicitly state when to use it versus alternatives or prerequisites. The relationship to generate_typed_qr must be inferred from the naming and 'types' reference.
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!