🚀 URL文本提取器MCP服务器
URL文本提取器MCP服务器是一个现代化的模型上下文协议(MCP)服务器,它借助FastMCP框架,为LM Studio和其他兼容MCP的客户端提供URL文本提取、网页抓取和网络搜索功能。
该服务器基于现代化的FastMCP框架构建,具备以下特性:
- 基于装饰器的简洁工具定义
- 依据类型提示自动生成模式
- 简化的服务器设置与配置
- 更出色的错误处理和日志记录
在实现现代化并遵循MCP最佳实践的同时,保留了所有安全特性和功能。
✨ 主要特性
此MCP服务器使AI模型能够:
- 提取文本内容:从任意URL提取所有可见文本
- 提取链接:从网页中提取链接以发现相关资源
- 网络搜索:使用Brave Search进行网络搜索,并自动从搜索结果中提取内容
- 优雅处理错误:通过适当的超时和异常处理机制,确保错误处理的优雅性
🔒 安全特性
企业级安全实现:
- SSRF防护:阻止对内部网络和元数据端点的请求
- 输入净化:验证并清理所有URL和查询输入
- 内存保护:内容大小限制可防止内存耗尽
- 速率限制:具备可配置阈值的线程安全API速率限制
- 错误处理:全面的异常处理,且不会泄露信息
🛠️ 工具
服务器提供三个主要工具:
fetch_url_text
- 描述:从URL下载所有可见文本
- 参数:
- 返回值:网页的纯文本内容
fetch_page_links
- 描述:从网页中提取所有链接
- 参数:
- 返回值:页面上找到的所有href链接列表
brave_search_and_fetch
- 描述:使用Brave Search进行网络搜索,并自动从搜索结果中提取内容
- 参数:
query(字符串,必填):搜索查询
max_results(整数,可选):要提取内容的最大结果数(默认值:3,最大值:10)
- 返回值:包含每个结果URL完整文本内容的搜索结果
📦 安装指南
前提条件
Brave Search API密钥
要使用搜索功能,您需要一个免费的Brave Search API密钥:
- 访问 Brave Search API
- 注册免费账户(每月2000次查询,每秒最多1次)
- 获取API密钥
- 将
.env.example 复制到 .env,并添加您的API密钥:
cp .env.example .env
安装步骤
- 克隆此仓库
- 安装依赖项:
uv sync --dev --all-extras
- 配置环境:
cp .env.example .env
💻 使用示例
与LM Studio配合使用
- 打开LM Studio,导航到集成部分
- 点击“安装”,然后点击“编辑mcp.json”
FastMCP实现(推荐)
- 选项A:使用配置辅助脚本
./configure_lmstudio_fastmcp.sh
这将为您的系统生成正确的配置和路径。
- 选项B:手动配置 - 添加服务器配置:
{
"mcpServers": {
"url-text-fetcher-fastmcp": {
"command": "uv",
"args": [
"run",
"url-text-fetcher-fastmcp"
],
"cwd": "/Users/wallison/TechProjects/mcp-server"
}
}
}
旧版实现(底层)
对于旧版实现:
./configure_lmstudio.sh
注意:API密钥将自动从项目目录中的 .env 文件加载。
- 保存配置并重启LM Studio
- 服务器将出现在集成部分
独立使用
您也可以直接运行服务器:
uv run url-text-fetcher-fastmcp
uv run url-text-fetcher
示例请求
配置好LM Studio后,您可以要求AI执行以下操作:
- “从https://example.com提取文本内容”
- “从https://news.example.com提取所有链接”
- “搜索 'Python网页抓取' 并显示前3个结果的内容”
- “最新的AI新闻有哪些?搜索并获取完整文章”
- “查找有关MCP服务器的信息并提取详细内容”
📚 详细文档
依赖项
mcp>=1.12.3 - 模型上下文协议框架
requests>=2.31.0 - 用于网络请求和Brave Search API的HTTP库
beautifulsoup4>=4.12.0 - HTML解析和文本提取库
配置
服务器可以通过 .env 文件进行配置:
BRAVE_API_KEY=your_api_key_here
BRAVE_RATE_LIMIT_RPS=1
REQUEST_TIMEOUT=10
CONTENT_LENGTH_LIMIT=5000
MAX_RESPONSE_SIZE=10485760
Brave Search订阅套餐
服务器会根据您的Brave Search订阅自动调整速率限制:
- 免费套餐:每秒1次请求 (
BRAVE_RATE_LIMIT_RPS=1)
- 付费套餐:每秒20次请求 (
BRAVE_RATE_LIMIT_RPS=20)
- 高级套餐:每秒50次请求 (
BRAVE_RATE_LIMIT_RPS=50)
服务器将对所有并发请求强制执行配置的速率限制,以确保您不会超出API配额。
请参考 .env.example 获取模板。
🔧 技术细节
开发环境
本项目使用:
- Python 3.13+
- uv 进行依赖管理
- MCP SDK 实现协议
开发设置
要进行开发设置:
- 克隆仓库
- 运行
uv sync --dev --all-extras
- 进行更改
- 使用兼容MCP的客户端进行测试
调试
由于MCP服务器通过标准输入输出运行,调试可能具有挑战性。为获得最佳调试体验,强烈建议使用 MCP Inspector。
您可以通过 npm 使用以下命令启动MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /Users/wallison/TechProjects/mcp-server run url-text-fetcher
启动后,Inspector将显示一个URL,您可以在浏览器中访问该URL以开始调试。
📄 许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。