Skip to main content
Connect Claude (or any MCP-compatible client) to Mixpeek so it can search video, image, and audio content.
Mixpeek MCP server architecture: an MCP client connects over HTTPS with a Bearer API key to the scope-gated Mixpeek MCP server (91 tools), which exposes retrievers as tools — agent_search for autonomous multimodal retrieval, retriever_execute for multi-stage filter/join/rerank pipelines, features_get for faces, scenes, OCR, transcripts and embeddings, and agentic_enrich (ingestion scope, off by default) — operating on a Mixpeek namespace of video, images, audio and documents stored as features plus dense, sparse and BM25 vectors on object storage.

An MCP client (Claude, Cursor, VS Code, or your agent) authenticates with a Bearer API key and gets scope-gated tools — agent_search, retriever_execute, features_get, and (ingestion scope, off by default) agentic_enrich — that search and enrich the multimodal features and vectors in your Mixpeek namespace.

Hosted Server URLs

Mixpeek runs five hosted MCP servers. Each exposes a different subset of tools, so you load only what your agent needs. The App server is read-only. You sign in with your Mixpeek account in the browser, so you never paste a key into the client. See Sign in with OAuth.
For a focused search agent, use the Per-Retriever Server instead. It exposes a single typed search tool generated from your retriever’s input schema.

Setup

Replace YOUR_API_KEY with your key from the Mixpeek Studio. To connect without a key, use the App server over OAuth.
Add this to your Claude Desktop config file (claude_desktop_config.json):

Sign in with OAuth

The App server at https://mcp.mixpeek.com/app/mcp uses OAuth 2.1. It exposes 9 read-only tools: list and read namespaces, collections, documents and retrievers, run a retriever, and search a namespace.
  1. Add the URL to your client with no Authorization header.
  2. On first connect, the server answers 401 with a WWW-Authenticate header that names its metadata at https://mcp.mixpeek.com/.well-known/oauth-protected-resource/app/mcp.
  3. Your client opens the Mixpeek sign-in page at auth.mixpeek.com and requests the mixpeek:read scope.
  4. After you approve, the client stores the token and the tools load.
The sign-in acts as you in your Mixpeek organization, with your role’s permissions. The App server exposes read tools only, so an OAuth connection can search and read but not change anything. For testing, the App server also accepts a Mixpeek API key in Authorization: Bearer YOUR_API_KEY.

Per-Retriever MCP Server

The retriever server is a lightweight MCP server scoped to a single retriever. It reads your retriever’s input_schema at startup and generates a typed search tool whose parameters match exactly.
1

Install

2

Run

3

Connect

Add to your Claude Desktop config:
The retriever server exposes three tools:
If your retriever’s input_schema has a field named page or page_size, the pagination parameters are automatically renamed to _pagination_page and _pagination_page_size to avoid conflicts.
You can also run the retriever server over HTTP for deployed agents:
Or configure everything via environment variables (prefixed with RETRIEVER_MCP_):

Available Tools by Scope

The full scope serves all 91 tools. The App scope is a read-only subset of them. The three key-based scopes below overlap: list_storage_connections and get_storage_connection are in two of them, which is why the per-scope counts sum to more than the total.

Ingestion — 29 tools

Retrieval — 21 tools

Admin — 43 tools

App — 9 tools

Served at https://mcp.mixpeek.com/app/mcp behind OAuth. Every tool is read-only.

Authentication

The Full, Ingestion, Retrieval and Admin servers authenticate with your Mixpeek API key. The key carries the same RBAC permissions as the REST API. The App server uses OAuth instead.
  • App server: Your client signs you in through OAuth 2.1 with the mixpeek:read scope. See Sign in with OAuth.
  • Hosted servers (HTTP): Pass the key in the Authorization: Bearer YOUR_API_KEY header. The server injects it into every tool call.
  • Stdio servers: Set the MIXPEEK_API_KEY environment variable, or pass --api-key as a CLI argument.
Never commit API keys to version control. For deployed agents, use environment variables or a secrets manager.

Example Conversation

Here is what a session looks like with the Retrieval server connected:
And with the per-retriever server:

Architecture

The scoped servers share the same codebase. Scoping controls which tools are registered, not how they execute. Each scope is mounted at its own path prefix (/ingestion, /retrieval, /admin) while the full server runs at /mcp. The App server runs at /app/mcp.

Troubleshooting

  • Verify the URL is correct (e.g. https://mcp.mixpeek.com/ingestion/mcp)
  • Check that the Authorization header format is Bearer YOUR_API_KEY
  • Restart Claude Desktop or Claude Code after changing config
  • Verify your API key at studio.mixpeek.com
  • Check that the key has permissions for the namespace you’re accessing
  • Make sure there are no extra spaces in the key
  • You may be calling a tool on the wrong scoped server (e.g. execute_retriever on /ingestion)
  • Use the full server if you need all tools
  • Ensure --retriever-id and --namespace-id are correct
  • Verify the API key has access to that namespace
  • Check that the retriever exists via the API
  • Confirm your collection has processed documents (not just uploaded files)
  • Check that the retriever’s feature_uri matches your collection’s extractor
  • Try a broader query or remove optional filters

Next Steps

LangChain Integration

Use Mixpeek as a LangChain tool

Retriever Stages

Configure multi-stage search pipelines

Feature Extractors

Choose the right extractor for your data

Core Concepts

Understand namespaces, collections, and documents