Mcp Fetch Node

Mcp Fetch Node

🚀 Fetch MCP 服务器(Node.js 版)

这是一个基于 Node.js 的服务器项目,它是官方 Fetch MCP Server 的 Node.js 端口。该服务器基于模型上下文协议,能让大语言模型(LLM)从网页抓取内容并转换为 Markdown 格式,方便使用。

🚀 快速开始

mcp-fetch-node 在默认端口 8080 上提供 SSE 接口,默认情况下在路径 /sse 下可用。你可以通过以下方式启动项目:

Node.js 启动

npx -y mcp-fetch-node

Docker 启动

docker run -it tgambet/mcp-fetch-node

✨ 主要特性

  • 网络内容抓取:提供网络内容抓取功能,使 LLM 能够从网页中抓取并处理内容。
  • Markdown 转换:将 HTML 转换为 Markdown 格式,便于更轻松地使用。
  • 分页提取:Fetch 工具可截断响应,通过 start_index 参数指定内容提取的起始位置,使模型能按块读取网页。
  • 尊重 robots.txt:默认遵守来自模型请求的网站 robots.txt 文件,可通过参数禁用。
  • 用户代理自定义:可根据请求来源使用不同用户代理,也可通过参数自定义。
  • SSE 接口:提供 SSE 接口,适合作为网络服务部署,提高灵活性。
  • 通用内容提取:不依赖 Readability.js 库,使用通用自定义实现处理各类网站。

📦 安装指南

开发环境安装

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 配置

默认情况下,服务器会遵守来自模型(通过工具)的请求的网站 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 参数来自定义用户代理,从而覆盖上述默认值。

📚 详细文档

关键与原项目的差异

  • 语言与运行环境:该项目用 TypeScript 编写,并针对 Node.js 运行时环境进行了优化,适用于无法使用 Python 的情况。
  • 接口类型:该项目提供 SSE 接口,而不是 stdio,更适合作为网络服务进行部署,提高了灵活性。
  • 内容提取实现:该项目不依赖于 Readability.js 库来执行内容提取,使用了一个更通用的自定义实现,适合处理新闻相关以外的网站。

尽管 API 和工具描述与原项目相同,但你可以尝试将 mcp-fetch-node 作为原项目的掉换件替代品进行测试。请报告任何问题到 问题跟踪器

🔧 技术细节

  • 该项目使用 TypeScript 编写,针对 Node.js 运行时环境进行了优化,使得它可以在无法使用 Python 的场景中使用。
  • 提供 SSE 接口而非 stdio,这种方式更适合作为网络服务进行部署,增强了项目的灵活性。
  • 在内容提取方面,没有依赖 Readability.js 库,而是采用了一个更通用的自定义实现,能够处理新闻相关以外的各类网站。

📄 许可证

本项目采用 MIT 许可证。

TODO

  • [ ] 添加用户日志和进度指示
  • [ ] 添加文档和示例
  • [ ] 性能基准测试和改进
  • [ ] 提取质量的基准测试:参考 https://github.com/adbar/trafilatura/blob/master/tests/comparison_small.py
  • 0 关注
  • 0 收藏,18 浏览
  • system 提出于 2025-09-22 05:36

相似服务问题

相关AI产品