list_collections
List collections
List the face collections on this SightRadar account, with photo, face and selfie counts. Supports substring search and paging. Free.
limitqueryoffsetstatusio.github.sightradar-hqPublished by GitHub account sightradar-hqv0.1.0Updated Nov 7, 2026
Face recognition: index photos, find a person's photos from a selfie, batches, webhooks, billing.
SightRadar's hosted MCP server (mcp.sightradar.com); OAuth sign-in required; Streamable HTTP; 27 tools.
No AI overview yet: these facts come from the registry entry and the server itself.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.sightradar-hq%2Fsightradar-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"sightradar": {
"type": "http",
"url": "https://mcp.sightradar.com/mcp"
}
}
}[SightRadar — Face Recognition API]
Face recognition for AI assistants. Index event photos, find every photo a person appears in from one selfie, run batches, manage webhooks and billing, all from Claude, ChatGPT, Cursor, VS Code or any MCP client.
[npm version] [License: MIT] [Documentation]
There are two ways to connect. Both expose the same tools.
Add https://mcp.sightradar.com/mcp as a custom connector. On first use your browser opens sightradar.com, you sign in and choose what the assistant may do. Each connection gets its own revocable key, listed under API keys as MCP: <app name>.
claude mcp add --transport http sightradar https://mcp.sightradar.com/mcp~/.cursor/mcp.json) / VS Code (.vscode/mcp.json, key servers):
Prefer an API key? Send it as a header instead of signing in:
Create an API key at sightradar.com/dashboard/keys, then:
That block works in Claude Desktop (claude_desktop_config.json), Cursor, Windsurf, Cline and most clients. Claude Code:
Credits: 100,000 credits = US$1. Every billable tool states its price in its description, and accepts an idempotency_key so a retry is never charged twice.
read — free
search — spends credits, stores nothing
write — spends credits / stores data
delete — free
account — free, off by default on the local server
Clients that show MCP prompts (Claude's "+" menu, / commands) get three ready-made workflows:
Resources: sightradar://docs/pricing-and-limits (credits per operation, rate limits, image and deletion limits) and sightradar://collections/{collection_id} (one collection's counts, needs the read scope).
Image tools take exactly one of:
image_url: a public http(s) URL. SightRadar downloads it, so it must be reachable from the internet.gcs_key: an object key on the CDN configured for your account.image_base64: the bytes as base64 or a data: URL. The remote server accepts up to 10 MB; the local server up to 30 MB.file_path (local server only): a JPEG, PNG, WebP, GIF, BMP, TIFF or HEIC file inside SIGHTRADAR_FILE_ROOTS.Files and base64 data are checked to be real images before anything is uploaded.
wedding-2026-10 and index every photo in ~/Pictures/wedding."wedding-2026-10 is she in?"marathon-7 and tell me when it's done."test-event collection." (The assistant confirms first, and the delete can be undone for 7 days.)readOnlyHint, destructiveHint), so clients can ask before destructive calls.immediate or compliance to be set explicitly.read-only connection cannot spend credits or change data.SIGHTRADAR_FILE_ROOTS, after resolving symlinks, and only image files.createSightRadarServer({ api, scopes }) and TOOLS are exported for embedding the same tools in another host.
sightradar on npm · Python SDK: sightradar on PyPIMIT licensed.
Source: README.md at commit bffca2c
List collections
List the face collections on this SightRadar account, with photo, face and selfie counts. Supports substring search and paging. Free.
limitqueryoffsetstatusGet a collection
Show one collection: status, photo_count, face_count, selfie_count, created_at and purge_after when a deletion is pending. Set verify=true to recount from the vector store instead of the cached counters. Free.
verifycollection_idrequiredCreate a collection
Create a face collection (for example one per event). Creating one that already exists and is active succeeds without change; one that is being deleted or was deleted returns 409 (use restore_collection or recreate_collection). Indexing into a missing collection also creates it, so this is optional. Free.
collection_idrequiredDelete a collection
Delete a collection and every face, selfie and photo record in it. By default this is a SOFT delete: the collection is hidden at once and purged after a 7-day grace period, and restore_collection undoes it until then. immediate=true starts the purge now and cannot be undone. compliance=true records an audited erasure (GDPR/BIPA) and cannot be restored. Confirm with the user before calling this. Free.
immediatecompliancecollection_idrequiredconfirm_eraseCheck a collection deletion
Track a collection deletion: phase (not_deleting, deletion_pending, deleting, completed, blocked), whether the data is verified gone (verified_zero), purge_after, attempts and the last error. Free.
collection_idrequiredRestore a deleted collection
Undo a soft delete while the collection is still in its grace period (status deletion_pending). Fails once the purge has started or for a compliance erasure. Free.
collection_idrequiredRecreate a purged collection
Bring back an empty collection under the same id after it has been fully deleted (status deleted). The old faces are not recovered. Free.
collection_idrequiredDelete a photo's faces
Remove every face indexed from one photo. Soft by default (restore_photo undoes it); immediate=true or compliance=true is permanent. Deleting a photo that is already gone still succeeds. Free.
photo_idrequiredimmediatecompliancecollection_idrequiredRestore a deleted photo
Undo a soft photo deletion made with delete_photo. Free.
photo_idrequiredcollection_idrequiredIndex a photo
Detect every face in a photo and store them in a collection so they can be found later by search_faces. Returns each face's point_id, bounding box (ratios of image width/height), detection score and pixel size. Faces below the quality gate (det_score < 0.6 or under 24 px) are counted as rejected. Indexing the same photo_id twice fails with already_indexed unless override=true. The collection is created if missing. Costs 93 credits.
gcs_keyoverridephoto_idfile_pathimage_urlimage_base64collection_idrequiredidempotency_keySearch a collection by face
Find the photos in a collection that contain the person in a query image (typically a selfie) or a 512-number embedding. Returns matches [{photo_id, score}] best first, plus photo_ids. When nothing matches, `reason` says why: no_face (no face found in the query) or low_quality_selfie. Costs 93 credits.
limitgcs_keyembeddingfile_pathimage_urlthresholdimage_base64collection_idrequiredidempotency_keySearch by a stored face
Find a registered person's photos again without re-sending their selfie: pass the point_id returned by register_selfie for this collection. Cheaper than search_faces. Only selfie point ids (a UUID or an unsigned integer) work here; face point ids from index_photo return reason=point_not_found. Returns matches [{photo_id, score}]. Costs 62 credits.
limitpoint_idrequiredthresholdcollection_idrequiredidempotency_keyRegister a selfie
Store a user's selfie in a collection so they can be matched against its photos. Returns face_found, the selfie's point_id (use with search_by_point_id) and its 512-number embedding. face_found=false with reason=no_face means no face was found; a face that fails the quality gate (det_score < 0.6 or under 24 px) is refused with HTTP 422 and not stored. Retrying with the same idempotency_key returns the original point_id without a second charge. Costs 93 credits.
gcs_keyuser_idrequiredfile_pathimage_urlselfie_idimage_base64collection_idrequiredidempotency_keyDetect faces
Find the faces in an image without storing anything. Returns detected_face_count, gated_face_count (faces that pass the quality gate) and per face: bounding box (ratios), det_score, min_px and quality_passed. Useful to check a photo or selfie before indexing. Costs 93 credits.
gcs_keyfile_pathimage_urlimage_base64idempotency_keyCompare two faces
Check whether two images (or embeddings) show the same person. Uses the best face on each side. Returns face_found, similarity (0-1, null when a side has no face), match and the threshold used. Each side is a public URL, a CDN key or a 512-number embedding. Costs 93 credits per image processed: 186 for two images, 93 for one image and one embedding, 93 for two embeddings.
source_urltarget_urlsource_gcs_keytarget_gcs_keyidempotency_keysource_embeddingtarget_embeddingSubmit a batch job
Queue up to 1000 photo URLs for background processing. op=index stores their faces in the collection; op=match matches them against the collection. Submitting is free; each photo costs 62 credits when it is processed (some accounts pay the real-time 93 for a batch of one photo). The collection is created if missing; one that is being deleted is refused with 409 collection_not_writable. Only URLs are accepted, not base64. Returns batch_id; poll get_batch or register a webhook to hear when it finishes. URLs are not checked at submit time: unreachable ones fail individually later.
oprequiredphotosrequiredoverridecollection_idrequiredidempotency_keywebhook_endpoint_idList batch jobs
List recent batch jobs newest first with status and succeeded/failed/pending counts. For the next page pass next_before_created and next_before_id from the previous answer. Free.
limitbefore_idbefore_createdGet batch status
Status of one or many batch jobs: status, total_photos, succeeded, failed, pending. Pass batch_id for one, or batch_ids (up to 5000) for many at once; ids you don't own are left out. Free.
batch_idbatch_idsGet per-photo batch results
Per-photo results of a batch: external_id, status, face_count and reason_code for failures. Page with after_index = next_after_index. Free.
limitbatch_idrequiredafter_indexRetry failed batch photos
Retry batch photos that failed for a given reason, in two steps. First call with execute=false to get a preview: how many photos match, the estimated credit cost and a preview_id (valid 10 minutes, usable once). Show that to the user, then call again with execute=true and the preview_id. Requeued photos are charged when processed, usually 62 credits each; the preview's credits_per_photo and estimated_credits give the exact price.
limitexecuterequiredpreview_idreason_codecreated_aftercreated_beforestagger_secondsList webhooks
List webhook endpoints (id, url, status, created_at). Optionally filter by status. Free.
statusAdd a webhook
Register a public HTTPS URL to receive batch-completion and deletion events. Each delivery is signed: X-SightRadar-Signature = hex HMAC-SHA256(secret, '<X-SightRadar-Timestamp>.<raw body>'). If you omit secret one is generated and returned ONCE in this answer: tell the user to store it. Free.
urlrequiredsecretDisable a webhook
Stop deliveries to a webhook endpoint. Already-disabled endpoints succeed again. Free.
webhook_endpoint_idrequiredList failed webhook deliveries
Deliveries that gave up after all retries (9 attempts): delivery_id, endpoint, url, attempts, last status code and error. Free.
limitReplay failed webhook deliveries
Send failed deliveries again. Pass delivery_ids to replay specific ones, or omit to replay all of them. Returns how many were requeued. Free.
delivery_idsGet credit balance
Current credit balance of the account. 100,000 credits = US$1. Real-time index, search, selfie, detect = 93 credits; compare = 93 per image; batch photo and search_by_point_id = 62. Free.
Takes no parameters.
Get usage
Calls and credits spent, per operation. granularity=summary (default) gives totals per op; daily gives a day-by-day series including storage charges; storage gives the daily stored-vector count and storage credits. Use days (1-365) or a from/to date range (YYYY-MM-DD). Free.
todaysfromgranularity100% 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.
{ "mcpServers": { "sightradar": { "url": "https://mcp.sightradar.com/mcp" } } }{ "mcpServers": { "sightradar": { "url": "https://mcp.sightradar.com/mcp", "headers": { "Authorization": "Bearer frs_your_key" } } }}{ "mcpServers": { "sightradar": { "command": "npx", "args": ["-y", "sightradar-mcp"], "env": { "SIGHTRADAR_API_KEY": "frs_your_key" } } }}claude mcp add sightradar --env SIGHTRADAR_API_KEY=frs_your_key -- npx -y sightradar-mcpnpm installnpm test # unit tests against a mocked APInpm run buildSIGHTRADAR_API_KEY=frs_... node scripts/smoke.mjs # free live calls over stdio