Skip to main content
Glama
Matthewyin

mcp-deepseek-search

by Matthewyin

mcp-deepseek-search

npm version License: MIT MCP Registry

An Model Context Protocol server that exposes DeepSeek's web Search and Fetch tools to any MCP client — Claude Desktop, Claude Code, Cursor, Cline, ZCode, and more.

Works with any LLM: the search runs on DeepSeek's own search engine, but the results are returned to your existing model as ordinary tool output.

Features

  • deepseek_search — web search backed by DeepSeek's search engine, with two quality signals per result:

    • rerank_score (0–3): relevance; ≥ 1.5 = highly relevant

    • authority (0–4, -1 unknown): source authority; ≥ 3 = highly authoritative

  • deepseek_fetch — fetch a single page and get its main content as Markdown

  • Powerful query syntax: site:, -site:, -term, "exact phrase", -"phrase", lang:zh,en, after:YYYY-MM-DD, before:YYYY-MM-DD

  • Built-in throttling (stays under the 5 QPS account limit) and automatic retry on 408/429/5xx

  • Response-size friendly: summaries by default, full page text only on request

Related MCP server: DeepSeek Search MCP Server

Setup

  1. Get an API key at platform.deepseek.com (web tools are billed at ¥5 per 1,000 successful calls, charged to your DeepSeek account — failed calls and empty results are not billed).

  2. Add the server to your MCP client config:

Claude Desktop / Cursor / Cline / most clients

{
  "mcpServers": {
    "deepseek-web": {
      "command": "npx",
      "args": ["-y", "mcp-deepseek-search"],
      "env": {
        "DEEPSEEK_API_KEY": "sk-your-key-here"
      }
    }
  }
}

ZCode

Add the same mcpServers block to your ZCode MCP settings (Settings → MCP → Add server).

From source

git clone https://github.com/Matthewyin/deepseek-mcp
cd deepseek-mcp && npm install && npm run build
node dist/index.js   # stdio MCP server

Tools

Parameter

Type

Required

Description

query

string

yes

1–128 chars; supports the search syntax above

count

integer

no

1–50 results, default 10 (does not affect billing)

ori_question

string

no

The user's original question — improves intent matching when the query was rewritten

localization

string

no

User IP to localize results (pass only with consent)

need_content

boolean

no

Include full page text per result (each truncated at 8,000 chars). Default false

Each result includes title, url, snippet (short, for display), summary (long, for feeding to a model), rerank_score, authority, site_name, date, and optionally content.

deepseek_fetch

Parameter

Type

Required

Description

url

string

yes

Plain http(s) URL, max 8,192 chars, no embedded credentials

Returns title + Markdown content (truncated at 30,000 chars).

Example

Ask your agent: "用 deepseek_search 搜一下最近一周关于 MCP 的大新闻,挑权威来源,再用 deepseek_fetch 读全文总结" — or in English: "Search for recent DeepSeek news, keep only results with authority ≥ 3, fetch the top one and summarize."

Notes & limits

  • Rate limit is 5 QPS per DeepSeek account (shared across all your API keys); the server throttles automatically.

  • HTTP 402 means your DeepSeek balance ran out; 401 means the key is invalid.

  • Page content depends on the target site's availability and access policy.

  • This is an unofficial community wrapper; not affiliated with DeepSeek.

Development

npm install
npm run build
DEEPSEEK_API_KEY=sk-... npm test   # end-to-end test against the real API

Releases are automated via GitHub Actions: pushing a v* tag publishes to npm and the official MCP Registry.

License

MIT

Available Tools

2 tools
deepseek_fetchDeepSeek Web FetchA
Read-only

Fetch a single web page and return its main content converted to Markdown (truncated at 30000 chars). Use after deepseek_search to read a specific result URL in full. Plain http/https URLs only; result availability depends on the target site's access policy.

NameRequiredDescriptionDefault
urlYesThe page URL to fetch.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint and openWorldHint already declared, the description still earns credit by disclosing the output shape (Markdown of main content), a hard truncation at 30000 chars, and a non-deterministic failure mode ("result availability depends on the target site's access policy"). It doesn't cover things like redirect handling or timeouts on slow sites, but the key behaviors an agent needs are present.

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?

Three sentences, front-loaded with purpose and output format before constraints. Every clause carries operative information; nothing is redundant with the name or title.

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?

For a one-parameter read tool with no output schema, the description covers what it returns, how much of it, what inputs are valid, and why it might fail. Nothing material is missing given the simplicity of the interface.

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; the description adds real value by constraining the accepted value to "plain http/https URLs only," which the schema cannot express. It doesn't mention the 8192-char cap, but that is already in the schema.

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?

States a specific verb and resource ("Fetch a single web page") and immediately characterizes the output ("main content converted to Markdown, truncated at 30000 chars"). This is clearly distinguishable from the sibling deepseek_search, which finds URLs rather than reading them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit sequencing rule: "Use after deepseek_search to read a specific result URL in full," which routes the agent between the two siblings. It also states two constraints (plain http/https only, access-policy-dependent availability) but stops short of saying when *not* to fetch (e.g., non-article or auth-walled pages should be skipped).

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. 2 tool updatesv1.0.1
    • First observeddeepseek_fetch
    • First observeddeepseek_search

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct roles: deepseek_search performs ranked web search, while deepseek_fetch retrieves and converts a single page to Markdown. The description even states fetch should be used after search, eliminating ambiguity.

Naming Consistency5/5

Both tools follow a consistent deepseek_<verb> pattern (search, fetch). The naming is predictable and easy to reason about.

Tool Count4/5

Two tools is slightly below the typical 3-15 range, but the server has a narrow search-and-fetch purpose where each tool earns its place. No unnecessary tools are included.

Completeness5/5

The surface covers the full search/read workflow: query with advanced syntax and optional content, then fetch full page content for a specific URL. There are no obvious dead ends for a web search server.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Exposes DeepSeek's Search and Fetch REST APIs as two read-only MCP tools, letting any MCP-capable agent run ranked web searches and retrieve individual pages as truncated Markdown. Works with whichever model the host runs, over stdio or Streamable HTTP.
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to perform real-time web search and fetch/parse webpages into clean Markdown through DeepSeek's Search and Fetch APIs. It provides configurable summaries, scoring, and robust retries for integration with MCP-compatible assistants.
    2
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP-capable AI clients to run web searches through DeepSeek's search engine and fetch individual webpages as Markdown. Search results include relevance scores, authority, and publication times, and support advanced query syntax such as site:, lang:, and date filters.
    2
    0
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP clients such as Claude Code to run real-time web searches and fetch public web pages as Markdown through DeepSeek's official search and fetch APIs, with result pagination and response caching. Runs over stdio and only requires a DeepSeek API key, needing no browser, Docker, or database.
    2
    1
    MIT