Firecrawl MCP Multiple Keys
Server Quality Checklist
Latest release: v3.22.3
- Disambiguation4/5
Tool purposes are mostly distinct, but some overlap exists between scrape/extract/parse and search/agent. Detailed descriptions help differentiate, but agents may occasionally misselect between search and agent for similar queries.
Naming Consistency5/5All tools follow the firecrawl_verb_noun pattern consistently. No mixed casing or irregular naming. The prefix is uniform and the verb+noun structure makes the purpose clear.
Tool Count3/526 tools is high for a single server. While each tool has a unique role, the research-related tools (5 for papers/GitHub) and monitoring CRUD (7 tools) could be consolidated. The count feels slightly bloated for the core purpose of web scraping.
Completeness4/5The tool surface covers a comprehensive range: scraping, crawling, mapping, search, extraction, monitoring, interaction, and feedback. Minor gaps exist (e.g., no batch operations or site structure analysis), but core workflows are well-supported.
Average 4.2/5 across 26 of 26 tools scored. Lowest: 2.7/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description confirms a read operation but adds no additional behavioral context (e.g., pagination, data freshness). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one line plus example) and to the point, but the example is valuable. Could be more efficient if parameter details were in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with two optional parameters and no output schema, the description is incomplete. It omits pagination details, default ordering, and what the response contains. The usage example partially compensates but isn't sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain the 'limit' and 'offset' parameters beyond the example. The agent gains no understanding of their meaning or constraints from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('list') and resource ('monitors'), and implies scope ('all'). It differentiates from sibling tools like firecrawl_monitor_get by implying a list operation, but does not explicitly distinguish from similar verbs (e.g., firecrawl_monitor_check).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage example but no guidance on when to use this tool versus alternatives such as firecrawl_monitor_get or firecrawl_monitor_create. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns status/progress and results, but does not discuss error handling, rate limits, or behavior for invalid IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose. The usage example and return note are useful but add length. Could be slightly more concise, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing context about how to obtain the crawl job ID, possible status values, and error scenarios. For a tool with 1 parameter and no output schema, it should explain these details for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter 'id' has no description in schema (0% coverage). The description does not explain what 'id' refers to (the crawl job ID) or how to obtain it. The usage example shows a UUID but provides no context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Check the status of a crawl job' with a specific verb and resource. Distinguishes from siblings like firecrawl_crawl (starts a crawl) and firecrawl_agent_status (checks agent status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Does not mention that it should be used after starting a crawl with firecrawl_crawl or differentiate from other status tools like firecrawl_agent_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-readOnly (mutation) and non-destructive. The description adds that it returns the queued check. However, there is no mention of permissions, rate limits, or other side effects beyond the normal schedule alteration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two succinct sentences plus a JSON usage example. Every element serves a purpose, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the purpose and return. However, missing parameter explanation and lack of error/disclaimer info leave it slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'id' has no description in the schema (0% coverage). The description does not explain its meaning; only the usage example shows a hypothetical value ('mon_abc123'). This leaves semantic ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool triggers a monitor check immediately outside its normal schedule. It uses specific verb and resource ('firecrawl_monitor_run'), but does not explicitly differentiate from sibling tools like firecrawl_monitor_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for forcing an immediate check, but provides no when-not-to-use guidance or alternatives. Context from sibling names might suggest firecrawl_monitor_check for checking status, but this is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds 'historical checks,' implying non-real-time data but does not disclose pagination behavior, error handling, or rate limits. It adds minimal behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence and a usage example. It is front-loaded and efficient, though the example could be formatted as a bullet list for clarity. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose but lacks details on ordering, offset/limit behavior, and the meaning of 'historical checks.' With no output schema and 4 parameters, it is adequate but not fully informative for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, it only provides a usage example showing id, limit, and status, without explaining offset or parameter meanings. The schema provides enum values and constraints, but the description adds no new semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List historical checks for a monitor,' specifying the verb 'list' and the resource 'checks' in the context of a monitor. This distinguishes it from siblings like firecrawl_monitor_check (single check) and firecrawl_monitor_list (list monitors).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like firecrawl_monitor_check or firecrawl_monitor_list. The usage example implies typical parameters but no guidance on context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true, so the description reinforces permanence and adds 'stop its schedule' context. No contradictions. However, it does not disclose what happens to related data (e.g., checks).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a usage example. No redundant text; every sentence adds value. Front-loaded with the purpose and permanence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema) and annotations covering destructiveness, the description is complete. It explains the action, permanence, and provides an example.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter 'id' with no description (0% coverage). Description only shows it in an example without explaining its format or how to obtain it. Does not add meaningful semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'permanently delete a monitor and stop its schedule', specifying the verb (delete) and resource (monitor). It distinguishes from sibling tools like create, update, get, and list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Description includes a warning that deletion cannot be undone, but provides no guidance on when to use this tool versus alternatives (e.g., update to disable, or list to find monitors). No explicit when/when-not or alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds value by detailing the return format: 'ranked matches with repo, url, a short snippet, and (when available) the full matched content in markdown.' This goes beyond annotations and helps the agent understand what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with clear front-loading of purpose. Every word adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 0% parameter coverage, the description provides minimal but functional context: it states the search scope and return fields. However, it omits parameter details and edge cases (e.g., rate limits, authentication). Adequate for a simple tool but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 2 parameters with 0% description coverage. The description only implicitly covers 'query' by stating what is searched. The 'k' parameter (number of results) is not mentioned, leaving the agent without semantic guidance for that parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches 'GitHub issue/PR history and repository readmes,' specifying both the resource and action. This distinguishes it from sibling tools like firecrawl_search (general web search) and firecrawl_research_search_papers (academic papers).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., firecrawl_search), nor any conditions for use or exclusions. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint: true, and the description mentions 'free resources', which aligns. However, description adds minimal extra detail beyond the annotation hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise, includes a usage example and return info. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple stop tool, but no output schema and minimal return info (just 'Success confirmation'). Could mention error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'scrapeId' is not explained beyond its name, and schema description coverage is 0%. The description lacks any additional context about the parameter's purpose or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'stop' and the resource 'interact session', and it distinguishes from sibling tools like firecrawl_interact which starts a session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use advice ('Call this when you are done interacting to free resources'), but does not elaborate on scenarios where it should not be used or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations (readOnlyHint: true, destructiveHint: false) but adds no additional behavioral details such as rate limits, authorization, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence plus a usage example. No wasted words, well-structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with one parameter, the description is adequate but lacks return value details (e.g., what fields the monitor contains). No output schema increases the need for such information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description only says 'by ID' and provides an example value. It does not explain what the ID represents or constraints beyond being a string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a single monitor by ID' clearly states the verb (Get), resource (monitor), and method (by ID), distinguishing it from sibling tools like list, create, delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a usage example showing the required 'id' parameter, implying use when you have a specific monitor ID. However, it doesn't explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds context: it reads in-body passages, returns best-matching passages, and handles unavailability. This complements the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the action front-loaded. Every sentence adds value: the first states the core function, the second provides purpose and expected outcomes. No redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters, no output schema, and no enums. The description covers main behavior and one parameter (question) but omits details on 'k' and output format. With no output schema, it should at least describe the structure of returned passages. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'question' as a relevance driver but does not define 'paperId' or 'k.' The meaning of 'k' as the number of passages is missing, leaving ambiguity. This is a significant gap for a three-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the resource 'most relevant in-body passages of ONE specific paper for a question.' It also specifies the use case: verifying whether a candidate satisfies a constraint. This distinguishes it from sibling tools like 'firecrawl_research_search_papers' that search multiple papers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to VERIFY whether a candidate actually satisfies a constraint before you include or reject it,' providing a clear when-to-use directive. It does not explicitly mention when not to use or compare with alternatives like 'firecrawl_research_inspect_paper,' but the positive guidance is strong and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description complements the annotations (readOnlyHint, openWorldHint) by explaining the semantic search behavior and the benefit of diverse query framings. It does not contradict annotations. While rate limits or other behaviors are not mentioned, the description adds useful context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at two sentences. The first sentence immediately conveys the purpose and scope, and the second provides actionable usage advice. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description explains the core functionality, it lacks detail on parameters other than 'query' and does not describe the output schema (which is absent). For a tool with 6 parameters and no schema descriptions, more information about filtering (by date, authors, categories) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, meaning no parameter descriptions are provided. The tool description only explains the 'query' parameter (natural-language topic) but does not clarify the purpose of `k`, `to`, `from`, `authors`, or `categories`. This leaves the agent guessing about the other five parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as the primary entry point for finding research papers by topic across multiple fields. It specifies the search method (semantic HyDE search), the return fields (paper id, title, authors, abstract), and the query type (natural-language). This distinguishes it from sibling tools like general web search (firecrawl_search) and other research tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises when to use this tool (for research paper search) and provides concrete guidance to run several distinct framings of the question for better recall. It does not explicitly state when not to use it, but the context implies it is for paper discovery, not other types of searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false and destructiveHint=false, but description adds key behavioral context: polling until terminal state, large response warnings, token limit concerns, and relationship to check_crawl_status. However, details on failure behavior or polling mechanism are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (Best for, Not recommended, etc.) and front-loaded main action. Slightly verbose with example and prompts, but mostly efficient. Could reduce repetition of token limit warnings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 17 parameters and nested objects, the description provides high-level guidance and distinguishes from siblings, but lacks detailed parameter descriptions. No output schema; return type is vaguely described as 'final crawl status/data'. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only mentions a few parameters in the usage example and common mistakes (limit, maxDiscoveryDepth, url). Most parameters (e.g., delay, webhook, scrapeOptions) are not explained, leaving agents to rely solely on schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts a crawl job, polls until terminal state, and returns status/data. It specifically distinguishes from siblings like firecrawl_scrape (single page) and firecrawl_map, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists best use cases (multiple related pages), not recommended cases (single page, token concerns, speed), and provides alternatives (scrape, map + scrape). Includes common mistakes and a prompt example, offering comprehensive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions opening a live session, reuse option, and return types (output, stdout, stderr, exit code, live view URLs). Annotations indicate readOnlyHint=false and openWorldHint=true, and the description aligns with this. It adds context about cost savings when reusing scrapeId. However, it does not disclose session lifecycle or cleanup details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized with clear sections and bullet-like arguments, making it easy to scan. It is somewhat lengthy but every sentence adds value. The front-loading of purpose and best-for is effective. Examples are useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 params, nested scrapeOptions, no output schema), the description covers core functionality well but omits details on error handling, session persistence, and the exact structure of the return object beyond a brief mention. The sibling tool 'firecrawl_interact_stop' suggests a stop capability not referenced here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining each parameter's purpose and constraints (e.g., url vs scrapeId mutual exclusivity, prompt vs code alternatives, timeout range, language defaults). It also gives examples. However, scrapeOptions is only partially described with examples, not fully covering all nested properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it interacts with a page in a live browser session using verbs like click, fill, extract. It distinguishes from siblings by specifically mentioning reuse of scrapeId from previous scrape, which is a key differentiator from tools like firecrawl_scrape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly labels 'Best for: Multi-step workflows' and explains two targeting methods (url vs scrapeId). However, it does not explicitly contrast with similar sibling tools like firecrawl_agent or firecrawl_scrape, leaving some ambiguity for the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so safety profile is covered. Description adds LLM method support (cloud/self-hosted) but no additional behavioral traits like rate limits, error handling, or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections: purpose, best/not recommended, argument list, prompt example, usage example, return description. No fluff; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, all parameters with examples. Lacks details on error handling or authentication, but given annotations cover safety and output depends on user-provided schema, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It provides argument descriptions, a prompt example, and a full usage example with schema. While terse, it adds meaning beyond bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (Extract), resource (structured information from web pages), and method (using LLM capabilities). Explicitly distinguishes from sibling tools like scrape and crawl with 'Not recommended for' sections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('Best for: extracting specific structured data') and when not to use ('Not recommended for: full content, use scrape'). Provides clear alternatives and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. Description further clarifies the tool discovers URLs, uses the 'search' parameter for filtering, and returns an array of URLs. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections, examples, and formatting. At moderate length, every section adds value. Minor redundancy in 'IMPORTANT' section could be condensed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description states returns 'Array of URLs'. Covers key usage scenarios and examples. However, missing parameter details slightly reduces completeness for a 6-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains the 'url' and 'search' parameters via examples and description, but does not detail 'limit', 'sitemap', 'includeSubdomains', or 'ignoreQueryParameters', leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool maps a website to discover URLs, and distinguishes it from siblings like scrape, crawl, and agent through explicit comparisons and usage guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Best for', 'Not recommended for', 'Common mistakes' sections, and specific workflow guidance to use map before agent when scrape fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive (mutating). The description adds context by listing the specific fields that can be patched and noting the partial update behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus a code block. Every sentence adds value. The usage example is appropriately placed and helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with 2 parameters and no output schema, the description is fairly complete. It explains the body parameter well and gives an example. However, it could mention that the monitor ID must exist and what the response looks like (though no output schema is defined).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden. It explicitly lists the allowed fields for the `body` parameter (name, status, schedule, etc.) and provides a usage example showing how to pass id and body. This adds essential meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a monitor' with a specific verb and resource. It distinguishes from sibling tools like create, delete, get, and list by being the update operation. The list of patchable fields further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when modifying an existing monitor. The usage example provides concrete guidance. However, it does not explicitly state when not to use it (e.g., for creating or deleting) or mention prerequisites like needing the monitor ID to be valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the description's safety profile is established. The description adds value by specifying the output is rendered as markdown and listing the fields included (title, abstract, authors, etc.) – beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence states the core function, and the second provides usage guidance. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no nested objects), the description is complete. It specifies the input, the use case, and the output format (markdown with listed fields). Siblings like read_paper exist, so the description correctly positions inspect_paper as a metadata-fetching step.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description bears full burden. It clarifies the paperId parameter can be a primaryId or canonical paperId, which adds meaning beyond the basic string validation. It also describes what the output contains, effectively compensating for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches canonical metadata for a paper by primaryId or paperId, distinguishing it from siblings like firecrawl_research_read_paper (likely full content) and firecrawl_research_related_papers. The verb 'fetch' and resource 'paper metadata' is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use this after search/related results when you need the full title, abstract, authors, categories, source ids, and dates rendered as markdown.' It tells the agent when to use the tool and what to expect, but does not mention when not to use it or list alternatives beyond the implied search/related context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false, which are consistent with the description. The description adds valuable behavioral context, such as the feedback mechanism, scrape options, and the fact that it returns a JSON envelope with an 'id' for feedback. It does not contradict annotations but provides additional nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-structured with sections, a table, and code examples. The most critical information (purpose, when to use) appears early. Some repetition exists (e.g., search operators are listed twice), but overall every section adds value. It could be more concise, but structure aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 params, nested objects, no output schema), the description covers core functionality, return format, workflow, and differentiation from siblings. It explains the feedback mechanism and scrape options. Some less common parameters (tbs, filter) are omitted, but the description is sufficient for typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining many parameters: query (implicit), limit, sources, categories, includeDomains, excludeDomains, and scrapeOptions with nested fields. Usage examples illustrate typical parameter combinations. However, a few parameters (tbs, filter, location, enterprise) are not explained, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search the web and optionally extract content from search results.' It emphasizes it as the primary web search tool and distinguishes it from siblings by specifying when to use alternative tools like scrape, map, or crawl. It also provides search operators and examples, leaving no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit sections: 'Best for,' 'Not recommended for,' and 'Common mistakes,' which clearly guide when to use this tool versus alternatives. It also provides a prompt example and a detailed 'Optimal Workflow' section, making it easy for the agent to decide when and how to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (`readOnlyHint: false`, `destructiveHint: false`) indicate a write operation, and the description confirms it sends feedback. It warns against storing large outputs and describes the return format including credits refunded. Slightly more context could be given about side effects like credit deduction, but overall good.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose first, then parameter explanations, and return format. It is somewhat lengthy but each sentence adds value. Could be slightly more concise by consolidating repeated guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 12 parameters, nested objects, no output schema, and no schema descriptions, the description covers the purpose, usage context, all parameter meanings, return value structure, and constraints. It is fully complete for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by providing detailed semantics for each parameter: endpoint enum, jobId format, rating enum, issues tags, note, url, pageNumbers, metadata, and even undocumented parameters like missingContent, valuableSources, querySuggestions. It explains constraints (e.g., 'Do not include huge page contents').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is for sending structured feedback on completed Firecrawl v2 jobs, specifically for endpoint-level feedback on scrape, parse, map, or search. It distinguishes from the sibling `firecrawl_search_feedback` by noting that tool has search-focused guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool vs. alternatives: 'For search-result quality specifically, prefer `firecrawl_search_feedback` when available because it has search-focused guidance.' Also specifies that it accepts endpoint-wide signals for specific endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true and destructiveHint=false. Description adds extensive behavioral details: pagination via next URL, limit max 100, response shape for different formats, and when judgment is present. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is long but well-structured with subheadings and a usage example. Front-loaded with purpose. Slightly verbose but earns its length through detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description fully explains return values with rich examples for markdown, JSON, and mixed modes. Covers pagination, filter, and judgment. Complete for a single check retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so description carries full burden. It explains pageStatus enum values, limit's role in pagination, and implies id/checkId as identifiers. 'skip' is not explained but compensated by pagination guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with 'Get a single check with page-level diff results,' clearly stating the verb and resource. It distinguishes from siblings like firecrawl_monitor_checks (which lists checks) by specifying depth and diff details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit filter guidance ('Filter pageStatus to surface only pages that changed'), example usage, and pagination advice. Does not explicitly contrast with all alternatives but context implies single vs list difference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=true, destructiveHint=false, which the description matches (it's a read-only expansion). The description adds useful behavioral context: internal multi-round re-seeding for similar mode, and that it returns candidates plus pool size. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and is dense with valuable information. Every sentence adds necessary context, and there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and no output schema, the description adequately covers purpose, input, modes, behavior (internal expansion), and output (candidates + pool size). It addresses all essential aspects for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description explains seed_ids (pass arXiv ids of strongest hits), intent (natural-language intent), and mode (three modes with definitions). It hints at output but does not cover k or rerank. This adds significant meaning for key parameters, compensating for lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool expands from anchor papers via citation graph, ranked and filtered by natural-language intent. It specifies input (arXiv ids as seed_ids) and modes (similar, citers, references). It distinguishes itself from plain search by reaching papers that would be missed, and from siblings like firecrawl_research_search_papers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the tool on best hits before finishing, and explains that a single similar call already runs deep expansion internally, so chaining many is unnecessary. However, it does not explicitly mention when not to use it or provide alternatives, though it contrasts with plain search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, which the description does not contradict. The description adds critical behavioral context: polling behavior, expected duration, and when to stop polling. It also describes return values (status, progress, results). This goes beyond annotations to fully inform the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: first sentence states the purpose, then polling guidance in bullet points, a code example, status list, and return summary. It is front-loaded with essential information and each sentence adds value. No unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and no output schema. The description explains the statuses and that results are returned when completed. However, it does not detail the structure of the result data (e.g., fields or format). Since there is no output schema, more detail on the return format would be beneficial, but the description is still sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'id' (string, required) with no description (0% coverage). The description compensates by including a usage example showing a UUID and stating it is the agent job ID. However, it does not explicitly define the parameter format or constraints beyond the example. Still, the meaning is clear enough for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks the status of an agent job and retrieves results when complete. It distinguishes from sibling tools like firecrawl_agent (which starts the agent) and firecrawl_check_crawl_status (different job type). The verb 'Check' and resource 'status of an agent job' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance on when to use: 'after starting an agent with firecrawl_agent'. Provides specific polling intervals (15-30 seconds), patience advice (2-3 minutes minimum), and conditions to stop polling (completed or failed). Lists possible statuses with interpretations. This is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool creates a monitor with a 30-minute schedule, meaningful-change judging, and diff-based detection. Describes webhook events and snapshot behavior. Annotations already indicate non-read-only and non-destructive, and the description adds specific behavioral details without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-structured with sections, headings, and multiple examples. Every sentence adds value, though it could be slightly trimmed for brevity without losing clarity. Given the tool's complexity, the length is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description covers all key aspects: creation, scheduling, diffing, webhook events, goal tuning, and advanced body requests. It provides comprehensive guidance for both simple and complex use cases, making the tool fully understandable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description extensively explains parameters like page, pages, queries, goal, searchWindow, maxResults, includeDomains, excludeDomains, scheduleText, email, webhookUrl, and body. However, some parameters like timezone and includeDiffs are only briefly mentioned, leaving minor gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a Firecrawl monitor for recurring scrape, crawl, or search with diffs. It distinguishes from sibling tools like firecrawl_monitor_list, firecrawl_monitor_delete, etc., by focusing on creation and setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use simple path (page/pages + goal or queries + goal) vs body for advanced requests. Includes examples and caveats (e.g., mutually exclusive fields). Clearly differentiates from other monitor tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the two operating modes (local vs. hosted), the two-call flow in hosted mode, privacy via redactPII, and unsupported options. Annotations already indicate readOnlyHint=true, and the description adds significant behavioral context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with sections for modes, best use, common mistakes, supported types, and examples. It is front-loaded with the main purpose, and each section provides relevant information without unnecessary repetition. Could be slightly more concise but is effectively organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, no output schema, two modes), the description is remarkably complete. It covers usage guidelines, edge cases (hosted mode), common mistakes, supported file types, privacy, and provides detailed examples. The only gap is some less common parameters are not explained, but the core functionality is fully addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 0%, the description adds semantic meaning for many key parameters (filePath, contentType, formats, parsers, redactPII, pdfOptions, jsonOptions, queryOptions) and explains their roles in context. Some parameters (proxy, maxAge, excludeTags, etc.) are not covered, but the most critical ones are well-described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it parses a file using Firecrawl's /v2/parse endpoint and distinguishes it from sibling tools like firecrawl_scrape (for remote URLs). It specifies the tool is for local documents and structured data extraction, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when to use (local documents) and when not to (remote URLs, multiple files, interactive actions), including alternatives (firecrawl_scrape for URLs). It also covers common mistakes (e.g., mixing filePath and uploadRef) and provides usage examples for both local and hosted modes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes async behavior, polling workflow, and expected wait times. Annotations provide readOnlyHint=false and openWorldHint=true; description adds context on how the agent navigates and extracts data without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is verbose but well-structured with sections (How it works, Important, etc.). Every sentence adds value; could be slightly trimmed but remains clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers async workflow, polling, when to use, examples, and return value. References sibling status tool. Complete for a complex async tool without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description explains each parameter: prompt (natural language, max length), urls (optional focus), schema (structured output). Provides examples and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Autonomous web research agent' and explains it browses the internet to find and extract structured data. It distinguishes from siblings like firecrawl_scrape (single page extraction) and firecrawl_search (web search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends for complex research tasks and multi-source data gathering. Lists not-recommended scenarios with alternative tools (firecrawl_scrape, firecrawl_search, firecrawl_interact).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses behavioral traits such as JavaScript rendering handling, caching (maxAge), privacy (redactPII), lockdown mode, and branding extraction. Annotations (readOnlyHint=false, destructiveHint=false) are not contradicted; the description adds rich context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-structured with headings, bullet points, and examples. It front-loads essential information. While slightly verbose, the depth is justified by the tool's complexity (23 parameters, many nuanced choices).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (23 parameters, 1 required, no output schema, nested objects), the description is highly complete. It covers JavaScript rendering troubleshooting, format selection rules, performance, privacy, lockdown, branding, and provides step-by-step troubleshooting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining key parameters like formats, jsonOptions, queryOptions, waitFor, maxAge, lockdown, redactPII, and provides usage examples. It adds significant meaning beyond the schema's property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes content from a single URL with advanced options. It distinguishes from siblings like firecrawl_crawl (multiple pages), firecrawl_search (unknown location), and firecrawl_map, making its purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use and when-not-to-use guidance, including format selection (JSON vs markdown), alternatives like firecrawl_map and firecrawl_agent for JavaScript-rendered pages, and performance tips (maxAge). It covers common mistakes and best practices comprehensively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Extensively covers behavioral details: idempotency per searchId, refund conditions, daily cap, time window with specific HTTP errors, and restrictions. These go far beyond the annotations (readOnlyHint false, destructiveHint false, openWorldHint true) to fully inform the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections, headings, and examples, making it easy to parse. It could be slightly more concise by trimming some redundant explanations, but overall it's clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex input schema and no output schema, the description provides complete context: return value format, error handling (time window, cap, idempotency), and edge cases. No gaps remain for an agent to operate correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 0%, the description fully compensates by explaining each parameter in detail, including constraints (e.g., maxItems, length limits) and inter-field dependencies (e.g., rating requirements for valuableSources and missingContent). Examples further clarify usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends structured feedback on a previous firecrawl_search result, specifying the action, resource, and context. It distinguishes from other sibling tools like firecrawl_feedback by focusing on search results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: call immediately after a search, within a 2-minute window, and details per-rating requirements. Also explains when not to call (e.g., after cap reached, failed searches) and non-retry behavior for 4xx errors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AdvaitR7/firecrawl-mcp-multiple-keys'
If you have feedback or need assistance with the MCP directory API, please join our Discord server