Token导航 LogoToken导航TokenDH.com
MCP Fetch Go logo
浏览器工具未说明官方级别未说明来源级核验

MCP Fetch Go

MCP Server

gofetch是一款专为LLM编码助手设计的服务器,能够将HTML转换为干净的Markdown,并提供结构化元数据和智能截断功能。

工具数

1

提示词数

0

GitHub Stars

1

资源数

0
结构化数据GoClaude浏览器自动化Claude DesktopClaudeCursorWindsurf

安装说明

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

作者 / 组织

arawak

提供方

arawak

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

gofetch

一个模型上下文协议(MCP)服务器,它获取URL并将HTML转换为干净的Markdown。专为基于LLM的编码助手而设计。

为什么是gofetch?

与通用的web抓取器不同,gofetch知道LLM最适合:

  • 清除Markdown --不是原始HTML或单词包装文本
  • 结构化元数据 --截断状态、重定向后的最终URL、内容类型
  • 智能截断 --段落边界,而不是句子中间的删减
  • 清除分页 --下一个字节位置,继续通知

目标

  1. 提取内容,而不是噪音 --自动删除导航、侧边栏、页脚和UI元素
  2. 提供结构化输出 --返回Markdown+JSON元数据以供编程使用
  3. 处理真实世界的场景 --检测重定向、阻止尝试、不支持的内容类型
  4. 针对LLM环境进行优化 --在段落边界处智能截断以保持可读性
  5. 启用分页 --支持字节范围获取,并为连续的多页文档提供清晰的指示符

比较:gofetch与pyfetch

特性gofetchpyfetch
Markdown质量优秀仅限纯文本
降噪同类最佳基本
重定向检测显示最终URL静默
元数据完整JSON
截断段落感知任意字节边界
分页通知清除([Continued from byte X])
站点兼容性高(适用于大多数开发站点)低(被许多站点阻止)
robots.txt忽略尊重

判决: gofetch是专为LLM编码工作流而构建的;pyfetch是一个道德通用的刮刀。

安装

源自

git clone https://github.com/arawak/mcp-fetch-go.git
cd mcp-fetch-go
go build -o gofetch ./cmd/mcp-fetch-go

使用Go安装

go install github.com/arawak/mcp-fetch-go/cmd/mcp-fetch-go@latest

用法

MCP配置

添加到您的MCP客户端配置(Claude Desktop、Cursor、Windsurf等):

{
  "mcpServers": {
    "fetch": {
      "command": "gofetch"
    }
  }
}

工具: fetch

获取URL并将其内容作为Markdown(或原始文本)返回。

参数:

参数类型默认值说明
url字符串*必需的*要获取的URL
maxBytesint30000返回的最大字节数
startBytesint0要跳过的字节数(用于分页)
rawboolfalse返回未经Markdown转换的原始内容
timeoutint30超时(秒)

例子:

{
  "url": "https://go.dev/doc/effective_go",
  "maxBytes": 5000
}

答复:

该工具返回两个内容块:

  1. Markdown内容 --转换后的内容(或原始内容,如果 raw: true)
  2. 元数据JSON --关于获取的信息:
{
  "url": "https://go.dev/doc/effective_go",
  "statusCode": 200,
  "contentType": "text/html",
  "contentBytes": 45123,
  "returnedBytes": 5000,
  "truncated": true,
  "nextStartBytes": 5000,
  "fetchedAt": "2026-02-21T10:30:00Z"
}

重定向处理

当URL重定向时,gofetch会在内容前添加一条通知:

[Note: Redirected to https://final-url.example.com/path]

...content...

这允许LLM知道内容的实际来源。

分页

对于大型文档,请使用 startBytes 继续阅读:

// First request
{"url": "https://example.com/large-doc", "maxBytes": 10000}

// Response includes: "nextStartBytes": 10000
// Continue from where you left off:
{"url": "https://example.com/large-doc", "maxBytes": 10000, "startBytes": 10000}

截断的内容包括一条通知:

...content...

---
[Truncated: 10000 of 50000 bytes. Use startBytes=10000 to continue.]

内容处理

gofetch通过多阶段管道从HTML中提取干净的内容:

  1. 查找主要内容 --寻找 `

` 要素先行;回退到完整文档

  1. 条形结构噪声 --删除 `, , , , , , , , `
  2. 条形ARIA噪声 --删除元素 role="navigation", role="banner", role="contentinfo", role="button"等等。
  3. 按类别分组 --删除类包含以下内容的元素: sidebar, breadcrumb, cookie, advertisement, navbar, toc
  4. 剥去UI铬 --删除按钮、图像和元素 aria-hidden="true"
  5. 清洁web组件 --解开未知的自定义元素,删除已知的噪声组件(GitHub的 tool-tip, action-menu, copy-button;Reddit的 faceplate-*, shreddit-*)
  6. 转换为Markdown --用途 html到markdown 带有CommonMark输出

支持的内容类型

  • text/html --转换为Markdown
  • application/xhtml+xml --转换为Markdown
  • text/plain --按原样返回
  • text/markdown --按原样返回

其他内容类型返回错误。使用 raw: true 绕过内容类型检查并返回原始字节。

安全配置

环境变量

变量默认值描述
MCP_FETCH_ALLOWED_DOMAINS*(空)*逗号分隔的域列表。空=全部允许
MCP_FETCH_ALLOW_PRIVATEfalse允许私有/环回IP(SSRF保护)
MCP_FETCH_MAX_REDIRECTS5要遵循的最大重定向数

SSRF保护

默认情况下,服务器会阻止以下请求:

  • 私有IP地址(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • 环回地址(127.0.0.0/8, ::1)
  • 链接本地地址(169.254.0.0/16, fe80::/10)

允许私有IP(用于开发或内部网络):

MCP_FETCH_ALLOW_PRIVATE=true gofetch

要限制到特定域,请执行以下操作:

MCP_FETCH_ALLOWED_DOMAINS=example.com,docs.example.com gofetch

建筑

# Using Make (recommended)
make build    # Build binary to bin/gofetch
make test     # Run tests with coverage
make install  # Install to $GOPATH/bin

# Or directly with Go
go build -o gofetch ./cmd/mcp-fetch-go

# Static binary for containers
CGO_ENABLED=0 go build -ldflags="-s -w" -o gofetch ./cmd/mcp-fetch-go

测试

# Run all tests with race detection and coverage
make test

# Or directly with Go
go test -race -cover ./...

# Run integration tests only
go test ./tests/... -v

许可证

MIT许可证——见 许可证 了解详情。

目录标签

目录标签

结构化数据GoClaude浏览器自动化HTML转换本地部署Markdown生成LLM工具网页抓取

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

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

未说明

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

session

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明session部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP