Skip to main content
Glama
Ownership verified

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.

Tool Definition Quality

Score is being calculated. Check back soon.

Available Tools

4 tools
generate_qrBInspect

Generate a styled QR code image. Supports custom colors, gradients, module styles (square, rounded, dots, classy-rounded), error correction, and frame templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData to encode (URL, text, WiFi, email, phone, or SMS)
sizeNoImage size in pixels (default: 512)
styleNoModule shape (default: square)
formatNoOutput format (default: png)
marginNoQuiet zone margin (default: 4)
frameIdNoFrame template ID from list_frames
backgroundNoBackground hex color without # (default: ffffff), or "transparent"
foregroundNoForeground hex color without # (default: 000000)
frameLabelNoCustom text label for the frame (overrides default frame text, max 50 chars)
gradientTypeNoGradient type for foreground (overrides foreground color)
gradientAngleNoGradient angle in degrees for linear gradients (default: 0)
gradientColorsNoComma-separated hex colors without # for gradient (2-4 colors, e.g., "ff0000,0000ff")
errorCorrectionLevelNoError correction level (default: M)
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 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bicNoEPC: BIC/SWIFT code (8 or 11 chars)
endNoEvent: End date/time in ISO 8601 format
urlNovCard: Website URL
bodyNoEmail: Message body
ibanNoEPC: IBAN (required for epc type, e.g., DE89370400440532013000)
nameNoEPC: Beneficiary name (required for epc type, max 70 chars)
sizeNoImage size in pixels (default: 512)
ssidNoWiFi: Network name (required for wifi type)
textNoEPC: Unstructured remittance info (max 140 chars, mutually exclusive with reference)
typeYesStructured data type
emailNovCard/Email: Email address (required for email type)
labelNoGeo: Location label shown in maps app (max 100 chars)
phoneNovCard: Phone number
startNoEvent: Start date/time in ISO 8601 format (required for event type)
styleNoModule shape (default: square)
titleNovCard/Event: Job title or event title
amountNoEPC: Amount in EUR (0.01–999999999.99)
formatNoOutput format (default: png)
hiddenNoWiFi: Hidden network
marginNoQuiet zone margin (default: 4)
numberNoPhone/SMS: Phone number (required for phone/sms types)
frameIdNoFrame template ID from list_frames
messageNoSMS: Message text
purposeNoEPC: SEPA purpose code (max 4 chars)
subjectNoEmail: Subject line
lastNameNovCard: Last name (required for vcard type)
latitudeNoGeo: Latitude (required for geo type, -90 to 90)
locationNoEvent: Location
passwordNoWiFi: Network password
firstNameNovCard: First name (required for vcard type)
longitudeNoGeo: Longitude (required for geo type, -180 to 180)
referenceNoEPC: Structured creditor reference (max 35 chars, mutually exclusive with text)
backgroundNoBackground hex color without # (default: ffffff), or "transparent"
encryptionNoWiFi: Encryption type (default: WPA)
foregroundNoForeground hex color without # (default: 000000)
frameLabelNoCustom text label for the frame (overrides default frame text, max 50 chars)
descriptionNoEvent: Description
organizationNovCard: Organization name
errorCorrectionLevelNoError correction level (default: M)
Behavior2/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 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources