Skip to main content
Glama
MCP Firecrawl

MCP Firecrawl

MCP Firecrawl

Node.js TypeScript MCP Firecrawl License: MIT

A production-ready Model Context Protocol (MCP) server that integrates with the Firecrawl API to give AI assistants the power to scrape, crawl, and search the web.

Works with Claude Desktop, Cursor, VS Code (Cline/Roo Code), Continue, OpenAI Agents SDK, and any other MCP-compatible AI tool.


Features

Tool

Description

Input

scrape_url

Scrape any webpage → returns clean Markdown content + metadata

{ "url": "https://..." }

crawl_website

Crawl multiple pages (up to 100) from a website

{ "url": "https://...", "limit": 10 }

search_web

Search the web using Firecrawl's search engine

{ "query": "latest AI news" }


Related MCP server: WebSearch

Quick Start

# 1. Clone
git clone https://github.com/YOUR_USERNAME/MCP.git
cd MCP

# 2. Install
npm install

# 3. Configure
cp .env.example .env
# Edit .env → add your Firecrawl API key:
# FIRECRAWL_API_KEY=fc-your-key-here

# 4. Build & Run
npm run build
npm start

✅ Server is now running on stdio (default mode).


Usage

Command Line Test

# List available tools
node test-mcp.mjs tools

# Scrape a website
node test-mcp.mjs scrape https://example.com

# Search the web
node test-mcp.mjs search "latest TypeScript news"

With OpenAI Agents SDK (TypeScript)

import { Agent, run, MCPServerStdio } from "@openai/agents";

const mcp = new MCPServerStdio({
  name: "Firecrawl",
  fullCommand: "node dist/server.js",
  env: { FIRECRAWL_API_KEY: "fc-..." },
});

await mcp.connect();

const agent = new Agent({
  name: "Web Assistant",
  instructions: "Use tools to scrape, crawl, and search the web.",
  mcpServers: [mcp],
});

const result = await run(agent, "Scrape https://example.com");
console.log(result.finalOutput);
await mcp.close();

Integration with AI Tools

Claude Desktop

Add to %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "firecrawl": {
      "command": "node",
      "args": ["C:/path/to/MCP/dist/server.js"],
      "env": {
        "FIRECRAWL_API_KEY": "fc-..."
      }
    }
  }
}

Cursor

Settings → Features → MCP → Add Server:

Name: firecrawl
Type: command
Command: node "C:/path/to/MCP/dist/server.js"
Environment: FIRECRAWL_API_KEY=fc-...

VS Code + Cline / Roo Code

File: .vscode/cline_mcp_settings.json

{
  "mcpServers": {
    "firecrawl": {
      "command": "node",
      "args": ["C:/path/to/MCP/dist/server.js"],
      "env": { "FIRECRAWL_API_KEY": "fc-..." },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Continue (VS Code / JetBrains)

File: ~/.continue/config.json

{
  "experimental": {
    "mcpServers": {
      "firecrawl": {
        "command": "node",
        "args": ["C:/path/to/MCP/dist/server.js"],
        "env": { "FIRECRAWL_API_KEY": "fc-..." }
      }
    }
  }
}

opencode

File: ./opencode.json

{
  "mcp": {
    "firecrawl": {
      "type": "local",
      "command": ["node", "MCP/dist/server.js"],
      "enabled": true,
      "env": { "FIRECRAWL_API_KEY": "fc-..." }
    }
  }
}

HTTP Mode (Streamable HTTP)

Can't use stdio? Run the server as an HTTP endpoint instead:

npm run start:http
# Listening on http://127.0.0.1:3001/mcp

Then connect any MCP client to that URL.


Project Structure

MCP/
├── src/
│   ├── server.ts              # Entry point (stdio + HTTP modes)
│   ├── tools/
│   │   ├── scrape.ts          # scrape_url tool
│   │   ├── crawl.ts           # crawl_website tool
│   │   └── search.ts          # search_web tool
│   ├── services/
│   │   └── firecrawl.ts       # FirecrawlApp API wrapper
│   └── types/
│       └── index.ts           # TypeScript interfaces
├── test-mcp.mjs               # CLI test utility
├── .env.example               # Environment template
├── package.json
├── tsconfig.json
└── README.md

Environment Variables

Variable

Required

Default

Description

FIRECRAWL_API_KEY

✅ Yes

—

Your Firecrawl API key

HTTP_HOST

❌ No

127.0.0.1

HTTP bind address (HTTP mode only)

HTTP_PORT

❌ No

3001

HTTP port (HTTP mode only)


NPM Scripts

Script

Description

npm run build

Compile TypeScript → dist/

npm start

Run in stdio mode

npm run start:http

Run in HTTP mode

npm run dev

Run with hot-reload (stdio)

npm run dev:http

Run with hot-reload (HTTP)

npm run clean

Delete dist/


Tech Stack

  • Runtime: Node.js 18+

  • Language: TypeScript

  • MCP SDK: @modelcontextprotocol/sdk

  • Scraping Engine: firecrawl SDK

  • Validation: zod

  • Config: dotenv


Requirements


License

MIT

Available Tools

3 tools
crawl_websiteA

Crawl multiple pages from a website and return extracted markdown content

Inputs: url (required), limit.

scrape_urlA

Scrape a single webpage and return clean markdown content with metadata

Inputs: url (required).

search_webB

Search the web using Firecrawl and return relevant results with content summaries

Inputs: query (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool targets a distinct action: crawling multiple pages, scraping a single page, and searching the web. There is no overlap in purpose.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case: crawl_website, scrape_url, search_web.

    Tool Count4/5

    3 tools is slightly lean but covers the core web extraction tasks. More tools could be added (e.g., for authentication), but the set is scoped appropriately.

    Completeness4/5

    The tools cover the primary operations: crawling, scraping, and searching. Minor gaps exist (e.g., no tool for custom headers), but the surface is functional for typical use cases.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Firecrawl, the context API for AI agents, as an MCP server. Search the web, scrape any URL, parse PDFs and documents, crawl and map sites, interact with pages in a real browser, run Agent research jobs, monitor pages for changes, and search scientific papers. Returns clean Markdown or structured JSON. Run locally with npx firecrawl-mcp or connect to https://mcp.firecrawl.dev/v2/mcp
      28
      181,541 npm
      7,809
      MIT