AI or Not
Menu

AI Detection MCP

Detect AI-generated images, deepfakes, voice clones, AI music and AI-written text from Claude, Cursor, Codex, VS Code and Windsurf — powered by the AI or Not detection API over the Model Context Protocol.

AI imagesDeepfakesAI videoVoice clonesAI musicAI textBatch scanning

The AI or Not AI detection MCP puts detection right inside your assistant. Once connected, you can ask your AI assistant questions like “Is this image AI-generated?” or “Check this clip for deepfakes” and it will call AI or Not for you — images, video, voice, music and text, plus batch scanning.

PREREQUISITES

An AI or Not API key

Free from your dashboard. Authenticates every request.

uv / uvx (Python 3.10+)

Runs the server and manages Python for you. Install below.

A supported client

Claude Code, Claude Desktop, Cursor, Codex, VS Code or Windsurf.

No uv yet? Install it once — macOS / Linux: curl -LsSf https://astral.sh/uv/install.sh | sh · Windows: irm https://astral.sh/uv/install.ps1 | iex (in PowerShell). Docs: docs.astral.sh/uv.

STEP 1 · API KEY

1

Open the API page in your dashboard, create a key, and copy it. You’ll paste it as AIORNOT_API_KEY in the next step.

STEP 2 · ADD THE SERVER

Pick your tool. Replace your_api_key with the key from Step 1.

One CLI command — available in every project.

  1. Register the server

    -s user makes it global; drop it to scope to the current repo.

    Terminal
    claude mcp add -s user aiornot \
      -e AIORNOT_API_KEY="your_api_key" \
      -- uvx --from "aiornot[mcp]" aiornot-mcp

Keep your key safe

MCP config files store your key in plaintext. Don’t commit them to git (add .cursor/mcp.json, .vscode/mcp.json and .codex/config.toml to .gitignore), prefer user/global scope, restrict permissions with chmod 600, and rotate any key that leaks.

STEP 3 · VERIFY

Fully restart your client, then ask the assistant to validate the token. Expect is_valid: true:

aiornot_check_token →
{ "is_valid": true, "expires_at": null }

Then try a real detection — point your assistant at a file or URL:

  • Is ~/Downloads/photo.jpg AI-generated or a deepfake?
  • Check this clip for deepfakes: https://example.com/clip.mp4
  • Was this written by AI? <paste 250+ words>

AI DETECTION TOOLS OVER MCP

aiornot_check_token

Validate your API key and confirm the connection.

Use aiornot_check_token to verify my AI or Not connection.
aiornot_analyze_image_file

Detect AI-generation, deepfakes, NSFW and quality on a local image.

Is ~/Downloads/photo.jpg AI-generated or a deepfake?
aiornot_analyze_text · _text_file

Detect AI-written text (requires ≥250 words).

Was this essay written by AI? <paste 250+ words>
aiornot_analyze_video_file · _video_url

Detect deepfakes / AI generation in video.

Check this clip for deepfakes: https://example.com/clip.mp4
aiornot_analyze_voice_file · _voice_url

Detect AI-cloned or synthetic speech.

Is this voice note AI-generated? ~/audio/note.wav
aiornot_analyze_music_file · _music_url

Detect AI-generated music.

Is this track AI-made? https://example.com/song.mp3
aiornot_batch_scan

Scan an entire folder for a modality and write JSONL results.

Batch-scan ~/dataset/images for AI images into results.jsonl.
aiornot_batch_csv

Analyze paths or text listed in a CSV and write JSONL results.

Run aiornot_batch_csv over claims.csv (text column) → out.jsonl.

WHAT YOU GET BACK

Real responses from the MCP server (lightly trimmed). Image results include a deepfake verdict with regions of interest and a per-generator breakdown.

analyze_image_file →
{
  "report": {
    "ai_generated": {
      "verdict": "ai",
      "ai": { "is_detected": true, "confidence": 0.977 },
      "generator": {
        "four_o": { "is_detected": true, "confidence": 0.697 },
        "flux":   { "is_detected": false, "confidence": 0.163 }
      }
    },
    "deepfake": {
      "is_detected": true,
      "confidence": 0.930,
      "rois": [{ "bbox": { "x1": 382, "y1": 520, "x2": 569, "y2": 708 } }]
    },
    "nsfw":    { "is_detected": false },
    "quality": { "is_detected": true }
  }
}
analyze_text →
{
  "report": { "ai_text": { "is_detected": true, "confidence": 0.99999 } },
  "metadata": { "word_count": 100, "character_count": 756, "token_count": 119 }
}

TROUBLESHOOTING

“uvx: command not found”

Install uv (it ships uvx), then restart your terminal or client so the new PATH (`~/.local/bin`) is picked up.

Server doesn’t appear after editing JSON

Fully quit and reopen the client — closing the window is not enough. Then validate the JSON: no trailing commas, balanced braces, escaped Windows backslashes.

401 / invalid token

Double-check AIORNOT_API_KEY. Keys are read in order: AIORNOT_API_KEY → AIORNOT_API_TOKEN → ~/.aiornot/config.json. Ask your assistant to run aiornot_check_token.

Text analysis returns a 400 error

The text endpoint requires at least 250 words. Shorter inputs are rejected — paste a longer sample.

Python version error

The server needs Python 3.10+. uv can install and manage a compatible interpreter for you automatically.

Ready to detect AI images, deepfakes and voice from your assistant?

Grab an API key, add the server, and start detecting — about two minutes.