AI or Not MCP Server
AI or Not MCP Server
An MCP (Model Context Protocol) server that integrates with the AI or Not API to detect AI-generated content in images, videos, audio, and text.
Features
Image Analysis: Detect AI-generated images, deepfakes, NSFW content, and image quality issues
Video Analysis: Detect AI-generated video, synthetic voices, AI music, and video deepfakes
Audio Analysis: Detect AI-generated music and synthetic voices
Text Analysis: Detect AI-written text with confidence scoring and annotations
API Health Check: Verify API availability
Prerequisites
Node.js 18+
An API key from AI or Not
Installation
From Source
git clone https://github.com/tymrtn/aiornot-mcp.git
cd aiornot-mcp
npm install
npm run buildFrom npm (coming soon)
npm install -g aiornot-mcpConfiguration
Environment Variables
Variable | Required | Default | Description |
| Yes | - | Your AI or Not API key |
| No |
| API base URL |
Claude Desktop / Claude Code
Add to your MCP settings file:
{
"mcpServers": {
"aiornot": {
"command": "node",
"args": ["/path/to/aiornot-mcp/build/index.js"],
"env": {
"AIORNOT_API_KEY": "your_api_key_here"
}
}
}
}Settings file locations:
Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Code:
~/.claude/mcp_servers.json
Usage
Running the Server
AIORNOT_API_KEY="your_api_key_here" node build/index.jsAvailable Tools
aiornot_analyze_media
Analyze media content for AI generation.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | One of: |
| string | Conditional | Path to file (required for image/video/audio) |
| string | Conditional | Text content (required for text, min 250 chars) |
| string[] | No | Report types to include |
| string[] | No | Report types to exclude |
| string | No | Tracking identifier |
| boolean | No | Include block-level annotations (text only) |
| number | No | Override request timeout |
Report Types by Media:
Media Type | Available Reports |
Image |
|
Video |
|
aiornot_is_live
Check if the AI or Not API is available.
Examples
Analyze an image:
{
"media_type": "image",
"file_path": "/path/to/image.jpg"
}Analyze an image for specific checks:
{
"media_type": "image",
"file_path": "/path/to/image.jpg",
"only": ["ai_generated", "deepfake"]
}Analyze video including deepfake detection:
{
"media_type": "video",
"file_path": "/path/to/video.mp4",
"only": ["ai_video", "deepfake_video"]
}Analyze text:
{
"media_type": "text",
"text": "Your text content here (minimum 250 characters)...",
"include_annotations": true
}Analyze audio for synthetic voice:
{
"media_type": "audio_voice",
"file_path": "/path/to/audio.mp3"
}Response Format
The server returns structured JSON with:
media_type: The analyzed media typescores: Extracted confidence scores and verdictsresponse: Full API response
Example response for image analysis:
{
"media_type": "image",
"scores": {
"ai_generated": {
"verdict": "ai",
"ai_confidence": 0.95,
"human_confidence": 0.05
},
"deepfake": {
"is_detected": false,
"confidence": 0.02
}
},
"response": { ... }
}Timeouts
Default timeouts vary by media type:
Media Type | Default Timeout |
Image | 30 seconds |
Text | 30 seconds |
Video | 120 seconds |
Audio (music) | 120 seconds |
Audio (voice) | 120 seconds |
Use timeout_ms to override if needed.
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run watch
# Test with MCP Inspector
npm run inspectorLicense
MIT - see LICENSE
Links
AI or Not - API provider
Model Context Protocol - MCP specification
MCP SDK - TypeScript SDK