Search1APIDocs

CrewAI

Give CrewAI agents live web search, news, agentic search, and page reading by connecting them to the hosted Search1API MCP server.

CrewAI agents can use Search1API through the hosted MCP server at https://mcp.search1api.com/mcp. No extra package is needed: CrewAI's mcps field connects to the server, discovers its tools, and hands them to the agent. You get web search, news, agentic search, and page reading from one connection.

Install

pip install crewai mcp

Create a key in the dashboard, then export it:

export SEARCH1API_API_KEY="your-api-key"

Add Search1API to an agent

Pass an MCPServerHTTP configuration with the key in the Authorization header. The tool filter keeps the agent to the tools a research crew needs.

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)

The agent picks a model the usual CrewAI way, from llm= or your environment.

Tools

The server exposes the same tools to CrewAI as to any MCP client. The ones most useful for agents:

ToolWhat it doesCredits
searchWeb search across engines such as Google, Bing, Reddit, GitHub, and YouTube1
newsRecent news articles1
askDescribe what you need; Search1API picks the sources and time range5
crawlRead a known URL as clean text1
sitemapList the links on a site1
deepcrawlRead many pages of one site, such as a docs section20 per task

maps and trending are also available. See the MCP server page for every tool and its inputs, and Credits and limits for current rates.

Two tools are meant for chat apps rather than agents: render_results draws source cards in a client UI, and send_feedback reports problems to the Search1API team. Leave them out of allowed_tool_names for crews.

CrewAI prefixes each tool with the server name, so the agent sees names such as mcp_search1api_com_mcp_search. Tool filters use the plain names shown above.

Quick setup with a URL

For a quick test, CrewAI also accepts the server as a string. Add #search to load only one tool:

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"],
)

This puts the key in a URL, where it can end up in logs. Use the header configuration above for anything you deploy.

CrewBase projects

In a project created with crewai create crew, set mcps on the agent inside its @agent method:

@agent
def researcher(self) -> Agent:
    return Agent(config=self.agents_config["researcher"], mcps=[search1api])

Prefer mcps over mcp_server_params and MCPServerAdapter. With crewai-tools 1.15, the adapter sends unset optional arguments as null, and search and news calls are rejected with an input validation error on time_range. The mcps field does not have this problem.

On this page