Connect Scan Code Pro to an AI assistant

The Scan Code Pro MCP endpoint lets a connected assistant work with your saved codes and recorded scan activity. It supports dynamic URL QR creation, destination updates, PNG/SVG/PDF downloads, batch campaign ZIPs, and PNG print checks.

Endpoint: https://www.scancodepro.com/mcp

An active Business or Enterprise subscription is required. View plans and pricing to get access. This is a custom integration; availability of custom connections depends on your AI client and account. Directory publication and client-specific certification are separate from providing an MCP endpoint.

Connect your account

In a client that supports remote MCP with OAuth, add the endpoint above. Sign in to Scan Code Pro when prompted, return to the connection flow, review the requested permissions and approve. The consent screen shows the requesting application's name and callback address. Registration names are supplied by the application, not a certification by Scan Code Pro.

You can revoke an OAuth connection at Connected apps, including after cancelling a paid subscription. API keys are managed separately in the dashboard. Revocation prevents new requests; it cannot remove files or scan summaries already returned to an assistant.

Codex

Add a remote MCP server and sign in using its OAuth flow:

codex mcp add scancodepro --url https://www.scancodepro.com/mcp
codex mcp login scancodepro --scopes codes:read,codes:write,analytics:read

Alternatively, trusted clients can send an existing dashboard API key using an environment variable:

[mcp_servers.scancodepro]
url = "https://www.scancodepro.com/mcp"
bearer_token_env_var = "SCANCODEPRO_API_KEY"

Set the key in your environment or secret manager. Keep it out of prompts, repository files and URLs. API keys grant all three MCP permissions; use OAuth for a narrower grant.

Claude and Claude Code

In Claude's connector settings, add the endpoint as a custom remote connector and complete OAuth. In Claude Code, add it as an HTTP MCP server:

claude mcp add --transport http scancodepro https://www.scancodepro.com/mcp

Use Claude Code's MCP connection controls to authenticate. The repository also includes a plugin directory at integrations/scancodepro for local plugin testing.

ChatGPT

Use the custom MCP/plugin developer connection flow available to your account, supply the endpoint above, and complete OAuth. Enable the connection in the conversation. A public directory listing is not required for a supported custom connection, but directory installation is not provided by this guide.

What you can ask

  • “Create a saved dynamic QR for this campaign URL and download its PNG.”
  • “Make a campaign from this title/url CSV and give me the ZIP.”
  • “Preview changing the destination of this printed code.”
  • “Show recorded scans for the last seven days.”
  • “Check the PNG for printing at 30 mm wide.”

Tools and permissions

Tool Permission Result
create_code codes:write Saved code ID and dynamic scan URL; a stable request UUID makes retries safe
list_codes codes:read Up to 50 saved codes with a pagination cursor
download_code codes:read PNG image or embedded SVG/PDF file resource
update_destination codes:write Preview, then confirmed update with the expected current destination
scan_summary analytics:read Account or code totals, daily counts and device breakdown for 1–365 days
create_batch codes:write Up to 40 dynamic codes, a ZIP of PNGs and a JSON manifest
validate_print codes:read Exact PNG decode and print assessment for a saved QR or WiFi QR

A destination update affects future scans of an already distributed code. The assistant should show the old and new destinations and obtain your confirmation. Updates fail if the destination changed after review. QR contents, customer titles and destinations are data, not instructions to the assistant.

Batch format and retries

Supply UTF-8 CSV with exactly these columns:

title,url
Front window,https://example.com/window
Reception desk,https://example.com/reception

Quoted commas and escaped quotation marks are supported. Maximum input is 100,000 characters and 40 data rows. Each row creates a dynamic URL QR at 512 pixels with black modules, a white background and a four-module quiet zone.

The entire CSV is validated before the first save. A database or rendering failure can still leave a partially completed batch. Retrying the identical CSV with the same request UUID reuses completed rows. Use a new UUID for a different campaign. The manifest reports row numbers and code IDs; the ZIP contains one PNG per code. Client support for displaying and saving embedded file resources varies.

Usage accounting

MCP tool calls and REST generation requests share the same UTC calendar-month allowance: 1,000 for Business; Enterprise has no monthly cap. Each admitted tools/call request counts once, including a batch or a request with invalid tool input. Initialization, tool discovery, OAuth and requests rejected for authentication or scope do not consume this allowance. Retrying a call consumes another request even when its creation result is reused.

Print validation limits

Validation decodes the exact PNG that download_code returns and compares its payload. For dynamic codes the expected payload is the saved scan URL, not the editable destination. It measures image contrast and quiet-zone clearance and estimates module size using the full print width you specify.

The four-module quiet zone is checked separately from conservative application recommendations for contrast and a 0.4 mm module size. These recommendations are not a certification or a universal minimum. A passing result does not establish print quality, camera compatibility, lighting performance, destination safety or URL availability. Test a physical sample on the devices and material you intend to use. SVG/PDF physical print validation and decorative logo validation are not currently offered.

Generated WiFi images contain the network credentials. They should only be shared with the intended audience. Scan counts represent recorded requests, can include automation, and do not identify the person scanning.