exa web search.com
exa web search.com logo

Exa Web Search

Integrates with Exa API to enable web search capabilities with filtering options for domains, text requirements, and dat...

Created byApr 22, 2025

ReActMCP Web Search

ReActMCP Web Search is an MCP (Model Context Protocol) server that integrates web search capabilities into your AI assistant framework. It leverages the Exa API to perform both basic and advanced web searches, returning real-time, markdown-formatted results including titles, URLs, publication dates, and content summaries.
This repository is part of the broader ReActMCP project that connects various MCP tools and servers to empower your AI assistant with a wide range of capabilities.

Table of Contents

  • Features
  • Requirements
  • Installation
  • Configuration
  • Usage
  • Troubleshooting
  • License
  • Contributing

Features

  • Basic Web Search: Perform simple searches using the Exa API.
  • Advanced Web Search: Use additional filtering options such as domain restrictions, text inclusion requirements, and date filters.
  • Markdown Output: Format search results in Markdown to easily incorporate titles, URLs, and summaries.
  • MCP Integration: Easily add this tool into your MCP server ecosystem for multi-tool AI assistance.

Requirements

  • Python 3.8+
  • Other dependencies that may be required by your MCP framework

Installation

  1. Clone the Repository
  1. Create a Virtual Environment (Optional but recommended)
  1. Install Dependencies

Configuration

Environment Variables

Create a .env file in the project root directory with at least the following variable:
This key is required by the Exa API for performing web searches.

MCP Configuration

The MCP configuration file mcp_config.json defines the settings and tools available to your MCP server. An example configuration is provided:
You can personalize or extend this configuration by modifying parameters such as default number of results or adding new MCP tools.

System Prompt

The system_prompt.txt file configures the behavior and tone of your AI assistant. It guides responses to be friendly, engaging, and informative, with the inclusion of emojis. An example prompt is provided:
Feel free to adjust the system prompt to align with your desired assistant behavior.

Usage

Running the Web Search Server

The MCP servers is implemented in servers directory. To run a server, simply execute it :
This command will start the MCP server which listens for requests and exposes the following tools:
  • search_web: Perform basic web searches.
  • advanced_search_web: Perform advanced web searches with filtering options.

Testing the Tools

Within web_search.py, a test function test_search() is provided (currently commented out) to demonstrate basic usage of the search capabilities. You can run this test by uncommenting the test execution block and using Python's asyncio runner:
This will print search results for sample queries and help you verify that the tool is functioning as expected.

Claude Desktop Configuration:

Configure Claude Desktop to use this server by adding the following to your configuration:

Troubleshooting

  • Missing EXA_API_KEY: Ensure that the .env file is properly set up with your valid Exa API key.
  • Dependency Issues: Verify that all necessary Python packages are installed (check your requirements.txt file). Reinstall packages if needed.
  • API Errors: If you encounter errors during web searches, check your network connection and verify the Exa API status.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! If you have suggestions, bug fixes, or improvements, please open an issue or submit a pull request.
Happy coding and enjoy building your personalized, multi-tool AI assistant with ReActMCP Web Search!

Star History

ReActMCP Web Search

ReActMCP Web Search is an MCP (Model Context Protocol) server that integrates web search capabilities into your AI assistant framework. It leverages the Exa API to perform both basic and advanced web searches, returning real-time, markdown-formatted results including titles, URLs, publication dates, and content summaries.
This repository is part of the broader ReActMCP project that connects various MCP tools and servers to empower your AI assistant with a wide range of capabilities.

Table of Contents

  • Features
  • Requirements
  • Installation
  • Configuration
  • Usage
  • Troubleshooting
  • License
  • Contributing

Features

  • Basic Web Search: Perform simple searches using the Exa API.
  • Advanced Web Search: Use additional filtering options such as domain restrictions, text inclusion requirements, and date filters.
  • Markdown Output: Format search results in Markdown to easily incorporate titles, URLs, and summaries.
  • MCP Integration: Easily add this tool into your MCP server ecosystem for multi-tool AI assistance.

Requirements

  • Python 3.8+
  • Other dependencies that may be required by your MCP framework

Installation

  1. Clone the Repository
  1. Create a Virtual Environment (Optional but recommended)
  1. Install Dependencies

Configuration

Environment Variables

Create a .env file in the project root directory with at least the following variable:
This key is required by the Exa API for performing web searches.

MCP Configuration

The MCP configuration file mcp_config.json defines the settings and tools available to your MCP server. An example configuration is provided:
You can personalize or extend this configuration by modifying parameters such as default number of results or adding new MCP tools.

System Prompt

The system_prompt.txt file configures the behavior and tone of your AI assistant. It guides responses to be friendly, engaging, and informative, with the inclusion of emojis. An example prompt is provided:
Feel free to adjust the system prompt to align with your desired assistant behavior.

Usage

Running the Web Search Server

The MCP servers is implemented in servers directory. To run a server, simply execute it :
This command will start the MCP server which listens for requests and exposes the following tools:
  • search_web: Perform basic web searches.
  • advanced_search_web: Perform advanced web searches with filtering options.

Testing the Tools

Within web_search.py, a test function test_search() is provided (currently commented out) to demonstrate basic usage of the search capabilities. You can run this test by uncommenting the test execution block and using Python's asyncio runner:
This will print search results for sample queries and help you verify that the tool is functioning as expected.

Claude Desktop Configuration:

Configure Claude Desktop to use this server by adding the following to your configuration:

Troubleshooting

  • Missing EXA_API_KEY: Ensure that the .env file is properly set up with your valid Exa API key.
  • Dependency Issues: Verify that all necessary Python packages are installed (check your requirements.txt file). Reinstall packages if needed.
  • API Errors: If you encounter errors during web searches, check your network connection and verify the Exa API status.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! If you have suggestions, bug fixes, or improvements, please open an issue or submit a pull request.
Happy coding and enjoy building your personalized, multi-tool AI assistant with ReActMCP Web Search!

Star History