Skip to main content
Glama
benswel

QR for Agent

bulk_create_from_csv

Generate multiple QR codes simultaneously by importing CSV data. Create up to 500 codes with customizable options like colors, styles, and expiration dates from spreadsheet content.

Instructions

Create up to 500 QR codes from CSV data. Pro plan required. Send the CSV content as a string. Required column: target_url. Optional columns: label, format, type, foreground_color, background_color, dot_style, corner_style, frame_style, frame_text, expires_at. Returns all created QR codes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
csv_contentYesCSV content as a string with header row. Example: "target_url,label\nhttps://example.com,My QR\nhttps://other.com,Other QR"

Implementation Reference

  • The tool `bulk_create_from_csv` is defined in `packages/mcp/src/tools.ts`. It includes a schema for `csv_content` and a handler that calls `apiRequest` with the POST method to `/api/qr/bulk/csv`.
    bulk_create_from_csv: {
      description:
        "Create up to 500 QR codes from CSV data. Pro plan required. Send the CSV content as a string. " +
        "Required column: target_url. Optional columns: label, format, type, foreground_color, background_color, " +
        "dot_style, corner_style, frame_style, frame_text, expires_at. Returns all created QR codes.",
      inputSchema: z.object({
        csv_content: z
          .string()
          .describe(
            'CSV content as a string with header row. Example: "target_url,label\\nhttps://example.com,My QR\\nhttps://other.com,Other QR"'
          ),
      }),
      handler: async (input: { csv_content: string }) => {
        return apiRequest("/api/qr/bulk/csv", {
          method: "POST",
          body: { csv_content: input.csv_content },
        });
      },
    },
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 the 500-item limit, Pro plan requirement, and that it 'Returns all created QR codes.' However, it omits error handling behavior (e.g., partial failures vs. atomic transactions), idempotency, and specific auth scope requirements beyond the Pro plan mention.

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 action and limit, followed by prerequisites, input instructions, column specifications, and return value. Every sentence provides essential information without redundancy; the column list is dense but necessary.

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 single-parameter schema and lack of output schema, the description adequately covers the CSV structure requirements and mentions the return value. It appropriately documents the rich set of QR styling options available within the CSV. Minor gap regarding error response format.

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?

While the schema has 100% coverage describing csv_content as a CSV string, the description adds substantial value by enumerating all valid columns (target_url, label, format, dot_style, etc.), effectively documenting the implicit schema of the CSV content itself.

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 opens with 'Create up to 500 QR codes from CSV data' providing a specific verb (Create), resource (QR codes), distinct input method (CSV), and scale limit (500). This clearly distinguishes it from siblings like bulk_create_qr_codes (likely JSON/array-based) and individual create_* tools.

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 states the prerequisite 'Pro plan required' and specifies the input format constraints (required column: target_url; optional columns listed). However, it lacks explicit guidance on when to choose this over bulk_create_qr_codes or when to prefer individual creation tools.

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

Install Server

Other Tools

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/benswel/qr-agent-core'

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