seekfetch

io.github.esticklackPublished by GitHub account esticklackv0.1.0Updated Oct 25, 2026

Unofficial MCP server for the DeepSeek Search & Fetch API: web search and page-to-Markdown.

Overview

AI-generated overview

Unofficial local MCP server that gives an assistant DeepSeek-powered web search, page-to-Markdown fetching and one-call research.

What you can do
Search the web with ranked results, per-result summaries and filters for sites, language, dates and minimum score, optionally including page text. Fetch a URL as Markdown, paging through long pages by offset. Run a research question in one call and get the top-scoring pages with their content and numbered sources.
When to use it
Useful when an assistant needs current web information or clean Markdown of a specific page without a chat model in between, and when you already have a DeepSeek API key and want search, fetch and multi-page research from one local server.
Requirements
Runs locally over stdio via npx, so Node.js 22.12 or later is needed. Requires a DeepSeek API key in the DEEPSEEK_API_KEY environment variable, plus network access to the DeepSeek API; the base URL, timeout and retry count can be overridden by environment variables.
Before you install
The DeepSeek API key is a secret passed in the environment and should not be committed to client config files. Requests are billed per successful call at the published per-request rate, so searches and fetches cost money; empty results and errors are not billed. Queries and fetched URLs are sent to DeepSeek. Tools are read-only, but fetched page content is third-party text.

Installation

In SourceWeft

  1. Open seekfetch in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

seekfetch

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.

[CI] [npm] [License: MIT]

Why

  • Calls the dedicated endpoints (/v1/tools/search, /v1/tools/fetch). No chat model sits in between, so a search costs one API request and no model tokens.
  • Search, fetch and research. research returns the best pages with their content from a single search request, and only fetches the pages that came back empty.
  • Built for context windows. It returns DeepSeek's model-ready summaries by default, filters by relevance score, and pages through long documents with an offset.
  • Production behavior. It retries 408/429/5xx with backoff and honors 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.

Quick start

  1. Get an API key at platform.deepseek.com.
  2. Add seekfetch to your MCP client (below), or run it from the shell:
bash
export DEEPSEEK_API_KEY=sk-...npx -y seekfetch search "model context protocol registry"

Requires Node.js 22.12 or later.

MCP setup

The server runs over stdio with npx -y seekfetch mcp.

Claude Code
bash
claude mcp add seekfetch -e DEEPSEEK_API_KEY=sk-... -- npx -y seekfetch mcp
Claude Desktop — claude_desktop_config.json
json
{  "mcpServers": {    "seekfetch": {      "command": "npx",      "args": ["-y", "seekfetch", "mcp"],      "env": { "DEEPSEEK_API_KEY": "sk-..." }    }  }}
Cursor — ~/.cursor/mcp.json
json
{  "mcpServers": {    "seekfetch": {      "command": "npx",      "args": ["-y", "seekfetch", "mcp"],      "env": { "DEEPSEEK_API_KEY": "sk-..." }    }  }}
VS Code — .vscode/mcp.json
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 — ~/.codex/config.toml
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"].

Tools

ToolWhat it does
deepseek_searchRanked 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_fetchA URL as Markdown. Long pages come in chunks of max_chars; continue with offset.
deepseek_researchQuestion → top-scoring pages with content and numbered sources, in one call.

All tools are read-only.

CLI

bash
npm i -g seekfetch          # or prefix each command with npx -y
seekfetch search "rust async runtimes" -n 5 --min-score 1.5seekfetch search "mcp server" --site github.com --lang en --after 2026-01-01seekfetch research "how is the DeepSeek search API priced?" -o notes.mdseekfetch fetch https://example.com --max-chars 20000seekfetch search "query" --json | jq '.results[].url'

Run seekfetch <command> --help for every flag.

Agent skill

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/.

Library

ts
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 });

Configuration

VariableDefault
DEEPSEEK_API_KEY—Required.
DEEPSEEK_BASE_URLhttps://api.deepseek.comOverride for proxies.
DEEPSEEK_TIMEOUT_MS60000Per attempt.
DEEPSEEK_MAX_RETRIES3For 408, 429, 5xx and network errors.

API limits and pricing

As documented by DeepSeek on 2026-10-18; check the Search & Fetch guide for current terms.

  • Queries are limited to 128 characters, filters included. count is 1–50.
  • Observed in practice: summaries run 1,000–3,500 characters (the docs say 600–800), page content from search is capped around 20,000 characters, and site: is a strong preference rather than a strict filter.
  • 5 QPS per account for search, and separately for fetch. Fetch also has a per-domain limit.
  • Billing is per successful request, published at $0.75 per 1,000 for each API. Empty results and errors are not billed.

Development

bash
npm installnpm test          # unit + MCP tests against a fake APInpm run build

Issues and PRs are welcome.

License

MIT. "DeepSeek" is a trademark of its owner and is used here only to describe the API this client calls.

Source: README.md at commit 5e931fb

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestOct 18, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts