This server loads Mixpeek's OpenAPI spec and exposes its multimodal search endpoints as MCP tools. You get search across video, images, and audio content through a simple API key configuration. It handles auth headers, namespace injection, and rate limiting out of the box. Available through npm, PyPI, Homebrew, and Docker with straightforward stdio transport. The setup auto-discovers endpoints from the OpenAPI definition, so you can query visual and audio content without writing integration code. Reach for this when you need Claude to search or retrieve information from media files rather than just text documents.
A lightweight, production-friendly Model Context Protocol (MCP) server for Mixpeek that:
Authorization and X-Namespace headersPython (PyPI):
# global (recommended)
pipx install mixpeek-mcp
# or in a venv
python -m venv .venv && source .venv/bin/activate
pip install mixpeek-mcp
npm (Node):
# run once
npx @mixpeek/mcp
# or install globally
npm i -g @mixpeek/mcp
Homebrew (macOS):
# tap and install (once the tap is live)
brew tap mixpeek/tap https://github.com/mixpeek/homebrew-tap
brew install mixpeek-mcp
# temporary local formula (dev/testing):
brew install --build-from-source Formula/mixpeek-mcp.rb
cp env.sample .env
# edit as needed
Env vars:
MIXPEEK_API_KEY: Your Mixpeek API key (optional if endpoints don't require auth)MIXPEEK_API_BASE: Default https://api.mixpeek.comMIXPEEK_OPENAPI_URL: Defaults to <API_BASE>/openapi.json (or /docs/openapi.json)MIXPEEK_NAMESPACE: Optional namespace value to send via X-NamespaceMCP_RATE_MAX_CALLS: Default 20 per MCP_RATE_PER_SECONDSMCP_RATE_PER_SECONDS: Default 10MCP_CONNECT_TIMEOUT: Default 5MCP_READ_TIMEOUT: Default 30# PyPI
mixpeek-mcp
# from source
python server.py
# npm
mixpeek-mcp
Your MCP client (e.g., Claude Desktop) can attach to this server via stdio.
docker build -t mixpeek-mcp:latest .
docker run --rm -it \
-e MIXPEEK_API_KEY=sk_... \
-e MIXPEEK_NAMESPACE=your_namespace \
mixpeek-mcp:latest
Or pull and run (once published):
docker run --rm -it \
-e MIXPEEK_API_KEY=sk_... \
-e MIXPEEK_NAMESPACE=your_namespace \
ghcr.io/mixpeek/mcp:latest
@mixpeek/mcp → https://www.npmjs.com/package/@mixpeek/mcpmixpeek-mcp → https://pypi.org/project/mixpeek-mcp/ (publish pending)mixpeek/mcp (pending push), GHCR: ghcr.io/mixpeek/mcp (pending push)mixpeek/tap/mixpeek-mcp (tap repo to be created)We prepared registry.json compatible with the Official Docker MCP Registry. To submit:
registry.json (update Docker image reference if you publish under a different org/tag).Required for write-protected endpoints:
MIXPEEK_API_KEY: Authorization: Bearer <key>Optional:
MIXPEEK_NAMESPACE: sets X-Namespace for isolationMIXPEEK_API_BASE: defaults to https://api.mixpeek.com; testing: https://server-xb24.onrender.comMIXPEEK_OPENAPI_URL: defaults to <API_BASE>/openapi.json (or /docs/openapi.json)MCP_RATE_MAX_CALLS / MCP_RATE_PER_SECONDS: simple token bucketMCP_CONNECT_TIMEOUT / MCP_READ_TIMEOUT: request timeoutsoperationIdquery/body envelopeUnit tests:
pip install -r requirements.txt
pytest -q
Live test (optional):
export LIVE_MIXPEEK_API_KEY=sk_...
export LIVE_MIXPEEK_OPENAPI_URL=https://server-xb24.onrender.com/docs/openapi.json
export LIVE_MIXPEEK_API_BASE=https://server-xb24.onrender.com
pytest -q tests/test_live_integration.py
mixpeek-mcp).https://docs.mixpeek.com/overview/introductionhttps://api.mixpeek.com/docs/openapi.jsonhttps://modelcontextprotocol.io/docs/getting-started/introMIXPEEK_API_KEY*secretYour Mixpeek API key (https://mixpeek.com)
MIXPEEK_NAMESPACEDefault namespace; sent as the X-Namespace header
MIXPEEK_API_BASEdefault: https://api.mixpeek.comOverride the API base URL (default: https://api.mixpeek.com)
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent