Reality Defender Server
БесплатноНе проверенEnables LLMs to analyze images, videos, audio, and text files for AI-generated content using the Reality Defender API, with support for user file uploads and di
Описание
Enables LLMs to analyze images, videos, audio, and text files for AI-generated content using the Reality Defender API, with support for user file uploads and direct URL analysis.
README
A Model Context Protocol (MCP) server that provides AI-generated media detection capabilities using the Reality Defender API. This server enables LLMs to analyze images, videos, audio, and text files to determine if they were generated by AI.
Features
- AI Media Detection: Analyze files for AI generation using Reality Defender's advanced detection models
- Multiple Input Methods: Support for both direct URL downloads and user file uploads
- Comprehensive File Support: Images, videos, audio, and text files
- Web Upload Interface: Built-in FastAPI web server for secure file uploads
- Error Handling: Robust error handling with user-friendly messages
- Async Operations: Modern async/await patterns for optimal performance
Getting Started
Prerequisites
- Python 3.12
- UV package and project manager
- Reality Defender API Key
Installation
- Clone the repository:
git clone https://github.com/Reality-Defender/eng-mcp-server.git
- Install dependencies:
uv sync
- Set up environment variables:
export REALITY_DEFENDER_API_KEY="your-api-key-here"
Running the Server
MCP Server Mode
To run the MCP server:
uv run ./src/reality_defender_mcp_server/mcp_server.py
By default, the server also starts a small web server for file uploads. You can disable uploads entirely by setting UPLOADS=false.
To run MCP over Streamable HTTP (cloud-friendly):
FASTMCP_HOST=0.0.0.0 FASTMCP_PORT=8000 uv run ./src/reality_defender_mcp_server/mcp_server.py --transport streamable-http
By default, the Streamable HTTP MCP endpoint is served at /mcp.
Standalone Web Server
To run just the web server component:
uv run ./src/reality_defender_mcp_server/web_server.py [options]
Web server options:
--debug: Enable debug logging--host: Server host (default: 127.0.0.1)--port: Server port (default: 8080)--upload-dir: Upload directory (default: ./uploads)
MCP Client Configuration
Configure the server in your MCP client, e.g. for Claude Desktop:
{
"mcpServers": {
"realitydefender": {
"command": "uv",
"args": [
"--directory",
"/path/to/eng-reality-defender-mcp-server",
"run",
"python",
"mcp_server.py"
],
"env": {
"REALITY_DEFENDER_API_KEY": "your-api-key-here"
}
}
}
}
Configuration
The application uses environment variables for configuration:
| Variable | Description | Required | Default |
|---|---|---|---|
REALITY_DEFENDER_API_KEY |
API key for Reality Defender service | Yes | - |
DEBUG |
Enable debug mode | No | false |
WEB_SERVER_HOST |
Host for the web server | No | 127.0.0.1 |
WEB_SERVER_PORT |
Port for the web server | No | 8080 |
WEB_SERVER_UPLOADS_DIR |
Directory for file uploads | No | ./uploads |
UPLOADS |
Enable local file upload workflow; set to false to disable uploads and only allow remote URLs |
No | true |
API Key Authentication
- By default, the server uses
REALITY_DEFENDER_API_KEYfrom environment variables. - For cloud deployments, clients can pass a request-scoped Reality Defender key using the
X-Api-KeyHTTP header. - If
X-Api-Keyis present, it is used for that request and takes precedence overREALITY_DEFENDER_API_KEY. - For security, prefer headers over URL query parameters for API keys.
MCP Tools
The server provides the following MCP tools:
reality_defender_generate_upload_url
Generates a unique upload URL for user file uploads.
Returns: GenerateUploadUrlOutput | Error
reality_defender_get_file_info
Retrieves metadata about an uploaded or downloaded file.
Parameters:
file_id(string): The file ID to retrieve metadata for
Returns: GetFileInfoOutput | Error
reality_defender_request_file_analysis
Analyzes a file for AI generation using Reality Defender API.
Parameters:
request(RealityDefenderAnalysisRequest): Analysis request with file path/URL and expected file type
Returns: RealityDefenderAnalysisResponse | Error
Streamable HTTP Deployment
- Use
--transport streamable-httpto expose MCP over HTTP for cloud deployments. - Configure bind host/port with
FASTMCP_HOSTandFASTMCP_PORT. - Default MCP path is
/mcp(configurable via FastMCP settings environment variables). - Continue using
X-Api-Keyto pass request-scoped Reality Defender credentials.
Container Publishing
- On pushes to
main, GitHub Actions builds the Docker image fromDockerfile. - The image is published to GitHub Container Registry as
ghcr.io/<owner>/eng-mcp-server. - Published tags include
latest,main, andsha-<commit>.
Usage Workflows
User Upload Workflow (Recommended)
- Generate upload URL using
reality_defender_generate_upload_url - Direct user to upload file at the provided URL
- Get file info using
reality_defender_get_file_infowith the UUID - Analyze file using
reality_defender_request_file_analysis - Present results to user
Direct URL Workflow
- Analyze file directly using
reality_defender_request_file_analysiswith URL - Get additional file info using
reality_defender_get_file_infoif needed - Present results to user
File Structure
Uploaded and downloaded files are organized as:
uploads/
└── {uuid}/
├── blob.{ext} # Raw file data with proper extension
└── metadata.json # File metadata (filename, size, timestamp, MIME type, source)
Development
Code Standards
- Type Hints: Always use type hints for all functions and parameters
- Modern Python: Use Python 3.12 features and syntax (
str | Noneinstead ofOptional[str]) - Async First: Prefer async/await patterns where possible
- Error Handling: Return union types (
SuccessType | Error) instead of raising exceptions - Pydantic Models: Use Pydantic for all structured data validation
Linting and Type Checking
# Type checking
basedpyright
# Linting and formatting
ruff check .
ruff format .
Running Tests
pytest
API Reference
Web Server Endpoints
GET /- Service informationGET /health- Health checkGET /upload/{uuid}- Upload form for specified UUIDPOST /upload/{uuid}- File upload endpointGET /docs- OpenAPI documentation
Note: If UPLOADS=false, the upload web server is not started and only direct URL analysis is supported. The tools and responses will not suggest uploading files when uploads are disabled.
Response Types
RealityDefenderAnalysisResponse
{
"status": "ARTIFICIAL" | "AUTHENTIC" | "ANALYZING",
"score": float, # Confidence score (0-100)
"models": [ # Individual model results
{
"name": str,
"status": str,
"score": float | None
}
],
"file_id": str | None # For downloaded files
}
Troubleshooting
- API Key Errors: Verify your
REALITY_DEFENDER_API_KEYis valid - File Upload Issues: Check upload directory permissions and disk space
- Network Errors: Verify internet connectivity for URL downloads
- Port Conflicts: Use
--portoption to specify different port - Large Files: Files are limited to 1MB via web interface
Установка Reality Defender Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Reality-Defender/eng-mcp-serverFAQ
Reality Defender Server MCP бесплатный?
Да, Reality Defender Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Reality Defender Server?
Нет, Reality Defender Server работает без API-ключей и переменных окружения.
Reality Defender Server — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Reality Defender Server в Claude Desktop, Claude Code или Cursor?
Открой Reality Defender Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
автор: buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
автор: ARAYouTube
Transcripts, channel stats, search
автор: YouTubeEverArt
AI image generation using various models.
автор: modelcontextprotocolCompare Reality Defender Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории media
