# ai.spideriq/media (npm · @spideriq/mcp-media)

SpiderIQ Media: SpiderMedia files, videos, per-tenant media catalog (read)

- Trust score: 64/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@spideriq/mcp-media`: 64/100 (this document), [markdown](https://verifymcp.io/servers/ai-spideriq-media/spideriq-mcp-media.md), [page](https://verifymcp.io/servers/ai-spideriq-media/spideriq-mcp-media)

## Channel facts

- Registry: `npm`
- Package: `@spideriq/mcp-media`
- Version: `1.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 44 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 73/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2061 tokens (~108/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add ai-spideriq-media -- npx -y @spideriq/mcp-media
```

### Codex

```bash
codex mcp add ai-spideriq-media -- npx -y @spideriq/mcp-media
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-spideriq-media": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@spideriq/mcp-media"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-spideriq-media --command npx --arg -y --arg @spideriq/mcp-media
```

### Hermes

```yaml
mcp_servers:
  ai-spideriq-media:
    command: "npx"
    args: ["-y", "@spideriq/mcp-media"]
```

### Other

```json
{
  "mcpServers": {
    "ai-spideriq-media": {
      "command": "npx",
      "args": [
        "-y",
        "@spideriq/mcp-media"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 63, +63)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-07-31 (score 0, −22)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 22, +4)

- [security regression] Malware scan: pass → unverified
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-28 (score 18, −22)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 40)

First indexed and scored.

## MCP tools (19)

### `request_access` (~120 tokens)

Request access to SpiderIQ API. This sends an approval email to the admin.
After calling this, use check_access_status to poll for approval.
Once approved, the token is automatically saved for subsequent API calls.

Input parameters:

- `api_url` (string): API URL (default: https://spideriq.ai)
- `email` (string, required): Admin email address (the person who will approve access)
- `project` (string): Project name (shown in approval email)
- `scopes` (array): Requested permission scopes (default: jobs:submit, jobs:read)

### `check_access_status` (~152 tokens)

Check the status of a PAT access request.
Returns 'pending', 'active', 'denied', 'expired', or 'revoked' (matches the
backend PATRequestStatus enum). Once status==='active', the token is saved to
\~/.spideriq/credentials.json automatically. Multi-brand approvals save one
entry per workspace under client_id, with the first aliased as 'default' so
existing tools (upload_local_file, etc.) keep working without --workspace.

Input parameters:

- `api_url` (string): API URL (default: https://spideriq.ai)
- `poll_token` (string, required): Poll token from request_access
- `request_id` (string, required): Request ID from request_access

### `get_auth_status` (~33 tokens)

Check if you are authenticated and get current user info.

Input parameters:

- `workspace` (string): Workspace name (default: default)

### `logout` (~25 tokens)

Remove stored authentication credentials.

Input parameters:

- `workspace` (string): Workspace name (default: default)

### `list_workspaces` (~19 tokens)

List all configured workspaces and their authentication status.

### `health_check` (~51 tokens)

Check if the SpiderIQ API is healthy and responsive.

Input parameters:

- `api_url` (string): API URL (default: https://spideriq.ai)
- `workspace` (string): Workspace name (default: default)

### `get_queue_stats` (~48 tokens)

Get statistics about job queues (pending jobs, consumers, etc.).

Input parameters:

- `format` (string): Response format (default: json)
- `workspace` (string): Workspace name (default: default)

### `get_api_info` (~33 tokens)

Get information about the SpiderIQ API and your connection.

Input parameters:

- `workspace` (string): Workspace name (default: default)

### `import_from_url` (~171 tokens)

Import file(s) from URL into your SpiderMedia bucket.
Supports single URL or batch. Auto-proxies Instagram/Facebook/Twitter CDN URLs.

Input parameters:

- `folder` (string): Target folder (e.g., "ads", "logos")
- `project` (string): Optional project — a website inside the workspace (proj_xxx) — to scope this call to. Sent as the X-Project-Id header. If omitted, the spideriq.json / SPIDERIQ_PROJECT_ID binding (or the workspace de…
- `url` (string): Single URL to import
- `urls` (array): Batch URLs to import [{url, filename?}]
- `use_proxy` (boolean): Force proxy for CDN URLs (default: auto-detect)
- `workspace` (string): Workspace name

### `list_files` (~126 tokens)

List files in your SpiderMedia bucket.

Input parameters:

- `limit` (number): Max results (default: 20)
- `offset` (number): Offset for pagination
- `project` (string): Optional project — a website inside the workspace (proj_xxx) — to scope this call to. Sent as the X-Project-Id header. If omitted, the spideriq.json / SPIDERIQ_PROJECT_ID binding (or the workspace de…
- `type` (string): Filter by file type (image, video, document)
- `workspace` (string): Workspace name

### `delete_file` (~104 tokens)

Delete a file from your SpiderMedia bucket by storage key.

Input parameters:

- `key` (string, required): File storage key (from list_files response)
- `project` (string): Optional project — a website inside the workspace (proj_xxx) — to scope this call to. Sent as the X-Project-Id header. If omitted, the spideriq.json / SPIDERIQ_PROJECT_ID binding (or the workspace de…
- `workspace` (string): Workspace name

### `list_videos` (~110 tokens)

List videos in your SpiderMedia bucket.

Input parameters:

- `limit` (number): Max results (default: 20)
- `offset` (number): Offset for pagination
- `project` (string): Optional project — a website inside the workspace (proj_xxx) — to scope this call to. Sent as the X-Project-Id header. If omitted, the spideriq.json / SPIDERIQ_PROJECT_ID binding (or the workspace de…
- `workspace` (string): Workspace name

### `get_video_status` (~101 tokens)

Get processing status for a video (encoding, ready, failed).

Input parameters:

- `project` (string): Optional project — a website inside the workspace (proj_xxx) — to scope this call to. Sent as the X-Project-Id header. If omitted, the spideriq.json / SPIDERIQ_PROJECT_ID binding (or the workspace de…
- `video_id` (string, required): Video ID
- `workspace` (string): Workspace name

### `get_media_stats` (~92 tokens)

Get media storage statistics (file counts, storage used, by type).

Input parameters:

- `project` (string): Optional project — a website inside the workspace (proj_xxx) — to scope this call to. Sent as the X-Project-Id header. If omitted, the spideriq.json / SPIDERIQ_PROJECT_ID binding (or the workspace de…
- `workspace` (string): Workspace name

### `catalog_list_assets` (~192 tokens)

List your media catalog assets (newest first, soft-delete aware).
Filters AND-combine. The catalog spans every storage tier (seaweedfs/r2/peertube)
and asset kind (image/video/doc) — broader than list_files/list_videos, which
only see a provisioned bucket. Read-only.

Input parameters:

- `folder` (string): Filter by exact DAM folder path
- `format` (string): Response format (default json). yaml/md are token-efficient for agents.
- `kind` (string): Filter by asset class
- `limit` (number): Page size 1-500 (default 50)
- `offset` (number): Pagination offset (default 0)
- `status` (string): Filter by status
- `storage_tier` (string): Filter by storage tier
- `tags` (array): Assets carrying ALL given tags
- `workspace` (string): Workspace name

### `catalog_get_asset` (~81 tokens)

Fetch a single media catalog asset by id. Returns 404 if it does not exist for your tenant. Read-only.

Input parameters:

- `asset_id` (string, required): Asset UUID (catalog primary key, from catalog_list_assets)
- `format` (string): Response format (default json). yaml/md are token-efficient for agents.
- `workspace` (string): Workspace name

### `catalog_search_assets` (~131 tokens)

Search your media catalog. q substring-matches key/folder; tags overlaps (ANY);
kind narrows by type. All optional + AND-combined, newest first. Read-only.

Input parameters:

- `format` (string): Response format (default json). yaml/md are token-efficient for agents.
- `kind` (string): Filter by asset class
- `limit` (number): Page size 1-500 (default 50)
- `q` (string): Case-insensitive substring match on key/folder
- `tags` (array): Assets sharing ANY given tag
- `workspace` (string): Workspace name

### `media_derive` (~236 tokens)

Resolve (or lazily create + cache) a resized/cropped/reformatted IMAGE derivative
of a catalog asset, returning its CDN URL. First call for a spec derives + caches in R2;
identical repeats return cache_hit=true with no work. Source scope = images on the r2 tier
(non-image / non-r2 → 422). fmt=auto (default) picks avif when supported else webp.
Read-only on the source (never mutates the original).

Input parameters:

- `asset_id` (string, required): Asset UUID (from catalog_list_assets/catalog_search_assets)
- `fit` (string): Resize/crop strategy (default cover)
- `fmt` (string): Output format (default auto → webp)
- `format` (string): Response format (default json). yaml/md are token-efficient for agents.
- `h` (number): Target height in px (1-4096)
- `q` (number): Encode quality 1-100 (default 82; png ignores it)
- `w` (number): Target width in px (1-4096)
- `workspace` (string): Workspace name

### `media_derive_srcset` (~236 tokens)

Build a responsive srcset for a catalog IMAGE asset — one derivative per requested
width — returning the ready-to-use "<url> 400w, <url> 800w, …" string plus per-width entries.
Each width derives through the same engine (cache/dedup applies). widths is capped at 8, each
1-4096. Source scope = images on the r2 tier (non-image / non-r2 → 422). Read-only.

Input parameters:

- `asset_id` (string, required): Asset UUID (from catalog_list_assets/catalog_search_assets)
- `fit` (string): Resize/crop strategy (default cover)
- `fmt` (string): Output format shared across widths (default auto → webp)
- `format` (string): Response format (default json). yaml/md are token-efficient for agents.
- `q` (number): Encode quality 1-100 (default 82)
- `widths` (array, required): Target widths in px (≤8 entries, each 1-4096), e.g. [400,800,1200]
- `workspace` (string): Workspace name

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/ai-spideriq-media/spideriq-mcp-media#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 63
- 2026-08-01: 0
- 2026-07-31: 0
- 2026-07-30: 22
- 2026-07-28: 18
- 2026-07-27: 40

## Links

- npm package: https://www.npmjs.com/package/@spideriq/mcp-media
- Socket report: https://socket.dev/npm/package/@spideriq/mcp-media
- Changelog RSS feed: https://verifymcp.io/servers/ai-spideriq-media/spideriq-mcp-media/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-spideriq-media/spideriq-mcp-media/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ai-spideriq-media/spideriq-mcp-media
