一个强大的模型上下文协议(MCP)服务器,设计用于抓取网站内容并将其转换为Markdown格式,使AI更容易理解和处理网站信息。
| 🌟 增强处理 | 📊 开放API支持 | ⚙️ 智能分析 | 🎯 高级提取 |
|---|---|---|---|
| AI驱动的内容清理 | OpenAPI 3.x/Swagger 2.0 | 阅读时间计算 | 主要内容检测 |
| 自动广告移除 | 专业验证 | 字数统计 | 语言检测 |
| 内容总结 | 结构化API解析 | 智能重试机制 | 多格式支持 |
| 功能 | 状态 | 描述 |
|---|---|---|
| 🧠 增强内容处理器 | ✅ | AI驱动的内容清理和提取 |
| 📊 智能分析 | ✅ | 字数统计、阅读时间、内容总结 |
| 🌍 语言检测 | ✅ | 自动语言识别 |
| 🎯 智能重试 | ✅ | 指数退避的智能重试机制 |
| 🔍 隐身浏览器 | ✅ | 抗检测浏览能力 |
| ⚡ 速率限制 | ✅ | 内置速率限制和并发控制 |
| 🧹 内容清理 | ✅ | 移除广告、导航和无关内容 |
| 📝 增强Markdown | ✅ | 支持删除线、下划线、高亮 |
💡 最简单的方式:无需本地安装!
创建一个 my-websites.json 文件:
{
"websites": [
{
"name": "your_website",
"url": "https://your-website.com",
"description": "您的项目网站"
},
{
"name": "api_docs",
"url": "https://api.example.com/openapi.json",
"description": "您的API规范"
}
]
}
添加到 .cursor/mcp.json:
{
"mcpServers": {
"website-to-markdown": {
"command": "npx",
"args": ["-y", "website-to-markdown-mcp"],
"disabled": false,
"env": {
"WEBSITES_CONFIG_PATH": "./my-websites.json"
}
}
}
}
请列出所有已配置的网站🎉 完成!无需安装!
</div>💡 最佳实践:开发或定制时使用此方法!
git clone https://github.com/your-username/website-to-markdown-mcp.git
cd website-to-markdown-mcp
npm install
npm run build
添加到 .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"
}
}
}
}
每个抓取的内容现在包括:
# 🚀 示例网站
**来源**:https://example.com
**网站**:example_site - 示例网站
**📊 阅读时间**:5分钟
**🔢 字数统计**:1,250字
**🌍 语言**:英语
**📝 摘要**:本文讨论了最新的网络技术发展...
---
[增强的Markdown内容,更好的格式化...]
| 功能 | OpenAPI 3.x | Swagger 2.0 | 描述 |
|---|---|---|---|
| 🔍 自动检测 | ✅ | ✅ | 支持JSON/YAML格式 |
| ✅ 专业验证 | ✅ | ✅ | 使用@readme/openapi-parser |
| 📋 结构化解析 | ✅ | ✅ | 端点、参数、响应 |
| 🔗 引用解析 | ✅ | ✅ | 自动处理$ref引用 |
| 📊 智能摘要 | ✅ | ✅ | 生成API概述 |
| 📝 格式化输出 | ✅ | ✅ | 可读的Markdown |
{
"websites": [
{
"name": "petstore_openapi",
"url": "https://petstore3.swagger.io/api/v3/openapi.json",
"description": "🐕 Swagger宠物商店OpenAPI 3.0规范(演示)"
},
{
"name": "petstore_swagger",
"url": "https://petstore.swagger.io/v2/swagger.json",
"description": "🐱 Swagger宠物商店Swagger 2.0规范(演示)"
},
{
"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规范"
}
]
}
⚠️ 重要:某些依赖项需要Node.js v20.18.1或更高版本。如果您遇到引擎兼容性警告,请更新您的Node.js版本。
# 全局安装
npm install -g website-to-markdown-mcp
# 或直接使用npx(推荐)
npx website-to-markdown-mcp
# 1. 克隆仓库
git clone https://github.com/your-username/website-to-markdown-mcp.git
cd website-to-markdown-mcp
# 2. 安装依赖
npm install
# 3. 构建项目
npm run build
graph TD
A[🔍 检查环境变量<br/>WEBSITES_CONFIG_PATH] --> B{文件存在?}
B -->|是| C[✅ 加载外部配置文件]
B -->|否| D[🔍 检查环境变量<br/>WEBSITES_CONFIG]
D --> E{有效JSON?}
E -->|是| F[✅ 加载嵌入配置]
E -->|否| G[🔍 检查config.json]
G --> H{文件存在?}
H -->|是| I[✅ 加载本地配置]
H -->|否| J[🔧 使用默认配置]
<details> <summary><b>🔧 详细设置步骤</b></summary>💡 优点:易于编辑,语法高亮,适合版本控制
创建配置文件
# 可以放在任何位置
touch my-api-configs.json
编辑配置内容
{
"websites": [
{
"name": "my_docs",
"url": "https://docs.example.com",
"description": "📚 我的文档网站"
}
]
}
设置环境变量
{
"env": {
"WEBSITES_CONFIG_PATH": "./my-api-configs.json"
}
}
{
"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\":\"示例网站\"}]}"
}
}
}
}
</details>
直接编辑项目根目录下的 config.json:
{
"websites": [
{
"name": "local_site",
"url": "https://local.example.com",
"description": "🏠 本地测试网站"
}
]
}
</details>
| 工具名称 | 功能 | 参数 | 示例 |
|---|---|---|---|
fetch_website | 抓取任意网站 | url: 网站URL | 抓取OpenAPI规范文件 |
list_configured_websites | 列出已配置的网站 | 无 | 查看所有可用网站 |
每个已配置的网站都会自动生成相应的专用工具:
fetch_petstore_openapi - 抓取Petstore OpenAPI 3.0规范fetch_petstore_swagger - 抓取Petstore Swagger 2.0规范fetch_github_api - 抓取GitHub API规范fetch_tailwind_css - 抓取Tailwind CSS文档# 网站标题
**来源**:https://example.com
**网站**:example_site - 示例网站
**📊 阅读时间**:3分钟
**🔢 字数统计**:650字
**🌍 语言**:英语
**📝 摘要**:本文提供了现代Web开发实践的全面概述,涵盖了前端框架、后端技术和部署策略。
---
[增强的清理Markdown内容,移除了广告并提取了主要内容...]
# 🚀 示例API(v2.1.0)
**来源**:https://api.example.com/openapi.json
**OpenAPI版本**:3.0.3
**验证状态**:✅ 有效
**📊 处理时间**:1.2秒
**🔢 端点**:25个端点
**🌍 服务器位置**:3台服务器
---
## 📋 API基本信息
- **API名称**:示例API
- **版本**:2.1.0
- **OpenAPI版本**:3.0.3
- **描述**:适用于现代应用的强大示例API
## 🌐 服务器
1. **https://api.example.com**
- 🏢 生产服务器
2. **https://staging-api.example.com**
- 🧪 测试服务器
## 🛠️ API端点
总共有**25**个端点:
### 👥 `/users`
- **GET**:获取用户列表
- **POST**:创建新用户
### 🔍 `/users/{id}`
- **GET**:获取特定用户
- **PUT**:更新用户信息
- **DELETE**:删除用户
## 🧩 组件
- **数据模型**:12个数据模型
- **可复用参数**:8个可复用参数
- **可复用响应**:15个可复用响应
- **安全方案**:3种安全机制
请从https://docs.example.com抓取内容并转换为Markdown
请使用fetch_petstore_openapi工具抓取Petstore OpenAPI规范
请抓取React官方文档内容
📋 完整的故障排除指南:参见TROUBLESHOOTING.md以获得常见问题的详细解决方案。
错误:npm WARN EBADENGINE 不支持的引擎
node --version错误:无法找到模块'./db.json'
npm cache clean --forceQ: 配置更改无效?
Q: JSON格式错误?
启动时详细日志输出到stderr:
# 查看调试消息
npm run dev 2> debug.log
| 包 | 版本 | 目的 |
|---|---|---|
@modelcontextprotocol/sdk | ^1.0.0 | MCP核心框架 |
@readme/openapi-parser | ^4.1.0 | 专业OpenAPI解析 |
axios | ^1.6.0 | HTTP请求处理 |
cheerio | ^1.0.0 | HTML解析引擎 |
turndown | ^7.1.2 | HTML转Markdown |
yaml | ^2.8.0 | YAML格式支持 |
zod | ^3.22.0 | 数据验证框架 |
playwright | ^1.40.0 | 浏览器自动化 |
🚀 主要功能更新
</div>🚀 主要功能更新
</div>