read-website-fast
Integrates with GitHub workflows through GitHub Actions for automated release processes.
Enables JetBrains IDEs to use the web content extraction functionality through AI Assistant integration.
Converts HTML content to clean Markdown format while preserving links for knowledge graphs and downstream processing.
Leverages Mozilla Readability (same technology as Firefox Reader View) for effective content extraction from web pages.
Distributed as an npm package with version tracking and badge integration for easy installation and updates.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@read-website-fastfetch the latest React documentation from react.dev"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@just-every/mcp-read-website-fast
Fast, token-efficient web content extraction for AI agents - converts websites to clean Markdown.
Overview
Existing MCP web crawlers are slow and consume large quantities of tokens. This pauses the development process and provides incomplete results as LLMs need to parse whole web pages.
This MCP package fetches web pages locally, strips noise, and converts content to clean Markdown while preserving links. Designed for Claude Code, IDEs and LLM pipelines with minimal token footprint. Crawl sites locally with minimal dependencies.
Note: This package now uses @just-every/crawl for its core crawling and markdown conversion functionality.
Related MCP server: stripfeed-mcp-server
Features
Fast startup using official MCP SDK with lazy loading for optimal performance
Content extraction using Mozilla Readability (same as Firefox Reader View)
HTML to Markdown conversion with Turndown + GFM support
Smart caching with SHA-256 hashed URLs
Polite crawling with robots.txt support and rate limiting
Concurrent fetching with configurable depth crawling
Stream-first design for low memory usage
Link preservation for knowledge graphs
Optional chunking for downstream processing
Installation
Claude Code
claude mcp add read-website-fast -s user -- npx -y @just-every/mcp-read-website-fastVS Code
code --add-mcp '{"name":"read-website-fast","command":"npx","args":["-y","@just-every/mcp-read-website-fast"]}'Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=read-website-fast&config=eyJyZWFkLXdlYnNpdGUtZmFzdCI6eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBqdXN0LWV2ZXJ5L21jcC1yZWFkLXdlYnNpdGUtZmFzdCJdfX0=JetBrains IDEs
Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add
Choose “As JSON” and paste:
{"command":"npx","args":["-y","@just-every/mcp-read-website-fast"]}Or, in the chat window, type /add and fill in the same JSON—both paths land the server in a single step. 
Raw JSON (works in any MCP client)
{
"mcpServers": {
"read-website-fast": {
"command": "npx",
"args": ["-y", "@just-every/mcp-read-website-fast"]
}
}
}Drop this into your client’s mcp.json (e.g. .vscode/mcp.json, ~/.cursor/mcp.json, or .mcp.json for Claude).
Features
Fast startup using official MCP SDK with lazy loading for optimal performance
Content extraction using Mozilla Readability (same as Firefox Reader View)
HTML to Markdown conversion with Turndown + GFM support
Smart caching with SHA-256 hashed URLs
Polite crawling with robots.txt support and rate limiting
Concurrent fetching with configurable depth crawling
Stream-first design for low memory usage
Link preservation for knowledge graphs
Optional chunking for downstream processing
Available Tools
read_website- Fetches a webpage and converts it to clean markdownParameters:
url(required): The HTTP/HTTPS URL to fetchpages(optional): Maximum number of pages to crawl (default: 1, max: 100)
Available Resources
read-website-fast://status- Get cache statisticsread-website-fast://clear-cache- Clear the cache directory
Development Usage
Install
npm install
npm run buildSingle page fetch
npm run dev fetch https://example.com/articleCrawl with depth
npm run dev fetch https://example.com --depth 2 --concurrency 5Output formats
# Markdown only (default)
npm run dev fetch https://example.com
# JSON output with metadata
npm run dev fetch https://example.com --output json
# Both URL and markdown
npm run dev fetch https://example.com --output bothCLI Options
-p, --pages <number>- Maximum number of pages to crawl (default: 1)-c, --concurrency <number>- Max concurrent requests (default: 3)--no-robots- Ignore robots.txt--all-origins- Allow cross-origin crawling-u, --user-agent <string>- Custom user agent--cache-dir <path>- Cache directory (default: .cache)-t, --timeout <ms>- Request timeout in milliseconds (default: 30000)-o, --output <format>- Output format: json, markdown, or both (default: markdown)
Clear cache
npm run dev clear-cacheAuto-Restart Feature
The MCP server includes automatic restart capability by default for improved reliability:
Automatically restarts the server if it crashes
Handles unhandled exceptions and promise rejections
Implements exponential backoff (max 10 attempts in 1 minute)
Logs all restart attempts for monitoring
Gracefully handles shutdown signals (SIGINT, SIGTERM)
For development/debugging without auto-restart:
# Run directly without restart wrapper
npm run serve:devArchitecture
mcp/
├── src/
│ ├── crawler/ # URL fetching, queue management, robots.txt
│ ├── parser/ # DOM parsing, Readability, Turndown conversion
│ ├── cache/ # Disk-based caching with SHA-256 keys
│ ├── utils/ # Logger, chunker utilities
│ ├── index.ts # CLI entry point
│ ├── serve.ts # MCP server entry point
│ └── serve-restart.ts # Auto-restart wrapperDevelopment
# Run in development mode
npm run dev fetch https://example.com
# Build for production
npm run build
# Run tests
npm test
# Type checking
npm run typecheck
# Linting
npm run lintContributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch
Add tests for new functionality
Submit a pull request
Troubleshooting
Cache Issues
npm run dev clear-cacheTimeout Errors
Increase timeout with
-tflagCheck network connectivity
Verify URL is accessible
Content Not Extracted
Some sites block automated access
Try custom user agent with
-uflagCheck if site requires JavaScript (not supported)
License
MIT
Available Tools
1 toolread_websiteARead-onlyIdempotent
Fast, token-efficient web content extraction - ideal for reading documentation, analyzing content, and gathering information from websites. Converts to clean Markdown while preserving links and structure.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTP/HTTPS URL to fetch and convert to markdown | |
| pages | No | Maximum number of pages to crawl (default: 1) | |
| cookiesFile | No | Path to Netscape cookie file for authenticated pages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations: it mentions 'fast, token-efficient' performance and output format ('converts to clean Markdown while preserving links and structure'), which are not covered by annotations like readOnlyHint or idempotentHint. Annotations already indicate safe, non-destructive operations, so the description complements this without contradiction, though it could add more on rate limits or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with key information ('Fast, token-efficient web content extraction') and uses two concise sentences that efficiently convey purpose, ideal use cases, and output format without any wasted words. Every sentence adds value, making it highly structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema), the description is largely complete: it covers purpose, usage context, and behavioral traits. However, it lacks details on output specifics (e.g., what the Markdown output looks like or error cases), which would be helpful since there's no output schema. Annotations provide safety info, but more output context could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explicitly discuss parameters, but the input schema has 100% description coverage, providing full details on 'url', 'pages', and 'cookiesFile'. This high coverage means the schema carries the burden, so the baseline score of 3 is appropriate as the description adds no additional parameter semantics beyond what the schema already explains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('extraction', 'reading', 'analyzing', 'gathering') and resources ('web content', 'websites'), and distinguishes its functionality by mentioning conversion to clean Markdown while preserving links and structure. It explicitly differentiates from potential alternatives by highlighting 'fast, token-efficient' extraction, making the purpose highly specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool ('ideal for reading documentation, analyzing content, and gathering information from websites'), which helps guide usage. However, it does not explicitly state when not to use it or name alternatives, and with no sibling tools listed, there is no direct comparison. This results in strong but not exhaustive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v1.0.0- Changed
read_website1 field changed- added
Input schema / properties / cookiesFileAdded value: +{ + "description": "Path to Netscape cookie file for authenticated pages", + "optional": true, + "type": "string" +}
1 tool update
- First observed
read_website
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'read_website' has a clear, distinct purpose focused on web content extraction.
The single tool name 'read_website' follows a clear verb_noun pattern. Since there is only one tool, consistency is inherently perfect with no deviations to assess.
A single tool is generally too few for most server purposes, as it limits functionality and can feel thin. While the tool is well-described, the server's scope might benefit from additional related operations (e.g., for processing or analyzing the extracted content).
The tool covers the core function of reading websites effectively, but there are notable gaps for a broader web content domain. For example, there are no tools for updating, filtering, or managing multiple website reads, which could limit agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Clean Markdown and AI-readability scoring for any URL. Built for AI agents.
Cloud scraping & crawling API for AI agents. Turn any URL into clean, LLM-ready markdown.
Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.
Related MCP Servers
- AlicenseAqualityDmaintenance一个快速、高效的网页内容提取工具,将网页转换为干净的Markdown格式,适用于AI代理、IDE和LLM管道。12Apache 2.0

stripfeed-mcp-serverofficial
AlicenseAqualityBmaintenanceConverts any URL to clean, token-efficient Markdown for AI agents. Strips ads, navigation, and scripts. Supports CSS selectors, batch processing (10 URLs), token counting, and smart caching.33MIT- AlicenseAqualityAmaintenanceWeb content extraction for AI agents. 10 tools: scrape, crawl, map, batch, extract, summarize, diff, brand, search, research. Uses TLS fingerprinting to bypass anti-bot without a headless browser. Outputs LLM-optimized markdown with 67% fewer tokens than raw HTML.102,325AGPL 3.0
- AlicenseAqualityBmaintenanceEnables AI agents to read web pages reliably, returning clean markdown content, hyperlinks, and metadata without navigation or ad noise.37MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/just-every/mcp-read-website-fast'
If you have feedback or need assistance with the MCP directory API, please join our Discord server