Skip to main content
Glama
Taosheng777

deepseek-search-mcp

by Taosheng777

deepseek-search-mcp

CI Python License

把 DeepSeek 2026-10-17 开放的自研搜索引擎(Search / Fetch API)接进 Claude Code、Codex、Cursor 等任何支持 MCP 的 AI 工具。

English · 评测结果

为什么用它

我们在 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-mcp

Codex(~/.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

工具

工具

作用

费用

deepseek_search

搜索网页。支持 site:、-site:、lang:zh、after:、before:、"短语"、-关键词

每次 0.005 元,与条数无关

deepseek_fetch

抓取单个网页为 Markdown,长页面分页读取(15 分钟内翻页不重复计费)

每次 0.005 元

deepseek_usage

查看本机调用次数和估算花费

免费

实用写法:中文检索加 lang:zh;找开源项目加 site:github.com;include_content=true 一次拿到正文,比逐条抓取省钱。

配置

环境变量

默认

说明

DEEPSEEK_API_KEY

—

未设置时在 macOS 上读取钥匙串服务 deepseek-api-key

DEEPSEEK_DAILY_LIMIT

500

每日计费调用上限(约 2.5 元)

DEEPSEEK_MONTHLY_LIMIT

5000

每月计费调用上限(约 25 元)

DEEPSEEK_SEARCH_STATE_DIR

~/.local/state/deepseek-search-mcp

用量计数文件位置

注意

  • 查询词和网址会发送给 DeepSeek;DeepSeek 文档未说明数据留存政策。

  • 不建议把 deepseek_fetch 加入客户端的“免确认”列表:网页内容可能诱导模型去抓取带敏感参数的网址。

  • 搜索结果只是线索。医学、法律等专业结论请回原始来源核对。

  • 本项目与 DeepSeek 官方无关。

开发

uv sync
uv run pytest -q

English

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-mcp

Tools: 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 tools
deepseek_fetchA
Read-only

Fetch one web page as Markdown via DeepSeek. 用 DeepSeek 抓取单个网页,返回 Markdown 正文。按次计费(每次 0.005 元),同一网址 15 分钟内翻页不重复计费。

不支持本机、内网、带账号密码的网址。长网页分页读取,返回末尾会提示下一页的 start_index。
正文不含超链接和图片;需要链接或图片时用客户端自带的网页抓取工具。
知乎/小红书/X、Wikipedia、GitHub raw、PDF、NEJM/Lancet 会直接提示改用的工具(不发请求、不计费)。
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes公开的 http/https 网址
max_charsNo本页最多返回字符数
start_indexNo从正文第几个字符开始读

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_usageA
Read-only

查看本机 DeepSeek 搜索/抓取的计费调用次数、估算花费和防误扣上限。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv0.3.0
    • First observeddeepseek_fetch
    • First observeddeepseek_search
    • First observeddeepseek_usage

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP 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 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A 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.
    30
    19
    AGPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    Gives 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.
    7
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables 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.
    3
    41 npm
    1
    MIT