Skip to main content
Glama

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.

Related MCP server: Neurobird Search MCP server

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:

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 mcp add seekfetch -e DEEPSEEK_API_KEY=sk-... -- npx -y seekfetch mcp
{
  "mcpServers": {
    "seekfetch": {
      "command": "npx",
      "args": ["-y", "seekfetch", "mcp"],
      "env": { "DEEPSEEK_API_KEY": "sk-..." }
    }
  }
}
{
  "mcpServers": {
    "seekfetch": {
      "command": "npx",
      "args": ["-y", "seekfetch", "mcp"],
      "env": { "DEEPSEEK_API_KEY": "sk-..." }
    }
  }
}
{
  "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}" }
    }
  }
}
[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

Tool

What it does

deepseek_search

Ranked 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_fetch

A URL as Markdown. Long pages come in chunks of max_chars; continue with offset.

deepseek_research

Question → top-scoring pages with content and numbered sources, in one call.

All tools are read-only.

CLI

npm i -g seekfetch          # or prefix each command with npx -y

seekfetch search "rust async runtimes" -n 5 --min-score 1.5
seekfetch search "mcp server" --site github.com --lang en --after 2026-01-01
seekfetch research "how is the DeepSeek search API priced?" -o notes.md
seekfetch fetch https://example.com --max-chars 20000
seekfetch 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

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

Variable

Default

DEEPSEEK_API_KEY

—

Required.

DEEPSEEK_BASE_URL

https://api.deepseek.com

Override for proxies.

DEEPSEEK_TIMEOUT_MS

60000

Per attempt.

DEEPSEEK_MAX_RETRIES

3

For 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

npm install
npm test          # unit + MCP tests against a fake API
npm 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.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to search and fetch high-quality information from multiple sources, including general web APIs, Wikipedia, arXiv, Hacker News, Stack Exchange, and Crossref, with optional pro-mode deep research and clean markdown page extraction.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to run web searches with query operators and to fetch web pages as Markdown through DeepSeek's native Search/Fetch JSON API. It acts as a fallback for hosts whose built-in web tools are unavailable or return errors such as HTTP 403, rather than retrying them repeatedly.
    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