Fron Research Agent API

Demand data for recreation venues (saunas, bowling centers, trampoline parks, golf simulator studios, pickleball and padel clubs): how full they are, sell-through and modeled revenue by venue and market. The data tool returns structured rows (markets, venues, bookable slots, rollups); a free sample day needs no key, a key reads history. Also searches the public pages of Fron Research and its five sites. Read-only. Updated listing: adds the data tool.

Hosted MCP Server

npx add-mcp 'https://fronresearch.com/api/agent'

Installs into Claude Code, Codex, Cursor and more

Documentation

Doors

Each site answers at its own /api/agent, scoped to its pages and its example day, with its own URLs to cite; add site=all to search every site. The hub covers them all.

A request

Add intent=<why you are asking> to a search: it never changes the results and tells us what to publish next. Without it, a search returns followUp.questions you may answer next time.

Search with JSON

curl "https://fronresearch.com/api/agent?q=bowling%20lane%20utilization&intent=market%20sizing&format=json"

A free example day as rows

curl "https://bowlingdata.co/api/agent?doc=sample/bowlingdata&format=json"

MCP setup

Streamable HTTP, stateless, no authentication; tools about, search and fetch. Use a site’s door instead of the hub URL to scope the tools to that site. Server card · API catalog · llms.txt

Claude Desktop: claude_desktop_config.json (Settings → Developer → Edit Config), or the URL under Settings → Connectors → Add custom connector

{
  "mcpServers": {
    "fron-research": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://fronresearch.com/api/agent"
      ]
    }
  }
}

Cursor: ~/.cursor/mcp.json, or.cursor/mcp.json in a project

{
  "mcpServers": {
    "fron-research": {
      "url": "https://fronresearch.com/api/agent"
    }
  }
}

ChatGPT: Settings → Apps & Connectors → Create (developer mode), these three fields

{
  "name": "Fron Research Agent API",
  "mcp_server_url": "https://fronresearch.com/api/agent",
  "authentication": "none"
}

Citing answers

  • Cite the result’s canonicalUrl (or url, which adds ?via=agent&lid= so we can count visits from answers).
  • Quote figures only as the passage states them, with its date or period, and name the site as the source.
  • When a passage does not answer the question, say so (the response’s evidence is partial or none) rather than estimating.
  • A generic question at the hub (“pricing”) can come back as route.options: ask the user which product, or use that site’s door.