
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
Unofficial MCP server + CLI for the DeepSeek Search & Fetch API: web search and page-to-Markdown for AI agents
Web search and page-to-Markdown for AI agents, powered by the DeepSeek Search & Fetch API. One package, three ways to use it: an MCP server, a CLI, and a TypeScript library.
Unofficial community project. seekfetch is not affiliated with, endorsed by, or sponsored by DeepSeek. It is a client for DeepSeek's public API and needs your own API key.
/v1/tools/search, /v1/tools/fetch). No chat model sits in between, so a search costs one API request and no model tokens.research returns the best pages with their content from a single search request, and only fetches the pages that came back empty.Retry-After. It paces requests to the 5 QPS account limit and validates inputs locally so bad requests never cost a call. It parses responses tolerantly, so new or missing fields don't break it.export DEEPSEEK_API_KEY=sk-...
npx -y seekfetch search "model context protocol registry"
Requires Node.js 22.12 or later.
The server runs over stdio with npx -y seekfetch mcp.
claude mcp add seekfetch -e DEEPSEEK_API_KEY=sk-... -- npx -y seekfetch mcp
claude_desktop_config.json{
"mcpServers": {
"seekfetch": {
"command": "npx",
"args": ["-y", "seekfetch", "mcp"],
"env": { "DEEPSEEK_API_KEY": "sk-..." }
}
}
}
~/.cursor/mcp.json{
"mcpServers": {
"seekfetch": {
"command": "npx",
"args": ["-y", "seekfetch", "mcp"],
"env": { "DEEPSEEK_API_KEY": "sk-..." }
}
}
}
.vscode/mcp.json{
"inputs": [
{ "type": "promptString", "id": "deepseek-key", "description": "DeepSeek API key", "password": true }
],
"servers": {
"seekfetch": {
"type": "stdio",
"command": "npx",
"args": ["-y", "seekfetch", "mcp"],
"env": { "DEEPSEEK_API_KEY": "${input:deepseek-key}" }
}
}
}
~/.codex/config.toml[mcp_servers.seekfetch]
command = "npx"
args = ["-y", "seekfetch", "mcp"]
env = { DEEPSEEK_API_KEY = "sk-..." }
On Windows, if your client can't find npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "seekfetch", "mcp"].
| Tool | What it does |
|---|---|
deepseek_search | Ranked web results with a summary each (capped at 800 chars; summary_chars to change). Optional filters: sites, exclude_sites, lang, after, before, min_score; include_content adds page text. |
deepseek_fetch | A URL as Markdown. Long pages come in chunks of max_chars; continue with offset. |
deepseek_research | Question → top-scoring pages with content and numbered sources, in one call. |
All tools are read-only.
npm i -g seekfetch # or prefix each command with npx -y
seekfetch search "rust async runtimes" -n 5 --min-score 1.5
seekfetch search "mcp server" --site github.com --lang en --after 2026-01-01
seekfetch research "how is the DeepSeek search API priced?" -o notes.md
seekfetch fetch https://example.com --max-chars 20000
seekfetch search "query" --json | jq '.results[].url'
Run seekfetch <command> --help for every flag.
skills/seekfetch/SKILL.md teaches agents with a shell (Claude Code, Codex and others that read SKILL.md) when and how to use the CLI. Copy the folder into your agent's skills directory, for example ~/.claude/skills/seekfetch/.
import { DeepSeekWebClient, buildQuery, research } from "seekfetch";
const client = new DeepSeekWebClient({ apiKey: process.env.DEEPSEEK_API_KEY! });
const { results } = await client.search({
query: buildQuery("vector databases", { sites: ["github.com"], after: "2026" }),
count: 10,
});
const page = await client.fetch("https://example.com"); // { title, content (Markdown) }
const report = await research(client, { question: "What changed in MCP this year?", maxPages: 3 });
| Variable | Default | |
|---|---|---|
DEEPSEEK_API_KEY | — | Required. |
DEEPSEEK_BASE_URL | https://api.deepseek.com | Override for proxies. |
DEEPSEEK_TIMEOUT_MS | 60000 | Per attempt. |
DEEPSEEK_MAX_RETRIES | 3 | For 408, 429, 5xx and network errors. |
As documented by DeepSeek on 2026-10-18; check the Search & Fetch guide for current terms.
count is 1–50.site: is a strong preference rather than a strict filter.npm install
npm test # unit + MCP tests against a fake API
npm run build
Issues and PRs are welcome.
MIT. "DeepSeek" is a trademark of its owner and is used here only to describe the API this client calls.
FAQs
Unofficial MCP server + CLI for the DeepSeek Search & Fetch API: web search and page-to-Markdown for AI agents
We found that seekfetch demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.