Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
dce087e
feat(mcp): expose keyless job feedback
Max17190 Sep 11, 2026
64e4a0d
docs(mcp): clarify feedback contracts by authentication
Max17190 Sep 11, 2026
1acece4
fix(mcp): preserve explicit local parse API configuration
Max17190 Sep 11, 2026
b935f42
fix(mcp): align local parse with API URL defaults
Max17190 Sep 11, 2026
c597f30
test(mcp): verify local and hosted parse guidance
Max17190 Sep 11, 2026
5d1507a
fix(mcp): forward feedback invitation preferences
Max17190 Sep 11, 2026
126b484
docs(mcp): clarify shared keyless feedback daily limit
Max17190 Sep 11, 2026
ff71c57
fix(mcp): honor feedback opt-outs across authenticated tools
Max17190 Sep 11, 2026
f247bf6
fix(mcp): retain keyless feedback regardless of client preferences
Max17190 Sep 12, 2026
e0533f5
fix(mcp): require explicit API configuration for local parse
Max17190 Sep 12, 2026
3f4fba7
fix(mcp): clarify local parse configuration in keyless guidance
Max17190 Sep 12, 2026
fd3696e
feat(mcp): align keyless feedback observation guidance
Max17190 Sep 12, 2026
5e69c4b
docs(mcp): clarify search feedback source attribution
Max17190 Sep 12, 2026
b630d32
docs(mcp): align keyless feedback evidence guidance
Max17190 Sep 14, 2026
60f7e28
fix: align keyless feedback discovery and reason guidance
Max17190 Sep 17, 2026
24871f8
merge: synchronize keyless feedback with main
Max17190 Sep 17, 2026
75a6910
fix(mcp): describe keyless feedback as one submission per job
Max17190 Sep 23, 2026
c7c6704
merge: synchronize keyless feedback with main
Max17190 Sep 23, 2026
a76d7a4
fix(mcp): describe keyless feedback as requested in startup and READM…
Max17190 Sep 23, 2026
47625b8
fix(mcp): keep the authenticated Search feedback sentence
Max17190 Sep 23, 2026
a9574f2
feat(feedback): invite optional keyless feedback when a result goes w…
Max17190 Sep 28, 2026
c0cfa2b
refactor(feedback): keep keyless feedback out of shared tool descript…
Max17190 Sep 28, 2026
b70618c
merge: sync main for keyless feedback
Max17190 Oct 1, 2026
ac6553e
fix(feedback): preserve keyless invitations and optional guidance
Max17190 Oct 1, 2026
d06a2a7
fix(feedback): validate keyless evidence and preserve failed job text
Max17190 Oct 1, 2026
257081a
Merge remote-tracking branch 'origin/main' into max/enable-keyless-fe…
Max17190 Oct 3, 2026
8a0dc23
test: verify complete keyless feedback forwarding
Max17190 Oct 3, 2026
a08ef76
docs: tie keyless feedback guidance to the invitation deadline
Max17190 Oct 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 30 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ A Model Context Protocol (MCP) server that brings [Firecrawl](https://github.com
- Use `firecrawl_credit_usage` to check credits left or monthly consumption, optionally broken down by API key.
- Consider something else when you need to hold a browser session open across many of your own steps with your own retry and termination logic: each `firecrawl_interact` call runs one `prompt` or `code` turn to completion and returns control — the session can persist across calls via `scrapeId` and ends with `firecrawl_interact_stop`, but you cannot drive it interactively step-by-step from the client side within a single call.

This server lists 26 tools when the full profile registers with default settings (feedback tools included, not running in local-keyless mode). Setting `FIRECRAWL_NO_SEARCH_FEEDBACK=1` and/or `FIRECRAWL_NO_ENDPOINT_FEEDBACK=1` removes the corresponding feedback tools and reduces this count, as does local keyless startup. For clients with a tool-slot limit: the hosted keyless endpoint (`https://mcp.firecrawl.dev/v2/mcp`, no API key) exposes only 3 — `firecrawl_scrape`, `firecrawl_search`, `firecrawl_parse` — and the dedicated [search-only endpoint](#search-only-endpoint) (`https://mcp.firecrawl.dev/v2/mcp-search`) exposes a fixed set of 8 tools (search, developer and research search, plus Alexandria catalogue lookup and execution).
Authenticated sessions expose the full tool set. Setting `FIRECRAWL_NO_SEARCH_FEEDBACK=1` and/or `FIRECRAWL_NO_ENDPOINT_FEEDBACK=1` hides the corresponding authenticated feedback tools. For clients with a tool-slot limit: the hosted keyless endpoint (`https://mcp.firecrawl.dev/v2/mcp`, no API key) exposes 4 tools: `firecrawl_scrape`, `firecrawl_search`, `firecrawl_parse`, and `firecrawl_feedback`. The dedicated [search-only endpoint](#search-only-endpoint) (`https://mcp.firecrawl.dev/v2/mcp-search`) exposes a fixed set of 8 tools (search, developer and research search, plus Alexandria catalogue lookup and execution).

## Installation

Expand Down Expand Up @@ -508,7 +508,7 @@ For scientific papers, see [Research Tools](#12-research-tools-firecrawl_researc

**Returns:**

- Array of search results (with optional scraped content), plus an `id` field. Pass that `id` to `firecrawl_search_feedback` after you've used the results to refund 1 credit (search costs 2) and improve search quality.
- Array of search results with optional scraped content, plus an `id` field. Keyless callers can use the returned job reference and feedback invitation with `firecrawl_feedback`. Authenticated callers can continue using `firecrawl_search_feedback` with its existing fields and policy.

**Prompt Example:**

Expand Down Expand Up @@ -558,17 +558,37 @@ Sends structured feedback on a previous `firecrawl_search` result. The first fee

### 3c. Generic Feedback Tool (`firecrawl_feedback`)

Sends structured feedback for a completed v2 endpoint job through `/v2/feedback`.
Use this for endpoint-level feedback on `scrape`, `parse`, `map`, or `search`
jobs. For search-result quality specifically, prefer
`firecrawl_search_feedback` because it includes search-specific guidance.
Sends evidence through `/v2/feedback`. Feedback on keyless Search, Scrape, and
Parse jobs is optional. Consider submitting feedback through `firecrawl_feedback`, especially if this result is wrong, incomplete, blocked, or an error. Include specific evidence to help improve Firecrawl. These jobs require `endpoint`, `jobId`, `rating`, `task`, `assessment`, and 1-20
`observations`. Each observation has `kind`, `detail`, and `basis`: `output`,
`source_comparison`, or `expectation`. Source comparisons also require
`comparison: {reference, detail}`.

The tool's `observations` parameter lists the category fields below. Use only available evidence
and keep unverified expectations distinct from source comparisons.

Submit before the invitation's `expiresAt` deadline, which provides a 24-hour
feedback window for the job. Each job accepts one submission;
retrying it returns the original feedback ID. Feedback remains available after
operation allowance is exhausted and does not consume or restore that allowance.

Authenticated callers retain the existing issue/note fields for Search, Scrape,
Parse, and Map. For authenticated Search-specific feedback, continue using
`firecrawl_search_feedback`. Choose the contract that matches the originating
job's authentication; adding credentials does not convert a keyless job.

Keep feedback concise: use issue codes, tags, short notes, URLs, page numbers,
and small metadata objects. Do not include raw scrape/parse outputs.

**Opt out:** set `FIRECRAWL_NO_ENDPOINT_FEEDBACK=1` (or `FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1`) in the environment when starting the MCP server. The `firecrawl_feedback` tool will not be registered, so agents cannot call it.
Search observations identify delivered result positions or missing information. Scrape and Parse observations describe the requested output formats. Failed jobs use a `failure` observation based on the returned error. Parse additionally requires `docClass`: `born_digital`, `scanned`, `mixed`, or `unknown`.

**Usage Example:**
Task, assessment, and observation detail each require 10-2000 characters after trimming whitespace. Stored keyless feedback must fit within 8 KiB, including server defaults and verification flags. Submit from the same caller IP; attempts are rate limited.

The tool's `observations` parameter lists the endpoint-specific categories, fields, and reason codes. See the [API feedback contract](https://docs.firecrawl.dev/api-reference/endpoint/feedback) for examples, format constraints, and Parse retention behavior.

**Authenticated feedback preference:** set `FIRECRAWL_NO_ENDPOINT_FEEDBACK=1` (or `FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1`) to hide `firecrawl_feedback` from authenticated sessions. Keyless sessions retain the tool and server-issued invitations regardless of these flags. The API includes a pointer on every eligible keyless job response. Feedback is optional; continued keyless access does not depend on it.

**Authenticated usage example:**

```json
{
Expand Down Expand Up @@ -658,11 +678,11 @@ Check the status and results of an existing crawl job by ID.

Parse local files or hosted upload references with Firecrawl's `/v2/parse` endpoint.

**Best for:** PDFs, Word documents, spreadsheets, HTML files, and other documents that need markdown or structured JSON output. Hosted MCP supports a two-step upload-ref flow; local direct file reads require a self-hosted `FIRECRAWL_API_URL`.
**Best for:** PDFs, Word documents, spreadsheets, HTML files, and other documents that need markdown or structured JSON output. Hosted MCP supports a two-step upload-ref flow; local MCP requires an explicit API URL before reading and uploading the requested file.

**Not recommended for:** Remote URLs (use scrape), multiple files in one call (call parse once per file), or browser-only actions such as screenshots and clicks.

**Hosted MCP flow:** Hosted MCP cannot read the caller's filesystem directly. Call `firecrawl_parse` with `filePath` to receive a short-lived upload command and `nextToolCall`, upload the file locally, then call `firecrawl_parse` again with the returned `uploadRef`. Minting the hosted upload URL requires Firecrawl auth or keyless eligibility. In local `npx firecrawl-mcp` mode, direct file parsing currently requires `FIRECRAWL_API_URL` pointing to a self-hosted Firecrawl API; a plain cloud API-key-only local server cannot read and upload files through this tool.
**Hosted MCP flow:** Hosted MCP cannot read the caller's filesystem directly. Call `firecrawl_parse` with `filePath` to receive a short-lived upload command and `nextToolCall`, upload the file locally, then call `firecrawl_parse` again with the returned `uploadRef`. Minting the hosted upload URL requires Firecrawl auth or keyless eligibility. In local `npx firecrawl-mcp` mode, `FIRECRAWL_API_URL` must be explicitly configured before the server reads or uploads `filePath`. There is no default upload destination for local Parse. Both authenticated and eligible keyless calls are supported by the selected API. Running MCP locally does not perform parsing on the local machine. This configuration requirement selects the destination; it does not restrict which files the process can read.

**Usage Example:**

Expand Down
Loading
Loading