MCP网页URL阅读器
一个仅暴露一个工具的MCP服务器, read_web_url,用于获取带有绝对URL的 curl -sL 在添加一个可配置的前缀后 CUSTOM_PREFIX 在服务器端。该服务器使用MCP TypeScript/JavaScript SDK,并提供一个可流式传输的HTTP端点 /mcp 为了兼容众多人工智能应用。非常适合通过代理、缓存层或自定义网关路由人工智能网络请求。
特点/功能
- 🌐 通过curl简单读取网页URL
- 🔧 可配置的URL前缀,用于代理/路由
- 🐳 基于Node.js的超小Docker镜像
- 🚀 使用 Docker Compose 轻松部署
- 🛠️ 兼容任何支持MCP的AI应用程序
它是如何工作的
人工智能认为它正在读取一个正常的网址:
curl -sL https://www.example.com但实际上服务器执行的是:
curl -sL CUSTOM_PREFIX/https://www.example.com这使您能够:
- 通过缓存代理路由请求
- 增加认证层
- 使用自定义网关
- 使用您自己的基础设施绕过速率限制
- 监控/记录AI网页访问情况
快速入门
使用 Docker Compose
见 docker-compose.yml 对于一个工作示例的服务映射 8080:8080 并注入两个环境变量。
MCP服务器将在 http://localhost:8080
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
CUSTOM_PREFIX | 添加到所有请求前的URL前缀 | "" (空) |
INTERNAL_PORT | 内部服务器端口 | 80800 |
配置示例
直接模式(无前缀)
environment:
- CUSTOM_PREFIX=
- PORT=3000代理模式
environment:
- CUSTOM_PREFIX=https://proxy.myserver.com
- INTERNAL_PORT=8080缓存网关
environment:
- CUSTOM_PREFIX=http://cache-server:8000/fetch
- INTERNAL_PORT=8080与AI应用结合使用,MCP客户端集成
服务器通过可流式传输的HTTP暴露工具:通过POST请求初始化会话 /mcp,再利用 Mcp-Session-Id 从响应中,然后调用 tools/call 与……一起;带有;凭借 { name: "read_web_url", arguments: { url: "https://example.com" } }服务器将运行 curl -sL CUSTOM_PREFIX/https://example.com 并返回文本内容。确保 Mcp-Session-Id 在后续请求中包含头部信息,并通过CORS(跨源资源共享)允许。
Claude Desktop(MCP)
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"web-url-reader": {
"url": "http://localhost:8080/mcp"
}
}
}n8n
使用MCP服务器节点并将其指向 http://localhost:8080/mcp
定制应用程序
连接到位于(此处应填写具体地址或端点名称)的MCP端点 http://localhost:8080/mcp
工具模式(或工具架构)
服务器提供了一个工具:
read_web_url
- 描述:读取并返回网页的内容
- 参数:
url(字符串,必需)- 要获取的完整URL - 返回:网页的文本内容
示例工具调用:
{
"name": "read_web_url",
"arguments": {
"url": "https://www.example.com"
}
}用例
缓存层
将所有人工智能网络请求路由通过您的缓存服务器以减少外部调用:
CUSTOM_PREFIX=http://cache-server/proxy认证网关
为网页请求添加身份验证:
CUSTOM_PREFIX=http://auth-gateway/fetch速率限制管理
通过您自己的基础设施来管理速率限制的路由:
CUSTOM_PREFIX=https://ratelimit-proxy.myserver.com隐私/监控
记录并监控所有AI网页访问:
CUSTOM_PREFIX=http://monitoring-gateway/fetch跑
- 打开
http://localhost:8080/进行基本健康检查,并将您的MCP客户端连接到http://localhost:8080/mcp。 - MCP端点已开启
http://localhost:8080/mcp具有适用于POST/GET/DELETE的Streamable HTTP语义,并支持CORS(跨源资源共享)暴露Mcp-Session-Id。
故障排除
服务器无法启动
- 检查端口8080是否未被占用
- 验证环境变量是否设置正确
- 检查Docker日志:
docker-compose logs -f
请求失败
- 验证从容器中可以访问 CUSTOM_PREFIX
- 手动测试curl:
docker exec -it mcp-web-reader curl -sL YOUR_URL - 检查超时设置(默认30秒)
GitHub Actions 未构建成功
- 确保工作流权限已启用
- 检查GITHUB_TOKEN是否具有包的写入权限
- 验证Dockerfile语法
许可证
MIT 许可证 - 请随意使用并根据需要进行修改。
做出贡献
欢迎提交拉取请求!请确保:
- Docker镜像构建成功
- README 已更新以包含新功能
- GitHub Actions 工作流通过
