Skip to content
AI agents & MCP

Give the agent hands,
not a wall of HTML

Pasting a page into a chat window is the most expensive possible way to read it. Fyre speaks the Model Context Protocol, so your agent can run an extraction, interrogate the result, and export the answer — while the markup stays where it belongs.

Set it upIncluded in the $15 licenceClaude · Cursor · any MCP client
The actual problem

A category page is about 400,000 tokens of nothing

Most of a modern web page is scaffolding: inline styles, hydration payloads, tracking attributes, and forty nested divs holding one price. Hand that to a model and you pay for all of it, twice, and still get a worse answer than a table would have given.

Fyre does the reading. What crosses into the conversation is a schema, a row count, and whatever the agent explicitly asks for afterwards.

Paste the page

~412k

tokens for one category page of raw markup, before the model has answered anything

Use the tool

~180

tokens for the schema and row count, plus whatever slice the agent decides it needs

What the agent gets

Six tools, and one rule between them

Nothing returns bulk content unless it is asked to. Every tool hands back a handle, a schema or a count, and reading rows is always a deliberate step.

  • fyre.extract_list

    Start a list extraction against a URL with a selector hint or a saved recipe. Returns a table handle, a schema and a row count — not rows.

  • fyre.extract_pages

    Run a detail-page template across a URL set from another table, a sitemap branch, or an explicit list. Streams progress as counts.

  • fyre.query_table

    Filter, sort, group and aggregate a table server-side. This is what keeps a 120,000-row result affordable to reason about.

  • fyre.read_rows

    Pull an explicit, bounded slice of rows into context. The agent has to ask for this, which is the point.

  • fyre.export

    Write the current table to CSV, JSON, a Google Sheet, or a webhook, and return the destination rather than the payload.

  • fyre.list_tables

    Enumerate tables in the session workspace with their schemas and row counts, so a long task can pick up where it left off.

Setup

Two minutes, one config block

Add the server to your client, restart it, and the scraping tools appear alongside everything else the agent can already do. There is no separate account and no API key beyond the licence you already have.

Full setup guide
claude_desktop_config.json
{
  "mcpServers": {
    "fyre": {
      "command": "npx",
      "args": ["-y", "@fyre/mcp"],
      "env": { "FYRE_LICENCE_KEY": "your-key" }
    }
  }
}
Claude Code / Cursor
claude mcp add fyre -- npx -y @fyre/mcp
In practice

You describe the outcome. It picks the tool.

There is no selector syntax to teach the agent and no scraping vocabulary to learn. Talk about the data you want the way you would talk to a colleague who is good with spreadsheets.

  • Structured in, structured out. The agent receives typed columns and row counts, not a megabyte of div soup it has to squint at.
  • Query before you read. Filter, sort, aggregate and sample a hundred-thousand-row result server-side, then pull only the rows that matter into context.
  • Thousands of pages per instruction. One sentence can start a run across an entire sitemap branch. Progress streams back as a count, not as content.
  • Isolated workspaces. Each agent session gets its own scratch space, so two parallel jobs cannot read or clobber each other's tables.
Get every product on this category page — title, price, rating — and follow pagination to the end.
fyre.extract_list → table t_41f9 · 2,481 rows · columns: title, price, rating, url, stock
How many are under £50 and actually in stock? Give me the ten best rated.
fyre.query_table → 318 rows match · returning 10
318 of 2,481 are under £50 and in stock. Top ten by rating below — Drift Merino Base leads at 4.7. Want these pushed to a sheet?
$15 · one payment · lifetime

Your agent is one config block away from a spreadsheet.

The MCP server is part of the same $15 licence. No separate plan, no per-call pricing, no metered tokens on our side.