DeepSeek Search Everywhere
概览
作者提供的说明(英文原文)
Web search, page fetching and multi-source research via the DeepSeek Search & Fetch API.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i1 项中通过 1 项依据公开信息检查;尚未扫描代码
- 使用情况i起步阶段↓ 2039/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 搜索与 AI 记忆
- 你需要填写:DEEPSEEK_API_KEY
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:1 项中通过 1 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 需要你自己填写:
DEEPSEEK_API_KEY,DEEPSEEK_BASE_URL
标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
- PyPI已安装 Python 的 uv(用于 uvx 命令)
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"deepseek-search-everywhere": {
"command": "uvx",
"args": [
"deepseek-search-everywhere-mcp"
],
"env": {
"DEEPSEEK_API_KEY": "your-value",
"DEEPSEEK_BASE_URL": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add deepseek-search-everywhere --env DEEPSEEK_API_KEY=your-value --env DEEPSEEK_BASE_URL=your-value -- uvx deepseek-search-everywhere-mcp运行前请先填写空着的值。
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"deepseek-search-everywhere": {
"command": "uvx",
"args": [
"deepseek-search-everywhere-mcp"
],
"env": {
"DEEPSEEK_API_KEY": "your-value",
"DEEPSEEK_BASE_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"deepseek-search-everywhere": {
"type": "stdio",
"command": "uvx",
"args": [
"deepseek-search-everywhere-mcp"
],
"env": {
"DEEPSEEK_API_KEY": "your-value",
"DEEPSEEK_BASE_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
需要你填写的值
- DeepSeek API key used for the Search & Fetch API.
DEEPSEEK_BASE_URLenvOverride the DeepSeek API base URL.
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月10日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 radoxtech 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 5833 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 5833 个服务器的 81% 更新
- 基础检查结果等于或优于此分类中其他 5833 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
DeepSeek Search Everywhere 安全吗?
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
你需要填写:DEEPSEEK_API_KEY
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(2.0.2)于8天前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, Exa
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
DeepSeek Search Everywhere MCP
An MCP server that gives AI agents web search, page fetching and multi-source research through the official DeepSeek Search & Fetch API.
It is a thin, careful layer over that API: results are deduplicated, content is capped to a budget you set, repeated calls are served from an in-memory cache, and outgoing calls are paced by a local rate limiter. Seven tools, stdio by default, optional bearer-protected streamable HTTP.
It is a standard MCP server, so it works with any MCP-compatible AI client or agent: Claude Code, Claude Desktop, Google Antigravity, Cursor, Windsurf, VS Code (GitHub Copilot), Gemini CLI, Codex CLI, Zed, opencode and others. Local clients launch it over stdio; remote or shared setups can connect over HTTP.
Not affiliated with DeepSeek. This is an independent, community-maintained project.
Features
- Search with content in one request:
need_contentreturns page text inline, so there is usually no need for a second fetch per result. - Batch fetch and research:
deepseek_fetch_manyfetches up to 10 URLs concurrently;deepseek_researchgathers sources in a single pass: one search, then direct fetches for pages whose search content is missing. It does not iterate or summarise. - Deep research and structured extraction:
deepseek_deep_researchdecomposes topics into subqueries and synthesizes cited briefing reports;deepseek_extractextracts validated structured JSON matching schemas or fields. - Result hygiene: canonical-URL and title/site deduplication, per-result and total character budgets, Markdown unescaping.
- Optional query rewrite to English through
deepseek-flash(thinking disabled), plus an explicitlangoperator for non-English queries. - Cache and limiter: TTL + LRU cache with single-flight, per-endpoint token buckets,
refreshto bypass. - Safe by default: static SSRF checks, secret redaction, no telemetry. See Security.
Requirements
- Python 3.11 or newer
- A DeepSeek API key (
DEEPSEEK_API_KEY) from the DeepSeek platform
Install
The server is published on PyPI and listed in the official MCP Registry as io.github.radoxtech/deepseek-search-everywhere-mcp.
# Run without installing (uv)
uvx deepseek-search-everywhere-mcp
Or install with pip
pip install deepseek-search-everywhere-mcp
The HTTP transport needs the http extra (it pulls in uvicorn):
pip install "deepseek-search-everywhere-mcp[http]"
To run the latest unreleased code from main, or from a source checkout:
uvx --from git+https://github.com/radoxtech/deepseek-search-everywhere-mcp deepseek-search-everywhere-mcp
git clone https://github.com/radoxtech/deepseek-search-everywhere-mcp.git cd deepseek-search-everywhere-mcp pip install -e ".[http]"
Check that the key and connectivity work (prints your balance, then exits):
export DEEPSEEK_API_KEY=sk-...
deepseek-search-everywhere-mcp --check
Quick start
All examples use stdio. Replace sk-... with your key.
The server is client-agnostic: the examples below cover common clients, and any other MCP client (Antigravity, Cursor, Windsurf, VS Code, Gemini CLI, Codex CLI, Zed, ...) works with the same command, arguments and environment variable in its own MCP configuration format.
Claude Code
claude mcp add deepseek-search-everywhere -e DEEPSEEK_API_KEY=sk-... -- \
uvx deepseek-search-everywhere-mcp
Claude Desktop
Edit claude_desktop_config.json (Settings, Developer, Edit Config):
{
"mcpServers": { "deepseek-search-everywhere": { "command": "uvx", "args": ["deepseek-search-everywhere-mcp"], "env": { "DEEPSEEK_API_KEY": "sk-..." } } } }
opencode
In opencode.json:
{
"$schema": "https://opencode.ai/config.json", "mcp": { "deepseek-search-everywhere": { "type": "local", "command": ["uvx", "deepseek-search-everywhere-mcp"], "environment": { "DEEPSEEK_API_KEY": "{env:DEEPSEEK_API_KEY}" }, "enabled": true } } }
Any stdio client
Most clients (including Antigravity, Cursor and Windsurf) use an mcpServers JSON block. Use the uvx form from the Claude Desktop example, or, if the package is already installed, point the client at the console script:
{
"mcpServers": { "deepseek-search-everywhere": { "command": "deepseek-search-everywhere-mcp", "env": { "DEEPSEEK_API_KEY": "sk-..." } } } }
python -m deepseek_search_everywhere_mcp is equivalent.
Streamable HTTP
For clients that connect over HTTP. A bearer token is always required; the server refuses to start without one.
pip install "deepseek-search-everywhere-mcp[http]"
export DEEPSEEK_API_KEY=sk-... export MCP_BEARER_TOKEN="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')" deepseek-search-everywhere-mcp --transport streamable-http # http://127.0.0.1:8000/mcp
Options: --host (default 127.0.0.1), --port (default 8000), --path (default /mcp). The token is read from the environment only, never from the command line. The server runs stateless and answers with JSON (no SSE streams). Client entry:
{
"mcpServers": { "deepseek-search-everywhere": { "url": "http://127.0.0.1:8000/mcp", "headers": { "Authorization": "Bearer " } } } }
Claude Code: claude mcp add --transport http deepseek-search-everywhere http://127.0.0.1:8000/mcp --header "Authorization: Bearer $MCP_BEARER_TOKEN". The server speaks plain HTTP; when binding beyond loopback, put TLS in front of it (see SECURITY.md).
Docker
An official container image is available on GitHub Container Registry (ghcr.io):
docker pull ghcr.io/radoxtech/deepseek-search-everywhere-mcp:latest
Stdio mode (Claude Desktop, Cursor, local IDEs):
{
"mcpServers": { "deepseek-search-everywhere": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "DEEPSEEK_API_KEY=sk-...", "ghcr.io/radoxtech/deepseek-search-everywhere-mcp:latest" ] } } }
Remote HTTP hosting (Docker Compose, VPS, n8n, Dify, cloud agents):
docker run -d --name deepseek-mcp -p 8000:8000 \
-e DEEPSEEK_API_KEY="sk-..." \ -e MCP_BEARER_TOKEN="your-secret-token" \ ghcr.io/radoxtech/deepseek-search-everywhere-mcp:latest \ --transport streamable-http --host 0.0.0.0 --port 8000
The container runs as an unprivileged non-root user (UID 10001) with dependencies isolated from the host.
Tools
| Tool | Purpose | Parameters (defaults) |
|---|---|---|
deepseek_search | Search the web; returns inline page text (default) or snippets and metadata | query, count=5 (1-50), ori_question, need_content=True, lang, max_chars_per_result=4000, max_total_chars=30000, dedupe=True, rewrite=False, after, before, include_domains, exclude_domains, refresh=False, summary_chars, strip_boilerplate=True |
deepseek_fetch | Fetch one known URL as Markdown (supports lexical snippet extraction and sectional reading) | url, clean=True, max_chars=20000, query, section, max_snippets=3, refresh=False, strip_boilerplate=True |
deepseek_fetch_many | Fetch 1-10 URLs concurrently (up to 5 at a time) | urls, max_chars_per_url=4000, max_total_chars=20000, clean=True, query, refresh=False, strip_boilerplate=True |
deepseek_research | Single-pass source gathering: search with content and auto-fetch stub pages (< 200 chars). No iteration, no summary | question, max_pages=5 (1-50), per_page_chars=6000, total_chars=30000, after, before, include_domains, exclude_domains, lang, rewrite=False, dedupe=True, refresh=False, strip_boilerplate=True |
deepseek_deep_research | Multi-angle research on a topic; decomposes subqueries, gathers sources, and synthesizes a cited report | topic, max_queries=3 (2-4), max_pages_per_query=3 (1-5), lang, dedupe=True, refresh=False, strip_boilerplate=True |
deepseek_extract | Extract structured JSON from a web page conforming to target fields or a schema | url, fields=None, schema=None, instruction=None, clean=True, max_chars=40000, refresh=False, strip_boilerplate=True |
deepseek_check_balance | Account balance and session metrics (upstream queries, cache hits, estimated cost) | none |
Notes on the parameters:
queryandquestionare limited to 128 characters and supportsite:,-site:,"phrase",lang:,after:andbefore:.ori_question(max 128 characters) is the natural-language question and improves ranking.after,before,include_domainsandexclude_domainsare explicit filter parameters for search tools.include_domainscompiles to space-separatedsite:operators,exclude_domainsto-site:, and dates toafter:YYYY-MM-DD/before:YYYY-MM-DD. Filters and query are budget-guarded together to stay within DeepSeek's 128-character limit.queryindeepseek_fetchanddeepseek_fetch_manyextracts ranked relevant excerpts using a BM25-lite scoring engine without invoking an LLM.section(1-based index) enables sectional reading of long documents withhas_moreandtotal_sectionspagination metadata. Both operate in-memory on cached pages.deepseek_deep_researchdecomposes topics into 2-4 subqueries viadeepseek-flash, searches concurrently, merges and dedupes candidate sources, and synthesizes a cited report with numbered bracket citations[1],[2]capped at 6 sources / 24,000 characters. If the synthesis deadline is approached, it gracefully falls back to returning the gathered sources.deepseek_extractusesdeepseek-flashto extract structured JSON matching eitherfields: list[str]or aschema: dictwithout ingesting the full page text into client context. Missing requested fields are populated withnull, and pages with no readable text fast-fail with zero LLM token consumption.deepseek_check_balance(and legacy aliasdeepseek_balance) includes asessionblock with uptime, total queries handled, cache hit rate, and estimated cost and savings (at $0.00075 per request).langis an explicit language operator such ases,de,jaorpt-BR. Without it, results for non-English queries may be mixed-language; for named entities, compare with and without it.- With
dedupe=True, searches ask the upstream for a few extra results (max(2, ceil(count * 0.5)), capped at 50) and trim tocountafter removing duplicates, so you still getcountresults when the index returns repeats. Withdedupe=Falseexactlycountare requested. - Without
need_content, each search result carries a shortsummaryinstead of page text. It is capped atsummary_chars(default 400) and never lo
只显示了开头部分;其余内容请在仓库中阅读