webcat

Kode-Rex/webcat

3.2

If you are the rightful owner of webcat and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Web Cat MCP is a Model Context Protocol server that enhances AI models with web search and content extraction capabilities.

WebCat MCP Server

Web search and content extraction for AI models via Model Context Protocol (MCP)

Version Docker

Quick Start

# Run WebCat with Docker (30 seconds to working demo)
docker run -p 8000:8000 tmfrisinger/webcat:latest

# Open demo client
open http://localhost:8000/demo

WebCat Demo Client

What is WebCat?

WebCat is an MCP (Model Context Protocol) server that provides AI models with:

  • šŸ” Web Search - Serper API (premium) or DuckDuckGo (free)
  • šŸ“„ Content Extraction - Clean markdown conversion with Trafilatura
  • 🌐 SSE Streaming - Real-time results via Server-Sent Events
  • šŸŽØ Demo UI - Interactive testing interface

Built with FastAPI and FastMCP for seamless AI integration.

Features

  • āœ… No Authentication Required - Simple setup
  • āœ… Automatic Fallback - Serper API → DuckDuckGo if needed
  • āœ… Smart Content Extraction - Trafilatura removes navigation/ads/chrome
  • āœ… MCP Compliant - Works with Claude Desktop, LiteLLM, etc.
  • āœ… Rate Limited - Configurable protection
  • āœ… Docker Ready - One command deployment
  • āœ… Parallel Processing - Fast concurrent scraping

Installation & Usage

Docker (Recommended)

# With Serper API (best results)
docker run -p 8000:8000 -e SERPER_API_KEY=your_key tmfrisinger/webcat:2.2.0

# Free tier (DuckDuckGo only)
docker run -p 8000:8000 tmfrisinger/webcat:2.2.0

# Custom configuration
docker run -p 9000:9000 \
  -e PORT=9000 \
  -e SERPER_API_KEY=your_key \
  -e RATE_LIMIT_WINDOW=60 \
  -e RATE_LIMIT_MAX_REQUESTS=10 \
  tmfrisinger/webcat:2.2.0

Local Development

cd docker
python -m pip install -e ".[dev]"

# Start MCP server
python mcp_server.py

# Or start demo server with UI
python simple_demo.py

Available Endpoints

EndpointDescription
http://localhost:8000/demošŸŽØ Interactive demo UI
http://localhost:8000/healthšŸ’— Health check
http://localhost:8000/statusšŸ“Š Server status
http://localhost:8000/mcpšŸ› ļø MCP protocol endpoint
http://localhost:8000/ssešŸ”— SSE streaming

Configuration

Environment Variables

VariableDefaultDescription
SERPER_API_KEY(none)Serper API key for premium search (optional)
PORT8000Server port
LOG_LEVELINFOLogging level (DEBUG, INFO, WARNING, ERROR)
LOG_DIR/tmpLog file directory
RATE_LIMIT_WINDOW60Rate limit window in seconds
RATE_LIMIT_MAX_REQUESTS10Max requests per window

Get a Serper API Key

  1. Visit serper.dev
  2. Sign up for free tier (2,500 searches/month)
  3. Copy your API key
  4. Pass to Docker: -e SERPER_API_KEY=your_key

MCP Tools

WebCat exposes these tools via MCP:

ToolDescriptionParameters
searchSearch web and extract contentquery: str, max_results: int
scrape_urlScrape specific URLurl: str
health_checkCheck server health(none)
get_server_infoGet server capabilities(none)

Architecture

MCP Client (Claude, LiteLLM)
    ↓
FastMCP Server (SSE Transport)
    ↓
Search Decision
    ā”œā”€ Serper API (premium) → Content Scraper
    └─ DuckDuckGo (free)    → Content Scraper
                                    ↓
                            Trafilatura (markdown)
                                    ↓
                            Structured Response

Testing

cd docker

# Run all tests
python -m pytest tests/unit -v

# With coverage
python -m pytest tests/unit --cov=. --cov-report=term --cov-report=html

# CI-safe (no external dependencies)
python -m pytest -v -m "not integration"

Current test coverage: 70%+ across all modules

Development

# Install with dev dependencies
pip install -e ".[dev]"

# Format code
make format

# Lint code
make lint

# Run tests
make test

# Full CI check
make ci

Project Structure

docker/
ā”œā”€ā”€ mcp_server.py          # Main MCP server
ā”œā”€ā”€ simple_demo.py         # Demo server with UI
ā”œā”€ā”€ clients/               # Serper & DuckDuckGo clients
ā”œā”€ā”€ services/              # Content scraping & search
ā”œā”€ā”€ tools/                 # MCP tool implementations
ā”œā”€ā”€ models/                # Pydantic data models
│   ā”œā”€ā”€ domain/           # Domain entities
│   └── responses/        # API responses
ā”œā”€ā”€ endpoints/            # FastAPI endpoints
└── tests/                # Comprehensive test suite

Search Quality Comparison

FeatureSerper APIDuckDuckGo
CostPaid (free tier available)Free
Quality⭐⭐⭐⭐⭐ Excellent⭐⭐⭐⭐ Good
CoverageComprehensive (Google-powered)Standard
SpeedFastFast
Rate Limits2,500/month (free tier)None

Limitations

  • Text-focused: Optimized for article content, not multimedia
  • Rate limits: Respects configured limits to prevent abuse
  • No JavaScript: Cannot scrape dynamic JS-rendered content
  • PDF support: Detection only, not full extraction

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Ensure make ci passes
  5. Submit a Pull Request

See for development guidelines and architecture standards.

License

MIT License - see file for details.

Links


Version 2.2.0 | Built with ā¤ļø using FastMCP, FastAPI, and Trafilatura