SightRadar

io.github.sightradar-hq由 GitHub 账号 sightradar-hq 发布v0.1.0更新于 Nov 7, 2026

人脸识别:为照片建立索引,通过自拍查找某人的照片,支持批量处理、webhooks、计费。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Face recognition: index photos, find a person's photos from a selfie, batches, webhooks, billing.

已验证Streamable HTTP可网页运行

概览

SightRadar 的托管 MCP 服务(mcp.sightradar.com);需要 OAuth 登录;Streamable HTTP;27 个工具。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

端点
mcp.sightradar.com
最近检查

安装

在 SourceWeft 中

  1. 打开 控制台中的 SightRadar,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.sightradar-hq%2Fsightradar-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "sightradar": {
      "type": "http",
      "url": "https://mcp.sightradar.com/mcp"
    }
  }
}

README

[SightRadar — Face Recognition API]

SightRadar MCP Server

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.

Remote (hosted)Local (this package)
URL / commandhttps://mcp.sightradar.com/mcpnpx -y sightradar-mcp
Sign-inSightRadar account (email + password, Google or email link), or an API key as a Bearer tokenSIGHTRADAR_API_KEY
InstallNothingNode.js 20+
Images from your computerNo (URLs or base64)Yes, file_path

Remote server (recommended)

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 (claude.ai, Desktop): Settings → Connectors → Add custom connector → paste the URL.
  • ChatGPT: Settings → Apps & Connectors → Create → paste the URL, authentication OAuth.
  • Claude Code: claude mcp add --transport http sightradar https://mcp.sightradar.com/mcp
  • Cursor (~/.cursor/mcp.json) / VS Code (.vscode/mcp.json, key servers):
    json
    { "mcpServers": { "sightradar": { "url": "https://mcp.sightradar.com/mcp" } } }

Prefer an API key? Send it as a header instead of signing in:

json
{  "mcpServers": {    "sightradar": {      "url": "https://mcp.sightradar.com/mcp",      "headers": { "Authorization": "Bearer frs_your_key" }    }  }}

Local server

Create an API key at sightradar.com/dashboard/keys, then:

json
{  "mcpServers": {    "sightradar": {      "command": "npx",      "args": ["-y", "sightradar-mcp"],      "env": { "SIGHTRADAR_API_KEY": "frs_your_key" }    }  }}

That block works in Claude Desktop (claude_desktop_config.json), Cursor, Windsurf, Cline and most clients. Claude Code:

sh
claude mcp add sightradar --env SIGHTRADAR_API_KEY=frs_your_key -- npx -y sightradar-mcp
VariableDefault
SIGHTRADAR_API_KEY(required)API key
SIGHTRADAR_SCOPESread,search,write,deleteWhich tool groups to expose. all adds account; read gives a read-only server.
SIGHTRADAR_FILE_ROOTSyour home folderFolders file_path may read (separated by : on macOS/Linux, ; on Windows). none turns file_path off.
SIGHTRADAR_BASE_URLhttps://api.sightradar.comAPI base URL
SIGHTRADAR_TIMEOUT_MS120000Per-request timeout
SIGHTRADAR_DEBUGunsetLog each tool call (no arguments or results) to stderr

Tools

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

Tool
list_collectionsCollections with photo, face and selfie counts; search and paging
get_collectionOne collection's status and counts (verify recounts from the vector store)
get_deletion_statusProgress of a collection deletion
list_batches / get_batch / get_batch_photosBatch jobs, status (one or up to 5000 at once) and per-photo results
list_webhooks / list_webhook_failuresWebhook endpoints and dead-lettered deliveries
get_balance / get_usageCredit balance; usage summary, daily series or storage

search — spends credits, stores nothing

ToolCredits
search_faces93Find every photo in a collection containing the person in a selfie (or an embedding)
search_by_point_id62Repeat a registered selfie's search without re-sending it
detect_faces93Faces, bounding boxes and quality in an image
compare_faces93 per imageAre two faces the same person?

write — spends credits / stores data

ToolCredits
index_photo93Store a photo's faces in a collection
register_selfie93Store a person's selfie; returns its point id and embedding
submit_batch62 per photoUp to 1000 photo URLs, index or match, processed in the background
requeue_failed_batch_photos62 per photoRetry failed batch photos (preview, then execute)
create_collection / recreate_collectionfree
create_webhook / replay_webhook_failuresfreeSigned deliveries for batch and deletion events

delete — free

Tool
delete_collectionSoft delete with a 7-day restore window by default; immediate or compliance erase permanently
restore_collectionUndo a soft delete
delete_photo / restore_photoRemove or restore one photo's faces
delete_webhookStop deliveries to an endpoint

account — free, off by default on the local server

Tool
list_api_keys / create_api_key / revoke_api_keyAPI keys
get_profile / update_profileName and organization
get_billing_settings / update_auto_recharge / get_invoiceAuto-recharge, orders and invoice PDFs
get_notification_settings / update_notification_settings / manage_notification_recipientEmail alerts and extra recipients
list_team_membersOrganization members

Prompts and resources

Clients that show MCP prompts (Claude's "+" menu, / commands) get three ready-made workflows:

PromptWhat it does
find_person_in_eventChecks the balance, searches a collection with a selfie and lists the matching photos
index_event_photosPicks index_photo or submit_batch by photo count and states the cost before starting
account_healthBalance, recent usage, failed batch photos and failed webhook deliveries

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).

Images

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.

Example prompts

  • "Create a collection called wedding-2026-10 and index every photo in ~/Pictures/wedding."
  • "Here is a selfie of Priya: which photos in wedding-2026-10 is she in?"
  • "Submit these 600 photo URLs as a batch into marathon-7 and tell me when it's done."
  • "How many credits did I spend this week, and on what?"
  • "Delete the test-event collection." (The assistant confirms first, and the delete can be undone for 7 days.)

Safety

  • Tools carry MCP annotations (readOnlyHint, destructiveHint), so clients can ask before destructive calls.
  • Deletes are soft by default. Permanent erasure needs immediate or compliance to be set explicitly.
  • Scopes limit what a connection can do. A read-only connection cannot spend credits or change data.
  • The local server reads files only inside SIGHTRADAR_FILE_ROOTS, after resolving symlinks, and only image files.
  • API errors come back as tool results with the error code, a hint and the request id, never as stack traces.

Troubleshooting

You seeMeaning
401 / unauthorizedThe API key was revoked or mistyped. Create a new one at sightradar.com/dashboard/keys; remote connections: reconnect.
402 / insufficient_creditsTop up at sightradar.com/dashboard/billing.
409 / duplicate_request_already_processedThat idempotency_key was already used and charged; the earlier call succeeded.
file_path ... is outside the folders this server may readAdd the folder to SIGHTRADAR_FILE_ROOTS (:-separated on macOS/Linux, ; on Windows).
429Over 50 requests/s per key or 10 in flight per account. Wait and retry.

Development

sh
npm installnpm test          # unit tests against a mocked APInpm run buildSIGHTRADAR_API_KEY=frs_... node scripts/smoke.mjs   # free live calls over stdio

createSightRadarServer({ api, scopes }) and TOOLS are exported for embedding the same tools in another host.

Links

MIT licensed.

来源:README.md,提交 bffca2c

工具

27

list_collections

List collections

List the face collections on this SightRadar account, with photo, face and selfie counts. Supports substring search and paging. Free.

输入参数limitqueryoffsetstatus

get_collection

Get 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_id必填

create_collection

Create 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_id必填

delete_collection

Delete 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_id必填confirm_erase

get_deletion_status

Check 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_id必填

restore_collection

Restore 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_id必填

recreate_collection

Recreate 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_id必填

delete_photo

Delete 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_id必填immediatecompliancecollection_id必填

restore_photo

Restore a deleted photo

Undo a soft photo deletion made with delete_photo. Free.

输入参数photo_id必填collection_id必填

index_photo

Index 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_id必填idempotency_key

search_faces

Search 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_id必填idempotency_key

search_by_point_id

Search 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_id必填thresholdcollection_id必填idempotency_key

register_selfie

Register 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_id必填file_pathimage_urlselfie_idimage_base64collection_id必填idempotency_key

detect_faces

Detect 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_key

compare_faces

Compare 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_embedding

submit_batch

Submit 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.

输入参数op必填photos必填overridecollection_id必填idempotency_keywebhook_endpoint_id

list_batches

List 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_created

get_batch

Get 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_ids

get_batch_photos

Get 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_id必填after_index

requeue_failed_batch_photos

Retry 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.

输入参数limitexecute必填preview_idreason_codecreated_aftercreated_beforestagger_seconds

list_webhooks

List webhooks

List webhook endpoints (id, url, status, created_at). Optionally filter by status. Free.

输入参数status

create_webhook

Add 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.

输入参数url必填secret

delete_webhook

Disable a webhook

Stop deliveries to a webhook endpoint. Already-disabled endpoints succeed again. Free.

输入参数webhook_endpoint_id必填

list_webhook_failures

List failed webhook deliveries

Deliveries that gave up after all retries (9 attempts): delivery_id, endpoint, url, attempts, last status code and error. Free.

输入参数limit

replay_webhook_failures

Replay 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_ids

get_balance

Get 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.

无需输入参数。

get_usage

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.

输入参数todaysfromgranularity

版本历史

1
  1. v0.1.0最新Nov 3, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分