使用说明
更安全的获取MCP服务器
提供web内容获取功能的模型上下文协议服务器 内置快速注射保护措施此服务器使LLM能够从网页中检索和处理内容,将HTML转换为markdown以便于使用,同时防止可能操纵LLM的恶意内容。
致谢
该项目基于Anthropic的Fetch MCP服务器实现,并结合了Goose的提示注入保护代码/模式。
🚀 快速开始
安装服务器
使用以下命令运行MCP服务器 紫外线:
uvx --refresh mcp-server-fetch-tom
这 --refresh flag确保您始终获得最新版本。
在AI IDE中配置
选择您的IDE并添加配置以启用获取MCP服务器:
克劳德桌面
编辑您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["--refresh", "mcp-server-fetch-tom"]
}
}
}
VS代码(Cline/Roo-Cline)
添加到您的VS代码设置(.vscode/mcp.json 在工作区或用户设置JSON中):
{
"mcp": {
"servers": {
"fetch": {
"command": "uvx",
"args": ["--refresh", "mcp-server-fetch-tom"]
}
}
}
}
或者使用一键安装按钮:
光标
添加到光标设置:
- 打开光标设置(
Cmd/Ctrl + ,) - 搜索“MCP”
- 添加服务器配置,或编辑
.cursor/mcp.json:
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["--refresh", "mcp-server-fetch-tom"]
}
}
}
继续(VS代码扩展)
编辑 ~/.continue/config.json:
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["--refresh", "mcp-server-fetch-tom"]
}
}
}
鹅AI
编辑 ~/.config/goose/profiles.yaml:
default:
provider: openai
processor: gpt-4
accelerator: gpt-4o-mini
moderator: passive
toolkits:
- developer
- mcp
mcp_servers:
fetch:
command: uvx
args:
- --refresh
- mcp-server-fetch-tom
⚠️ 免责声明
本软件按“原样”提供,不提供任何形式的保修。 虽然该服务器实现了快速注射检测和缓解措施, 没有一种安全解决方案是100%有效的实施的保障措施旨在降低风险,但不能保证完全防止所有快速注入攻击。
用户应当:
- 从不受信任的来源获取内容时要小心
- 在敏感环境中对获取的内容采取行动之前,先进行审查
- 了解坚定的攻击者可能会找到绕过检测的方法
- 对于安全关键的应用程序,不要仅仅依赖这些安全措施
维护人员对使用此软件造成的任何损坏或安全事件不承担责任。
安全功能
此服务器包括提示注入保护措施,以保护LLM免受恶意web内容的侵害:
1.内容边界包装
所有提取的内容都用安全边界标签包裹 随机边界ID (防止逃跑袭击)。包装材料包括:
- 明确说明内容应被视为 仅数据,而不是作为指示
- LLM要遵循的关键安全规则
- 源URL归因
2.快速注射模式检测
扫描内容以查找20多种可疑模式,包括:
- 指令覆盖:“忽略前面的说明”,“忽略前面提示”
- 角色操纵:“你现在是”,“扮演”,“假装是”
- 系统提示攻击:“新系统提示”、“覆盖指令”
- 越狱企图:“开发人员模式”、“DAN模式”和“绕过限制”
- 输出操纵:“不提”,“保守这个秘密”
- 编码指令:Base64模式,“解码并执行”
当检测到可疑模式时:
- 未返回任何数据 -提取的内容完全被阻止
- 只返回一条警告消息,指示检测到的模式数量
- 提供源URL,以便用户可以手动查看是否认为这是误报
[!小心] 此服务器可以访问本地/内部IP地址,可能存在安全风险。使用此MCP服务器时请小心,以确保不会暴露任何敏感数据。
fetch工具将截断响应,但通过使用 start_index 参数,您可以指定从哪里开始内容提取。这让模型可以分块阅读网页,直到找到所需的信息。
可用工具
fetch-从互联网获取URL并将其内容提取为markdown。url(字符串,必填):要获取的URLmax_length(整数,可选):返回的最大字符数(默认值:5000)start_index(整数,可选):从此字符索引开始内容(默认值:0)raw(boolean,可选):获取原始内容而不进行markdown转换(默认值:false)
当输出类型为“md”并且获取的资源为PDF时,它将自动转换为纯文本。
提示
- 获取
- 获取一个URL并将其内容提取为markdown
- 论据:
url(字符串,必填):要获取的URL
安装
使用紫外线(推荐)
使用时 uv 不需要特定的安装。我们将
使用 uvx 直接运行 mcp服务器获取tom:
uvx --refresh mcp-server-fetch-tom
高级配置
替代安装方法
上述示例使用 uvx 为了简单起见。您还可以使用:
Docker
{
"mcpServers": {
"fetch": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp/fetch"]
}
}
}
pip installation
首次安装: pip install mcp-server-fetch-tom
然后配置:
{
"mcpServers": {
"fetch": {
"command": "mcp-server-fetch-tom"
}
}
}
定制-用户代理
默认情况下,根据请求是来自模型(通过工具)还是由用户发起(通过提示) 服务器将使用用户代理
ModelContextProtocol/1.0 (Autonomous; +https://github.com/modelcontextprotocol/servers)
或
ModelContextProtocol/1.0 (User-Specified; +https://github.com/modelcontextprotocol/servers)
这可以通过添加参数进行自定义 --user-agent=YourUserAgent 到 args 配置中的列表。
自定义-代理
可以使用以下命令将服务器配置为使用代理 --proxy-url 争论。
Windows配置
如果您在Windows上遇到超时问题,可能需要设置 PYTHONIOENCODING 环境变量,以确保正确的字符编码:
Windows configuration (uvx)
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["--refresh", "mcp-server-fetch-tom"],
"env": {
"PYTHONIOENCODING": "utf-8"
}
}
}
}
Windows configuration (pip)
{
"mcpServers": {
"fetch": {
"command": "mcp-server-fetch-tom",
"env": {
"PYTHONIOENCODING": "utf-8"
}
}
}
}
这解决了可能导致服务器在Windows系统上超时的字符编码问题。
调试
您可以使用MCP检查器调试服务器。对于uvx安装:
npx @modelcontextprotocol/inspector uvx mcp-server-fetch-tom
或者,如果您已将软件包安装在特定目录中或正在其上开发:
cd path/to/fetch_mcp
npx @modelcontextprotocol/inspector uv run mcp-server-fetch-tom
建筑与出版
对于维护人员:请参阅 出版指南 有关构建和发布到PyPI的详细说明。
快速参考:
# Build the package
uvx --from build pyproject-build --installer uv
# Check the build
uvx twine check dist/*
# Upload to PyPI
uvx twine upload dist/*
或者使用Makefile:
make build # Build package
make check # Verify package
make upload # Upload to PyPI
有关更多详细信息,请参阅:
贡献
我们鼓励捐款以帮助扩展和改进mcp服务器获取。无论您是想添加新工具、增强现有功能还是改进文档,您的意见都是有价值的。
有关其他MCP服务器和实现模式的示例,请参阅: https://github.com/modelcontextprotocol/servers
欢迎拉取请求!请随时贡献新想法、错误修复或增强功能,使mcp服务器fetch更加强大和有用。
安全考虑
虽然此服务器实现了快速注入保护,但安全是一项共同责任:
- 纵深防御这些保障措施是一层保护措施;结合其他安全措施
- 定期更新:保持服务器更新,以从新的模式检测规则中受益
- 报告漏洞:如果您发现旁路或漏洞,请负责任地报告
- 假阳性:模式检测可以标记合法内容;根据上下文查看警告
许可证
mcp服务器获取是根据MIT许可证授权的。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。