Dreep MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Dreep docs · API reference · Python SDK · Changelog · Report a bug
Ask your agent things like:
"Upload
~/Desktop/launch/hero.pngtomarketing/2026and give me a 1200px WebP and a 400px square thumbnail.""Pull the text out of this scanned invoice."
"Convert
contract.docxto PDF and give me a link that expires in an hour.""Cut the background out of
product.jpgand show it on white."
Contents
Add it to your client: Claude Desktop · Claude Code · Cursor · VS Code · Windsurf · Codex CLI · Gemini CLI · Zed · Cline and others · Remote (HTTP)
Related MCP server: makia-vision-mcp
How it works
flowchart LR
A["AI agent<br/>(Claude, Cursor, Codex...)"] -- "MCP<br/>stdio or HTTP" --> S["dreep-mcp"]
S -- "dreep Python SDK<br/>(your API key)" --> API["Dreep API"]
API --> CDN["Dreep CDN<br/>(or your custom domain)"]
S -. "URL building:<br/>no network" .-> CDNYour MCP client starts
dreep-mcpon your machine (stdio), or connects to one you host (streamable HTTP).The agent sees 14 tools (16 with deletes enabled), each with a typed JSON schema that lists every valid transform value, so it calls them correctly the first time.
Each tool calls the official
dreepPython SDK, which talks to the Dreep API with your key. Delivery and signed URLs are built locally, with no API call.Results come back as structured JSON. Every asset carries the delivery
urlexactly as Dreep returned it, custom CDN domain included.
There is one implementation, in Python. The npm package dreep-mcp is a small launcher that runs the same PyPI package through uvx (or pipx), so npx users get the identical server.
Quick start
Create an API key on the API Keys page of the Dreep dashboard.
Install uv, which runs the server with no separate install step:
curl -LsSf https://astral.sh/uv/install.sh | shAdd the server to your client (below). Any of these three commands starts the same server:
Runner
Command
Needs
uvx (recommended)
uvx dreep-mcpnpx
npx -y dreep-mcpNode 18+ plus uv or pipx
pip
pip install dreep-mcp, thendreep-mcpPython 3.10+
The examples below use
uvx. To use npx instead, swap"command": "uvx", "args": ["dreep-mcp"]for"command": "npx", "args": ["-y", "dreep-mcp"].
Add it to your client
Every client needs the same three things: a command (uvx), its arguments (dreep-mcp), and your API key in the DREEP_API_KEY environment variable. Replace drp_live_your_key with your key. Add DREEP_SIGNING_SECRET if you use signed folders, and DREEP_MCP_ALLOW_DELETE if you want the delete tools (see Configuration).
Claude Desktop
Open Settings → Developer → Edit Config, which opens claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"dreep": {
"command": "uvx",
"args": ["dreep-mcp"],
"env": {
"DREEP_API_KEY": "drp_live_your_key",
"DREEP_SIGNING_SECRET": "your_signing_secret"
}
}
}
}Restart Claude Desktop. Dreep appears under the tools (slider) icon in the message box.
If Claude Desktop can't find
uvx, use its full path (runwhich uvx, for example/Users/you/.local/bin/uvx). GUI apps don't always inherit your shell'sPATH.
Claude Code
claude mcp add dreep --scope user -e DREEP_API_KEY=drp_live_your_key -- uvx dreep-mcp--scope user makes it available in every project; leave it out to add it to the current project only, or use --scope project to share it with your team through .mcp.json (keep the key out of that file, as shown below). Check it with claude mcp list, or /mcp inside a session.
To share the setup in a repository without committing the key, put this in .mcp.json and let each person export DREEP_API_KEY in their own shell:
{
"mcpServers": {
"dreep": {
"command": "uvx",
"args": ["dreep-mcp"],
"env": { "DREEP_API_KEY": "${DREEP_API_KEY}" }
}
}
}Cursor
Open Cursor Settings → MCP → Add new MCP server, or edit ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"dreep": {
"command": "uvx",
"args": ["dreep-mcp"],
"env": { "DREEP_API_KEY": "drp_live_your_key" }
}
}
}The Dreep tools are then available to the agent in chat.
VS Code (GitHub Copilot)
Create .vscode/mcp.json. VS Code asks for the key the first time and stores it securely:
{
"inputs": [
{
"type": "promptString",
"id": "dreep-api-key",
"description": "Dreep API key",
"password": true
}
],
"servers": {
"dreep": {
"type": "stdio",
"command": "uvx",
"args": ["dreep-mcp"],
"env": { "DREEP_API_KEY": "${input:dreep-api-key}" }
}
}
}Open Copilot Chat in Agent mode and pick the Dreep tools from the tools menu.
Windsurf
Open Windsurf Settings → Cascade → MCP Servers → View raw config, or edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"dreep": {
"command": "uvx",
"args": ["dreep-mcp"],
"env": { "DREEP_API_KEY": "drp_live_your_key" }
}
}
}OpenAI Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.dreep]
command = "uvx"
args = ["dreep-mcp"]
env = { DREEP_API_KEY = "drp_live_your_key" }Gemini CLI
Add to ~/.gemini/settings.json (or .gemini/settings.json in a project):
{
"mcpServers": {
"dreep": {
"command": "uvx",
"args": ["dreep-mcp"],
"env": { "DREEP_API_KEY": "drp_live_your_key" }
}
}
}Zed
Add to Zed's settings.json (Zed → Settings → Open Settings):
{
"context_servers": {
"dreep": {
"command": "uvx",
"args": ["dreep-mcp"],
"env": { "DREEP_API_KEY": "drp_live_your_key" }
}
}
}Cline and other clients
Cline (MCP Servers → Configure), Roo Code, Continue, Goose, JetBrains AI Assistant, LM Studio and most other clients take the same mcpServers block shown for Cursor. Anything that can launch a stdio MCP server can run uvx dreep-mcp with DREEP_API_KEY set.
Remote clients over HTTP
For web-based agents, shared team servers or containers, run the streamable HTTP transport:
export DREEP_API_KEY=drp_live_your_key
export DREEP_MCP_HTTP_TOKEN="$(openssl rand -hex 32)"
uvx dreep-mcp --transport http --host 0.0.0.0 --port 8000The endpoint is http://<host>:8000/mcp, and every request must send Authorization: Bearer <DREEP_MCP_HTTP_TOKEN>. Put it behind HTTPS (a reverse proxy or your platform's load balancer) before exposing it. Then connect, for example from Claude Code:
claude mcp add --transport http dreep https://mcp.example.com/mcp --header "Authorization: Bearer $DREEP_MCP_HTTP_TOKEN"Without --host it binds to 127.0.0.1, and it refuses to bind to any other address unless DREEP_MCP_HTTP_TOKEN is set. Over HTTP the tools can't read files on the server unless you allow specific directories with DREEP_MCP_FILE_ROOTS; remote callers send files as content_base64 instead.
Tools
Tool | What it does | Kind |
| Uploads an image, video, audio file or document from a local path or base64 content, optionally transforming it before storage. Files over 100 MB stream straight to storage. | writes |
| Starts a presigned upload for bytes the server can't read (PUT them, then confirm). | writes |
| Finalises a presigned upload and returns the asset. | writes |
| Lists assets with pagination, filtered by folder. | read-only |
| Cuts the subject out of an image and stores a transparent PNG or WebP. | writes |
| OCR for images and PDFs, optionally with line blocks and bounding boxes. | writes |
| Word ↔ PDF, Excel, PowerPoint, CSV, or a PDF page to PNG/JPEG. | writes |
| Resize, crop, convert, compress, blur, round or trim an asset at the CDN. | local, no network |
| A time-limited link for an asset in a signed folder. | local, no network |
| Creates a folder or a whole path, with access control ( | writes |
| Lists folders with their paths and access control. | read-only |
| Saves a named transform for reuse. | writes |
| Lists saved presets. | read-only |
| Storage used and image, file and folder counts. | read-only |
| Permanently deletes an asset. Only when | destructive |
| Deletes a preset. Only when | destructive |
Every tool carries MCP annotations: read-only tools are marked so clients can run them without asking, and delete tools are marked destructive so clients ask you first.
A few behaviours come straight from the API reference, verified against the live API:
Use URLs as returned. Projects can serve assets from a custom CDN domain, so the tools never construct a delivery URL from scratch; they transform the one Dreep returned.
Signed URLs sign the asset and expiry only (
HMAC-SHA256over"{id}:{exp}"). Transform parameters ride along unsigned.Access control is set on top-level folders; nested folders inherit it. The API has no endpoint for deleting folders.
Presets need a
format, and preset keys may only contain lowercase letters, digits and underscores.
Configuration
Variable | Required | Purpose |
| yes | Your project API key. |
| for signed URLs | The URL Signing Secret from the dashboard's API Keys page. |
| no |
|
| no | Directories the file tools may read, separated by |
| for public HTTP | Bearer token every HTTP request must present. |
Command-line options:
dreep-mcp [--transport {stdio,http}] [--host HOST] [--port PORT] [--path PATH]Option | Default |
|
|
|
|
|
|
|
|
Security
Your API key can read, upload and delete everything in the project. It stays in the server's environment and is sent only to the Dreep API, never to the agent.
Deletes are off unless you turn them on, and are marked destructive so clients confirm them.
File access is scoped. Restrict which directories the agent can upload from with
DREEP_MCP_FILE_ROOTS. Over HTTP, local file reads are off unless you set it.The HTTP transport binds to localhost by default and refuses a public address without
DREEP_MCP_HTTP_TOKEN. Tokens are compared in constant time.Signed URLs are bearer tokens. Anyone with the link can fetch the asset until it expires.
Report vulnerabilities privately; see SECURITY.md.
Development
git clone https://github.com/abetoluwani/dreep-mcp.git
cd dreep-mcp
bash scripts/setup_hooks.sh # venv, dev dependencies, git hooks
bash scripts/quality_gate.sh # lint, format, repository rules, mypy --strict, tests, npm testsTry your local checkout in a client by pointing it at the venv: "command": "/path/to/dreep-mcp/.venv/bin/dreep-mcp". To poke at the tools interactively, run the MCP Inspector:
npx @modelcontextprotocol/inspector .venv/bin/dreep-mcpThe layout:
Path | What lives there |
| One module per tool group: uploads, media, processing, URLs, project |
| Builds the server and registers every tool group |
| The |
| The schemas the agent reads |
| The |
| Repository rules: file length, no magic strings, DRY, layering, security |
Read CONTRIBUTING.md before opening a pull request, and AGENTS.md if you're an AI agent working in this repository.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Image infrastructure for agents. Upload, transform, and deliver images through MCP, CLI, or API.
Hosted MCP tools for FFmpeg-style video and audio processing through FFMPEG API.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
FFmpeg processing for video, audio and images via MCP with OAuth and shared account allowance.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables document conversion and processing through MCP, including Office/PDF/Markdown conversions, OCR, and PDF operations like split, rotate, encrypt, and extract.MIT
- FlicenseNot gradedqualityCmaintenanceEnables MCP clients to analyze, inspect, and manipulate images and videos with deterministic FFmpeg/sharp tools and pluggable AI providers, returning timestamped, evidence-backed results that can be independently re-verified.1-
- FlicenseCqualityBmaintenanceProvides a durable MCP media pipeline for image, video, audio, and storyboard generation, with FFmpeg composition, provider routing, and resumable long-running jobs.21-
- AlicenseNot gradedqualityBmaintenanceEnables image and video generation and editing through MCP tools, including image editing, upscaling, background removal, video generation, image-to-video, and video extension. Video generation runs asynchronously with job status and result retrieval.MIT