mcp

Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~473Tokens (tool definitions)
~773 BTypical response size
Minimal attention impact (0.37% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.vanshul.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.vanshul.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢fetch_markdown(url, max_chars)

Fetch a web page and return its main content as clean Markdown (nav, ads and boilerplate removed). Raw Markdown, plain-text and JSON endpoints are returned as-is. Use this to read an article, docs page or raw file.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The absolute http(s) URL of the page."
    },
    "max_chars": {
      "type": "number",
      "description": "Optional. Truncate the Markdown to at most this many characters to fit a context budget."
    }
  },
  "required": [
    "url"
  ]
}
🟢fetch_metadata(url)

Fetch a web page and return its metadata as JSON: title, byline, site name, excerpt and word count (no full body).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The absolute http(s) URL of the page."
    }
  },
  "required": [
    "url"
  ]
}
🟢extract_links(url, limit)

Fetch a web page and return all of its outbound http(s) links (with anchor text) as JSON. Useful for crawling or finding related pages.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The absolute http(s) URL of the page."
    },
    "limit": {
      "type": "number",
      "description": "Max links to return (default 200)."
    }
  },
  "required": [
    "url"
  ]
}
🟢search_page(url, query, max_matches, context_chars)

Fetch a web page and return only the passages that match a query, instead of the whole page. Each result includes its heading breadcrumb and is ranked by relevance. Use this to find a specific detail (e.g. pricing, a config option) while spending far fewer tokens than fetch_markdown.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The absolute http(s) URL of the page."
    },
    "query": {
      "type": "string",
      "description": "Space-separated search terms; matching is case-insensitive."
    },
    "max_matches": {
      "type": "number",
      "description": "Max passages to return (1-50, default 5)."
    },
    "context_chars": {
      "type": "number",
      "description": "Per-passage character budget (50-4000, default 500)."
    }
  },
  "required": [
    "url",
    "query"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools