Skip to content

MCP server setup

Point your client at https://app.qrsalt.com/api/mcp and it can use your QR codes as tools. Nothing to install: sign in with QRSalt, or send an API key if your client can't sign in.

Connection details

SettingValue
Server URLhttps://app.qrsalt.com/api/mcp
TransportStreamable HTTP. The server keeps no session between requests.
Protocol revision2026-07-28. A client that opens with initialize gets the older revision it asks for.
Name in your clientAnything you like. The examples use qrsalt.
Sign-inSign in with QRSalt: OAuth 2.1 with PKCE and dynamic client registration.
API key headerAuthorization: Bearer qr_live_YOUR_KEY

Replace qr_live_YOUR_KEY with a key from Dashboard → API. Give the assistant a key of its own, so revoking it stops nothing else.

Claude app (web and desktop)

Add the server as a custom connector and sign in. No key needed.

  1. Open Customize → Connectors, choose Add, then Add custom connector.
  2. Give it a name and paste the server URL below.
  3. Keep sign-in on. Under OAuth client, choose Register automatically, then Add.
  4. Sign in on the QRSalt page that opens and choose the workspace.
https://app.qrsalt.com/api/mcp

On Team and Enterprise, an owner adds the connector in Organization settings → Connectors first. To use a key instead, choose No sign in and add the header under Request headers.

Checked against the Claude help centre on custom connectors, read 20 October 2026.

Claude Code

One command, run in the folder of the project you want the server in.

With sign-in

claude mcp add --transport http qrsalt https://app.qrsalt.com/api/mcp
  1. Run the command.
  2. Start Claude Code, type /mcp, choose qrsalt and sign in.

With an API key

claude mcp add --transport http qrsalt https://app.qrsalt.com/api/mcp --header "Authorization: Bearer qr_live_YOUR_KEY"

It's one line on purpose: a trailing backslash breaks the paste in PowerShell and cmd.

Checked against the Claude Code docs on MCP, read 20 October 2026.

Cursor

Add the server to .cursor/mcp.json for one project, or ~/.cursor/mcp.json for all of them.

With sign-in

{
  "mcpServers": {
    "qrsalt": {
      "url": "https://app.qrsalt.com/api/mcp"
    }
  }
}
  1. Save the file.
  2. Open Settings → MCP and connect. Cursor opens the QRSalt sign-in page.

With an API key

{
  "mcpServers": {
    "qrsalt": {
      "url": "https://app.qrsalt.com/api/mcp",
      "headers": {
        "Authorization": "Bearer qr_live_YOUR_KEY"
      }
    }
  }
}

Keep a file that holds a key out of version control. Merge the block with any servers already listed.

Checked against the Cursor docs on MCP, read 20 October 2026.

VS Code

Add the server to .vscode/mcp.json and use it from the chat pane in Agent mode.

With sign-in

{
  "servers": {
    "qrsalt": {
      "type": "http",
      "url": "https://app.qrsalt.com/api/mcp"
    }
  }
}
  1. Save the file.
  2. Press Start above the server entry and sign in.

With an API key

{
  "inputs": [
    {
      "type": "promptString",
      "id": "qrsalt-key",
      "description": "QRSalt API key",
      "password": true
    }
  ],
  "servers": {
    "qrsalt": {
      "type": "http",
      "url": "https://app.qrsalt.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:qrsalt-key}"
      }
    }
  }
}

VS Code asks for the key when you press Start and stores it itself. The file only refers to it, so you can commit it.

Checked against the VS Code MCP configuration reference, read 20 October 2026.

Other clients

Any client that speaks MCP over Streamable HTTP works. If it supports MCP sign-in, give it the URL alone; if not, add the header.

https://app.qrsalt.com/api/mcp
Authorization: Bearer qr_live_YOUR_KEY

Tools

13 tools, in the order tools/list returns them. A client only sees the ones its credential's scopes and plan allow.

ToolDoesScopeChanges dataPlan
list_codesList QR codesreadNoStarter and up
get_codeGet a QR codereadNoStarter and up
list_foldersList foldersreadNoStarter and up
get_scan_analyticsGet scan analyticsreadNoStarter and up
get_code_imageGet a code’s imagereadNoStarter and up
render_qr_codeRender a QR coderenderNoAny, Free included
read_qr_imageRead a QR imagerenderNoAny, Free included
create_codeCreate a QR codewriteYesStarter and up
update_codeUpdate where a code pointswriteYesStarter and up
create_short_linkCreate a short linkwriteYesStarter and up
set_gs1_linkGive a code a GS1 Digital LinkwriteYesStarter and up
remove_gs1_linkTake a code’s GS1 Digital Link awaydeleteYesStarter and up
delete_codeDelete a QR codedeleteYesStarter and up

Both delete tools also need the code's exact name or short-link ending in confirm.

Sign-in and scopes

QuestionAnswer
Who can connectA workspace owner or admin
Acts asThe person who signed in, in the workspace they chose
Ticked for youRender images, Read, Create and change. Delete is never pre-ticked.
Access token1 hour. The client refreshes it.
Refresh token90 days, replaced on every use
Ends whenYou revoke it in Dashboard → API → Connected apps, or the person leaves or loses admin
Discoveryhttps://app.qrsalt.com/.well-known/oauth-protected-resource/api/mcp

Building your own client? The full flow, with endpoints and parameters, is in Sign in with QRSalt.

Limits

LimitValue
Requests a minute600 per credential, or 60 on a plan without API access
Monthly countEach tool call counts as one API request. Listing the tools is free. Allowance by plan
Tool list cacheClients are told to keep it for 60 seconds at most
Imagesread_qr_image takes the file as Base64. No tool fetches a URL.
Out of reachDesign, routing rules, custom domains, webhooks, team and billing

Troubleshooting

What you seeWhyFix
Connected, but no toolsThe key is missing, wrong or revoked. The server lists nothing without a valid credential.Paste the key again, or sign in again.
Only render_qr_code and read_qr_imageThe workspace is on Free, or the key only has Render images.Move to Starter, or make a key with Read and Create and change.
A tool says a scope is missingThe credential doesn’t carry that scope.Make a key with the box ticked, or reconnect and tick it.
New tools don’t appearThe client still holds the old list.Wait a minute, or reconnect an older client.
No tools and a suspension noticeThe workspace is suspended.Email support@qrsalt.com.
429 errorsThe per-minute or monthly limit is spent.Wait for the reset time in the error.