这是一个基于 Node.js 的服务器项目,它是官方 Fetch MCP Server 的 Node.js 端口。该服务器基于模型上下文协议,能让大语言模型(LLM)从网页抓取内容并转换为 Markdown 格式,方便使用。
mcp-fetch-node 在默认端口 8080 上提供 SSE 接口,默认情况下在路径 /sse 下可用。你可以通过以下方式启动项目:
npx -y mcp-fetch-node
docker run -it tgambet/mcp-fetch-node
start_index 参数指定内容提取的起始位置,使模型能按块读取网页。pnpm install
pnpm dev
pnpm lint:fix
pnpm format
pnpm test
pnpm build
pnpm start
pnpm inspect
fetch - 抓取互联网上的 URL 并将其内容提取为 Markdown 格式。
| 参数 | 详情 |
|---|---|
url |
字符串,必需,要抓取的 URL |
max_length |
整数,可选,返回的最大字符数(默认值:5000) |
start_index |
整数,可选,从该字符索引开始提取内容(默认值:0) |
raw |
布尔值,可选,获取未转换为 Markdown 格式的内容(默认值:false) |
fetch - 抓取一个 URL 并将其内容提取为 Markdown 格式
| 参数 | 详情 |
|---|---|
url |
字符串,必需,要抓取的 URL |
默认情况下,服务器会遵守来自模型(通过工具)的请求的网站 robots.txt 文件,但对于用户发起的请求(通过提示),则不会遵守。可以通过在运行命令时添加 --ignore-robots-txt 参数来禁用此功能。
默认情况下,根据请求是来自模型(通过工具)还是用户发起的(通过提示),服务器会使用不同的用户代理:
# 工具调用
ModelContextProtocol/1.0 (Autonomous; +https://github.com/tgambet/mcp-fetch-node)
# 提示
ModelContextProtocol/1.0 (User-Specified; +https://github.com/tgambet/mcp-fetch-node)
可以通过在运行命令时添加 --user-agent=YourUserAgent 参数来自定义用户代理,从而覆盖上述默认值。
尽管 API 和工具描述与原项目相同,但你可以尝试将 mcp-fetch-node 作为原项目的掉换件替代品进行测试。请报告任何问题到 问题跟踪器。
本项目采用 MIT 许可证。