# SkanQRCode

Checks URLs and IP addresses before an agent opens or fetches a link. Useful for links found in email, chat, QR codes, or other untrusted content.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: Skanqrcode
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Skanqrcode/sdk-examples/tree/HEAD/mcp/server
- Updated: 2026-10-07
- HTML: https://affpapa.org/en/nevibecode/mcp/skanqrcode

## What it does

SkanQRCode sends a URL or IP address to its API and returns a verdict with an action: block the request, warn the user, or allow it. An agent can check a link before fetching it. Each `check_url` call uses one unit of the monthly quota; `get_usage` reports usage and remaining quota without consuming a unit.

The server runs locally over stdio. It needs Node.js 20 or later and an API key set as `SKANQRCODE_API_KEY`; without the key, checks cannot run. The server is read-only, so allow and block lists are managed in the dashboard. An `sk_test_` key is for testing, while production use requires an `sk_live_` key from a paid plan.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `SKANQRCODE_API_KEY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add mcp-server -e SKANQRCODE_API_KEY=<SKANQRCODE_API_KEY> -- npx -y @skanqrcode/mcp-server
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add server --env SKANQRCODE_API_KEY=<SKANQRCODE_API_KEY> -- npx -y @skanqrcode/mcp-server
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "server": {
            "command": "npx",
            "args": [
                "-y",
                "@skanqrcode/mcp-server"
            ],
            "env": {
                "SKANQRCODE_API_KEY": "<SKANQRCODE_API_KEY>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@skanqrcode/mcp-server"
            ],
            "env": {
                "SKANQRCODE_API_KEY": "<SKANQRCODE_API_KEY>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e SKANQRCODE_API_KEY=<SKANQRCODE_API_KEY> server npx -y @skanqrcode/mcp-server
```
Replace <…> with your own values

## When to use it
- check a URL before following it
- evaluate an IP address for safety
- ask the user before opening a link marked `warn`
- check remaining monthly quota

## Example prompts
- Check this URL with SkanQRCode before opening it.
- Assess this IP with SkanQRCode and follow the returned action.
- Show me the remaining SkanQRCode quota for this month.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 392262
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33989
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89609
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81163
- [Front-End Checklist](https://affpapa.org/en/nevibecode/mcp/front-end-checklist.md) — MCP server · ★ 74569
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89899

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
