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.
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.
~412k
tokens for one category page of raw markup, before the model has answered anything
~180
tokens for the schema and row count, plus whatever slice the agent decides it needs
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_listStart 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_pagesRun a detail-page template across a URL set from another table, a sitemap branch, or an explicit list. Streams progress as counts.
fyre.query_tableFilter, sort, group and aggregate a table server-side. This is what keeps a 120,000-row result affordable to reason about.
fyre.read_rowsPull an explicit, bounded slice of rows into context. The agent has to ask for this, which is the point.
fyre.exportWrite the current table to CSV, JSON, a Google Sheet, or a webhook, and return the destination rather than the payload.
fyre.list_tablesEnumerate tables in the session workspace with their schemas and row counts, so a long task can pick up where it left off.
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{
"mcpServers": {
"fyre": {
"command": "npx",
"args": ["-y", "@fyre/mcp"],
"env": { "FYRE_LICENCE_KEY": "your-key" }
}
}
}claude mcp add fyre -- npx -y @fyre/mcpYou 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.
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.