Skip to content

dsh-mcp-firecrawl

Verified

dsh-mcp-firecrawl Β· v0.2.1 Β· MIT

Firecrawl MCP for DeepSeek Harness: web crawling, scraping, search, and structured data extraction

Install

dsh plugin add dsh-mcp-firecrawl

Confirm the layer applied with dsh --profile default --dump-config β€” see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Readme

dsh-mcp-firecrawl

Firecrawl MCP for DeepSeek Harness. Connects the official hosted Firecrawl MCP server through the harness's @deepseek-ai/dsh-mcp-client bridge and exposes its tools as mcp__firecrawl__*. Works keyless out of the box (search, scrape, parse within daily limits); a Firecrawl API key unlocks the full tool surface β€” scrape, crawl, map, and more.

Install

dsh plugin --profile web add dsh-mcp-firecrawl
dsh web

Or follow GitHub (latest commit):

dsh plugin --profile web add github:pymodel/dsh-research-plugins#path:packages/dsh-mcp-firecrawl

API key (optional)

Keyless needs no setup: the row is always enabled and starts with firecrawl_search, firecrawl_scrape, and firecrawl_parse at daily keyless limits.

For the full tool surface and higher limits, get a Firecrawl API key at firecrawl.dev (format fc-...) and make it visible to the launch environment in one of:

export FIRECRAWL_API_KEY=fc-...

or a project .env / $DSH_HOME/.env:

FIRECRAWL_API_KEY=fc-...

The key goes into the Authorization: Bearer header at load time β€” never into the MCP URL and never into YAML. A key added to .env needs a dsh web restart.

Tools

After connecting, the model sees the Firecrawl tools under the firecrawl namespace: mcp__firecrawl__firecrawl_search, mcp__firecrawl__firecrawl_scrape, and mcp__firecrawl__firecrawl_parse keyless, plus the full surface such as mcp__firecrawl__firecrawl_crawl and mcp__firecrawl__firecrawl_map once an API key is set.

Remove

dsh plugin --profile web remove dsh-mcp-firecrawl

Do not commit real keys. If you already run your own Firecrawl MCP row, remove it first to avoid a duplicate serverName conflict.