firecrawl-mcp 3.27.1 → 3.27.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +17 -18
  2. package/dist/index.js +2400 -361
  3. package/package.json +8 -1
package/README.md CHANGED
@@ -419,6 +419,7 @@ Scrape content from a single URL with advanced options.
419
419
 
420
420
  **Branding format:** Extracts comprehensive brand identity (colors, fonts, typography, spacing, logo, UI components) for design analysis or style replication.
421
421
  **Privacy:** Set `redactPII: true` to return content with personally identifiable information redacted.
422
+ **Hosted server:** On the hosted server (`CLOUD_SERVICE=true`) scrape is read-only. It takes no browser `actions` and cannot accept provider terms. A named `profile` loads saved browser state without saving changes to it. An organization admin accepts terms in the dashboard.
422
423
 
423
424
  **Returns:**
424
425
 
@@ -747,17 +748,17 @@ The agent performs web searches, follows links, reads pages, and gathers data au
747
748
  - `enabled`, `toolkits` (up to 5 provider slugs), `maxCalls` (1 to 30), `requireApproval` (paid calls end the turn with a `pendingApproval`; needs `mode: "chat"` on the same call, even on a follow-up)
748
749
  - `onTermsRequired`: what to do when an Alexandria provider the agent would use needs data terms your team has not accepted. Gated providers are never called in any mode. Omitted on a follow-up keeps the previous turn's value.
749
750
  - `"skip"` (default): answer with accepted providers only. `exchange.skippedProviders` on the status result lists the gated providers that would have helped.
750
- - `"ask"`: the same, plus a terms `pendingApproval` and `exchange.requiresAction` with the exact `terms/show` and `terms/accept` calls for each provider. Each provider's `digest` is always present and is `string | null`; when it is `null`, `terms/show` returns the current digest to send.
751
+ - `"ask"`: the same, plus a terms `pendingApproval` and `exchange.requiresAction` with the approval ID and provider requirements. Read terms with `terms/show`; an organization admin accepts them in the Firecrawl dashboard.
751
752
  - `approve`: `{ approvalId, callIds?, always? }` answers yes to the `pendingApproval` the previous turn ended on. `callIds` and `always` apply to paid-call approvals only.
752
753
  - `decline`: `{ approvalId }` answers no. A declined terms offer keeps those providers out of the rest of the thread.
753
754
  - `approve` and `decline` need `threadId`, and only one of them can be sent.
754
755
 
755
- **Provider terms (ask mode):** there is no auto-accept mode. When a turn ends on a terms offer, the status result carries `pendingApproval` (`kind: "terms"`) and `exchange.requiresAction` with the `approvalId` and the exact `terms/show` and `terms/accept` calls. To use the provider:
756
+ **Provider terms (ask mode):** there is no auto-accept mode. When a turn ends on a terms offer, the status result carries `pendingApproval` (`kind: "terms"`) and `exchange.requiresAction` with the `approvalId` and provider requirements. Any `terms/accept` descriptor in that API payload is unavailable through MCP. To use the provider:
756
757
 
757
758
  1. Show the user the terms (`terms/show` through `firecrawl_scrape` with `alexandria`).
758
- 2. Get the user's explicit consent to that provider's terms. A data request is not consent.
759
- 3. Run the `terms/accept` call through `firecrawl_scrape`.
760
- 4. Continue the same thread: call `firecrawl_agent` with the same `threadId` and `exchange.approve: { "approvalId": "..." }`.
759
+ 2. Direct an organization admin to accept the terms at the provider's URL, or [data sources settings](https://www.firecrawl.dev/app/settings?tab=data-sources). A data request is not consent.
760
+ 3. Wait for the admin to confirm acceptance in the dashboard.
761
+ 4. Continue the same thread: call `firecrawl_agent` with the same `threadId` and `exchange.approve: { "approvalId": "..." }`. This resumes research and does not accept terms.
761
762
 
762
763
  If the user says no, call `firecrawl_agent` with the same `threadId` and `exchange.decline: { "approvalId": "..." }` instead.
763
764
 
@@ -818,13 +819,13 @@ Then poll with `firecrawl_agent_status` using the returned job ID.
818
819
  }
819
820
  ```
820
821
 
821
- **Usage Example (continue the thread after the user accepted a provider's terms):**
822
+ **Usage Example (continue the thread after an admin confirmed dashboard acceptance):**
822
823
 
823
824
  ```json
824
825
  {
825
826
  "name": "firecrawl_agent",
826
827
  "arguments": {
827
- "prompt": "I accepted the Apollo terms. Continue.",
828
+ "prompt": "The admin confirmed acceptance of the Apollo terms in the dashboard. Continue.",
828
829
  "threadId": "0199a1b2-0000-7000-8000-000000000031",
829
830
  "exchange": { "approve": { "approvalId": "0199a1b2-0000-7000-8000-000000000033" } }
830
831
  }
@@ -1113,16 +1114,14 @@ HTTP 403 and this body:
1113
1114
  The tool result relays it as an error with `structuredContent` carrying `code`,
1114
1115
  `status: 403`, `requestId`, the `requiresAction` object unchanged, and
1115
1116
  `next_actions` (`human_action_required` then `retry_same_request`). Accepting
1116
- terms is a legal act. Use the returned `nextTool` call to read the agreement through `firecrawl_scrape`
1117
- with `alexandria: [{provider: "firecrawl", capability: "terms/show", options: {provider: "<provider>"}}]`.
1118
- Present it to the user and obtain explicit authorization to bind their organization
1119
- before calling `firecrawl_scrape` with capability `terms/accept` under provider `firecrawl`.
1120
- Its options are `provider`, the exact reviewed `version`
1121
- and 64-character lowercase hexadecimal `digest`, and `confirmed: true`. A request
1122
- for data is not consent. Authority or eligibility errors may require an organization
1123
- admin to use `requiresAction.url`. No automatic acceptance or uncertain retries occur.
1124
- Send terms calls separately from execution. These are nested capabilities, not top-level MCP tools.
1125
- No credits are charged for the blocked retrieval. After confirmed acceptance, call the same
1117
+ terms is a legal act, so an organization admin accepts them in the Firecrawl dashboard, not
1118
+ through MCP. Use the returned `nextTool` call to read the agreement through `firecrawl_scrape`
1119
+ with `alexandria: [{provider: "firecrawl", capability: "terms/show", options: {provider: "<provider>"}}]`,
1120
+ sent separately from provider execution, and present it to the user. An organization admin then
1121
+ accepts it at `requiresAction.url`, or at https://www.firecrawl.dev/app/settings?tab=data-sources.
1122
+ `firecrawl_scrape` refuses every other `terms/*` capability, so it makes no account changes. A request
1123
+ for data is not consent, and no automatic acceptance or uncertain retries occur.
1124
+ No credits are charged for the blocked retrieval. After the admin confirms acceptance, call the same
1126
1125
  tool again with the identical payload and `requestId`.
1127
1126
 
1128
1127
  ### 16. Credit Usage Tool
@@ -1288,7 +1287,7 @@ The existing `firecrawl_feedback` tool accepts `endpoint: "alexandria"`:
1288
1287
  }
1289
1288
  ```
1290
1289
 
1291
- `objective` is the underlying goal of the session: what the agent or its user was ultimately trying to accomplish, beyond the single website in `requestedWebsite`.
1290
+ The optional `objective` is the underlying goal of the session: what the agent or its user was ultimately trying to accomplish, beyond the single website in `requestedWebsite`.
1292
1291
 
1293
1292
  This uses authenticated `POST /v2/feedback`, without a job ID, job-age deadline, or credit refund. Optional `providerFeedback` and `capabilityFeedback` arrays describe coverage gaps and execution issues; the tool schema lists supported issue values. A `new_capability_request` requires `requestedFunctionality`; `missing_capability` (the provider exists but lacks the capability) does not. Existing feedback opt-out and authentication controls apply.
1294
1293