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.
Available Tools
11 toolspicdefense_check_image_riskAInspect
Run PicDefense's core image-risk analysis on an image URL. Returns reverse-image-search findings and a "picrisk" score indicating how widely / riskily the image appears online.
This is the primary tool for assessing whether an image has been misused or scraped. Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses a key behavioral trait: 'Consumes account credits,' which is important side-effect information. It also clarifies the nature of the output (reverse-image-search findings and risk score). There is no contradiction with annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and expected output. The second sentence adds positioning and cost without redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the tool's purpose, return value, primary use case, and cost implication. This is sufficiently complete for an agent to decide when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full coverage for the single 'url' parameter, including format and an example. The description adds no additional parameter-specific guidance beyond calling it an 'image URL,' so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Run' and clearly identifies the resource ('image URL'). It states the return value ('reverse-image-search findings and a "picrisk" score') and positions the tool as the 'primary tool' for assessing image misuse/scraping, which distinguishes it from sibling image-analysis tools like detect_face or extract_exif.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool: 'This is the primary tool for assessing whether an image has been misused or scraped.' It also adds a practical consideration ('Consumes account credits'). However, it does not explicitly mention alternatives or when NOT to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_detect_faceAInspect
Detect whether an image contains a human face. Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses a key behavioral trait: 'Consumes account credits.' However, it does not mention return format, error behavior, or rate limits, and only implies a read-only operation via the verb 'detect.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, followed by a concise cost warning. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers purpose and an important side effect (credits). There is no output schema, so the return value is only implied ('whether'), but this is acceptable for a boolean-style detection tool. Missing error/edge-case details prevent a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is already detailed (format, example). The description adds no extra semantics beyond confirming that the image is analyzed for faces, which is not necessary given the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('detect') and clearly identifies the resource ('whether an image contains a human face'). This distinguishes it from sibling tools such as picdefense_detect_logo and picdefense_detect_landmark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: when you need to determine if an image contains a human face. It does not explicitly mention alternatives or when not to use it, but the purpose is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_detect_labelsAInspect
Detect descriptive labels for the contents of an image (objects, scenes, concepts). Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose an important behavioral trait: 'Consumes account credits,' which indicates a cost/limit impact. However, it omits other behavioral details such as return format, whether the operation is read-only, or potential failure modes, leaving the agent with partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with the core purpose and followed by a crucial cost caveat. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers purpose and the credit cost, but with no output schema, it fails to mention what the response contains (e.g., labels, confidence scores). This missing information is relevant for an agent deciding how to use the result, so the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the single parameter with a clear description: 'Publicly accessible image URL to analyze (http/https).' Since schema coverage is 100%, the tool description need not repeat this; it adds no additional parameter-level meaning. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Detect' and names the resource 'descriptive labels for the contents of an image,' with explicit scope '(objects, scenes, concepts).' This clearly distinguishes it from sibling tools like picdefense_detect_face, picdefense_detect_landmark, and picdefense_detect_logo, which target more specific entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its general-purpose label detection but does not explicitly state when to prefer this tool over alternatives, nor does it mention exclusions or provide alternative tool recommendations. It says what the tool does but not when it's the best choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_detect_landmarkAInspect
Detect whether an image contains a recognizable landmark (and where). Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that the tool 'Consumes account credits,' which is an important operational trait. However, it does not explain error handling, image format constraints, or the precise return structure beyond 'and where,' leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences: the first states the purpose, the second notes credit consumption. Every word serves a function, and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the core purpose and cost but lacks usage context, detailed output semantics, and limitations. It is minimally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the url parameter, including format and example. The description adds no extra meaning about parameters, so it stays at the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Detect whether an image contains a recognizable landmark (and where).' This provides a specific verb and resource, distinguishing it from sibling tools like detect_face and detect_logo by focusing on landmarks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There is no mention of use cases, exclusions, or references to sibling tools. The note about consuming credits is a constraint, not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_detect_logoAInspect
Detect whether an image contains a brand logo. Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only discloses that the tool consumes credits, which is a useful behavioral trait. It does not mention error behavior, return format, or any side effects beyond credit consumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two short sentences, front-loaded with the core action and followed by cost information. No filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter detection tool, the description covers the purpose and cost, but omits output behavior entirely—no indication of return type, success/failure conditions, or whether the result is a boolean. Given no output schema exists, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the 'url' parameter with format and example. The description adds no parameter-specific meaning beyond the schema, so the baseline score of 3 applies given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Detect' and explicitly identifies the target as 'brand logo' in an image, distinguishing it from sibling tools like face, landmark, or watermark detection. The addition of 'Consumes account credits' adds a further clarifier but doesn't detract from the primary purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context is provided—there is no mention of when to use this tool vs alternatives, no exclusions, and no prerequisites beyond the URL. The description only states the action and credit consumption, leaving the agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_detect_watermarkAInspect
Detect a visible stock/photographer watermark in an image. Returns whether one was detected, a confidence score, and the identified source (e.g. a stock agency, "photographer", or "copyright"). Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds useful context by stating the tool consumes account credits, limits detection to visible watermarks, and lists return values (detection flag, confidence score, source). However, it omits details about error handling, edge cases, or any limitations beyond "visible," leaving some operational transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, purpose first, then output and cost. Every sentence adds value with no unnecessary words, achieving high conciseness and clear front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description sufficiently covers the output fields and cost. It could improve by hinting at when to use it (e.g., checking credits via get_credits first), but the essential practical details are present. The omission of error/edge-case behavior is minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter (url) with a clear description and example. The tool description does not add extra semantic detail about the parameter, so it relies entirely on the schema. Baseline 3 applies given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: "Detect a visible stock/photographer watermark in an image." This clearly distinguishes it from sibling tools like picdefense_detect_logo or picdefense_detect_face by the unique task of watermark detection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by specifying the watermark type (visible stock/photographer) and notes that it consumes account credits, implying a cost consideration. However, it does not explicitly state when to use this tool versus alternatives such as detect_logo or provide exclusions, so the guidance is partially implied but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_extract_exifAInspect
Extract EXIF metadata (camera, timestamps, GPS, etc.) embedded in an image at the given URL. Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the operation consumes account credits, which is valuable behavioral information. However, it doesn't mention return format, potential failures (e.g., no EXIF data), or any other effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action, includes examples of metadata types, and adds a credit-cost warning without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers the main purpose, input requirements, and a non-obvious side effect (credit consumption). It lacks return-value details but is reasonably complete for tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter 'url' with a clear example. The description adds no additional parameter-level meaning, so the baseline score of 3 applies due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Extract') and identifies a clear resource ('EXIF metadata embedded in an image at the given URL'). It clearly distinguishes this tool from siblings like face detection or text extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use when you need EXIF metadata from a publicly accessible image URL. It doesn't explicitly name alternatives or exclusions, but the tool's purpose is unambiguous relative to its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_extract_textAInspect
Extract text from an image via OCR. Returns the detected full text, individual words, and a "truncated" flag (text is capped for very text-dense images). Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It discloses the truncated flag for text-dense images and the fact that it consumes account credits, which are useful behavioral details. However, it omits error handling, rate limits, or authentication requirements, preventing a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and every sentence adds value (return structure, truncation, cost). No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description thoroughly covers the return values and a key side effect (credit consumption). Minor gaps such as supported image formats or size limits prevent a top score, but overall it is quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single 'url' parameter completely (100% schema description coverage), so the description need not add parameter-level detail. It neither adds nor detracts from the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts text from an image via OCR, and explicitly lists the output components (full text, individual words, truncated flag). This distinguishes it from sibling tools like detect_face or detect_labels, which serve different image-analysis purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for OCR text extraction, but gives no explicit guidance on when to choose this tool over siblings, nor any exclusions or alternative recommendations. The usage context is clear from the verb 'extract' but not explicitly elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_find_backlinksAInspect
Find backlinks for an image — other web pages where the image appears. Useful for tracing where a photo has been republished. Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It adds two important behaviors: the tool traces republished images ('other web pages where the image appears') and it consumes account credits. This is beyond the schema, though it doesn't mention output format or potential limits, which would be helpful for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and effectively front-loaded: the first sentence states the core purpose, the second provides a use case and cost implication. There is no wasted wording, and every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with a single parameter and no output schema, the description covers all essential aspects: what it does, its use case, and resource consumption. The schema covers URL requirements, and the sibling tools are unrelated, so no further context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a comprehensive description for the single parameter (url), covering its type, format, and example. The tool description adds no additional parameter semantics, so the baseline of 3 applies given the 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Find backlinks for an image' and defines what backlinks are ('other web pages where the image appears'). This specific verb+resource distinguishes it from sibling tools, which all focus on detection/extraction rather than backlink discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Useful for tracing where a photo has been republished.' This implies when to use the tool, though it doesn't explicitly discuss alternatives or when not to use it. The sibling tools are all distinct operations, so there's no direct alternative to contrast with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_get_creditsAInspect
Get the remaining credit balance on your PicDefense.io account.
Most analysis tools consume credits per call — check this first if calls start failing with "insufficient credits".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It adds useful behavioral context by explaining that other analysis tools consume credits, implying this tool is a read-only balance check. It does not explicitly state 'does not consume credits', but the framing makes that clear enough for this simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences only. The first sentence is a front-loaded purpose statement, the second adds a practical usage hint. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only balance retrieval tool with no output schema, the description fully covers what the agent needs to know: what the tool does and when to use it. The sibling context and credit-consumption note provide a complete mental model for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly avoids fabricated details about parameters. It adds no semantic noise, and the empty schema is consistent with the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Get the remaining credit balance on your PicDefense.io account.' This unambiguously distinguishes it from the sibling image analysis tools, making it immediately clear that this is an account utility, not an analysis tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage context: 'check this first if calls start failing with "insufficient credits"'. This tells the agent exactly when to invoke it, covering a common failure mode. No alternatives are needed as it is a unique utility among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picdefense_safesearchAInspect
Assess the content safety of an image (adult, violence, racy, medical, spoof likelihoods) via SafeSearch. Consumes account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible image URL to analyze (http/https), e.g. https://example.com/photo.jpg |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool consumes account credits, which is a useful behavioral trait absent from annotations. However, it does not state whether the operation is read-only, potential failure modes, or what happens to the image, leaving gaps given no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys purpose and a key behavior without redundancy. The typo 'adlult' is a minor quality issue but does not affect structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the safety categories assessed, which implicitly covers expected output fields, and mentions credit consumption. However, it does not explicitly describe the return format or any prerequisites, which would be needed given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the url parameter with 100% coverage, so the description adds no additional parameter semantics. The description's mention of 'image' aligns with the url parameter but adds no new detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: assessing image content safety for categories like adult, violence, racy, medical, and spoof, using SafeSearch. This is a specific verb-resource pair and distinguishes it from siblings like face detection or text extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for content safety assessment but provides no explicit guidance on when to use it over alternatives such as picdefense_check_image_risk. It does not mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v1.0.1- First observed
picdefense_check_image_risk - First observed
picdefense_detect_face - First observed
picdefense_detect_labels - First observed
picdefense_detect_landmark - First observed
picdefense_detect_logo - First observed
picdefense_detect_watermark - First observed
picdefense_extract_exif - First observed
picdefense_extract_text - First observed
picdefense_find_backlinks - First observed
picdefense_get_credits - First observed
picdefense_safesearch
TDQS
Scored across 11 tools
Each tool targets a distinct aspect of image analysis: risk, EXIF, faces, landmarks, logos, content safety, backlinks, labels, OCR, watermark, and credits. The descriptions clearly delineate overlapping concepts like reverse-image-search findings vs. dedicated detection tools, so an agent can unambiguously select the right one.
All tool names follow the 'picdefense_<verb_noun>' pattern (e.g., extract_exif, detect_face, find_backlinks) with a consistent prefix, but 'safesearch' deviates as a single compound noun rather than a verb_noun construction. This minor inconsistency does not hinder readability.
With 11 tools, the server achieves a well-scoped balance—enough to cover the full spectrum of image risk and detection features without overwhelming the agent. Each tool earns its place and there is no apparent bloat.
The tool surface comprehensively covers the image-risk domain: credit management, core risk scoring, EXIF, face/landmark/logo/watermark detection, content safety, backlinks, labels, and OCR. No obvious lifecycle or analytical gaps exist for typical use cases.
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 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…
Create images & video from any MCP agent — 17 models, spend limits, one URL.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseAqualityDmaintenanceModel Context Protocol server that enables Claude Desktop (or any MCP client) to fetch web content and process images appropriately.1277MIT
- 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.312521MIT
- 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
- AlicenseNot gradedqualityDmaintenanceProvides 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
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