Whatever produces findings uploads a versioned JSON contract to S3. The portal renders it as a filterable card gallery. An MCP server sits next to it, so Claude Desktop or Claude Code can query the same feed directly — no dashboard, no copy-pasting, nothing to install.
No redeploy needed to publish new findings — the portal
polls S3 on a short TTL (or an immediate /refresh), so
updating the feed is just an upload.
/refresh.
Malformed uploads are rejected — the last known-good data keeps serving.The MCP server is a thin, read-only HTTP client of the portal's own public routes — hosted remotely, so there's nothing to install or run locally on any machine.
/mcp appendedhttps://researchthis-mcp.onrender.com/mcp
claude mcp add --transport http researchthis-portal \ https://researchthis-mcp.onrender.com/mcp
search_findings(...)Filter by section, track, warn flag, keywordget_findings_meta()Counts, freshness, theme-track taxonomysearch_zotero_library(query)Search the connected Zotero libraryget_zotero_reconciliation()What's in both sources, what's missing from Zotero
A few constraints the portal is built around — not features, but things it deliberately refuses to do.