Internet Search MCP Server
Integrates with CrewAI agents, where a Search Agent uses the internet_search MCP tool to retrieve web results and a Summary Agent compiles them into a coherent answer.
Provides web search functionality using DuckDuckGo, returning structured results with titles, URLs, snippets, and sources.
Integrates with PydanticAI agents, allowing them to use the internet_search MCP tool for web searches and then summarize the results.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Internet Search MCP Serversearch for latest AI agent frameworks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Internet Search Agent with Custom MCP Tool
This project is for the AI Engineer homework task:
Create a custom MCP tool named
internet_searchRegister it inside an MCP server
Test the MCP server independently
Connect the MCP server to a PydanticAI agent
Connect the MCP server to CrewAI agents
Use two CrewAI roles: Search Agent and Summary Agent
1. Project architecture
User query
│
▼
PydanticAI Agent OR CrewAI Search Agent
│
▼
Custom MCP Server over stdio
│
▼
internet_search MCP Tool
│
▼
DuckDuckGo web results
│
▼
Structured result: title, url, snippet, source
│
▼
Agent summarizes answer with sourcesRelated MCP server: web-mcp-server
2. Files
File | Purpose |
| MCP server exposing the custom |
| Pydantic models for structured search responses |
| Tests MCP server independently without LLM/API key |
| PydanticAI agent connected to the MCP server |
| CrewAI Search Agent + Summary Agent connected to MCP server |
| Environment variable template |
| Python dependencies |
3. Setup
Use Python 3.11 or 3.12.
python -m venv .venvWindows PowerShell:
.venv\Scripts\Activate.ps1macOS/Linux:
source .venv/bin/activateInstall dependencies:
pip install --upgrade pip
pip install -r requirements.txt4. Test the custom MCP tool directly
This step proves that the MCP server works independently.
python test_mcp_direct.py "AI engineering roadmap 2026"Expected behavior:
It prints available MCP tools
It calls
internet_searchIt prints structured JSON search results
This step does not need an OpenAI key.
5. Add API key for agent demos
Copy the example env file:
copy .env.example .envOn macOS/Linux:
cp .env.example .envThen edit .env and add your real API key:
OPENAI_API_KEY=sk-your-real-keyImportant: ChatGPT Plus is separate from API credits. PydanticAI and CrewAI need an API key from a model provider.
6. Run PydanticAI agent
python pydanticai_agent.py "Latest trends in AI agents"What happens:
PydanticAI starts the MCP server as a subprocess using stdio.
The agent receives your question.
The agent calls the
internet_searchMCP tool.The agent summarizes the returned search results.
7. Run CrewAI agents
python crewai_agents.py "Latest trends in AI product management"CrewAI roles:
Search Agent: calls theinternet_searchMCP toolSummary Agent: cleans and summarizes the information
The tasks run sequentially:
Search task
Summary task
8. Optional: Test with MCP Inspector
You can inspect the MCP server visually with:
npx -y @modelcontextprotocol/inspectorFor stdio server configuration, use:
Command:
pythonArgs:
internet_search_mcp_server.py
9. What to tell your sir/demo explanation
I created a custom MCP server using Python FastMCP. It exposes a tool called
internet_search, which accepts a user query and returns structured web search results. I tested the server independently using the MCP Python client. Then I integrated the same MCP server with PydanticAI usingMCPServerStdio. Finally, I integrated it with CrewAI using a Search Agent and Summary Agent. The Search Agent retrieves search results through MCP, and the Summary Agent converts them into a clean final answer with sources.
10. Common errors
OPENAI_API_KEY is missing
Run the direct test first:
python test_mcp_direct.py "AI agents"For PydanticAI/CrewAI, create .env and add your key.
DuckDuckGo search failed
Check internet connection. Try a smaller query or run again after a few seconds.
Import errors with CrewAI MCP
Upgrade packages:
pip install --upgrade crewai crewai-tools "mcp[cli]"This server cannot be deployed
Maintenance
Related MCP Connectors
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.
Turn any public website into an MCP server for agents to search, read and navigate.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceThis MCP server provides tools for AI agents to search the web, fetch page content, and query specific elements from pages using DuckDuckGo.9 npm-
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes web_search and web_fetch tools, allowing LLM applications to search the web via DuckDuckGo and fetch page content as cleaned markdown.-
- AlicenseNot gradedqualityDmaintenanceSmall Python MCP server that provides web search and page fetching tools via DuckDuckGo, requiring no API key.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for internet search via direct Google and DuckDuckGo HTML scraping with AI-powered result normalization and optional summarization, requiring no API keys for search.MIT