CrewAI
连接托管的 Search1API MCP 服务器,为 CrewAI 智能体提供实时网页搜索、新闻、智能搜索和页面读取。
CrewAI 智能体可以通过托管的 MCP 服务器(https://mcp.search1api.com/mcp)使用 Search1API,无需额外安装包:CrewAI 的 mcps 字段会连接服务器、发现工具并交给智能体。一个连接即可获得网页搜索、新闻、智能搜索和页面读取。
安装
pip install crewai mcp在仪表盘创建密钥,然后导出:
export SEARCH1API_API_KEY="your-api-key"为智能体接入 Search1API
传入一个 MCPServerHTTP 配置,把密钥放在 Authorization 请求头里。工具过滤器让智能体只拿到研究任务需要的工具。
import os
from crewai import Agent, Crew, Task
from crewai.mcp import MCPServerHTTP
from crewai.mcp.filters import create_static_tool_filter
search1api = MCPServerHTTP(
url="https://mcp.search1api.com/mcp",
headers={"Authorization": f"Bearer {os.environ['SEARCH1API_API_KEY']}"},
tool_filter=create_static_tool_filter(
allowed_tool_names=["search", "news", "ask", "crawl"]
),
cache_tools_list=True,
)
researcher = Agent(
role="Research Analyst",
goal="Answer questions with current, cited sources from the web",
backstory="You search first, read the most relevant pages, and cite every claim.",
mcps=[search1api],
)
task = Task(
description="What changed in CrewAI this month? Read the release notes before answering.",
expected_output="A short summary with a source URL for each change",
agent=researcher,
)
result = Crew(agents=[researcher], tasks=[task]).kickoff()
print(result)智能体使用的模型按 CrewAI 的常规方式选择:通过 llm= 或环境变量。
工具
服务器向 CrewAI 提供的工具与其他 MCP 客户端相同。对智能体最有用的几个:
| 工具 | 作用 | 积分 |
|---|---|---|
search | 网页搜索,覆盖 Google、Bing、Reddit、GitHub、YouTube 等引擎 | 1 |
news | 近期新闻 | 1 |
ask | 描述你的需求,由 Search1API 选择来源和时间范围 | 5 |
crawl | 把已知 URL 读成干净的正文 | 1 |
sitemap | 列出网站上的链接 | 1 |
deepcrawl | 读取同一网站的多个页面,例如一整节文档 | 每个任务 20 |
另外还有 maps 和 trending。全部工具及其参数见 MCP 服务器,当前计费见积分与限制。
有两个工具是为聊天应用设计的,不适合智能体:render_results 在客户端界面里绘制来源卡片,send_feedback 向 Search1API 团队反馈问题。给 crew 配置时,不要把它们放进 allowed_tool_names。
CrewAI 会给每个工具加上服务器名前缀,所以智能体看到的名字类似 mcp_search1api_com_mcp_search。工具过滤器使用上表中的原始名称。
用 URL 快速接入
快速测试时,CrewAI 也接受字符串形式的服务器地址。末尾加 #search 表示只加载这一个工具:
researcher = Agent(
role="Research Analyst",
goal="Answer questions with current sources",
backstory="You search before you answer.",
mcps=[f"https://mcp.search1api.com/mcp?apiKey={os.environ['SEARCH1API_API_KEY']}#search"],
)这种写法会把密钥放进 URL,可能被记录到日志里。正式部署请使用上面的请求头配置。
CrewBase 项目
在用 crewai create crew 创建的项目里,在智能体的 @agent 方法中设置 mcps:
@agent
def researcher(self) -> Agent:
return Agent(config=self.agents_config["researcher"], mcps=[search1api])请使用 mcps,不要用 mcp_server_params 和 MCPServerAdapter。在 crewai-tools 1.15 中,适配器会把未设置的可选参数作为 null 发送,search 和 news 调用会因 time_range 校验失败而被拒绝。mcps 字段没有这个问题。
相关内容
- MCP 服务器:认证、OAuth 和全部工具
- LangChain:LangChain 智能体的原生工具
- CrewAI MCP 文档