spot-ai-mcp
Unofficial community MCP server for the Spot AI camera / video-intelligence REST API. Not affiliated with or endorsed by Spot AI.
Single-file, stdio transport, no dependencies beyond Python 3.9+.
Read-only by design: it can browse cameras and intelligence data but can never modify
anything in your Spot AI org. Every tool wraps a GET endpoint except
get_live_stream_urls, which wraps POST /v1/cameras/live — a read-like POST that
only generates a viewing URL. All tools declare the readOnlyHint: true MCP annotation.
Install
uvx spot-ai-mcp
or pip install spot-ai-mcp, or run straight from a checkout with
python3 -m spot_ai_mcp (no dependencies to install).
Register with Claude Code:
claude mcp add spot-ai -s user -e SPOT_AI_API_KEY=YOUR_KEY -- uvx spot-ai-mcp
API key
Create a key in the Spot AI dashboard's API settings, then add an authorization
(a role, e.g. Owner, optionally scoped) on the key's settings page. A key without a
role returns empty lists from every resource endpoint while get_camera_count still
works — that's the tell.
The server resolves the key lazily on the first API call:
SPOT_AI_API_KEYenvironment variable — the normal path.- Optionally, a secret-helper command, so the key never sits in an env var or config:
the server runs
$SPOT_AI_OP_BIN -f $SPOT_AI_OP_ITEM $SPOT_AI_OP_FIELD(defaults1psa -f spot.ai api_key, per 1psa, a vault-scoped 1Password service-account CLI). Point these at any command with the same flag convention.
The key is never written to disk or config by this server.
Tools
| Tool | What it does |
|---|---|
list_locations |
Locations the key can see (paginated) |
list_cameras |
Cameras with status, location, IP, MAC (paginated) |
get_camera |
One camera by id |
get_camera_count |
Number of enabled cameras in the org |
list_appliances |
Intelligent Video Recorders (paginated) |
get_zones |
Zones defined on a camera |
get_intelligence |
Counting / idle / presence events for people, vehicles, or forklifts over a date range |
get_lpr_report |
License-plate-recognition report for an LPR camera |
get_live_stream_urls |
Live-stream viewing URL for up to 4 cameras |
spot_api_get |
Escape hatch: GET any documented /v1/ or /v2/ path |
Notes
- Dual-era MCP server: speaks both the modern per-request protocol
(
server/discover, spec 2026-07-28) and the legacyinitializehandshake (2024-11-05 through 2025-06-18), so old and new clients both work. - Base URL is
https://dev-api.spot.ai, auth isAuthorization: Bearer <key>. - Cloudflare in front of the API rejects Python's default user agent with error 1010;
the server sends
User-Agent: spot-ai-mcp/<version>. - Endpoint index: https://developers.spot.ai/llms.txt (append
.mdto any docs URL for markdown, including the OpenAPI definition per endpoint).
License
MIT
Metadata
Release files for spot-ai-mcp 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spot_ai_mcp-0.3.0.tar.gz | 8.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spot_ai_mcp-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.8 kB
Release files / spot_ai_mcp-0.3.0.tar.gz
| Download URL | spot_ai_mcp-0.3.0.tar.gz |
|---|---|
| Size | 8.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1e18f45332ad73172d5edbb37dcebc94ee352912fbdae1c6f4fdce65f239fba4
|
|
BLAKE2b-256 checksum How to use checksums |
1ea256b53094ecd90aa72f4df4827d4bb3135e2eab8de8e684004059f099008d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.
Transparency logRelease files / spot_ai_mcp-0.3.0-py3-none-any.whl
| Download URL | spot_ai_mcp-0.3.0-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9103b599d7212dbcae75781ff5d20a7cbd032e491ae5543af8c840ecab075d1a
|
|
BLAKE2b-256 checksum How to use checksums |
9c00fc1244a7a06fe86599c0e2754bda4427df84500dd0e863d7913ad319ac25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.
Transparency log