Kompressr

com.kompressrPublished by kompressr.comv2.0.3Updated Oct 25, 2026

Upload, optimize and manage files, wait for processing, and generate private delivery links.

VerifiedSTDIODesktop onlyFiles & StorageMedia & Design

Overview

AI-generated overview

Kompressr's local MCP server lets an assistant upload images, video, PDFs, fonts and text, wait for processing, get private links and delete assets.

What you can do
Upload a file from a local path or a remote URL, with quality, visibility and private-link expiry options, and wait for processing or check status and savings details. List a project's uploads with pagination and status, visibility or deletion filters. Generate fresh expiring private delivery URLs for processed private assets. Permanently delete one asset or up to 100 explicit asset IDs and inspect deletion state and storage credits. Create an account and verify an email token to save credentials locally.
When to use it
Use it when an assistant should push media or documents into a Kompressr project, confirm they are processed, hand out public or private delivery links, and clean up assets without leaving the chat. It suits desktop MCP clients that manage a Kompressr project or agent-scoped uploads.
Requirements
A local Node.js 22 or later runtime, or a desktop client that installs the MCPB bundle. A Kompressr account on the 30-day trial or a paid plan, and an API key in KOMPRESSR_API_KEY (project/master or scoped). KOMPRESSR_PROJECT_ID is required only for listing uploads. Network access to the Kompressr management and upload origins; optional overrides exist for custom deployments.
Before you install
The API key is a secret; keep project/master keys on trusted machines, prefer scoped keys per agent, and keep saved configuration out of source control. Deletion is permanent with no undo, and cached or offline copies may remain; scoped keys need explicit delete permission. The free trial allows 100 image uploads total and does not renew. Remote file URLs are downloaded on the local machine, and private/local destinations need explicit host allowlisting. A write interrupted after dispatch may in

Installation

In SourceWeft

  1. Open Kompressr in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@kompressr/mcp-server

Kompressr tools for MCP agents: upload files, wait for processing, generate private links, paginate uploads and permanently delete explicit asset IDs. File operations use the separate @kompressr/sdk package. Applications can use that SDK directly without starting MCP.

Requires Node.js 22 or later. For a desktop client that supports MCPB extensions, download a Kompressr MCP bundle from GitHub Releases and follow the desktop installation guide.

Setup

Create a Kompressr account and start the 30-day image-upload trial or choose a paid plan. In Dashboard → Projects, open the project and choose API Keys. Keep project/master keys on trusted machines; use scoped keys for individual application or agent runtimes. The project UUID is needed only for listing uploads.

Configure an MCP client to run the package:

json
{  "mcpServers": {    "kompressr": {      "command": "npx",      "args": ["-y", "@kompressr/[email protected]"],      "env": {        "KOMPRESSR_API_KEY": "YOUR_PROJECT_OR_SCOPED_KEY",        "KOMPRESSR_PROJECT_ID": "YOUR_PROJECT_UUID"      }    }  }}

KOMPRESSR_PROJECT_ID is required for upload listing; upload/status/signing/deletion need only the key. For source builds, follow CONTRIBUTING.md, then configure node with the absolute path to this package's built dist/index.js.

Configuration and migration

SettingMeaning
KOMPRESSR_API_KEYOpaque project/master or scoped key; API permissions remain authoritative
KOMPRESSR_PROJECT_IDProject UUID, required by list_assets
KOMPRESSR_API_URLManagement origin, default https://kompressr.com
KOMPRESSR_UPLOAD_BASE_URLUpload-body origin override
KOMPRESSR_REMOTE_ALLOWED_HOSTSComma-separated hostnames explicitly allowed to serve private/local remote-source addresses

Production defaults to https://kompressr.com for management and https://uploads.kompressr.com for upload bodies. For another deployment, supply KOMPRESSR_API_URL and KOMPRESSR_UPLOAD_BASE_URL from private runtime configuration. Custom management origins use the same upload origin unless overridden. Origins must use HTTP(S) without credentials, paths, queries or fragments.

Saved configuration remains ~/.kompressr/config.json:

json
{  "api_key": "YOUR_KEY",  "project_id": "YOUR_PROJECT_UUID",  "api_url": "https://kompressr.com",  "upload_url": "https://uploads.kompressr.com"}

Environment settings override saved values. A different environment key does not inherit the saved project or endpoint, which prevents mixing accounts; supply those explicitly for custom origins. A changed management origin re-derives uploads unless an upload override is provided. Old saved https://api.kompressr.com values migrate in memory to production. New saves use atomic replacement and permissions 0700 for the directory, 0600 for the file; existing files are not rewritten merely by loading. Keep keys and configuration out of source control.

File workflow

  1. Call upload_asset with exactly one file_path or file_url. Save the returned numeric asset_id.
  2. Call wait_for_asset or get_asset_status. Acceptance and a pending URL do not mean the file is ready; use the current processed response only for active assets.
  3. Share a public processed URL, or authorize the private recipient in your app and call generate_private_url for a fresh expiring link.
  4. On wait timeout, resume with the saved ID. Do not upload again to recover from a polling timeout.

The 30-day free trial includes 100 image uploads total, shared across API, SDKs, MCP and dashboard. This allowance does not renew monthly. Formats, size, video quality and private delivery remain plan/project dependent. The SDK sends all multipart options before the file, as required by the streaming API.

Tools

Missing/blank filenames in historical status/list records remain valid; listing displays “Unnamed file” without changing response metadata.

All file tools return readable text, a JSON text block and structuredContent; failures set isError. Numeric IDs must be positive safe integers (single-ID tools also accept numeric strings).

ToolParameters and behavior
upload_assetExactly one file_path / file_url; optional quality (480p, 720p, 1080p, 4k), visibility (public/private), private_url_expires_in (60–604800 seconds), data (up to five scalar fields; keys 64/string values 512 UTF-8 bytes, encoded multipart JSON 4096 bytes). Returns acceptance and ready.
get_asset_statusasset_id; processing, visibility, deletion state, byte sizes, savings and readiness.
wait_for_assetasset_id, optional timeout_ms (1–120000, default 120000); bounded polling. Timeout/error retains the ID. MCP request cancellation stops the wait, not the server job. Private readiness requires a fresh signing call.
list_assetsOptional page (default 1), limit (1–100, default 20), visibility, external_id, status (pending, processing, processed, failed, unprocessable), deletion_status (active, deleting, deleted, legacy_deleted), string data filters. Lists uploads in the configured project and returns next_page.
generate_private_urlasset_id, optional expires_in (60–604800 seconds, default 3600), variant (webp/avif, default webp). Application must first authorize access. Expiry does not delete the asset.
get_asset_deletion_statusasset_id; processing/deletion state and recorded storage credits. Completed removal does not prove all caches are cleared.
delete_assetasset_id; permanent deletion, no undo/cancellation. Acceptance starts background cleanup. Requires deletion permission.
bulk_delete_assetsasset_ids (1–100 explicit numeric IDs); per-item outcomes and counts. HTTP success can contain failed items. No delete-all selection.
registeremail, password (minimum 8 characters); creates an account and sends verification email. Refuses a configured runtime.
verify_emailtoken; verifies email and saves credentials if issued. Refuses a configured runtime; never returns raw keys in tool output. Trial or paid-plan limits still apply.

Processing status and deletion status are separate. Permanent deletion removes files later; cached, downloaded and offline copies may remain. Retrying the same old ID cannot delete a replacement with a new ID. Bulk deletion preserves partial failure and does not automatically expand or retry a selection. storage_credited_mb is recorded storage credit in MB, not a cash refund. Other size fields are bytes.

Read tools carry read-only annotations; deletion tools carry destructive annotations. Annotations describe behavior; server authorization and the MCP client's approval controls enforce access.

Keys, errors and remote files

Use a scoped key for one customer/agent runtime. The server enforces identity, allowed file types/visibility and action scopes. Default scopes exclude delete; provisioning must opt into it. Scoped keys cannot call platform administration or URL Prepend/source optimization. Provision identities and keys from your trusted backend with the SDK's client.platform group or the existing platform APIs. No master-key administration tools are added to MCP.

Safe GET requests retry network/429/502/503/504 failures at most twice within a 30-second request deadline and respect Retry-After. Uploads default to a 10-minute deadline; writes are never automatically replayed. Structured errors preserve code, kind, HTTP status and, where relevant, assetId/mayHaveSucceeded. A dispatched write interrupted or returning malformed JSON/data may have succeeded; inspect the outcome before repeating it. Arbitrary errors and raw gateway bodies are not exposed.

file_url downloads on the MCP machine, then uploads a local temporary file. MCP cancellation/disconnection, including stdin EOF, aborts the transfer and is checked again before starting the upload. Before dispatch no asset is created; after dispatch a server-accepted upload cannot be rolled back by client cancellation. It streams to disk with a 2 GiB transport ceiling, five-minute download deadline and at most five redirects. HTTPS cannot downgrade to HTTP. Numeric CIDR checks admit ordinary global IPv6 unicast and conservatively exclude IETF protocol, transition and documentation ranges, including their compressed forms. Each destination resolves to validated allowed addresses used for the connection; private/local destinations require exact hostnames in KOMPRESSR_REMOTE_ALLOWED_HOSTS. Redirect targets are checked again. Sources use no Kompressr credentials. Temporary files are restricted and cleaned up on success/failure. The transport ceiling does not override your plan or disk capacity; remote download and upload have separate deadlines. Server-side URL import is not part of this SDK/MCP integration.

See CHANGELOG.md and the contribution guide. Local HTTP/protocol checks do not certify deployed authentication, processing or CDN behavior. The source verification commands use local fixtures and do not publish packages.

Source: mcp-server/README.md at commit ac4e44c

Tools

10

register

Create an account and send a verification email. The 30-day free trial includes 100 image uploads total, shared across API, SDKs, MCP and dashboard. This allowance does not renew monthly. Cannot replace an already configured runtime.

Parametersemailrequiredpasswordrequired

verify_email

Verify an email token and save credentials locally. Refuses to replace an already configured runtime.

Parameterstokenrequired

upload_asset

Upload a supported image, video, PDF, font or text asset. Acceptance is not readiness: wait for processed before sharing. Project-user scoped upload keys restrict uploads to their identity. The 30-day free trial includes 100 image uploads total, shared across API, SDKs, MCP and dashboard. This allowance does not renew monthly.

Parametersdataqualityfile_urlfile_pathvisibilityprivate_url_expires_in

get_asset_status

Inspect processing status and delivery information. Scoped keys only read uploads owned by their identity. A URL is ready only for active processed assets.

Parametersasset_idrequired

list_assets

List uploaded files in the configured project, with pagination and processing/deletion filters. A scoped key lists only its identity uploads. KOMPRESSR_PROJECT_ID is required.

Parametersdatapagelimitstatusvisibilityexternal_iddeletion_status

generate_private_url

Generate a fresh expiring URL after private upload processing and application access checks. Scoped keys only sign their own identity private uploads. Expiry does not delete the asset.

Parametersvariantasset_idrequiredexpires_in

wait_for_asset

Wait within a bounded time budget for an active upload to process. A timeout preserves the asset ID; resume rather than reupload. Private uploads need generate_private_url after readiness.

Parametersasset_idrequiredtimeout_ms

get_asset_deletion_status

Inspect processing/deletion state and storage credits for an asset ID. File removal completion does not certify that all caches have cleared.

Parametersasset_idrequired

delete_asset

Permanently delete one explicit asset ID. Irreversible; no restore or cancellation. Scoped keys need explicit delete permission. Acceptance starts background cleanup; cached/offline copies may remain.

Parametersasset_idrequired

bulk_delete_assets

Permanently delete 1–100 explicit asset IDs. Inspect each result: a successful HTTP request can contain failed items. Scoped keys require delete permission. No query-based deletion or undo.

Parametersasset_idsrequired

Version history

2
  1. v2.0.3LatestOct 24, 2026
  2. v2.0.2Oct 19, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts