ReActMCP Web Search

by mshojaei77

Integrations

  • Loads environment variables from a .env file for configuration, specifically used to store and access the EXA_API_KEY required for web searches

  • Integrates with the exa_py GitHub client to perform web searches via the Exa API

  • Formats web search results in Markdown to easily incorporate titles, URLs, and summaries into AI assistant responses

Búsqueda web de ReActMCP

ReActMCP Web Search es un servidor MCP (Protocolo de Contexto de Modelo) que integra funciones de búsqueda web en el framework de tu asistente de IA. Aprovecha la API de Exa para realizar búsquedas web básicas y avanzadas, devolviendo resultados en tiempo real con formato Markdown, incluyendo títulos, URL, fechas de publicación y resúmenes de contenido.

Este repositorio es parte del proyecto más amplio ReActMCP que conecta varias herramientas y servidores MCP para empoderar a su asistente de IA con una amplia gama de capacidades.


Tabla de contenido


Características

  • Búsqueda web básica : realice búsquedas simples utilizando la API de Exa.
  • Búsqueda web avanzada : utilice opciones de filtrado adicionales, como restricciones de dominio, requisitos de inclusión de texto y filtros de fecha.
  • Salida de Markdown : formatee los resultados de búsqueda en Markdown para incorporar fácilmente títulos, URL y resúmenes.
  • Integración con MCP : agregue fácilmente esta herramienta a su ecosistema de servidor MCP para obtener asistencia de inteligencia artificial con múltiples herramientas.

Requisitos

  • Python 3.8+
  • python-dotenv
  • exa_py (cliente de API Exa)
  • Otras dependencias que puede requerir su marco MCP

Instalación

  1. Clonar el repositorio
    git clone https://github.com/mshojaei77/ReActMCP.git cd ReActMCP
  2. Crear un entorno virtual (opcional pero recomendado)
    python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
  3. Instalar dependencias
    pip install -r requirements.txt

Configuración

Variables de entorno

Cree un archivo .env en el directorio raíz del proyecto con al menos la siguiente variable:

EXA_API_KEY=your_exa_api_key_here OPENAI_API_KEY=...

La API de Exa requiere esta clave para realizar búsquedas web.

Configuración de MCP

El archivo de configuración de MCP, mcp_config.json define la configuración y las herramientas disponibles para su servidor MCP. Se proporciona un ejemplo de configuración:

{ "websearch": { "script": "web_search.py", "encoding_error_handler": "ignore", "description": "Web search capability using Exa API that provides real-time internet search results. Supports both basic and advanced search with filtering options including domain restrictions, text inclusion requirements, and date filtering. Returns formatted results with titles, URLs, publication dates, and content summaries.", "required_env_vars": ["EXA_API_KEY"], "active": true }, "settings": { "model": "gpt-4o", "system_prompt_path": "system_prompt.txt" } }

Puede personalizar o ampliar esta configuración modificando parámetros como el número predeterminado de resultados o agregando nuevas herramientas MCP.

Indicador del sistema

El archivo system_prompt.txt configura el comportamiento y el tono de tu asistente de IA. Guía las respuestas para que sean amigables, atractivas e informativas, incluyendo emojis. Se proporciona un ejemplo de mensaje:

You are a helpful, knowledgeable AI assistant with web search capabilities. Your goal is to provide accurate, comprehensive, and up-to-date information to users. Use lots of emojis and make your responses fun and engaging. ## Available Search Tools - `search_web`: Basic web search that returns results based on a query - `advanced_search_web`: Advanced search with filtering options for domains, required text, and date ranges ## Guidelines for Responding to Questions 1. For current information or facts that might have changed since your training data, use the appropriate search tool to find the most recent and relevant information. 2. Use `search_web` for general queries and `advanced_search_web` with appropriate filters for more specific needs. 3. Formulate precise search queries to maximize result relevance. 4. For recent information, use the `max_age_days` parameter in advanced search to limit results to recent publications. 5. When targeting specific sources, use the `include_domains` parameter to focus your search. 6. Cite sources by including URLs from search results. 7. For insufficient or contradictory results, acknowledge limitations and explain findings. 8. Break down complex topics into organized sections. 9. Provide balanced perspectives on controversial topics. 10. Be transparent about uncertainty rather than making up information. 11. Maintain a helpful, informative, and conversational tone. ## Response Quality Standards Your responses should be well-structured, factually accurate, and tailored to the user's level of understanding on the topic. Use the web search capabilities as your primary tools for accessing current information before responding to time-sensitive or factual queries.

Siéntase libre de ajustar el mensaje del sistema para alinearlo con el comportamiento deseado del asistente.


Uso

Ejecución del servidor de búsqueda web

Los servidores MCP se implementan en el directorio servers . Para ejecutar un servidor, simplemente ejecútelo:

python servers/web_search.py

Este comando iniciará el servidor MCP que escucha las solicitudes y expone las siguientes herramientas:

  • search_web : Realiza búsquedas web básicas.
  • advanced_search_web : Realiza búsquedas web avanzadas con opciones de filtrado.

Probando las herramientas

En web_search.py , se proporciona una función de prueba test_search() (actualmente comentada) para demostrar el uso básico de las funciones de búsqueda. Puede ejecutar esta prueba descomentando el bloque de ejecución de la prueba y usando el ejecutor asyncio de Python:

if __name__ == "__main__": import asyncio # Uncomment the following line to perform a test search # asyncio.run(test_search()) mcp.run()

Esto imprimirá resultados de búsqueda para consultas de muestra y le ayudará a verificar que la herramienta esté funcionando como se espera.


Configuración de escritorio de Claude:

Configure Claude Desktop para usar este servidor agregando lo siguiente a su configuración:

{ "mcpServers": { "websearch": { "command": "python", "args": ["path/to/servers/exa_web_search.py"] } } }

Solución de problemas

  • EXA_API_KEY faltante: asegúrese de que el archivo .env esté configurado correctamente con su clave API Exa válida.
  • Problemas de dependencia: Verifique que todos los paquetes de Python necesarios estén instalados (revise el archivo requirements.txt ). Reinstale los paquetes si es necesario.
  • Errores de API: si encuentra errores durante las búsquedas web, verifique su conexión de red y verifique el estado de la API de Exa.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.


Contribuyendo

¡Agradecemos sus contribuciones! Si tiene sugerencias, correcciones o mejoras, abra un problema o envíe una solicitud de incorporación de cambios.

¡Feliz codificación y disfruta creando tu asistente de IA personalizado y multiherramienta con ReActMCP Web Search! 🚀😊

Historia de las estrellas

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Un servidor MCP que integra capacidades de búsqueda web en tiempo real en asistentes de IA mediante la API Exa, brindando funcionalidad de búsqueda básica y avanzada con resultados de Markdown formateados.

  1. Table of Contents
    1. Features
      1. Requirements
        1. Installation
          1. Configuration
            1. Environment Variables
            2. MCP Configuration
            3. System Prompt
          2. Usage
            1. Running the Web Search Server
            2. Testing the Tools
          3. Claude Desktop Configuration:
            1. Troubleshooting
              1. License
                1. Contributing
                  1. Star History
                    ID: 83o9on4ihz