firecrawl-mcp 3.30.1 → 3.30.2

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.
package/dist/index.js CHANGED
@@ -2415,10 +2415,10 @@ var findToolsSchema = z5.object({
2415
2415
  urls: z5.array(
2416
2416
  z5.string().url().regex(/^https?:\/\//)
2417
2417
  ).min(1).max(100).optional(),
2418
- providers: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Provider IDs returned by category browsing. Lists compact tools by default."),
2418
+ providers: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Values from each listed tool's `provider` field (e.g. \"apps-apple-com\"). Alone, lists that provider's compact tools; with capabilities, scopes them."),
2419
2419
  categories: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Category IDs returned by an empty call. Lists providers by default."),
2420
2420
  groups: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Optional group IDs for explicit group browsing."),
2421
- capabilities: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Exact capability IDs. A selected capability expands its complete contract by default."),
2421
+ capabilities: z5.array(z5.string().min(1)).min(1).max(50).optional().describe('Values from each listed tool\'s `capability` field (e.g. "apps/app"). Put the provider in `providers`: {"providers": ["apps-apple-com"], "capabilities": ["apps/app"]}. A selected capability expands its complete contract by default.'),
2422
2422
  level: z5.enum(["categories", "providers", "groups", "tools"]).optional(),
2423
2423
  expand: z5.array(z5.enum(["options", "response", "examples"])).optional().describe('Use ["options", "response"] for inputs and output shape without example payloads; [] keeps results compact. Omit for full contracts on selected capabilities.'),
2424
2424
  limit: z5.number().int().min(1).max(100).optional(),
@@ -3793,7 +3793,7 @@ async function relayExchangeError(run, context) {
3793
3793
  const response = error2?.response;
3794
3794
  if (!response || response.status === 401) throw error2;
3795
3795
  const data = response.data;
3796
- const message = typeof data?.error === "string" ? data.error : `Alexandria request failed (HTTP ${response.status})`;
3796
+ const message = typeof data?.error === "string" ? data.error : `Firecrawl request failed (HTTP ${response.status})`;
3797
3797
  const disabledProvider = response.status === 403 ? context.providers?.find((provider) => message === `Access to ${provider} is disabled for this organization.`) : void 0;
3798
3798
  if (disabledProvider) {
3799
3799
  throw new UserError(
@@ -4727,8 +4727,7 @@ For a programming question, add \`categories: ["developer"]\`; its hits return i
4727
4727
  searchBody,
4728
4728
  opts.sources === void 0 && opts.domainTools !== true
4729
4729
  );
4730
- const context = { tool: "firecrawl_search" };
4731
- const httpRes = exchangeSource ? await relayExchangeError(postSearch, context) : await relayTermsRequired(postSearch, context);
4730
+ const httpRes = await relayExchangeError(postSearch, { tool: "firecrawl_search" });
4732
4731
  return structuredCompact(withoutDiscoveredToolPrices(httpRes?.data ?? {}));
4733
4732
  }
4734
4733
  });
@@ -6469,8 +6468,7 @@ Returns result groups in \`data\` and an operation \`id\`.
6469
6468
  searchBody,
6470
6469
  sources === void 0 && domainTools !== true
6471
6470
  );
6472
- const context = { tool: "firecrawl_search" };
6473
- const httpRes = exchangeSource ? await relayExchangeError(postSearch, context) : await relayTermsRequired(postSearch, context);
6471
+ const httpRes = await relayExchangeError(postSearch, { tool: "firecrawl_search" });
6474
6472
  return structuredCompactResult(httpRes?.data ?? {});
6475
6473
  }
6476
6474
  });
package/dist/server.js CHANGED
@@ -2410,10 +2410,10 @@ var findToolsSchema = z5.object({
2410
2410
  urls: z5.array(
2411
2411
  z5.string().url().regex(/^https?:\/\//)
2412
2412
  ).min(1).max(100).optional(),
2413
- providers: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Provider IDs returned by category browsing. Lists compact tools by default."),
2413
+ providers: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Values from each listed tool's `provider` field (e.g. \"apps-apple-com\"). Alone, lists that provider's compact tools; with capabilities, scopes them."),
2414
2414
  categories: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Category IDs returned by an empty call. Lists providers by default."),
2415
2415
  groups: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Optional group IDs for explicit group browsing."),
2416
- capabilities: z5.array(z5.string().min(1)).min(1).max(50).optional().describe("Exact capability IDs. A selected capability expands its complete contract by default."),
2416
+ capabilities: z5.array(z5.string().min(1)).min(1).max(50).optional().describe('Values from each listed tool\'s `capability` field (e.g. "apps/app"). Put the provider in `providers`: {"providers": ["apps-apple-com"], "capabilities": ["apps/app"]}. A selected capability expands its complete contract by default.'),
2417
2417
  level: z5.enum(["categories", "providers", "groups", "tools"]).optional(),
2418
2418
  expand: z5.array(z5.enum(["options", "response", "examples"])).optional().describe('Use ["options", "response"] for inputs and output shape without example payloads; [] keeps results compact. Omit for full contracts on selected capabilities.'),
2419
2419
  limit: z5.number().int().min(1).max(100).optional(),
@@ -3788,7 +3788,7 @@ async function relayExchangeError(run, context) {
3788
3788
  const response = error2?.response;
3789
3789
  if (!response || response.status === 401) throw error2;
3790
3790
  const data = response.data;
3791
- const message = typeof data?.error === "string" ? data.error : `Alexandria request failed (HTTP ${response.status})`;
3791
+ const message = typeof data?.error === "string" ? data.error : `Firecrawl request failed (HTTP ${response.status})`;
3792
3792
  const disabledProvider = response.status === 403 ? context.providers?.find((provider) => message === `Access to ${provider} is disabled for this organization.`) : void 0;
3793
3793
  if (disabledProvider) {
3794
3794
  throw new UserError(
@@ -4722,8 +4722,7 @@ For a programming question, add \`categories: ["developer"]\`; its hits return i
4722
4722
  searchBody,
4723
4723
  opts.sources === void 0 && opts.domainTools !== true
4724
4724
  );
4725
- const context = { tool: "firecrawl_search" };
4726
- const httpRes = exchangeSource ? await relayExchangeError(postSearch, context) : await relayTermsRequired(postSearch, context);
4725
+ const httpRes = await relayExchangeError(postSearch, { tool: "firecrawl_search" });
4727
4726
  return structuredCompact(withoutDiscoveredToolPrices(httpRes?.data ?? {}));
4728
4727
  }
4729
4728
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "firecrawl-mcp",
3
- "version": "3.30.1",
3
+ "version": "3.30.2",
4
4
  "description": "MCP server for Firecrawl — search, scrape, and interact with the web, and search scientific papers. Supports both cloud and self-hosted instances. Features include web search, scraping, page interaction, batch processing, LLM-powered content analysis, and research paper search over biomedical and arXiv literature (PubMed, bioRxiv, medRxiv, arXiv) with citation-graph expansion and full-text reading.",
5
5
  "type": "module",
6
6
  "mcpName": "io.github.firecrawl/firecrawl-mcp-server",