Tor获取洋葱MCP服务器
用于通过Tor网络获取web内容的MCP(模型上下文协议)服务器的全面集合。包括用于不同用例的JavaScript启用和静态内容获取器。
存储库结构
tor-fetch-onions-mcp-server/
├── JS/ # JavaScript-enabled servers (Playwright)
│ ├── playwright_ahmia_mcp_server.py # Ahmia search & scrape with JS
│ ├── playwright_html_to_md_mcp_server.py # Dynamic HTML to Markdown
│ └── playwright_README.md # Playwright-specific documentation
├── non-JS/ # Static content servers (HTTP requests)
│ ├── tor_mcp_server.py # Basic Tor page fetcher
│ ├── html_to_md_converter_mcp_server.py # Static HTML to Markdown
│ └── ahmia_content_scraper_mcp_server.py # Ahmia content scraper
├── README.md # This documentation
├── requirements.txt # Python dependencies
└── .gitignore # Git exclusions服务器
启用JavaScript的服务器(JS/ 文件夹)
1. playwright_ahmia_mcp_server.py --Ahmia发现与刮擦
高级MCP服务器,用于通过Ahmia搜索引擎发现和抓取洋葱链接,并完全支持JavaScript。
工具:
discover_ahmia_links_js--使用JavaScript渲染搜索Ahmiascrape_ahmia_top5--发现并同时抓取前5个结果health_check--验证Tor和Playwright的连接
特征:
- 动态内容的完整JavaScript执行
- 使用工作线程进行平行刮擦
- 具有隐形功能的Tor代理集成
- 使用标题和片段进行内容提取
2. playwright_html_to_md_mcp_server.py --动态HTML到Markdown
使用Playwright将动态HTML内容转换为Markdown进行JavaScript渲染。
工具:
fetch_and_convert_js--用JS获取URL并转换为Markdownhealth_check--验证系统状态
特征:
- 处理JavaScript密集型网站和SPA
- 支持延迟加载内容
- 内容清理和转换
- Tor代理集成
静态内容服务器(non-JS/ 文件夹)
1. tor_mcp_server.py --Tor页面抓取器
用于从任何URL获取原始HTML的基本服务器(包括 .onion 站点)通过Tor SOCKS5代理。
工具:
fetch_page--通过Tor获取网页。返回原始HTML内容(最多10000个字符)。health_check--通过以下方式验证Tor连接check.torproject.org.
2. html_to_md_converter_mcp_server.py --静态HTML到Markdown
通过Tor获取静态HTML,并使用 markdownify 和 BeautifulSoup.
工具:
convert_html_to_md--将提供的HTML字符串转换为Markdown。fetch_and_convert--通过Tor获取一个URL,并将内容作为Markdown返回。health_check--验证Tor连接和转换器功能。
3. ahmia_content_scraper_mcp_server.py --Ahmia内容物刮刀
专门的抓取器,无需JavaScript即可从Ahmia搜索结果中提取内容。
工具:
scrape_ahmia_content--从Ahmia搜索结果中提取内容health_check--验证系统连接
先决条件
- Python 3.10+
- Tor 使用SOCKS5代理在本地运行
127.0.0.1:9050(默认Tor Expert Bundle配置)
安装
pip install -r requirements.txtMCP客户端配置
将任何或所有服务器添加到MCP客户端配置中(例如,Claude Desktop、Cursor等):
{
"mcpServers": {
"tor-mcp-server": {
"command": "python",
"args": ["c:/servers/non-JS/tor_mcp_server.py"],
"env": {}
},
"html-to-md-converter": {
"command": "python",
"args": ["c:/servers/non-JS/html_to_md_converter_mcp_server.py"],
"env": {}
},
"ahmia-content-scraper": {
"command": "python",
"args": ["c:/servers/non-JS/ahmia_content_scraper_mcp_server.py"],
"env": {}
},
"playwright-ahmia": {
"command": "python",
"args": ["c:/servers/JS/playwright_ahmia_mcp_server.py"],
"env": {}
},
"playwright-html-converter": {
"command": "python",
"args": ["c:/servers/JS/playwright_html_to_md_mcp_server.py"],
"env": {}
}
}
}服务器选择指南:
- 使用 JS/ 用于动态内容、JavaScript密集型网站或Ahmia搜索的服务器
- 使用 非JS/ 用于静态内容、基本HTML获取或需要最大隐身时的服务器
- 静态服务器 速度更快,可检测性更低
- JavaScript服务器 可以处理现代网络应用程序和交互式内容
独立运行
静态内容服务器(非JS/)
# Basic Tor page fetcher
python non-JS/tor_mcp_server.py
# HTML to Markdown converter
python non-JS/html_to_md_converter_mcp_server.py
# Ahmia content scraper
python non-JS/ahmia_content_scraper_mcp_server.py支持JavaScript的服务器(JS/)
# Ahmia discovery with JavaScript
python JS/playwright_ahmia_mcp_server.py
# Dynamic HTML to Markdown converter
python JS/playwright_html_to_md_mcp_server.py默认情况下,所有服务器都使用stdio传输。
许可证
麻省理工学院
