The date filter is what makes this worth connecting: "only results from the last thirty days" is the difference between a current answer and a confidently stale one, and a plain search tool has no way to express it. Restricting to specific domains does the same job for trustworthiness — pin the query to the official documentation site and the model stops citing a years-old forum thread.
A small MCP server that puts the Exa search API behind two tools and formats the results as markdown rather than as raw JSON, so what reaches the model already reads like a citation list. It is one server out of the wider ReActMCP project.
- search_web — a straightforward query, returning titles, URLs, publication dates and content summaries
- advanced_search_web — the same, plus filters: include_domains to restrict which sites count, required text that must appear in the page, and max_age_days to exclude anything older
- Results arrive pre-formatted as markdown, so an assistant can cite URLs without reassembling them
- A published container image that runs the server over stdio with the key supplied at runtime
- The repository also ships an optional OpenAI and LangGraph host, which is a separate program — the MCP entry point is the Exa search server itself
An Exa API key in EXA_API_KEY, and Python 3.8 or later with exa-py installed. Clone the repository and run the search server directly, or run the container image with the key passed in. Exa bills you under your own plan; the server adds no cost of its own and holds no state.
One command plus a key — uv pip install -r requirements.txt, then supply credentials
