Skip to main content
Glama
firecrawl

Firecrawl MCP Server

Firecrawl developer search

firecrawl_developer_search
Read-only

Search public repositories, GitHub issues, pull requests, READMEs, and code documentation to find ranked answers to developer questions, with matched passages in markdown.

Instructions

Search an index of public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation for programming questions that need external documentation or upstream evidence.

Returns ranked results with an ID, source type, URL, title, and the matched passages in markdown.

Input Schema

NameRequiredDescriptionDefault
kNoNumber of ranked results to return (default 10).
queryYesNatural-language developer question or search phrase, including the library, error message, or API involved when relevant.
skillsNoSet to "only" to search only agent-skill files.

Output Schema

NameRequiredDescriptionDefault
resultsYesRanked results, in the order the text block lists them.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.2

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds index scope and ranked markdown results, but does not disclose index freshness, rate limits, authentication needs, or coverage limitations; with annotations covering the safety profile, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences: the first front-loads the search scope and use case, and the second states the result format. There is no filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and rich annotations, and the description supplies the source scope and return shape. It omits alternative-tool routing but is otherwise complete for a straightforward search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with descriptions for query, k, and the skills enum. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, 'Search', and a precise resource: an index of public repositories, GitHub issues, merged pull requests, READMEs, and code documentation. It clearly scopes the tool to programming questions, though it does not name sibling alternatives such as firecrawl_search or firecrawl_research_search_papers to help differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this for programming questions that need external documentation or upstream evidence, giving clear usage context. It does not state when not to use it or route the agent to generic web, academic, or government search alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.