Website to Markdown MCP Server
Fetches GitHub REST API OpenAPI specifications and converts them to Markdown format for documentation and analysis.
Fetches and parses OpenAPI 3.x and Swagger 2.0 specification files, converting them to structured Markdown documentation with professional validation, reference resolution, and endpoint summaries.
Fetches and converts Tailwind CSS documentation to Markdown format with enhanced content processing and analytics.
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., "@Website to Markdown MCP Serverfetch the OpenAI API documentation and convert it to markdown"
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.
π Website to Markdown MCP Server
Language: English | ηΉι«δΈζ
A powerful Model Context Protocol (MCP) server designed for fetching website content and converting it to Markdown format, making it easier for AI to understand and process website information.
β¨ Key Features
π Enhanced Processing | π OpenAPI Support | βοΈ Smart Analysis | π― Advanced Extraction |
AI-powered content cleanup | OpenAPI 3.x/Swagger 2.0 | Reading time calculation | Main content detection |
Auto ad removal | Professional validation | Word count statistics | Language detection |
Content summarization | Structured API parsing | Smart retry mechanism | Multi-format support |
Related MCP server: MCP HTTP Fetcher Server
π What's New in v1.2.0
π Major Enhancements
Feature | Status | Description |
π§ Enhanced Content Processor | β | AI-powered content cleaning and extraction |
π Smart Analytics | β | Word count, reading time, content summary |
π Language Detection | β | Automatic language identification |
π― Intelligent Retry | β | Smart retry mechanism with exponential backoff |
π Stealth Browser | β | Anti-detection browsing capabilities |
β‘ Rate Limiting | β | Built-in rate limiting and concurrency control |
π§Ή Content Cleanup | β | Remove ads, navigation, and irrelevant content |
π Enhanced Markdown | β | Support for strikethrough, underline, highlights |
π Quick Start
π― Method 1: NPX Installation (π Recommended)
π‘ Easiest way: No local installation needed!
Step 1: Create Configuration File π
Create a my-websites.json file:
{
"websites": [
{
"name": "your_website",
"url": "https://your-website.com",
"description": "Your Project Website"
},
{
"name": "api_docs",
"url": "https://api.example.com/openapi.json",
"description": "Your API Specification"
}
]
}Step 2: Configure MCP Server βοΈ
Add to .cursor/mcp.json:
{
"mcpServers": {
"website-to-markdown": {
"command": "npx",
"args": ["-y", "website-to-markdown-mcp"],
"disabled": false,
"env": {
"WEBSITES_CONFIG_PATH": "./my-websites.json"
}
}
}
}Step 3: Restart and Test π
Restart Cursor
Open Chat and use Agent mode
Test command:
Please list all configured websites
π Done! No installation required!
π― Method 2: Local Installation
π‘ Best Practice: Use this method for development or customization!
Step 1: Clone and Build
git clone https://github.com/your-username/website-to-markdown-mcp.git
cd website-to-markdown-mcp
npm install
npm run buildStep 2: Configure MCP Server
Add to .cursor/mcp.json:
{
"mcpServers": {
"website-to-markdown": {
"command": "cmd",
"args": ["/c", "node", "./website-to-markdown-mcp/dist/index.js"],
"disabled": false,
"env": {
"WEBSITES_CONFIG_PATH": "./my-websites.json"
}
}
}
}π₯ Enhanced Output Features
π Rich Content Analysis
Every fetched content now includes:
π Content Summary: AI-generated summary of the main content
β±οΈ Reading Time: Estimated reading time based on content length
π’ Word Count: Accurate word count for both English and Chinese
π Language Detection: Automatic language identification
π― Content Quality Score: Assessment of content relevance
π Enhanced Markdown Output
# π Example Website
**Source**: https://example.com
**Website**: example_site - Example Website
**π Reading Time**: 5 minutes
**π’ Word Count**: 1,250 words
**π Language**: English
**π Summary**: This article discusses the latest developments in web technology...
---
[Enhanced Markdown content with better formatting...]π Complete OpenAPI/Swagger Support
π₯ Professional API Documentation
Feature | OpenAPI 3.x | Swagger 2.0 | Description |
π Auto Detection | β | β | Support JSON/YAML formats |
β Professional Validation | β | β | Using |
π Structured Parsing | β | β | Endpoints, parameters, responses |
π Reference Resolution | β | β | Auto handle |
π Smart Summary | β | β | Generate API overview |
π Formatted Output | β | β | Readable Markdown |
π Pre-configured Example Websites
{
"websites": [
{
"name": "petstore_openapi",
"url": "https://petstore3.swagger.io/api/v3/openapi.json",
"description": "π Swagger Petstore OpenAPI 3.0 Spec (Demo)"
},
{
"name": "petstore_swagger",
"url": "https://petstore.swagger.io/v2/swagger.json",
"description": "π± Swagger Petstore Swagger 2.0 Spec (Demo)"
},
{
"name": "github_api",
"url": "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json",
"description": "π GitHub REST API OpenAPI Spec"
}
]
}π¦ Installation & Setup
π οΈ System Requirements
Node.js 20.18.1+ (Recommended: v22.15.0 LTS)
npm 10.0.0+ or yarn
Cursor Editor
β οΈ Important: Some dependencies require Node.js v20.18.1 or higher. Please update your Node.js version if you encounter engine compatibility warnings.
β‘ NPM Package Installation
# Global installation
npm install -g website-to-markdown-mcp
# Or use directly with npx (recommended)
npx website-to-markdown-mcpπ§ Development Setup
# 1. Clone repository
git clone https://github.com/your-username/website-to-markdown-mcp.git
cd website-to-markdown-mcp
# 2. Install dependencies
npm install
# 3. Build project
npm run buildποΈ Advanced Configuration Options
Configuration Priority Order
graph TD
A[π Check Environment Variable<br/>WEBSITES_CONFIG_PATH] --> B{File exists?}
B -->|Yes| C[β
Load External Config File]
B -->|No| D[π Check Environment Variable<br/>WEBSITES_CONFIG]
D --> E{Valid JSON?}
E -->|Yes| F[β
Load Embedded Config]
E -->|No| G[π Check config.json]
G --> H{File exists?}
H -->|Yes| I[β
Load Local Config]
H -->|No| J[π§ Use Default Config]π¨ Configuration Method Details
π Method 1: External Configuration File (π Recommended)
π‘ Advantages: Easy to edit, syntax highlighting, version control friendly
Create Configuration File
# Can be placed anywhere touch my-api-configs.jsonEdit Configuration Content
{ "websites": [ { "name": "my_docs", "url": "https://docs.example.com", "description": "π My Documentation Website" } ] }Set Environment Variable
{ "env": { "WEBSITES_CONFIG_PATH": "./my-api-configs.json" } }
π Method 2: Embedded JSON (Backward Compatible)
{
"mcpServers": {
"website-to-markdown": {
"command": "cmd",
"args": ["/c", "node", "./website-to-markdown-mcp/dist/index.js"],
"disabled": false,
"env": {
"WEBSITES_CONFIG": "{\"websites\":[{\"name\":\"example\",\"url\":\"https://example.com\",\"description\":\"Example Website\"}]}"
}
}
}
}π Method 3: Local config.json
Directly edit config.json in the project root directory:
{
"websites": [
{
"name": "local_site",
"url": "https://local.example.com",
"description": "π Local Test Website"
}
]
}π§ Available Tools
π General Tools
Tool Name | Function | Parameters | Example |
| Fetch any website |
| Fetch OpenAPI spec files |
| List configured websites | None | View all available websites |
π― Dedicated Tools
Each configured website automatically generates corresponding dedicated tools:
fetch_petstore_openapi- Fetch Petstore OpenAPI 3.0 specfetch_petstore_swagger- Fetch Petstore Swagger 2.0 specfetch_github_api- Fetch GitHub API specfetch_tailwind_css- Fetch Tailwind CSS documentation
π Enhanced Output Format Examples
π General Website Content with Analytics
# Website Title
**Source**: https://example.com
**Website**: example_site - Example Website
**π Reading Time**: 3 minutes
**π’ Word Count**: 650 words
**π Language**: English
**π Summary**: This article provides a comprehensive overview of modern web development practices, covering frontend frameworks, backend technologies, and deployment strategies.
---
[Enhanced cleaned Markdown content with ads removed and main content extracted...]π OpenAPI 3.x Specification File
# π Example API (v2.1.0)
**Source**: https://api.example.com/openapi.json
**OpenAPI Version**: 3.0.3
**Validation Status**: β
Valid
**π Processing Time**: 1.2 seconds
**π’ Endpoints**: 25 endpoints
**π Server Locations**: 3 servers
---
## π API Basic Information
- **API Name**: Example API
- **Version**: 2.1.0
- **OpenAPI Version**: 3.0.3
- **Description**: A powerful example API for modern applications
## π Servers
1. **https://api.example.com**
- π’ Production server
2. **https://staging-api.example.com**
- π§ͺ Testing server
## π οΈ API Endpoints
Total of **25** endpoints:
### π₯ `/users`
- **GET**: Get user list
- **POST**: Create new user
### π `/users/{id}`
- **GET**: Get specific user
- **PUT**: Update user information
- **DELETE**: Delete user
## π§© Components
- **Schemas**: 12 data models
- **Parameters**: 8 reusable parameters
- **Responses**: 15 reusable responses
- **Security Schemes**: 3 security mechanismsπ― Usage Examples
π» Basic Usage
Please fetch the content from https://docs.example.com and convert to markdownπ OpenAPI Specification Fetching
Please use the fetch_petstore_openapi tool to fetch Petstore OpenAPI specificationπ Documentation Website Fetching
Please fetch React official documentation contentπ¨ Troubleshooting
π Complete Troubleshooting Guide: See TROUBLESHOOTING.md for detailed solutions to common issues.
β Quick Solutions
Error: npm WARN EBADENGINE Unsupported engine
Solution: Update Node.js to v20.18.1 or higher
Download: Node.js Official Website
Verify:
node --version
Error: Cannot find module './db.json'
Solution 1: Clear npm cache:
npm cache clean --forceSolution 2: Update Node.js version
Solution 3: Use local installation instead of npx
Q: Configuration changes not taking effect?
β Confirm JSON format is correct
β Restart Cursor
β Check environment variable names
Q: JSON format errors?
π οΈ Use JSON Validator
π οΈ Confirm using double quotes
π οΈ Check for extra commas
π Debug Mode
Detailed logs are output to stderr at startup:
# View debug messages
npm run dev 2> debug.logπ Performance & Optimization
β‘ Performance Features
π Smart Retry: Intelligent retry with exponential backoff
πΎ Rate Limiting: Built-in rate limiting to prevent overload
π― Content Filtering: Remove irrelevant content for faster processing
π§Ή Ad Removal: Automatic ad and popup removal
π Stealth Mode: Anti-detection browsing capabilities
π‘οΈ Security Considerations
π HTTPS websites only (recommended)
π οΈ Auto filter malicious scripts
π Limit output content length
π Stealth browsing to avoid detection
π¦ Dependencies
Package | Version | Purpose |
| ^1.0.0 | MCP Core Framework |
| ^4.1.0 | Professional OpenAPI Parsing |
| ^1.6.0 | HTTP Request Handling |
| ^1.0.0 | HTML Parsing Engine |
| ^7.1.2 | HTML to Markdown |
| ^2.8.0 | YAML Format Support |
| ^3.22.0 | Data Validation Framework |
| ^1.40.0 | Browser automation |
π Changelog
π v1.2.0 (Latest)
π Major Feature Updates
β¨ Added Enhanced content processing with AI-powered cleanup
β¨ Added Smart analytics: word count, reading time, content summary
β¨ Added Language detection and multi-language support
β¨ Added Stealth browser capabilities for anti-detection
β¨ Added Built-in rate limiting and retry mechanisms
β¨ Added Advanced content filtering and ad removal
π§ Enhanced Markdown processing with more HTML element support
π Improved Output format with rich metadata
π― Fixed Various technical issues and dependencies
π― v1.1.0 (Previous)
π Major Feature Updates
β¨ Added Full OpenAPI 3.x/Swagger 2.0 support
β¨ Added JSON/YAML format auto-detection
β¨ Added Professional-grade spec validation and reference resolution
β¨ Added Version auto-adaptation mechanism
β¨ Added Structured API documentation summary
π§ Pre-configured Multiple OpenAPI/Swagger examples
π¦ Added NPM package distribution with npx support
π― Enhanced Installation methods for better user experience
π― v1.0.0 (Stable)
π Initial Release
π Basic Functions Website content fetching
π Core Functions Markdown conversion
βοΈ Configuration Support Multi-website management
π€ Contributing
π‘ How to Contribute
π΄ Fork this project
π Create feature branch (
git checkout -b feature/AmazingFeature)π Commit changes (
git commit -m 'Add some AmazingFeature')π€ Push to branch (
git push origin feature/AmazingFeature)π Open Pull Request
π Issue Reporting
Report issues on the Issues page, please include:
π Issue Description
π Reproduction Steps
π» Environment Information
πΈ Screenshots or Logs
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π If this project helps you, please give it a Star!
π¬ Have questions or suggestions? Feel free to open an Issue!
Made by Sun β€οΈ for the Developer Community
Available Tools
4 toolsfetch_example_siteB
Fetch example-site (https://example.com) and convert to markdown format
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool fetches and converts to markdown, but doesn't describe error handling, rate limits, authentication needs, or what happens if the site is unreachable. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 a single, efficient sentence that directly states the tool's function without any unnecessary words. It's front-loaded with the core action and resource, making it easy to understand at a glance.
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 simplicity (0 parameters, no output schema), the description is minimally complete. It covers what the tool does but lacks details on behavioral aspects like error handling or output format specifics. With no annotations and no output schema, it should ideally provide more context about the markdown conversion process or potential limitations.
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 tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics beyond what the schema provides, making it adequate for this case. However, it doesn't explicitly state that no parameters are required, which could be slightly confusing.
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: fetching a specific website (example.com) and converting it to markdown format. It uses specific verbs ('fetch', 'convert') and identifies the resource (the website). However, it doesn't explicitly differentiate from sibling tools like 'fetch_test_site' or 'fetch_website', which appear to perform similar functions.
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 no guidance on when to use this tool versus alternatives. It doesn't mention why one would choose this over sibling tools like 'fetch_test_site' or 'fetch_website', nor does it specify any prerequisites, exclusions, or contextual triggers for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_test_siteB
Fetch test-site (https://test.com) and convert to markdown format
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('fetch' and 'convert to markdown'), but does not disclose any behavioral traits such as network dependencies, error handling, rate limits, authentication needs, or what happens if the site is unavailable. This leaves significant gaps for a tool that likely involves external operations.
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 a single, efficient sentence that directly states the tool's action and output format. It is front-loaded with the key information (fetching and conversion) and contains no unnecessary words or redundancy, making it highly concise and well-structured.
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 complexity of fetching and converting a website (which involves network operations and data transformation), the description is incomplete. There are no annotations, no output schema, and the description lacks details on behavioral aspects like error handling or output format specifics. This makes it insufficient for an agent to fully understand the tool's operation and potential issues.
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 tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description does not need to add parameter semantics beyond the schema. A baseline score of 4 is appropriate as the description does not mislead about parameters, and the absence of parameters is handled adequately.
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 a specific verb ('fetch') and resource ('test-site'), including the URL 'https://test.com' and the transformation action ('convert to markdown format'). It distinguishes from siblings like 'fetch_example_site' by specifying the exact site, but does not explicitly differentiate from 'fetch_website' or 'list_configured_websites' in terms of functionality.
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 no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, such as when to choose 'fetch_website' for general fetching or 'list_configured_websites' for listing. Usage is implied only by the tool name and description, with no explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_websiteC
Fetch specified website and convert to markdown format
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Website URL to fetch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions fetching and converting to markdown but lacks details on error handling (e.g., invalid URLs, network failures), rate limits, authentication needs, or what the output looks like beyond 'markdown format'. This leaves significant gaps for a tool that interacts with external resources.
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 a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action and outcome, making it easy to parse quickly.
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 complexity of fetching external websites (which involves network calls and potential errors) and the lack of annotations and output schema, the description is insufficient. It doesn't address behavioral aspects like error conditions, output structure, or limitations, leaving the agent with incomplete information for reliable use.
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 input schema has 100% description coverage, with the 'url' parameter clearly documented. The description adds no additional semantic details beyond implying the URL is for a website, which is already covered by the schema. This meets the baseline for high schema coverage, but doesn't enhance parameter understanding.
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 action ('fetch') and resource ('specified website') with the specific transformation ('convert to markdown format'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'fetch_example_site' or 'fetch_test_site', which likely perform similar functions on different targets.
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 no guidance on when to use this tool versus alternatives such as 'fetch_example_site' or 'fetch_test_site', nor does it mention prerequisites like internet connectivity or permissions. It only states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_configured_websitesB
List all configured websites
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('List') but doesn't add context such as pagination, rate limits, authentication needs, or what 'configured' entails. This is a significant gap for a tool with zero annotation coverage.
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 a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for a simple tool, making it easy for an agent to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'configured' means, the return format, or behavioral traits like safety or performance. For a tool with no structured data support, this leaves critical gaps.
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 tool has 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description doesn't add parameter details, but that's appropriate here, warranting a baseline score above 3 due to the lack of parameters.
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 verb ('List') and resource ('all configured websites'), providing a specific purpose. However, it doesn't differentiate from sibling tools like 'fetch_website' or 'fetch_example_site', which might have overlapping functionality, so it doesn't reach the highest score.
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 no guidance on when to use this tool versus alternatives like the sibling tools. It lacks explicit context, exclusions, or recommendations, leaving the agent to infer usage based on tool names alone.
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.
4 tool updates
- First observed
fetch_example_site - First observed
fetch_test_site - First observed
fetch_website - First observed
list_configured_websites
TDQS
There is significant overlap and ambiguity among the fetch tools. fetch_example_site and fetch_test_site are essentially special cases of fetch_website, making it unclear when to use which. An agent might struggle to choose between them, as the descriptions don't clarify distinct use cases beyond different hardcoded URLs.
Tool names follow a consistent verb_noun pattern throughout (fetch_example_site, fetch_test_site, fetch_website, list_configured_websites). All use snake_case and start with descriptive verbs, making the naming predictable and easy to understand.
With 4 tools, the count is borderline for the server's purpose of converting websites to markdown. It feels slightly thin, as there could be more operations like updating configurations or handling errors, but it covers basic fetching and listing. It's not extreme, but could be more robust.
There are significant gaps in the tool surface. The server lacks tools for configuring or managing websites beyond listing them (e.g., add_website, remove_website, update_configuration). This incompleteness will likely cause agent failures when trying to perform full lifecycle operations, as the current set is limited to fetching and listing only.
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.
Fetch any URL and get clean Markdown. Web scraping for AI agents.
Converts any URL to clean, LLM-ready Markdown using real Chrome browsers
Clean Markdown and AI-readability scoring for any URL. Built for AI agents.
11
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceScrapes webpages and converts them to markdown using AI-powered interaction to automatically handle cookie banners, CAPTCHAs, paywalls, and other blocking elements before extracting clean content.2448Apache 2.0
- AlicenseNot gradedqualityFmaintenanceFetches web pages from HTTP/HTTPS URLs and converts them to Markdown format. Supports both SSE and Stdio protocols for web deployments, Kubernetes environments, and desktop clients.Apache 2.0
- AlicenseAqualityDmaintenanceConverts URLs and raw HTML to clean Markdown, enabling AI assistants to read web pages for summarization, analysis, or ingestion.2191MIT
- AlicenseNot gradedqualityDmaintenanceConverts any webpage into clean, LLM-ready Markdown, removing noise and supporting JavaScript rendering.MIT
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/SunZhi-Will/website-to-markdown-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server