该项目提供了一个使用**crawl4ai**库进行网络爬取和智能内容提取任务的MCP(模型上下文协议)服务器。它允许AI代理(如Claude或使用LangChain/LangGraph构建的代理)与网页交互,检索内容,搜索特定文本,并根据自然语言指令执行基于LLM的内容提取。
此服务器使用:
.env文件管理API密钥。scrape_url: 获取网页内容并以Markdown格式返回。extract_text_by_query: 根据查询在页面上查找特定文本片段。smart_extract: 使用配置的LLM(当前需要Google Gemini API密钥)根据自然语言指令提取结构化信息。Dockerfile),便于独立部署。scrape_url爬取一个网页并返回其内容的Markdown格式。
参数:
url (str, 必需): 要爬取的网页URL。返回值:
extract_text_by_query从包含特定搜索查询的网页中提取相关文本片段。返回找到的前5个匹配项。
参数:
url (str, 必需): 要在其内搜索的网页URL。query (str, 必需): 要搜索的文本查询(不区分大小写)。context_size (int, 可选): 在每个片段中包含匹配查询文本前后字符的数量。默认为300。返回值:
smart_extract根据自然语言指令使用配置的LLM(当前需要Google Gemini API密钥)从网页中智能地提取特定信息。
参数:
url (str, 必需): 要分析和从中提取信息的网页URL。instruction (str, 必需): 自然语言指令,指定要提取的信息(例如,“列出此页面上提到的所有演讲者”,“提取主要联系电子邮件地址”,“总结关键发现”)。返回值:
您可以选择本地运行此服务器或使用提供的Docker配置。
该方法捆绑了Python和所有必要的库。您只需要在主机机器上安装Docker。
git clone https://github.com/your-username/your-repo-name.git # 替换为您的仓库URL
cd your-repo-name
.env文件: 在项目根目录下创建一个名为.env的文件,并添加您的API密钥:
# 对于smart_extract工具是必需的
GOOGLE_API_KEY=your_google_ai_api_key_here
# 可选,服务器检查但当前版本的工具未使用
# OPENAI_API_KEY=your_openai_key_here
# MISTRAL_API_KEY=your_mistral_key_here
docker build -t crawl4ai-mcp-server .
--env-file将本地.env文件中的API密钥安全地传递到容器的环境中。
docker run -it --rm -p 8002:8002 --env-file .env crawl4ai-mcp-server
-it: 交互式运行。--rm: 容器退出时删除。-p 8002:8002: 将主机端口8002映射到容器端口8002。--env-file .env: 从本地.env文件加载环境变量到容器中。对于API密钥至关重要。crawl4ai-mcp-server: 您构建的镜像名称。http://0.0.0.0:8002)。http://127.0.0.1:8002/sse,并设置transport: "sse"。这需要在主机机器上安装Python和手动安装依赖项。
crawl4ai需求,建议使用3.10+)。git clone https://github.com/your-username/your-repo-name.git # 替换为您的仓库URL
cd your-repo-name
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
(或使用Conda: conda create --name crawl4ai-env python=3.11 -y && conda activate crawl4ai-env)pip install -r requirements.txt
.env文件: 在项目根目录下创建一个名为.env的文件,并添加您的API密钥(与Docker设置步骤3相同的内容)。python your_server_script_name.py # 例如,python webcrawl_mcp_server.py
http://127.0.0.1:8002/sse上监听。http://127.0.0.1:8002/sse。服务器使用以下环境变量,通常从.env文件加载:
GOOGLE_API_KEY: 对于smart_extract工具的功能是必需的(使用Google Gemini)。从Google AI Studio获取。OPENAI_API_KEY: 存在被检查但在此版本中任何工具均未使用。MISTRAL_API_KEY: 存在被检查但在此版本中任何工具均未使用。# 使用之前设置的代理CLI示例
您: scrape_url https://example.com
代理: 正在思考...
[代理调用scrape_url工具]
代理: [example.com的Markdown内容]
------------------------------
您: 从https://en.wikipedia.org/wiki/Web_scraping使用查询"伦理考虑"提取文本
代理: 正在思考...
[代理调用extract_text_by_query工具]
代理: 在页面上找到了X个关于'伦理考虑'的匹配项。以下是相关的部分:
匹配1:
... 文本片段 ...
---
匹配2:
... 文本片段 ...
------------------------------
您: 在https://blog.google/technology/ai/google-gemini-ai/上使用smart_extract获取关于Gemini模型的主要要点
代理: 正在思考...
[代理使用Google API Key调用smart_extract工具]
代理: 成功根据您的指令提取了信息:
{
"main_points": [
"Gemini是Google最强大的AI模型家族(Ultra、Pro、Nano)。",
"设计为多模态,理解文本、代码、音频、图像、视频。",
"在各种基准测试中优于之前的模型。",
"正在集成到Google产品中,如Bard和Pixel。"
]
}
your_server_script_name.py: MCP服务器的主要Python脚本(例如,webcrawl_mcp_server.py)。Dockerfile: 构建Docker容器镜像的说明。requirements.txt: Python依赖项。.env.example: (推荐)显示所需密钥的示例环境文件。不要提交实际的.env文件。.gitignore: 指定Git有意忽略的文件(应包括.env)。README.md: 此文件。(如有需要,添加贡献指南)
(指定您的许可证,例如MIT许可证)