Skip to main content
Glama
radoxtech

DeepSeek Search Everywhere MCP

by radoxtech

deepseek_fetch

Fetch a known URL and return its page title and Markdown content for AI agents. Use it to read a specific page, with cleaning and length caps; for PDFs or blocked sites, search by title instead.

Instructions

Fetch one known URL and return its title and Markdown content.

Caveat measured on 2026-10-20: this endpoint returns HTTP 404 for PDFs and for Reddit, and times out on some sites. When the URL is a document or a blocked site, call deepseek_search_and_read with the page title or a site:-scoped query instead.

The response contains only title and content — no final URL, status code or publication date, so keep the provenance on your side.

Pages are cached in memory for about half an hour and identical concurrent calls share one upstream request; the envelope's cached flag tells which happened. Calls are rate-limited locally per endpoint: if no slot frees up within a short wait the error code is rate_limited_local. A response larger than 32 MiB fails with response_too_large.

URLs that point at internal hosts or literal private addresses, or that embed credentials (user:pass@host), are rejected locally with ssrf_blocked before any request is made.

Args: url: Absolute http(s) URL, max 8192 characters. clean: Remove DeepSeek's spurious Markdown escaping (# at line start, , , etc.). max_chars: Content cap, applied after cleaning. refresh: Bypass the response cache and fetch the page again (the envelope's cached flag says whether the page came from the cache).

Input Schema

NameRequiredDescriptionDefault
urlYes
cleanNo
refreshNo
max_charsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: known 404 and timeout cases, ~30 minute in-memory cache with concurrent-call dedupe, a local per-endpoint rate limit with the rate_limited_local error code, a 32 MiB response_too_large cap, and ssrf_blocked rejection of internal hosts, private addresses and credentialed URLs before any request. It also warns that the return payload omits final URL, status and date, telling the agent to preserve provenance itself.

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?

Front-loaded with purpose and return shape, then caveat, then cache/limit behavior, then Args. Dense but zero filler: every sentence either routes the agent or prevents a specific failure mode.

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?

Covers the whole call lifecycle for a four-parameter fetch tool: eligibility (SSRF, URL length), known failure modes with error codes, caching semantics, and the limits of the returned payload. Even though an output schema exists, the note about missing provenance fields is advisory context the schema would not supply.

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 0%, so the description must compensate and it does: url is bounded ('absolute http(s) URL, max 8192 characters'), clean explains the specific DeepSeek escaping artifacts it strips, max_chars is pinned to 'applied after cleaning', and refresh is tied to the cache flag in the envelope. Only minor gap is that defaults for clean/refresh/max_chars are left to 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?

Opens with a specific verb and scope ('Fetch one known URL') plus what comes back ('title and Markdown content'), which cleanly separates it from deepseek_web_search, deepseek_search_and_read and deepseek_fetch_many. The single-URL scope is stated explicitly, so an agent can pick this tool without opening any schema.

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?

Gives an explicit when-not rule with the failure conditions spelled out (PDFs and Reddit return 404, some sites time out) and names the exact alternative plus the query shape to use there ('deepseek_search_and_read with the page title or a site:-scoped query'). Routing is fully determined, not inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.