PicDefense.io MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PicDefense.io MCP Servercheck risk of https://example.com/photo.jpg"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PicDefense.io MCP Server
A Model Context Protocol server for the PicDefense.io API — let AI agents run reverse-image risk analysis, EXIF extraction, image backlink discovery, and image content detection (face / landmark / logo / label / SafeSearch) on any image URL.
Features
🔐 Per-user authentication — each connection carries its own PicDefense API token; the server holds no keys
🚀 Dual transport — modern Streamable HTTP (
/mcp) and legacy SSE (/sse)🧰 11 tools covering the full PicDefense API v2
🐳 Docker-ready — production container behind nginx
📖 Built-in docs — Swagger UI at
/docs
Related MCP server: MCP Image Extractor
Tools
Tool | Description |
| Remaining account credit balance |
| Reverse-image risk analysis + picrisk score (core tool) |
| Extract EXIF metadata (camera, timestamps, GPS) |
| Detect a human face in an image |
| Detect a recognizable landmark |
| Detect a brand logo |
| Content-safety (adult/violence/racy/…) assessment |
| Find pages where an image appears |
| Detect descriptive labels for image contents |
| Extract text from an image via OCR |
| Detect a visible stock/photographer watermark (source + confidence) |
All image tools take a single url (a public http/https image URL). Most tools
consume account credits per call — use picdefense_get_credits to check your balance.
Authentication
Every request authenticates with your PicDefense API token, which is your user id and API key joined by a colon:
USERID:APIKEYFind both in your PicDefense.io account settings: https://app.picdefense.io/?returnUrl=https://app.picdefense.io/dashboard/settings
The token is sent as the X-API-TOKEN header to the API (https://app.picdefense.io/api/v2).
Quick start
Hosted server (recommended)
The hosted server runs at https://mcp.picdefense.io. Add it to Claude Code:
# Streamable HTTP (recommended)
claude mcp add -t http picdefense "https://mcp.picdefense.io/mcp" \
--header "X-API-Token: USERID:APIKEY"
# or SSE
claude mcp add -t sse picdefense "https://mcp.picdefense.io/sse?token=USERID:APIKEY"Quick HTTP smoke test:
curl -X POST https://mcp.picdefense.io/mcp \
-H "Content-Type: application/json" \
-H "X-API-Token: USERID:APIKEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Claude Desktop (hosted)
Claude Desktop launches MCP servers as local commands, so reach the hosted server
through the mcp-remote bridge (requires
Node.js installed). See claude_desktop_config.example.json:
{
"mcpServers": {
"picdefense": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.picdefense.io/sse?token=YOUR_USERID:YOUR_APIKEY"
]
}
}
}Edit your claude_desktop_config.json (Settings → Developer → Edit Config), add the
mcpServers block above with your USERID:APIKEY, then fully quit and reopen Claude Desktop.
Testing against a plain-HTTP server (e.g.
http://<host>:6910) instead of HTTPS?mcp-remoteblocks non-HTTPS origins unless the host islocalhost— append"--allow-http"to theargsarray, or reach it over an SSH tunnel tolocalhost.
Local (stdio) via npx — no clone needed
Run the published package directly. Requires Node.js installed.
{
"mcpServers": {
"picdefense": {
"command": "npx",
"args": [
"-y",
"@picdefenseio/mcp-server",
"--api-token",
"USERID:APIKEY"
]
}
}
}You can also pass the token via the PICDEFENSE_API_TOKEN env var instead of --api-token.
Local (stdio) from source
Clone and build, then point Claude Desktop at the built entry point:
git clone https://github.com/rchanllc/picdefenseio-mcp-server.git
cd picdefenseio-mcp-server
npm install
npm run buildThen use "command": "node" with "args": ["/absolute/path/to/dist/index.js", "--api-token", "USERID:APIKEY"].
Configuration
Variable | Default | Description |
| — |
|
|
| API base URL |
|
| Hosted server listen port |
Running the hosted server
Development
npm run dev:sse # tsx watch, auto-reloadProduction (Docker)
# via docker compose
docker compose up --build -d
# or the helper script (handles build + health check)
./deploy.shThe container is named picdefenseio_mcp and listens on port 6910.
HTTP endpoints
Method | Path | Purpose |
GET |
| Health check (used by Docker + CI) |
GET |
| Server + transport info |
GET |
| List available tools |
GET |
| Swagger UI for the underlying API |
GET |
| Open an SSE MCP session |
POST |
| SSE session message channel |
POST |
| Streamable HTTP MCP (header |
Self-hosting
There is no CI/CD in this repo — host it yourself. On your server:
git clone https://github.com/rchanllc/picdefenseio-mcp-server.git
cd picdefenseio-mcp-server
docker compose up --build -d # or: ./deploy.shThe container is named picdefenseio_mcp and listens on 6910. To update,
git pull and re-run docker compose up --build -d.
Front it with nginx at https://mcp.picdefense.io → 127.0.0.1:6910
(proxy_buffering off and a long read timeout are recommended for the /sse path).
Architecture
┌──────────────┐ ┌────────────────────────┐ ┌─────────────────────────┐
│ MCP Client │───▶│ PicDefense MCP Server │───▶│ PicDefense.io API v2 │
│ (Claude etc.)│ │ (port 6910) │ │ app.picdefense.io/api/v2│
└──────────────┘ └────────────────────────┘ └─────────────────────────┘
token (USERID:APIKEY) forwarded as X-API-TOKEN ───────────▶Each connection builds its own API client + MCP server bound to the caller's token, so the service is multi-tenant and stateless with respect to credentials.
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceModel Context Protocol server that enables Claude Desktop (or any MCP client) to fetch web content and process images appropriately.1773MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that extracts images from URLs or base64 data and converts them into a format suitable for LLM analysis, allowing AI models to process and understand visual content.39421MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables fetching and processing images from URLs, local file paths, and numpy arrays, returning them as base64-encoded strings with proper MIME types.121MIT
- Alicense-qualityBmaintenanceProvides image analysis, inspection, cropping, OCR, and comparison capabilities via the Model Context Protocol, allowing AI agents to process and manipulate images using vision models.2MIT
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rchanllc/picdefenseio-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server