<工具 Claude Desktop> 配置 fetch MCP Server
原因:
整理 GitHub 那些 forked 仓库,点到 Model Context Protocol/Server 在删除前,才想起来这是干什么。 看看有什么新功能?Fetch 功能有点儿用
官网链接:servers/src/fetch/README.md at main · modelcontextprotocol/servers · GitHub
Fetch MCP Server
Fetch MCP 服务器
1. 介绍:
一个提供网页内容获取功能的模型上下文协议(Model Context Protocol)服务器。该服务器使大语言模型能够获取和处理网页内容,并将 HTML 转换为更易于处理的 markdown 格式。
主要功能:
- 网页内容获取
- 格式转换
- 分块读取
2. Windows 11 上的配置
1) 在 Claude Desktop App 的配置
配置文件:C:\Users\(你的用户名)\AppData\Roaming\Claude\claude_desktop_config.json
刚发现,可以在 app 里进入了:左上角,点 “三” 横线 -> File -> Settings
当前我在用的:filesystem brave-search fetch
如果只用 fetch:
{"mcpServers": {"fetch": {"command": "python","args": ["-m", "mcp_server_fetch"]}}
}
2)我使用的是 Python 方法
a. 必须要安装 Python 3.11
为了方便,改文件名:python.exe -> python311.exe
b. 创建一个 python 3.11 虚拟环境
Virtual Environment with Python 3.11
工作目录:Z:\2024-MyProgramFiles\6.Fetch_MCP_Server\
c. 安装依赖包
pip install mcp-server-fetch
d. 创建目录、并复制文件到目录中
- ./src/mcp_server_fetch/ 目录里 3 个文件
- .pyproject.toml
- .uv.lock
以上一共 5 个文件,一个 2 层的子目录
就是这样,如下图:
3)在 Python 环境中运行
python -m mcp_server_fetch
使用之前的 批处理 文件启动,鼠标点一下运行。
@echo off@chcp 65001 > NUL
rem 支持中文,使用 UTF-8 代码,并抑制屏幕输出rem set /p venv_name=请输入虚拟环境名称(直接回车默认为venv):
if "%venv_name%"=="" set venv_name=venv
rem 让用户输入虚拟环境名称,如果没有输入则使用默认值 venvcd /d %~dp0
rem 鼠标点击后,在批处理文件,当前目录执行以下。 IF EXIST %venv_name%\Scripts\activate.bat (
rem 检查虚拟环境是否存在echo 虚拟环境已存在,直接激活...call .\%venv_name%\Scripts\activate.batrem 运行虚拟机) ELSE (echo 创建虚拟环境...python -m venv --upgrade-deps %venv_name%rem 创建虚拟机rem Python 3.9 以上, --upgrade-deps 可以自动将 pip 和 setuptools 升级到最新版本rem 如果使用 requirements.txt 管理依赖项,建议指定pip版本号call .\%venv_name%\Scripts\activate.batrem 运行虚拟机echo 从 requirements.txt 安装依赖项pip install -r requirements.txt > NULrem 安装依赖项
)rem 以下,依据需要保留:echo 启动 app.py 主程序
rem 用于启动 fetch mcp server
python -m mcp_server_fetchpause
rem 暂停批处理执行,以便看到结果cmd /k
rem cmd 窗口在执行完成后保持打开状态,用于没有 主程序 状态。
4)验证:在 Claude Desktop App
如上图,点这三个地点,就出现下图:
粘贴 url 到输入框: https://modelcontextprotocol.io/tutorials/building-mcp-with-llms
点提交后,会多出一个附件,如下图:
点开附件 fetch txt 后是:
在 Prompt 中随便输入提示词,比如 “翻译成国文” (中文去了魂,比日文认识的多些、也靠猜、但顺眼,不会写,49年以前的中化文明就剩 中药)
3. 自定义配置选项
- robots.txt 哪些页面可以访问、哪些不能访问的规则文件,示例如下:
User-agent: *
Disallow: /admin/ # 禁止访问管理目录
Disallow: /private/ # 禁止访问私有目录
Disallow: /*.php$ # 禁止访问所有 PHP 文件
Allow: /public/ # 允许访问公共目录
Crawl-delay: 5 # 访问间隔 5 秒Crawl-delay: 10 # 设置抓取延迟
- User-Agent 设置:在 config json 中 "args": ["-m", "mcp_server_fetch", "--ignore-robots-txt", "--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"] 忽略 robots.txt 并使用 User-Agent 自定义为浏览器样式
结束语:
这个功能很好,抓取内容扔给 AI,只要 URL 就行:直接让 Claude Fetch MCP Server 抓取,不用粘贴,也不用写程序。但内容不能太长,因为在 server.py 代码写着: max_length(默认是 5000 字符),应该能改大些 5万试试。
Modified 错字 on 12feb.2025