Webpawm
An MCP server that provides web search capabilities with support for multiple search engines
Ask AI about Webpawm
Powered by Claude · Grounded in docs
I know everything about Webpawm. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Webpawm
Webpawm is an MCP (Model Context Protocol) server that provides web search capabilities with multiple search engine support.
Features
- Multiple Search Engines: Supports SearXNG, Google, Bing, Brave, Bing CN (China), and Arxiv
- Multiple Transport Modes:
- HTTP/SSE mode (via
webpawm webcommand) - Stdio mode (via
webpawmorwebpawm stdcommand)
- HTTP/SSE mode (via
- Unified Search: Single
web_searchtool with smart defaults (multi-engine, query expansion, deduplication) - Flexible Configuration: Support for config file (~/.webpawm/config.json) and environment variables
- Access Logging: Built-in slog-based HTTP access logging
- API Key Authentication: Optional API key protection for HTTP endpoint (X-API-Key or Bearer token)
Installation
go install github.com/liut/webpawm@latest
Or build from source:
git clone https://github.com/liut/webpawm.git
cd webpawm
make main
install dist/webpawm /usr/local/bin/
Usage
Stdio Mode (Default)
Run as a local MCP tool:
webpawm
HTTP/SSE Mode
Start the web server (with optional API key authentication):
webpawm web --listen localhost:8087
The server provides two endpoints:
- HTTP:
http://localhost:8087/mcp - SSE:
http://localhost:8087/mcp/sse
With URI prefix:
webpawm web --listen localhost:8087 --uri-prefix /api
Endpoints become:
- HTTP:
http://localhost:8087/api/mcp - SSE:
http://localhost:8087/api/mcp/sse
Authentication
When api_key is configured in the config file or WEBPAWM_API_KEY environment variable, the HTTP endpoint requires authentication.
Request with X-API-Key header:
curl -H "X-API-Key: your-secret-key" http://localhost:8087/mcp
Or with Authorization: Bearer header:
curl -H "Authorization: Bearer your-secret-key" http://localhost:8087/mcp
MCP Tools
Webpawm provides two MCP tools:
web_search
Unified search tool with intelligent defaults. Supports single engine, multi-engine parallel search, and automatic query expansion with deduplication.
| Parameter | Type | Description |
|---|---|---|
| query | string | The search query (required) |
| engine | string | Single search engine to use (optional, mutually exclusive with engines) |
| engines | array | List of search engines to use (optional, mutually exclusive with engine) |
| max_results | integer | Maximum results to return (default: 10) |
| language | string | Language code for search results (e.g., 'en', 'zh') |
| arxiv_category | string | Arxiv category for academic paper search (e.g., 'cs.AI', 'math.CO') |
| search_depth | string | 'quick' (1 query), 'normal' (2 queries), 'deep' (3 queries). Default: 'normal' |
| include_academic | boolean | Include academic papers from Arxiv (default: false) |
| auto_query_expand | boolean | Automatically expand query with variations (default: true) |
| auto_deduplicate | boolean | Automatically deduplicate results by URL (default: true) |
Note: engine and engines support enum values - available engines are listed in the tool schema.
web_fetch
Fetch a website and return its content with HTML to Markdown conversion.
| Parameter | Type | Description |
|---|---|---|
| url | string | URL of the website to fetch (required) |
| max_length | integer | Maximum number of characters to return (default: 5000) |
| start_index | integer | Start content from this character index (default: 0) |
| raw | boolean | Return raw HTML including script and style blocks (default: false) |
Configuration
Config File
Create ~/.webpawm/config.json:
{
"searchxng_url": "https://searchx.ng",
"google_api_key": "your-api-key",
"google_cx": "your-search-engine-id",
"bing_api_key": "your-bing-api-key",
"brave_api_key": "your-brave-api-key",
"api_key": "your-api-key",
"max_results": 10,
"default_engine": "searchxng",
"listen_addr": "localhost:8087",
"uri_prefix": "",
"log_level": "info"
}
Environment Variables
| Variable | Description |
|---|---|
| WEBPAWM_SEARCHXNG_URL | SearXNG base URL |
| WEBPAWM_GOOGLE_API_KEY | Google Custom Search API key |
| WEBPAWM_GOOGLE_CX | Google Search Engine ID |
| WEBPAWM_BING_API_KEY | Bing Search API key |
| WEBPAWM_BRAVE_API_KEY | Brave Search API key |
| WEBPAWM_API_KEY | API key for HTTP endpoint authentication |
| WEBPAWM_MAX_RESULTS | Default max results |
| WEBPAWM_DEFAULT_ENGINE | Default search engine |
| WEBPAWM_LISTEN_ADDR | HTTP listen address |
| WEBPAWM_URI_PREFIX | URI prefix for endpoints |
| WEBPAWM_LOG_LEVEL | Log level: debug, info, warn, error |
Priority
Configuration priority (highest to lowest):
- CLI flags
- Environment variables
- Config file
- Default values
License
MIT
