mcp
Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (4)
🟢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
Evidence