Remote MCP · no auth

Add this archive as MCP

A free, remote Model Context Protocol server for vibe search over 3,002 historic annual-report covers (1945–2023). Paste a URL — or click Add to Cursor.

Search designed and built by @rachpradhan.

Checking server…
Add to Cursor

The Add to Cursor button opens a deeplink. If nothing happens, copy the JSON into ~/.cursor/mcp.json.

Server URL

Streamable HTTP. Public — no API key on the client. Search is embedded on our side.

https://annualreport.gallery/api/mcp

What is MCP?

The Model Context Protocol is an open standard that lets AI apps connect to tools and data. Think of it as a USB-C port for agents — Cursor, Claude, and others speak the same protocol.

This server is remote and unauthenticated. Point a client at the URL above and it can search covers, fetch a record, or find nearest neighbors in the image+caption embedding space.

Tools

search_coversSemantic / vibe search. Designer language (“quiet type on an ivory field”, “playful 1950s mascot”) or company / year / what’s pictured. Optional decade, industry, color.
get_coverOne cover by id: company, year, description, public image, gallery link, full-scan URL.
similar_coversNearest neighbors in the embedding space. No live query embed required.
list_facetsCounts for decade, industry, and color so filters stay valid.

Resource cover://{id} · prompt copy_for_ai.

Setup

The field name for the server URL depends on the client. Devin Desktop uses serverUrl; Cursor and most others use url. The wrong key is silently ignored.

Cursor

{
  "mcpServers": {
    "annual-report-archive": {
      "url": "https://annualreport.gallery/api/mcp"
    }
  }
}

Drop that in ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this repo). Or use Add to Cursor.

Claude Code

claude mcp add -s user -t http annual-report-archive https://annualreport.gallery/api/mcp

Then ask Claude to search covers by vibe, company, or what’s pictured.

Claude Desktop and other clients

{
  "mcpServers": {
    "annual-report-archive": {
      "url": "https://annualreport.gallery/api/mcp"
    }
  }
}

Same url field as Cursor. Some clients want "type": "http" next to the URL — add it if the server does not appear.

Devin Desktop

{
  "mcpServers": {
    "annual-report-archive": {
      "serverUrl": "https://annualreport.gallery/api/mcp"
    }
  }
}

Devin uses serverUrl, not url.

Protocol

Streamable HTTP at /api/mcp. That is the current MCP transport and what Cursor, Claude, and Cloudflare expect.

No SSE fallback is published. Clients should POST JSON-RPC with Accept: application/json, text/event-stream.

Related