llms.txt
# Montage for AI agents
Montage searches public originals across images, videos, social posts, news, products, places, events and web pages with one natural-language query. Results are source references, not independently verified answers.
Full reference: https://www.montages.co/llms-full.txt
Connect: `claude mcp add --transport http montage https://www.montages.co/mcp`
The MCP and search API are currently free, with no account or API key required; existing rate limits apply.
## Documentation
- [Developer and agent docs](https://www.montages.co/docs): MCP and HTTP quickstarts, request and response fields, access, coverage, continuation, errors and limits.
- [Pricing](https://www.montages.co/pricing): currently free access and existing limits.
- [Claude Code project config](https://www.montages.co/agent-configs/claude-code/.mcp.json): client-specific HTTP configuration, not a universal MCP discovery format.
- [Montage plugin MCP config](https://www.montages.co/agent-configs/plugins/montage/mcp.json): the repository's plugin format, Streamable HTTP, no credentials.
## Shared versioned search
- HTTP: POST https://www.montages.co/api/search/v2
- MCP: https://www.montages.co/mcp (Streamable HTTP, no account required)
- Preferred tool: search_montage_v2
- Contract: montage.search.v2
- Request: {"query":"japanese architecture","limit":8}
- HTTP optional channel: agent (default); optional contract_version must equal montage.search.v2.
- Optional media_type: image or video. Optional cursor: previous next_cursor.
- Query: 1–300 characters. Limit: 1–10, default 8. JSON body: at most 32 KB.
- Content-Type: application/json. MCP also requires Accept: application/json, text/event-stream.
HTTP and MCP return the same object; MCP includes it in structuredContent and text. Website inventory uses this same versioned endpoint with the guarded website channel and stage options for progressive frames, retained continuation and widgets. Website display does not grant third-party reuse permission. The retired /api/agent/search URL redirects to /api/search/v2.
Every response also carries montage_url, the query's website results page: https://www.montages.co/search?q=<query>. Older /explore?q= result links redirect there with HTTP 301.
## Result permissions
Results contain title, result_type, source_url, source_name, attribution and access. Visual references may include media_type. Types: image, video, social_post, news, product, place, event, web_page, audio.
access=reference_only returns original links and public platform/creator credits only: no thumbnails, captions, transcripts, summaries, evidence text, inspected intervals or player payloads. Unknown sources default to references or omission, never full output. access=full permits only fields covered by validated item rights. Compatible licensed works carry license identifier, URL, creator, attribution_url and changes; metadata/text permission alone does not authorize media. Where permitted, summary and evidence text are bounded to 320 characters with provenance and coverage. rights_status=unknown does not grant reuse rights. Preserve attribution, license and applicable share-alike requirements. Download permission is not provided.
Legacy search_montage returns montage.search.v1 visual references from the same snapshot. Image/evidence/player fields are optional when output permission limits a result to a reference. Do not invent missing fields or interchange legacy and v2 cursors.
## Bounded coverage and continuation
completeness is complete or partial. Complete means the bounded selected search finished, never exhaustive web coverage. coverage.scope is bounded_search_not_exhaustive. contributed lists categories with allowed results. unavailable, timed_out and uncertain identify failed, unfinished or indeterminate categories; these lists can overlap contributed.
Initial collection has a 9-second deadline, plus bounded cache and publisher checks. Repeated queries reuse snapshots and source caches. Ordinary agent search does not initiate query-understanding, optional model ranking, answer synthesis or media inspection. Safety refusals, publisher controls and existing rate/provider budgets apply.
next_cursor continues an immutable result snapshot in stable order without duplicate originals or another search. Repeat the exact query and media_type; limit can change. A null cursor means no more results in this snapshot, not no more originals anywhere. Snapshots expire after at most five minutes (snapshot_expires_at); continuation never renews expiry. Publisher controls and output permissions are rechecked on each page. Unavailable snapshots return cursor_expired; explicitly start a new search without cursor if wanted.
## Typed failures and limits
error contains code, message and retryable. Codes: invalid_request (HTTP 400), invalid_cursor (400), cursor_expired (410), refused (422), rate_limited (429), no_results (200), source_unavailable (503), timed_out (504), aborted (499). Useful partial results return HTTP 200 with category gaps. Empty no_results is distinct from unavailable sources or an elapsed deadline. MCP failures set isError with the same typed error; no_results is an ordinary empty search. JSON-RPC validation retains standard protocol errors. Honor Retry-After, RateLimit-* and X-RateLimit-* headers. Changing transports does not create another provider budget.
## Evidence limits and research
Source excerpts and metadata are not independent truth or full-media review. Evidence, when permitted, states provenance, coverage and verification limits. Never infer audio, motion, identity or full-video understanding from titles, thumbnails or captions.
montage_research_methods, montage_research_list, montage_research_evidence, montage_research_summary and montage_research_evidence_batch read collected source evidence. montage_research_discover and montage_research_inspect_media remain explicit, separately bounded operations. Ordinary search does not invoke them. Use montage_research_methods for current contracts.