Skip to main content
A single search engine rarely captures everything. Combining multiple search sources—semantic search, traditional web search, news—gives agents a more complete picture when researching topics. This example uses two MCP servers for different search capabilities. The agent synthesizes results from both to produce comprehensive research.
import asyncio
from dedalus_labs import AsyncDedalus, DedalusRunner
from dotenv import load_dotenv

load_dotenv()

async def main():
    client = AsyncDedalus()
    runner = DedalusRunner(client)

    result = await runner.run(
        input="""Research the latest developments in AI agents for 2024:
        1. Find recent news articles about AI agent breakthroughs
        2. Search for academic papers on multi-agent systems
        3. Look up companies working on AI agents
        4. Summarize the key trends with relevant links""",
        model="openai/gpt-4o-mini",
        mcp_servers=[
            "joerup/exa-mcp",         # Semantic search
            "tsion/brave-search-mcp"   # Web search
        ]
    )

    print(result.final_output)

if __name__ == "__main__":
    asyncio.run(main())

Available Search Servers

ServerCapability
tsion/brave-search-mcpPrivacy-focused web search
joerup/exa-mcpSemantic search, good for finding related content
windsor/exa-search-mcpAlternative Exa integration

Why Multiple Sources

Exa’s semantic search excels at finding conceptually related content—papers that discuss similar ideas even if they don’t share keywords. Brave search handles current events and specific queries better. Together, they cover more ground than either alone. The same pattern applies to any multi-source research: combine a general search with a specialized database, or mix news search with academic search.