Exa¶
The Exa MCP Server connects your ADK agent to Exa's search engine, a platform built specifically for AI. This gives your agent the ability to search for relevant webpages, find similar content based on a link, retrieve clean, parsed content from URLs, get direct answers to questions, and automate in-depth research reports using natural language.
Use cases¶
-
Find Code & Technical Examples: Search across GitHub, documentation, and technical forums to find up-to-date code snippets, API usage patterns, and implementation examples.
-
Perform In-Depth Research: Launch comprehensive research reports on complex topics, gather detailed information on companies, or find professional profiles on LinkedIn.
-
Access Real-Time Web Content: Perform general web searches to get up-to-date information or extract the full content from specific articles, blog posts, or web pages.
Prerequisites¶
- Create an API Key in Exa. Refer to the documentation for more information.
Use with agent¶
from google.adk.agents import Agent
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
from mcp import StdioServerParameters
EXA_API_KEY = "YOUR_EXA_API_KEY"
root_agent = Agent(
model="gemini-2.5-pro",
name="exa_agent",
instruction="Help users get information from Exa",
tools=[
MCPToolset(
connection_params=StdioConnectionParams(
server_params = StdioServerParameters(
command="npx",
args=[
"-y",
"exa-mcp-server",
# (Optional) Specify which tools to enable
# If you don't specify any tools, all tools enabled by default will be used.
# "--tools=get_code_context_exa,web_search_exa",
],
env={
"EXA_API_KEY": EXA_API_KEY,
}
),
timeout=30,
),
)
],
)
from google.adk.agents import Agent
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPServerParams
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
EXA_API_KEY = "YOUR_EXA_API_KEY"
root_agent = Agent(
model="gemini-2.5-pro",
name="exa_agent",
instruction="""Help users get information from Exa""",
tools=[
MCPToolset(
connection_params=StreamableHTTPServerParams(
url="https://mcp.exa.ai/mcp?exaApiKey=" + EXA_API_KEY,
# (Optional) Specify which tools to enable
# If you don't specify any tools, all tools enabled by default will be used.
# url="https://mcp.exa.ai/mcp?exaApiKey=" + EXA_API_KEY + "&enabledTools=%5B%22crawling_exa%22%5D",
),
)
],
)
Available tools¶
| Tool |
Description |
|---|---|
get_code_context_exa |
Search and get relevant code snippets, examples, and documentation from open source libraries, GitHub repositories, and programming frameworks. Perfect for finding up-to-date code documentation, implementation examples, API usage patterns, and best practices from real codebases. |
web_search_exa |
Performs real-time web searches with optimized results and content extraction. |
company_research |
Comprehensive company research tool that crawls company websites to gather detailed information about businesses. |
crawling |
Extracts content from specific URLs, useful for reading articles, PDFs, or any web page when you have the exact URL. |
linkedin_search |
Search LinkedIn for companies and people using Exa AI. Simply include company names, person names, or specific LinkedIn URLs in your query. |
deep_researcher_start |
Start a smart AI researcher for complex questions. The AI will search the web, read many sources, and think deeply about your question to create a detailed research report. |
deep_researcher_check |
Check if your research is ready and get the results. Use this after starting a research task to see if it's done and get your comprehensive report. |
Configuration¶
To specify which tools to use in the Local Exa MCP server, you can use the
--tools parameter:
--tools=get_code_context_exa,web_search_exa,company_research,crawling,linkedin_search,deep_researcher_start,deep_researcher_check
To specify which tools to use in the Remote Exa MCP server, you can use the
enabledTools URL parameter: