Skip to main content
Glama
SightRadar MCP Server

SightRadar MCP Server

Official

Search a collection by face

search_faces
Idempotent

Find every photo in a collection that contains the person in a selfie or 512-number face embedding. Returns ranked matches with photo IDs and scores, or a reason when no face is detected.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of matches to return.
gcs_keyNoObject key of the query face image on the CDN configured for your account (instead of a URL).
embeddingNoA 512-number face embedding (from register_selfie) instead of an image.
file_pathNoPath to the query face image on this computer (JPEG, PNG, WebP, GIF, BMP, TIFF or HEIC).
image_urlNoPublic http(s) URL of the query face image. SightRadar downloads it; it must be reachable from the internet.
thresholdNoMinimum cosine similarity for a match (0-1). Omit to use the calibrated default.
image_base64NoThe query face image as base64 (a data: URL is fine). Up to 30 MB decoded. Prefer image_url for large files.
collection_idYesCollection id.
idempotency_keyNoOptional. A retry that reuses the key is never charged twice: if the first call finished, the retry gets 409 duplicate_request_already_processed; if it is still running, 409 duplicate_request_in_flight. Use a new key for each different request.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the cost (93 credits), the return shape ({photo_id, score} best first, plus photo_ids), and the named failure reasons (no_face, low_quality_selfie). The annotations already flag openWorldHint and idempotentHint, and the description's cost disclosure usefully explains why readOnlyHint is false; only rate limits and the semantics of 'score' are left implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences: what it does, what it returns, what failures mean, and what it costs — front-loaded with the core purpose and free of filler. Every clause carries distinct information an agent needs before calling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return contract itself and does so: match list shape, ordering, parallel photo_ids, and reason codes for empty results. Combined with the 100%-covered schema and the cost disclosure, nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema, including the embedding origin and the calibrated default for threshold. The description adds no syntax, format, or precedence guidance beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with scope: find photos in a collection matching the person in a query image or a 512-number embedding. The 'in a collection' scoping separates it from a standalone face comparison, but it never names the neighboring tools (compare_faces, detect_faces, search_by_point_id) it should be distinguished from.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: 'typically a selfie' hints at the common input, and the embedding path is described, but there is no explicit when-to-use vs. when-to-use-a-sibling guidance and no note on choosing among the five query modalities (file_path, image_url, gcs_key, image_base64, embedding).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.