Skip to main content
Glama
README.md
# qrcode-pub-mcp

šŸ¤– **Built by the makers of [Agent!](https://github.com/AgentiLoop/Agent)**, an autonomous macOS agent. 🌐 [agentiloop.ai](https://agentiloop.ai)


MCP server for [QRCode.Pub](https://qrcode.pub/?ref=github-mcp) tools, runnable with one command and no API key:

| Tool | What it does | Price |
|---|---|---|
| `qr_code` | QR code image (PNG or SVG) for any text or link — returned inline plus a stable image URL | free |
| `page_to_markdown` | Fetch a public web page → title, description, clean Markdown, links (deterministic, no model call) | $0.01 USDC via x402 |
| `page_metadata` | Page metadata: title, description, canonical, language, OpenGraph/Twitter cards, icons, JSON-LD | $0.005 USDC via x402 |
| `host_file` | Upload a file (≤ 5 MB: png, jpeg, webp, gif, pdf, json, txt, md, csv) → public URL `https://qrcode.pub/f/<id>` for 30 days | $0.01 USDC via x402 |

This package is a dependency-free **stdio bridge** (Node 18+, ~60 lines) to the hosted Streamable-HTTP server at `https://qrcode.pub/mcp`. Clients that speak Streamable HTTP natively can skip the bridge and use that URL directly.

## Install

```bash
npx -y github:AgentiLoop/qrcode-pub-mcp        # runs the stdio bridge
```

### Claude Code

```bash
claude mcp add qrcode-pub -- npx -y github:AgentiLoop/qrcode-pub-mcp
# or, no bridge:
claude mcp add --transport http qrcode-pub https://qrcode.pub/mcp
```

### Claude Desktop / Cursor / Windsurf / Cline (stdio)

```json
{
  "mcpServers": {
    "qrcode-pub": {
      "command": "npx",
      "args": ["-y", "github:AgentiLoop/qrcode-pub-mcp"]
    }
  }
}
```

### Cursor / VS Code / any Streamable-HTTP client (no bridge)

```json
{
  "mcpServers": {
    "qrcode-pub": { "type": "http", "url": "https://qrcode.pub/mcp" }
  }
}
```

### Verify

```bash
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx -y github:AgentiLoop/qrcode-pub-mcp
```

## Paid tools and x402

The three paid tools cost cents, paid in USDC with the open [x402](https://x402.org) protocol (v2, scheme `exact`) on **Base** (`eip155:8453`) or **Solana** mainnet. No account, no key, no subscription:

1. Call the tool without `payment` → the result is `isError: true` with `structuredContent.paymentRequired` (the full x402 `accepts` list: network, asset, amount, `payTo`).
2. Sign one entry with any x402 client (e.g. `@x402/fetch`, `x402-axios`, or the agent's own wallet) and call the tool again with the base64 payment payload as `payment`.
3. The server verifies and settles through the facilitator and returns the result; a 4xx answer is never charged.

The same endpoints are plain HTTP for agents that prefer `fetch` + x402 middleware: `GET /x402/extract?url=…`, `GET /x402/meta?url=…`, `POST /x402/store`. Catalog: `https://qrcode.pub/x402`, OpenAPI: `https://qrcode.pub/openapi.json`.

## Environment

| Variable | Default | Purpose |
|---|---|---|
| `QRCODE_PUB_MCP_URL` | `https://qrcode.pub/mcp` | remote endpoint |
| `QRCODE_PUB_MCP_TIMEOUT_MS` | `60000` | per-request timeout |

## Links

- Docs: https://qrcode.pub/qr-code-api?ref=github-mcp#mcp
- Official MCP registry entry: `pub.qrcode/tools`
- Free QR image API (no MCP needed): `https://qrcode.pub/api/qr?data=https://example.com&size=300`
- Agent skills for the same tools: https://github.com/AgentiLoop/skills

## License

MIT — the bridge is open source; the hosted service terms are at https://qrcode.pub/.

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation4/5

qr_code and host_file are clearly distinct, and page_to_markdown vs page_metadata differ by output (clean Markdown vs structured metadata/OG tags). The two page-fetching tools overlap in the fetch step and could be momentarily confused, but their return contracts are different enough to guide selection.

Naming Consistency4/5

All names use snake_case (qr_code, page_to_markdown, page_metadata, host_file), which is consistent. The verb/noun style varies a bit (noun-only qr_code, noun_to_noun page_to_markdown, verb_noun host_file), but each name is readable and predictable.

Tool Count4/5

Four tools is a compact, well-scoped set for a QR generation plus file-hosting/page-fetching utility. Slightly thin, but each tool earns its place and nothing looks redundant.

Completeness3/5

Generation (qr_code), fetching (page_to_markdown, page_metadata) and upload (host_file) are covered, but host_file returns a delete token with no corresponding delete tool, leaving a dead end for cleanup. No QR decoding or content-size/format management operations either.

Maintenance

ActivityMaintained
ResponsivenessNo issues