# Web-Scout: AI-Powered Search with LLM Summarization A FastAPI application that performs web searches using DuckDuckGo and generates AI-powered summaries using Google's Gemini AI. ## Features - Web search using DuckDuckGo - AI summarization using Gemini 2.5 Flash - Two output modes: Summary and Detailed analysis - Docker & Docker Compose ready - Secure API key management via environment variables - MCP (Model Context Protocol) support over HTTP ## Prerequisites - Docker and Docker Compose installed - Google Gemini API key ## Setup 1. **Clone the repository** (or navigate to your project directory) 2. **Add your Gemini API key** to the `.env` file: ```bash GEMINI_API_KEY=your_actual_gemini_api_key_here ``` 3. **Build and run with Docker Compose**: ```bash docker-compose up --build ``` ## API Usage The application will be available at `http://localhost:8000` ### Health Check ```bash curl http://localhost:8000/health ``` ### Search Endpoint #### Summary Mode (Default) ```bash curl "http://localhost:8000/search?query=artificial+intelligence" # or explicitly specify mode=summary curl "http://localhost:8000/search?query=artificial+intelligence&mode=summary" ``` #### Detailed Mode ```bash curl "http://localhost:8000/search?query=artificial+intelligence&mode=detailed" ``` #### Response Format ```json { "query": "your search query", "mode": "summary", "summary": "AI-generated analysis...", "sources_used": 10 } ``` ## MCP Server Integration Web-Scout can also function as an MCP (Model Context Protocol) server, allowing AI assistants to perform web searches directly through tools. ### MCP Features - **Web Search Tool**: Perform web searches with AI summarization - **Dual Mode Support**: Both summary and detailed analysis modes - **HTTP Transport**: MCP over HTTP protocol for client integration - **JSON Responses**: Structured output for easy integration ### MCP Tools Available #### Web Search Tool - **Name**: `web_search` - **Description**: Perform a web search using DuckDuckGo and generate AI-powered summaries - **Parameters**: - `query` (string, required): The search query to perform - `mode` (string, optional): Response mode - "summary" or "detailed" (default: "summary") ### MCP Server Setup Web-Scout provides MCP functionality over HTTP, accessible at the `/mcp` endpoint. #### Method 1: Direct FastAPI Server 1. Install dependencies: ```bash pip install -r requirements.txt ``` 2. Set your Gemini API key: ```bash export GEMINI_API_KEY=your_api_key_here ``` 3. Run the HTTP server with MCP endpoint: ```bash python main.py ``` The MCP endpoint will be available at `http://localhost:8000/mcp` #### Method 2: Docker Container ```bash # Run the HTTP server with Docker (MCP available at /mcp) docker-compose up --build ``` # Or run standalone container docker run -p 8000:8000 -e GEMINI_API_KEY=your_api_key_here web-scout ### Integrating with AI Tools To use Web-Scout as an MCP server with AI tools like Claude Desktop or Roo: 1. **Create MCP Configuration**: ```json { "mcpServers": { "web-scout": { "command": "python", "args": ["-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"], "env": { "GEMINI_API_KEY": "your_gemini_api_key_here" } } } } ``` 2. **Configure your AI tool** to use the MCP configuration: - For Claude Desktop: Add to `~/Library/Application Support/Claude/claude_desktop_config.json` - For Roo: Add to the appropriate configuration file 3. **Usage Example**: ``` Can you search for the latest news about artificial intelligence? ``` The AI tool will use the Web-Scout MCP server (via the `/mcp` endpoint) to perform the search and provide summarized results. ## Development ### Local Development (without Docker) ```bash # Install dependencies pip install -r requirements.txt # Set your API key export GEMINI_API_KEY=your_api_key_here # Run the application uvicorn main:app --reload ``` ### Using Docker Compose ```bash # Build and run docker-compose up --build # Run in background docker-compose up -d --build # Stop the application docker-compose down # View logs docker-compose logs -f web-scout ``` ## Configuration ### Environment Variables - `GEMINI_API_KEY`: Your Google Gemini API key (required) ### Docker Configuration - **Port**: 8000 - **Container name**: web-scout - **Health check**: Automatic health monitoring ## Security Notes - The `.env` file is ignored by Git and should never be committed - API keys are mounted securely via Docker Compose volumes - The application uses health checks for monitoring ## Error Handling - Returns proper HTTP status codes - Includes detailed error messages - Handles missing API keys and invalid parameters gracefully