Token导航 LogoToken导航TokenDH.com
Awesome Fetch MCP logo
运维云端stdio官方级别未说明来源级核验

Awesome Fetch MCP

MCP Server

awesome-fetch-mcp 是一个为LLM代理设计的安全、高速URL抓取服务,提供SSRF防护、上下文保护和多租户隔离功能。

工具数

1

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude云端部署Claude DesktopClaudeCursor

安装说明

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

作者 / 组织

Beginnersguide138

提供方

Beginnersguide138

最后核验

2026/5/17 20:19

运行时

Python

快速接入

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

命令预览

uv run playwright install chromium

详细介绍

英语 | 日本语 | 中文

真棒获取mcp

用于LLM代理的安全、高速URL获取MCP服务器。

______________________________________________________________________

为什么真棒获取mcp

赋予LLM代理URL获取功能会带来以下问题。

1.SSRF(服务器端请求伪造)漏洞

当LLM代理直接获取用户提供的URL时,它可以启用对专用网络的未经授权的访问(127.0.0.1, 10.x.x.x, 169.254.169.254等等)。在云环境中,存在通过IMDS(实例元数据服务)泄露凭据的风险。

真棒获取mcp 确定性地 强制执行URL方案验证、DNS解析结果的私有IP检查和有效载荷大小限制,提供不依赖于LLM判断的安全边界。

2.上下文污染和窗口破坏

当获取结果包含图像二进制文件时,大量base64编码的数据会淹没LLM的上下文窗口。返回数万个字符的原始文档内容可能会超过并破坏上下文窗口。

awesome fetch mcp在返回内容之前将其转换为结构化的Markdown文本。图像由服务器端LLM分析并转换为文本,全文检索的上限为20000个字符,以及 outlinemetadata 模式只允许提取所需的信息。

3.多租户环境中缺乏治理

# BAD: AI can arbitrarily access other tenants' data
fetch_tool(client_id="123abc", image_path="bobs_image.png")

当租户标识符或文件路径作为参数传递给LLM时,无法从结构上阻止通过提示注入进行权限升级。

真棒fetch mcp在工具参数中不包括租户信息。租户身份验证是通过使用短命令牌(JWT)的确定性API访问控制来处理的,将LLM的概率行为与安全性分离。

设计原则

LLM Agent ──(MCP)──▶ awesome-fetch-mcp ──(Playwright)──▶ Internet
                      This is the deterministic boundary
原则方法
SSRF防御方案验证+DNS解析IP检查+私有IP拒绝
上下文保护Markdown转换+字符限制+提取模式选择
二进制处理服务器端LLM图像分析+PDF/Office文本提取
租户隔离JWT短期令牌身份验证+确定性访问控制
性能并行URL获取+剧作家并发连接控制

______________________________________________________________________

快速开始

安装

uv sync
uv run playwright install chromium

发射

# Start as a remote MCP server (default: streamable-http, port 8000)
uv run awesome-fetch

# Start with a custom port
MCP_PORT=8888 uv run awesome-fetch

# Start in stdio mode
MCP_TRANSPORT=stdio uv run awesome-fetch

______________________________________________________________________

环境变量

环境变量在中定义 src/awesome_fetch_mcp/config.py.

变量描述默认值
MCP_TRANSPORT运输方式(streamable-http, stdio, sse)streamable-http
MCP_HOST要绑定的主机0.0.0.0
MCP_PORT要收听的端口8000
MCP_MODEL_PROVIDER模型提供者(bedrock).与一起设置时启用图像分析 MCP_MODEL_NAME没有
MCP_MODEL_NAME型号名称(例如。, global.anthropic.claude-sonnet-4-6)
AWS_REGIONAWS基岩区us-east-1
TOKEN_EXPIRY_MINUTESJWT令牌到期时间(分钟)15
ALLOW_UNSAFE_IPS允许访问私有IPfalse
HTTP_PROXYHTTP代理
HTTPS_PROXYHTTPS代理
NO_PROXY代理排除列表
AIOHTTP_SSL_VERIFYaiohttp的SSL验证true
AUTH_SECRET设置后启用JWT令牌身份验证。未设置时无身份验证(开发模式)

______________________________________________________________________

工具参考

太棒了

一种获取URL并以结构化Markdown形式返回内容的工具。

参数

参数必填默认说明
urls-要获取的URL列表
mode没有"full"提取模式
force没有false忽略字符限制(20000个字符)
wait_for没有0动态内容的等待时间(毫秒)
headers自定义HTTP标头字典
image_prompt图像分析的附加提示(例如。, "Extract the insurance premium for a 35-year-old male from the table")

提取模式(mode)

模式描述
full将全文转换为Markdown并返回
outline仅提取和返回标题(h1-h6)
metadata仅返回标题和描述

______________________________________________________________________

客户端配置

克劳德桌面(claude_desktop_config.json)

通过远程MCP连接(可流式传输http):

{
  "mcpServers": {
    "awesome-fetch": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

通过stdio模式连接:

{
  "mcpServers": {
    "awesome-fetch": {
      "command": "uv",
      "args": ["--directory", "/path/to/awesome-fetch-mcp", "run", "awesome-fetch"],
      "env": {
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

光标(.cursor/mcp.json)

{
  "mcpServers": {
    "awesome-fetch": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

克劳德代码

claude mcp add awesome-fetch http://localhost:8000/mcp

______________________________________________________________________

运输方式

此服务器支持3种传输模式。

模式用例配置
streamable-http作为远程MCP服务器运行。支持来自多个客户端的同时连接。默认模式。MCP_TRANSPORT=streamable-http
stdio通过标准I/O进行通信。直接从本地客户端(如Claude Desktop)启动流程时使用。MCP_TRANSPORT=stdio
sse通过服务器发送的事件进行通信。当需要流媒体支持时使用。MCP_TRANSPORT=sse

______________________________________________________________________

建筑

请求的处理分为以下3个步骤。

  1. 分析 --URL验证(方案验证、通过SSRF保护拒绝私有IP)
  2. 执行 --与剧作家一起确定内容类型;将HTML转换为Markdown,通过aiohttp从二进制文件(PDF等)中下载和提取文本,使用服务器端LLM分析图像
  3. 审查 --字符限制检查(in full 模式与 force=false,超过20000个字符将返回错误)

支持格式

格式处理方法
HTML使用Playwright渲染,转换为Markdown
PDF文本提取(PyMuPDF)
DOCX/XLSX/PPTX文本提取(python DOCX/openpyxl/python PPTX)
图像服务器端LLM分析,以文本形式返回

______________________________________________________________________

部署架构

通过部署令人敬畏的fetch mcp作为AI代理的网络边界,您可以实现深度防御。

核心原则:不要让AI代理直接访问互联网——只允许通过SSRF保护的真棒获取进行外部URL访问。

推荐配置:专用子网+NAT网关

                     Internet
                        │
                    [ IGW/NAT ]
                        │
               ┌─── private subnet ───┐
               │                      │
               │  ┌────────────────┐  │
               │  │ awesome-fetch  │──┼──▶ NAT GW (outbound only)
               │  │   MCP server   │  │
               │  └───▲────────────┘  │
               │      │ http (VPC内)  │
               │  ┌───┴────────────┐  │
               │  │  AI Agent App  │  │
               │  │  (EC2/ECS)     │  │
               │  └────────────────┘  │
               └──────────────────────┘
                SG: Internal traffic only
  • 令人敬畏的fetch和AI Agent都部署在 专用子网
  • NAT网关 仅提供出站互联网访问(用于获取URL)
  • 公共子网中只有NAT GW/ALB,最大限度地减少了攻击面
  • 安全组限制访问 awesome-fetch:8000 仅限AI代理

成本优化配置:公用子网(无NAT GW)

为了避免NAT网关成本(固定费用+数据传输费用),可以在公共子网中部署出色的fetch。

               private subnet
               ┌────────────────────┐
               │  AI Agent App      │
               │  (EC2/ECS)         │
               └───┬────────────────┘
                   │ http (VPC内)
               public subnet
               ┌───▼────────────────┐
               │  awesome-fetch     │
               │  MCP server        │
               │───────IGW──────────│
               └────────────────────┘
  • AI Agent部署在 专用子网 (无直接互联网接入)
  • 真棒fetch部署在 公用子网,通过IGW获取URL
  • 通过安全组将强大的获取入站流量限制为仅限AI代理的SG (拒绝直接访问公共IP)

纵深防御优势

防御
网络AI Agent无法直接访问互联网。URL获取只能通过真棒获取
应用SSRF保护(私有IP拒绝、方案验证、有效载荷大小限制)
认证通过JWT短期令牌隔离租户
数据上下文窗口保护(字符限制+图像到文本转换)

即使在应用层SSRF保护中发现了旁路,网络层也会阻止AI代理的直接互联网访问,防止代理发起的SSRF攻击。

目录标签

目录标签

PythonClaude云端部署URL抓取本地部署SSRF防护LLM代理多租户隔离内容转换

支持客户端

Claude DesktopClaudeCursor

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP