deepseek-search-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@deepseek-search-mcp搜 2026 年新发布的 MCP 服务器,用 site:github.com,并抓取第一个的 README"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
deepseek-search-mcp
把 DeepSeek 2026-10-17 开放的自研搜索引擎(Search / Fetch API)接进 Claude Code、Codex、Cursor 等任何支持 MCP 的 AI 工具。
为什么用它
我们在 2026-10-19 拿 27 个真实查询,对比了它和 Claude Code 内置的 WebSearch(方法和局限见 docs/benchmarks.md):
场景 | DeepSeek | 内置 WebSearch |
中文检索(12 题,满分 10/题) | 88 分 | 60 分 |
英文 / 技术 / GitHub 找轮子(15 题平均) | 7.5 | 5.2 |
近期动态(10 月新发布) | 能命中官方原文 | 索引停在 9 月 |
政策制度类、英文临床指南、经典论文 | 偏弱 | 更好 |
结论:中文、开源项目、近期动态用它更好;政策和英文经典文献建议与内置搜索交叉使用。
Related MCP server: svipall
和同类封装的区别
本项目 | |
防误扣费 | 每日 / 每月调用上限(默认 500 / 5000 次),多个会话共享计数;超时等“可能已计费”的请求保守计入 |
防提示注入 | 网页内容放在每次随机生成的围栏里并标为不可信;网页里伪造的围栏、结果条目会被中和 |
输出可控 | 单次输出硬上限 2 万字符,不会撑爆模型上下文;同一网页的分块结果合并去重 |
结果清洗 | 默认过滤 book118 / 人人文库 / 豆丁 / 道客巴巴 / 百度文库等转卖文档站;修复 Fetch 正文的反斜杠转义 |
稳定性 | 只对超时、网络错误、408/429/5xx 重试;遵守 Retry-After;总时限是硬上限;格式异常的响应不会让工具崩溃 |
已知限制提前告知 | 知乎 / 小红书 / X / Wikipedia / PDF 等 Fetch 抓不了的站点,直接提示改用别的工具,不白花钱 |
质量 | 97 个自动测试,CI 覆盖 Linux / macOS / Windows;两轮独立代码审查 |
安装
需要 uv 和一个 DeepSeek API key。如果你的环境只有 uv 没有 uvx,把下面的 uvx 换成 uv tool run。
Claude Code
claude mcp add -s user deepseek-search -e DEEPSEEK_API_KEY=sk-你的key -- uvx --from git+https://github.com/Taosheng777/deepseek-search-mcp deepseek-search-mcpCodex(~/.codex/config.toml)
[mcp_servers.deepseek-search]
command = "uvx"
args = ["--from", "git+https://github.com/Taosheng777/deepseek-search-mcp", "deepseek-search-mcp"]
env = { DEEPSEEK_API_KEY = "sk-你的key" }Cursor / Claude Desktop / 其他 MCP 客户端
{
"mcpServers": {
"deepseek-search": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Taosheng777/deepseek-search-mcp", "deepseek-search-mcp"],
"env": { "DEEPSEEK_API_KEY": "sk-你的key" }
}
}
}macOS 更安全的做法:不把 key 写进配置文件,而是存进钥匙串,配置里去掉 DEEPSEEK_API_KEY 即可:
security add-generic-password -U -a "$USER" -s deepseek-api-key -w sk-你的key工具
工具 | 作用 | 费用 |
| 搜索网页。支持 | 每次 0.005 元,与条数无关 |
| 抓取单个网页为 Markdown,长页面分页读取(15 分钟内翻页不重复计费) | 每次 0.005 元 |
| 查看本机调用次数和估算花费 | 免费 |
实用写法:中文检索加 lang:zh;找开源项目加 site:github.com;include_content=true 一次拿到正文,比逐条抓取省钱。
配置
环境变量 | 默认 | 说明 |
| — | 未设置时在 macOS 上读取钥匙串服务 |
| 500 | 每日计费调用上限(约 2.5 元) |
| 5000 | 每月计费调用上限(约 25 元) |
|
| 用量计数文件位置 |
注意
查询词和网址会发送给 DeepSeek;DeepSeek 文档未说明数据留存政策。
不建议把
deepseek_fetch加入客户端的“免确认”列表:网页内容可能诱导模型去抓取带敏感参数的网址。搜索结果只是线索。医学、法律等专业结论请回原始来源核对。
本项目与 DeepSeek 官方无关。
开发
uv sync
uv run pytest -qEnglish
An MCP server for DeepSeek's self-built web search engine (Search / Fetch API, opened 2026-10-17). Works with Claude Code, Codex, Cursor and any MCP client.
Why: in our 27-query comparison against Claude Code's built-in WebSearch (2026-10-19, see benchmarks), DeepSeek scored 88 vs 60 on Chinese queries and 7.5 vs 5.2 (per-query average) on English / technical / GitHub queries. It is weaker on policy documents, English clinical guidelines and classic papers — cross-check those with your client's built-in search.
What's different: spend caps shared across sessions (conservative accounting for timed-out calls), per-call random fences against prompt injection from web content, a hard 20k-character output cap, de-duplication and doc-farm filtering, retries only where they are safe, upfront hints for sites DeepSeek Fetch cannot read, 97 tests with CI on Linux / macOS / Windows.
Install (Claude Code):
claude mcp add -s user deepseek-search -e DEEPSEEK_API_KEY=sk-... -- uvx --from git+https://github.com/Taosheng777/deepseek-search-mcp deepseek-search-mcpTools: deepseek_search, deepseek_fetch, deepseek_usage. Pricing: CNY 0.005 per successful call. Tool messages are in Chinese; models read them fine. Not affiliated with DeepSeek.
License: MIT
Available Tools
3 toolsdeepseek_fetchARead-only
Fetch one web page as Markdown via DeepSeek. 用 DeepSeek 抓取单个网页,返回 Markdown 正文。按次计费(每次 0.005 元),同一网址 15 分钟内翻页不重复计费。
不支持本机、内网、带账号密码的网址。长网页分页读取,返回末尾会提示下一页的 start_index。
正文不含超链接和图片;需要链接或图片时用客户端自带的网页抓取工具。
知乎/小红书/X、Wikipedia、GitHub raw、PDF、NEJM/Lancet 会直接提示改用的工具(不发请求、不计费)。
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 公开的 http/https 网址 | |
| max_chars | No | 本页最多返回字符数 | |
| start_index | No | 从正文第几个字符开始读 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-destructive, and the description adds substantial context beyond them: per-call pricing (0.005 CNY), a 15-minute no-double-billing window across paginated reads, that blocked domains incur no request and no charge, and that long pages paginate with a next-page start_index hint. This is exactly the operational detail an agent needs before spending money or retrying.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded in the first sentence, and the remaining sentences each carry load-bearing constraints (billing, blocked URLs, pagination, content stripping). It is dense and bilingual duplication adds length, but almost nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what comes back (Markdown body, no links/images, pagination hint in the tail) and what it costs. Combined with the annotations, an agent has everything needed to invoke, cost-anticipate, and continue pagination correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains that long pages are read in pages and that the returned tail signals the next page's start_index, which clarifies the pagination contract between max_chars and start_index. The max_chars/start_index mechanics themselves remain with the schema, keeping it short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb (fetch) and resource (one web page), plus the exact transform applied (returns Markdown body via DeepSeek). It distinguishes this from a plain fetch by naming scope limits (single page, no intranet/auth URLs) and even routes away from sibling-adjacent scenarios when links/images are needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit exclusions are given: no localhost/intranet/password-protected URLs, and named domains (Zhihu/Xiaohongshu/X, Wikipedia, GitHub raw, PDF, NEJM/Lancet) route to other tools without a request or charge. It also states the condition under which the client's own fetch tool should be used instead (when links or images are required), covering both when-to-use and when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepseek_searchARead-only
Search the web with DeepSeek's own search engine. 用 DeepSeek 自研搜索引擎搜索网页。按次计费(每次 0.005 元,与 count 无关)。
query 支持语法:site:github.com(多个用 OR 连接)、-site:x.com、"精确短语"(弱约束)、
-关键词、lang:zh 或 lang:en、after:2026-01-01、before:2026。
实用写法:中文检索加 lang:zh 防混入外文;找轮子加 site:github.com;找经验可加 -site:edu.cn 避开高校新闻稿。
include_content:同时返回正文,比逐条 fetch 省钱省时;总输出约 2 万字,条数越多每条正文越短,建议 count≤10。
exclude_doc_farms:默认过滤 book118/人人文库/豆丁/道客巴巴/百度文库等转卖文档站。
结果顺序沿用 DeepSeek 排序;score 与 authority 只作参考,不代表内容可靠。缺日期的结果标为"日期未知"。
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 返回条数 | |
| query | Yes | 搜索词,1-128 字符,可含 site:/lang:/after: 等语法 | |
| include_content | No | 是否附带每条结果的正文(按输出上限截断) | |
| exclude_doc_farms | No | 是否过滤转卖文档站 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/openWorld annotations: per-call pricing (0.005 yuan, independent of count), approximate total output size (~20k chars), the shrinkage of per-result content as count grows, default doc-farm filtering with named sites, DeepSeek-native result ordering, and the caveat that score/authority are only advisory. These are exactly the operational facts an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and dense with useful detail, but the opening sentence is duplicated bilingually and the syntax list is a little sprawling. Almost every line earns its place, with minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly takes on return-value semantics: result ordering, the meaning of score/authority, and the 'date unknown' labeling for undated results. Combined with the pricing and size notes, nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema coverage is 100%, the description substantially enriches every parameter: it enumerates query syntax (site: with OR, -site:, quotes as a weak constraint, lang:, after:/before:), explains the cost/size tradeoff of include_content, and names what exclude_doc_farms actually removes. This is real meaning beyond the terse schema strings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search the web'), and implicitly distinguishes itself from the sibling deepseek_fetch by noting that include_content is 'cheaper and faster than fetching each result individually'. An agent can tell what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete practical guidance with conditions: add lang:zh for Chinese searches, use site:github.com to find libraries, add -site:edu.cn to avoid university press releases, and recommends count<=10 when include_content is on. It names the fetch alternative, though it never states an explicit when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deepseek_usageARead-only
查看本机 DeepSeek 搜索/抓取的计费调用次数、估算花费和防误扣上限。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, and the description is consistent with that, adding that the data is local (本机) and covers billed call counts, estimated cost, and an anti-overcharge cap. This adds useful context beyond the annotations about what the tool surfaces, though it does not describe the time window or freshness of the statistics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence listing exactly the three returned data categories, with no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations covering return values, the description must explain what comes back, and it does — call count, estimated cost, and cap. Combined with readOnlyHint/openWorldHint annotations, this is nearly complete, with only the reporting period left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly implies no input is needed to retrieve the usage summary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (查看/view) and a specific resource (本机 DeepSeek 计费调用次数、估算花费、防误扣上限), making the tool's output concretely identifiable. It is clearly distinct from the deepseek_search and deepseek_fetch siblings, which perform actions whereas this reports billing state, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the nature of the tool — you call it to inspect local DeepSeek billing/usage — but there is no explicit statement of when to use this versus the search/fetch siblings, nor any prerequisites or exclusions. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.3.0- First observed
deepseek_fetch - First observed
deepseek_search - First observed
deepseek_usage
TDQS
Scored across 3 tools
The three tools cover clearly distinct purposes: cost/quota inspection (deepseek_usage), web search (deepseek_search), and single-page retrieval (deepseek_fetch). An agent can unambiguously select the right tool for each task.
All tools share the deepseek_ prefix, giving a predictable namespace. The suffixes mix verbs (search, fetch) with a noun (usage), a minor deviation, but overall it reads consistently.
Three tools is well-scoped for a search/retrieval server, and each earns its place: one to search, one to fetch, one to monitor billing. No redundant or filler tools.
The surface fully covers the search lifecycle: discovery via search, content retrieval via fetch with pagination hints, and cost control via usage. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Free web search for AI agents. No API key required. Hosted MCP in active development.
Web scraping, extraction and search for AI agents. Hosted MCP with workspace API keys.
Hosted Web Crawler MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceMCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.99 npm1MIT
- AlicenseAqualityAmaintenanceA local-first MCP server that lets AI agents read any webpage as clean Markdown, crawl whole sites within configured limits, search without API keys, and solve supported captchas locally — all without cloud services or third-party keys.3019AGPL 3.0
- AlicenseAqualityCmaintenanceGives MCP-capable agents live web access: search the web, scrape pages into Markdown (including JavaScript-heavy and bot-protected sites), and extract named fields as JSON, with job polling, token-aware content offloading, and built-in research guidance. Ships as a self-hostable stdio or HTTP service with spend caps and per-request key support.7MIT
- AlicenseBqualityAmaintenanceEnables AI coding assistants to perform real-time web searches for technical documentation and deep-fetch web pages, returning clean structured results. It supports integration with MCP clients such as Cursor, Claude, and CodeBuddy.341 npm1MIT