dsh-research-plugins
pymodel/dsh-research-plugins
Firecrawl MCP for DeepSeek Harness: web crawling, scraping, search, and structured data extraction
安装
dsh plugin --profile web add github:pymodel/dsh-research-pluginsREADME
dsh-research-plugins
Research plugins for DeepSeek Harness — a pnpm monorepo adding web search and MCP (Model Context Protocol) bridges for AI research, web scraping, and live documentation to your DSH agent.
What this is · Install · API keys · Repo layout · License
What this is
dsh-research-plugins gives your DeepSeek Harness (DSH) agent three research superpowers it does not have out of the box:
- Web search via the Tavily Search API — a settings toggle that swaps the built-in DeepSeek search for Tavily, with keyless search support.
- Web scraping & crawling via the Firecrawl MCP server — scrape, crawl, map, and search the open web inside tool calls.
- Up-to-date library docs via the Context7 MCP server — on-demand documentation and code examples for any library or framework.
Everything is delivered as drop-in DSH plugins — no vendor lock-in, no forks, just a dsh plugin add away.
| Package | What it adds |
|---|---|
@pymodel/dsh-tavily | Tavily Search API as a web search provider (settings toggle, keyless search) + a Tavily MCP bridge for extract / crawl / map tools |
dsh-mcp-firecrawl | Firecrawl MCP: mcp__firecrawl__* scrape, crawl, map, and search tools |
dsh-mcp-context7 | Context7 MCP: mcp__context7__* up-to-date library docs and code examples |
Install
Each package installs independently into a DSH profile:
dsh plugin --profile web add @pymodel/dsh-tavily
dsh plugin --profile web add dsh-mcp-firecrawl
dsh plugin --profile web add dsh-mcp-context7
dsh web
Or follow GitHub (this repo, latest commits):
dsh plugin --profile web add github:PyModel/dsh-research-plugins#path:packages/dsh-tavily
dsh plugin --profile web add github:PyModel/dsh-research-plugins#path:packages/dsh-mcp-firecrawl
dsh plugin --profile web add github:PyModel/dsh-research-plugins#path:packages/dsh-mcp-context7
API keys
The MCP bridges use the harness's shipped @deepseek-ai/dsh-mcp-client. They read keys from the launch environment (a real env var, the project .env, or $DSH_HOME/.env) — not from $DSH_HOME/.credentials.yaml:
| Plugin | Env var | Required | Endpoint |
|---|---|---|---|
dsh-tavily (MCP part) | TAVILY_API_KEY | yes (MCP only; search is keyless) | https://mcp.tavily.com/mcp |
dsh-mcp-firecrawl | FIRECRAWL_API_KEY | yes | https://mcp.firecrawl.dev/v2/mcp |
dsh-mcp-context7 | CONTEXT7_API_KEY | no (keyless works) | https://mcp.context7.com/mcp |
Rows gated on a key are disabled automatically when the key is absent, so no half-working tools appear. A key added to .env needs a dsh web restart.
Repo layout
packages/
dsh-tavily/ # web-search provider + settings card + Tavily MCP row
dsh-mcp-firecrawl/ # pure-config Firecrawl MCP bundle
dsh-mcp-context7/ # pure-config Context7 MCP bundle
The Firecrawl and Context7 packages are pure-config bundles (package.json + cordis.patch.yml) with no build step. The Tavily package keeps its prebuilt lib/ and browser client.
Contributing
Issues and pull requests are welcome. Please open a discussion on GitHub before starting large changes.