Token导航 LogoToken导航TokenDH.com
Fetchaller MCP logo
搜索检索未说明官方级别未说明来源级核验

Fetchaller MCP

MCP Server

一款无需权限提示即可抓取任何网站的工具,内置网页搜索、Reddit支持及自动绕过机器人挑战的功能。

工具数

9

提示词数

0

GitHub Stars

4

资源数

0
PythonClaude搜索Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Averyy

提供方

Averyy

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

费查勒mcp

在未经许可提示的情况下,在Claude Code中获取任何网站。内置网络搜索、Reddit支持和自动机器人挑战绕过。

为什么是费查勒?

Claude Code的内置 WebFetch 请求每个新域名的许可,并完全屏蔽Reddit。fetchaller修复了这两个问题:

  • fetch:读取任何URL-自动绕过Cloudflare、Akamai和其他机器人挑战
  • search:通过Google+DuckDuckGo进行网络搜索
  • browse_reddit:浏览subreddit列表(热门/新/热门/上升)
  • search_reddit:在全球或子版块内搜索Reddit帖子
  • search_marketplace:使用人类可读的参数(城市名称、类别、价格范围)同时搜索Kijiji、Craigslist和Facebook Marketplace
  • get_aliexpress_product:速卖通产品详细信息(价格、规格、评级、评论)
  • search_aliexpress:使用价格过滤器和排序搜索速卖通产品
  • get_alibaba_product:Alibaba.com B2B产品详细信息(分层定价、最小起订量、交付周期、供应商信息)
  • search_alibaba:搜索阿里巴巴B2B产品

快速开始

本地安装(stdio模式)

# Clone and install
git clone https://github.com/Averyy/fetchaller-mcp.git
cd fetchaller-mcp
uv sync && patchright install chromium

# Add to Claude Code
claude mcp add fetchaller -- $(pwd)/.venv/bin/python -m fetchaller.main

向添加权限 ~/.claude/settings.json:

{
  "permissions": {
    "allow": [
      "mcp__fetchaller__fetch",
      "mcp__fetchaller__search",
      "mcp__fetchaller__browse_reddit",
      "mcp__fetchaller__search_reddit",
      "mcp__fetchaller__search_marketplace",
      "mcp__fetchaller__get_aliexpress_product",
      "mcp__fetchaller__search_aliexpress",
      "mcp__fetchaller__get_alibaba_product",
      "mcp__fetchaller__search_alibaba"
    ]
  }
}

重新启动克劳德代码。

建议添加CLAUDE.md

将此添加到您的项目 CLAUDE.md (或全球 ~/.claude/CLAUDE.md)指示克劳德更喜欢fetchaller:

## Web Fetching & Search

**ALWAYS use fetchaller tools instead of WebFetch and WebSearch.** fetchaller has no domain restrictions and produces cleaner output.

- `mcp__fetchaller__fetch(url, maxTokens?, timeout?)` — Fetch any URL → clean markdown
- `mcp__fetchaller__search(query, page?)` — Web search (Google + DuckDuckGo)
- `mcp__fetchaller__browse_reddit(subreddit, sort?, time?, limit?)` — Browse subreddit listings
- `mcp__fetchaller__search_reddit(query, subreddit?, sort?, time?, limit?)` — Search Reddit posts
- `mcp__fetchaller__search_marketplace(query, location, platforms?, category?, sort?, condition?, min_price?, max_price?)` — Search Kijiji + Craigslist + Facebook Marketplace
- `mcp__fetchaller__get_aliexpress_product(product_id)` — AliExpress product details
- `mcp__fetchaller__search_aliexpress(query, page?, sort?, min_price?, max_price?)` — Search AliExpress
- `mcp__fetchaller__get_alibaba_product(product_id)` — Alibaba.com product details
- `mcp__fetchaller__search_alibaba(query, page?, sort?, min_price?, max_price?)` — Search Alibaba.com

用法

mcp__fetchaller__fetch 工具现在可用:

# Fetch a URL
fetch https://example.com

# Fetch with token limit
fetch https://example.com maxTokens=10000

# Fetch slow site with longer timeout
fetch https://slow-site.com maxTokens=25000 timeout=60

网络搜索

# Search the web
search "python asyncio tutorial"

# Page 2 of results
search "python asyncio tutorial" page=2

网络研究模式

  1. 使用 search 查找URL
  2. 使用 fetch 阅读它们

工具参考

fetch(url, maxTokens?, timeout?, raw?)

参数类型默认值说明
urlstring必填要获取的url(http/https)
maxTokens数量25000要返回的最大令牌数
timeoutnumber10请求超时(秒)
rawbooleanfalse返回原始HTML而不是markdown

退货

用以下方法清洁标记:

  • 页面标题为H1
  • 删除脚本、样式、导航、页脚、iframe
  • HTML转换为markdown
  • 已注意到重定向
  • 内容在令牌限制处截断

边缘案例

场景行为
无效的URL错误消息
非-200响应错误+部分正文
JSON内容按原样返回
XML/RSS提要按原样返回
CSV文件按原样返回
纯文本按原样返回
PDF文件已提取文本
超时超时后出错(默认10秒)
巨大的页面截断在maxTokens

search(query, page?)

参数类型默认值说明
querystring必填搜索查询
页码1结果页(1个索引)

同时搜索谷歌(主要)和DuckDuckGo(补充)。返回标题、URL和代码段。页面2+查询仅限谷歌。

Reddit工具

Reddit研究的两个工具:

browse_reddit -浏览子目录列表

browse_reddit({
  subreddit: "LocalLLaMA",   // without r/ prefix
  sort: "hot",               // hot, new, top, rising
  time: "day",               // hour, day, week, month, year, all (for "top" only)
  limit: 10                  // 1-25
})

返回帖子标题、分数、评论数和网址。使用 fetch 阅读完整的帖子。

search_reddit -搜索文章

search_reddit({
  query: "best mass spectrometry software",
  subreddit: "labrats",      // optional - limit to subreddit
  sort: "relevance",         // relevance, hot, top, new, comments
  time: "year",              // hour, day, week, month, year, all
  limit: 10                  // 1-25
})

返回具有元数据的匹配帖子。使用 fetch 阅读完整的讨论。

URL转换

所有Reddit网址都会自动转换为 old.reddit.com 可节省65-70%的代币。添加尾随斜线以避免301重定向(节省约50-100ms的延迟):

输入URL已转换为
www.reddit.com/r/fooold.reddit.com/r/foo/
reddit.com/r/fooold.reddit.com/r/foo/
old.reddit.com/r/fooold.reddit.com/r/foo/

速率限制

Reddit每分钟允许约10个未经验证的API请求。 browse_redditsearch_reddit 每个使用1个API调用。 fetch 使用HTML(没有API调用)。

速卖通和阿里巴巴工具

get_aliexpress_product(product_id) -产品详情

接受数字产品ID(例如。, 1005006027485365)或完整URL。通过速卖通的MTop API返回价格、规格、评级和最新评论。

search_aliexpress(query, page?, sort?, min_price?, max_price?) -搜索产品

参数类型默认值说明
querystring必填搜索查询
页码1页码(1-索引)
sortstring“default”默认值,订单,price_asc,price_desc
min_pricenumber--最低价格过滤器
max_pricenumber--最高价格过滤器

get_alibaba_product(product_id) -B2B产品详细信息

接受数字产品ID或完整URL。返回分层定价、最小起订量、交付周期、供应商信息和规格。

search_alibaba(query, page?, sort?, min_price?, max_price?) -搜索B2B产品

参数类型默认值说明
querystring必填搜索查询
页码1页码(1-索引)
sortstring“default”默认值,price_asc,price_desc
min_pricenumber--最低价格过滤器(美元)
max_price数字--最高价格过滤器(美元)

市场搜索

search_marketplace --搜索Kijiji、Craigslist和脸书市场

使用人类可读的参数同时搜索所有三个平台,并返回分组结果。

参数类型默认值说明
querystring必填搜索关键字
locationstring必填城市名称(例如“多伦多”、“安大略省圣凯瑟琳”、“西雅图”)
platformsstring\[\]all要搜索的平台:kijiji、craigslist、facebook
categorystring“all”all,汽车,电子产品,家具,服装,工具,免费,自行车,手机,摩托车,船,房车,汽车配件,运动,玩具,婴儿
sortstring“date”日期,price_asc,price_desc,相关性
conditionstring--新的,喜欢新的,良好的,一般的
min_pricenumber--最低价格(美元)
max_pricenumber--最高价格(美元)

Kijiji仅适用于加拿大,美国地区会自动跳过。位置匹配支持精确名称、常用别名(例如“niagara”→ Hamilton CL区域)和拼写错误的模糊匹配。

运作原理

  1. 验证URL(仅限http/https)
  2. 阻止私有/内部IP(SSRF保护,防止DNS重新绑定)
  3. 通过wafer(Rust/BoringSSL)获取类似浏览器的TLS指纹——自动轮换Chrome版本
  4. 如果检测到机器人挑战:自动解决(请参阅下面的机器人挑战绕过)
  5. 检测内容类型
  6. 对于HTML:删除垃圾元素(导航、页脚、广告、cookie横幅),应用特定于站点的清理(25+个站点,包括GitHub、Reddit、HN、维基百科、Medium、Stack Overflow、亚马逊、eBay、速卖通、阿里巴巴、DigiKey、Mouser,以及Ashby/Greehouse、Lever、Gem/Dayforce、Cornerstone、Workday、BambooHR、JazzHR、Work-at-a-Startup工作板,带有嵌入+白标签检测等),转换为降价
  7. 对于JSON/XML/CSV/text:返回原始数据
  8. 对于PDF:提取文本
  9. 截断到令牌限制

机器人挑战绕过

fetchaller透明地绕过了bot挑战。对受保护网站的第一次请求需要更长的时间(总墙时间=求解+获取,通常为10-40秒),但后续请求使用缓存的Cookie并且速度很快(~0.5秒)。这 timeout 参数只控制HTTP获取——浏览器解析有自己的内部超时。

支持的挑战

挑战方法速度
阿里云WAF(ACW)内联Python求解器~1ms
阿里云WAF(TMD)内联预热+浏览器~5-10秒
Cloudflare管理挑战Patchright浏览器求解器~3-30秒
Akamai Bot ManagerPatchright浏览器求解器~3-15秒
亚马逊速率限制/验证码Patchright浏览器求解器~3-10秒
DataDome、PerimeterX、ImpervaPatchright浏览器求解器~3-10秒
Kasada浏览器CT令牌+Python SHA-256 PoW~3-10秒
GeeTest v4滑动验证码CV缺口检测+拖动回放~5-15s
reCAPTCHA v2复选框→ 音频(耳语)→ ONNX网格~5-30s

所有挑战的解决都由威化处理 BrowserSolver (基于Patchright)。Cookie按域缓存,因此后续请求跳过挑战。

需求

码头工人:Patchright捆绑的Chromium包含在图像中。这 cookie-data 卷在重启过程中持续存在已解决的Cookie。无需额外设置。

本地(stdio):默认情况下包含浏览器支持(Patchright)。跑 patchright install chromium 安装后下载浏览器二进制文件。Docker会自动包含它。

建筑

内容处理

src/fetchaller/content/ 处理HTML→降价转换。每个站点模块导出 is_(url), SELECTORS_LIST,并且可选 strip__junk(soup) / postprocess_(markdown):

  • html.py --通用管道+调度。通用垃圾选择器、markdownify、空白清理。通用JSON-LD产品回退。
  • amazon.py --所有顶级域名(.com、.ca、.co.uk、.de等)。CSS选择器、汤清理、正则表达式后处理器。
  • github.py --CSS选择器、URL转换、文件树提取、从嵌入式JSON中提取问题/PR/讨论。
  • reddit.py --用于old.redit.com、URL转换(www)的CSS选择器→旧),后格式化。
  • hackernews.py --CSS选择器、表格展开、故事块重新格式化器。
  • medium.py --CSS选择器(数据testid),基于HTML的未知自定义域检测。
  • huggingface.py --数据目标属性选择器、过滤器标签/按钮清理。
  • stackoverflow.py --所有Stack Exchange站点。CSS选择器、汤清理、正则表达式后处理器。
  • redflagdeals.py --RFD特定的CSS选择器、汤清理、正则表达式后处理器。
  • forums.py --通用论坛支持(XenForo、vBulletin、phpBB、Discourse)。RSS/Atom提要自动发现。
  • wikipedia.py --用于编辑按钮、导航框、TOC、参考列表的CSS选择器。
  • alibaba.py --嵌入式JSON提取(window.detailData, window.__page__data_sse10),汤清理。
  • aliexpress.py --CSS选择器、汤清理、正则表达式后处理器。
  • craigslist.py --所有城市子域。CSS选择器、正则表达式后处理器。搜索SAPI拦截的URL检测。
  • facebook_marketplace.py --仅检测URL。GraphQL客户端 facebook_marketplace/ 包裹。
  • digikey.py --所有TLD。CSS选择器,汤清理。Akamai后面(晶圆手柄)。没有API键的HTML回退。
  • ebay.py --所有TLD。JSON-LD产品提取、搜索结果DOM提取(.s-item),正则表达式后处理器。
  • molex.py --JSON-LD产品提取(附加属性规范)。CSR站点——仅在结构化数据中提供规范。
  • mouser.py --所有TLD。CSS选择器,汤清理。在Akamai的背后。没有API键的HTML回退。
  • soylent.py --Shopify商店清理,从中提取库存 gsf_conversion_data.
  • ti.py --文档查看器支持延迟加载的数据表。
  • ashby.py / greenhouse.py / lever.py / gem.py / dayforce.py / cornerstone.py / workday.py / bamboohr.py / jazzhr.py / workatastartup.py --工作板平台。所有这些都保留了源自己的字段名、枚举值和节标题。每个帖子和(在支持的情况下)板列表都在通用HTML管道之前发送到平台的API/JSON外壳。五个嵌入/白标签检测器在HTML阶段运行,因此公司职业页面如 synaptivemedical.com/job-openings (白色标签Dayforce), skywatch.com/careers/ (阿什比 `), avidbots.com/company/careers/ (BambooHR

),以及 earthdaily.com/job-openings (JazzHR多租户)升级为结构化ATS输出,而不是返回空的SPA外壳。看 docs/site-apis.md` 关于端点和检测的详细信息。

搜索

src/fetchaller/search/ --谷歌+DuckDuckGo合并。结果合并/去重、5分钟缓存、验证码回退。用途 wafer.AsyncSession(profile=Profile.OPERA_MINI).

特定于站点的API拦截

HTML抓取产生垃圾的CSR站点被拦截 fetch_url() 并路由到结构化API:

  • 克雷格列表 (src/fetchaller/craigslist/)--SAPI v8客户端(sapi.craigslist.org).最多120个项目/请求,总计数。来自页面HTML的区域ID,按主机名缓存。列表页面保留在HTML管道中。
  • 村庄 (src/fetchaller/kijiji/)--未经身份验证的Apollo GraphQL(kijiji.ca/anvil/api).搜索+列出详细信息。价格以美分计。
  • Facebook市场 (src/fetchaller/facebook_marketplace/)--GraphQL(facebook.com/api/graphql/).地理编码搜索,用照片列出细节。
  • 全球速卖通 (src/fetchaller/aliexpress/)-针对产品的MTop API(令牌引导+MD5签名)。用于搜索的SSR HTML。点评来自 feedback.aliexpress.com.
  • 阿里巴巴 (src/fetchaller/alibaba/)--内嵌JSON的SSR HTML。国际网站没有MTop API。
  • 易贝 --SSR搜索结果提取自 .s-item DOM元素,格式为编号列表。
  • 鼠标器 (src/fetchaller/mouser/)-搜索API客户端。需要 MOUSER_API_KEY.
  • DigiKey (src/fetchaller/digikey/)-OAuth2 client_credentials API。需要 DIGIKEY_CLIENT_ID + DIGIKEY_CLIENT_SECRET.
  • 市场搜索 (src/fetchaller/marketplace/)--统一协调器同时搜索Kijiji、Craigslist和Facebook Marketplace。映射到平台特定值的人类可读参数。对于非加拿大地区,自动跳过Kijiji。
  • Dayforce HCM (src/fetchaller/content/dayforce.py)--从SSR发布详细信息 __NEXT_DATA__.通过CSRF保护的POST登录到 /api/geo/{namespace}/jobposting/search (下一个认证 /api/auth/csrf 需要往返)。通过以下方式检测公司域上的白标部署 __NEXT_DATA__.runtimeConfig.BASE_URL 并重写为正典 jobs.dayforcehcm.com 板URL。
  • 基石点播 (src/fetchaller/content/cornerstone.py)--SPA外壳中装有JWT csod.context.发布自 services/x/job-requisition/v2/requisitions/{reqid}/jobDetails;董事会上市公告 rec-job-search/external/jobs 区域云主机(us|eu|uk|au.api.csod.com).
  • 工作日 (src/fetchaller/content/workday.py) — {tenant}.wd{1-103}.myworkdayjobs.com 董事会和帖子。发布GET /wday/cxs/{tenant}/{site}/job{externalPath};板POST /wday/cxs/{tenant}/{site}/jobs 按20个批次分页(最多200个)。
  • BambooHR (src/fetchaller/content/bamboohr.py) — {tenant}.bamboohr.com/careers.Board GET /careers/list;发布GET /careers/{id}/detail。两者都返回未经身份验证的干净JSON。小部件嵌入(`

`)公司网站会自动检测并解析为租户子域。

  • Jazzhr (src/fetchaller/content/jazzhr.py) — {tenant}.applytojob.com/apply.Board SSR HTML(.list-group .list-group-item);发布内容为schema.org JobPosting JSON-LD。通过JS引用一个或多个JazzHR租户的公司网站(例如。 earthdaily.com/job-openings)自动聚合到一个组合板中。

HTTP传输(晶圆)

所有HTTP都由 wafer (~/code/wafer).Fetchaller不包含机器人保护、挑战解决或TLS指纹代码。如果一个站点阻止了请求,请将其固定在晶圆上。

远程部署(HTTP模式)

将fetchaller部署为Claude.ai、Claude Desktop或任何MCP客户端的远程MCP服务器。

快速开始

# Run with authentication
MCP_API_KEY=your-secret-key python -m fetchaller.main --http

# Or use Docker
docker compose up -d

本地开发

# Build and test locally
docker compose -f docker-compose.local.yml up --build

# Test endpoints
curl http://localhost:6000/health
curl -X POST http://localhost:6000/mcp \
  -H "Authorization: Bearer test-api-key-local" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

克劳德代码/桌面配置

{
  "mcpServers": {
    "fetchaller": {
      "type": "streamable-http",
      "url": "https://mcp.fetchaller.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Claude.ai自定义连接器(OAuth)

对于支持跨平台同步的Claude.ai网络/移动设备:

  1. 前往设置→ 连接器→ 添加自定义连接器
  2. 名称: fetchaller
  3. 统一资源定位符: https://mcp.fetchaller.com/mcp
  4. 留下客户ID/密码 空白
  5. 提示时输入API密钥

环境变量

变量默认值描述
HTTP_PORT6000服务器端口(1-65535)
MCP_API_KEY(必需)身份验证的承载令牌
MCP_SERVER_URLhttp://localhost:$PORTOAuth的公共URL
JWT_SECRET(从API密钥派生)OAuth令牌的机密
RATE_LIMIT_REQUESTS每IP每分钟100个请求
MOUSER_API_KEY-鼠标搜索API键(免费注册)
DIGIKEY_CLIENT_ID-DigiKey API客户端ID(免费注册)
DIGIKEY_CLIENT_SECRET-DigiKey API客户机密

安全

  • SSRF保护:阻止本地主机、私有IP、链接本地地址和DNS重新绑定服务(nip.io、xip.io等)。解析主机名以验证最终IP地址。
  • OAuth 2.1:所有令牌交换都需要PKCE。对身份验证代码进行定时安全比较。
  • 速率限制:具有可配置限制的每IP速率限制。

文件

fetchaller-mcp/
├── pyproject.toml           # Python package config
├── src/fetchaller/          # Python source
│   ├── main.py              # Entry point
│   ├── server.py            # MCP server setup
│   ├── config.py            # Configuration
│   ├── http/                # HTTP server (FastAPI)
│   ├── tools/               # MCP tools (fetch, search, reddit, aliexpress, alibaba, marketplace)
│   ├── content/             # Content processing (HTML→markdown, site-specific cleanup)
│   ├── search/              # Web search (Google + DuckDuckGo)
│   ├── aliexpress/          # AliExpress MTop API client, product, search, reviews
│   ├── alibaba/             # Alibaba.com product and search extraction
│   ├── mouser/              # Mouser Search API client
│   ├── craigslist/          # Craigslist SAPI client + location resolution
│   ├── kijiji/              # Kijiji GraphQL API client + location resolution
│   ├── facebook_marketplace/# Facebook Marketplace GraphQL client
│   ├── marketplace/         # Unified marketplace search orchestrator
│   ├── digikey/             # DigiKey API client (OAuth2 + product/search)
│   ├── cache/               # Response caching
│   ├── queue/               # Reddit rate limiting
│   └── security/            # SSRF, crypto, XSS
├── docker-compose.yml       # Production deployment
├── docker-compose.local.yml # Local testing
├── Dockerfile               # Container build
├── docs/                    # Architecture & developer docs
├── CLAUDE.md                # Instructions for Claude
├── README.md                # This file
└── landing/                 # Static site (fetchaller.com)
    ├── index.html           # Landing page
    └── llms.txt             # LLM-readable project summary (llmstxt.org spec)

依赖项

  • wafer-py[browser] -具有TLS指纹识别、机器人挑战绕过和浏览器求解器的HTTP传输(Rust/BoringsLSL+Patchright)
  • mcp -MCP协议SDK
  • fastapi + uvicorn -HTTP服务器
  • beautifulsoup4 + markdownify -HTML标记
  • pymupdf4llm -PDF转markdown提取
  • pyjwt -OAuth令牌

测试

# Run tests
uv sync --extra dev
.venv/bin/ruff check src/ tests/
.venv/bin/python -m pytest tests/ -x -q

# Test in Docker
docker compose -f docker-compose.local.yml up --build
curl http://localhost:6000/health

许可证

麻省理工学院

目录标签

目录标签

PythonClaude搜索网站抓取本地部署自动搜索Reddit支持机器人挑战绕过电子商务搜索

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP