MCP — computed analytics, not search
Point Claude, ChatGPT, or Cursor at SerffSurf’s hosted MCP. We return computed percentiles, medians, and group aggregates across ~47 states — things a RAG document store cannot answer. Your access code unlocks server-side slices; never whole-file downloads.
Why SerffSurf MCP
Competitors ship semantic search over filings. We ship computed analytics: peer percentiles, state medians, group min/median/max LCM, expense component benchmarks, and deterministic briefings — derived from the same Postgres slice API that powers Site v2.
Endpoint
Streamable HTTP, plain JSON-RPC 2.0. POST only— one JSON response per request. Auth: Bearer token or ?key= (site cookie also works for browser clients on companion APIs).
POST https://serffsurf.com/api/mcp Authorization: Bearer <your-access-code> Content-Type: application/json # or POST https://serffsurf.com/api/mcp?key=<your-access-code>
Need a code? Request access. The same partner code that unlocks the site works here.
OAuth / DCR: discovery stub at /.well-known/oauth-protected-resource. Full OAuth is not implemented yet — keep using bearer / ?key.
Claude (custom connector)
- Open Claude → Settings → Connectors (or Custom connectors).
- Add a remote MCP server with URL: https://serffsurf.com/api/mcp
- Set authentication to Bearer token and paste your SerffSurf access code (or append ?key=<code> to the URL).
- Enable the connector in a chat and ask one of the example questions below.
ChatGPT
- Create or open a Custom GPT / use Apps & Connectors where remote MCP is available.
- Point the MCP / action endpoint at https://serffsurf.com/api/mcp
- Configure Authorization: Bearer <your access code>.
- Confirm tools appear (market_summary, group_position, expense_components, …) then try an example question.
Cursor
- Open Cursor Settings → MCP (or edit ~/.cursor/mcp.json).
- Add a server entry with transport type streamable HTTP / url pointing at the endpoint above.
- Include header Authorization: "Bearer <your access code>" (or use ?key=).
- Reload MCP servers and invoke a SerffSurf tool from Agent chat.
Example questions
No data is shown on this page — ask your connected client so results come through the gated tools.
“What’s the median WC LCM in Georgia, and how does taken compare to indicated?”
Uses market_summary — computed median/quartiles + methodology + rate trend across filed carriers (~47 states), not document retrieval.
“Where does the Travelers group sit vs peers — min, median, max LCM by state?”
Uses group_position — member roster plus per-state LCM min/median/max and best (lowest-LCM) entity.
“What’s the median commission provision by state?”
Uses expense_components — one-call computed median/quartiles from filed expense provisions.
“Where does Hartford sit on LCM in Illinois?”
Uses carrier_snapshot / carrier_position — computed peer percentiles + recent rate takes.
“Show regulator objections mentioning tier in Michigan.”
Uses objections_search — structured objection letters with disposition and excerpts.
“What are executives saying about workers’ comp right now?”
Uses industry_sentiment / market_voices — named-executive SEC quotes by LOB.
Tools
market_summaryComputed median/quartile LCM + methodology + movers (not RAG; ~47 states)carrier_snapshotComputed multi-state peer percentiles + latest rate changecarrier_positionComputed percentile LCM rows + rate actions for one carriergroup_positionNEW — group members + per-state LCM min/median/max + best entityexpense_componentsNEW — median expense provision by state (e.g. commission) in one callterritory_compareNEW — ZIP territory relativities when territories table is loadedbriefingsDeterministic rule-engine observations (alias: briefing)objections_searchRegulator objection letters + excerpts (alias: search_objections)industry_sentimentExecutive earnings sentiment by LOB (alias: market_voices)search_factsEvidence-linked LCM/deviation facts with tracking idsmi_lab_searchMI PPA / HO lab facts (experimental)data_overviewCorpus counts + aggregate teaser stats