Add your description here
Project description
Step-by-Step Setup Guide for Web Search MCP
This guide lists the specific steps to set up the Web Search MCP server and integrate it into your development environment or MCP clients (like Claude Desktop).
Prerequisites
Before starting, ensure you have the following installed:
- Docker & Docker Compose: For running the local SearxNG instance.
- uv: An extremely fast Python package installer and resolver.
- Install instructions: astral.sh/uv
Step 1: Prepare Local SearxNG
You need the configuration files from this repository to run the local search engine instance that the MCP server will connect to.
- Clone the Repository
git clone https://github.com/ViktoriaKutseva/web-search-mcp.git cd web-search-mcp
Step 2: Start the Search Engine
The MCP server relies on a local instance of SearxNG.
-
Configure SearxNG Copy the example settings file to create the actual configuration.
cp searxng/settings.yml.example searxng/settings.yml
Note: The
settings.ymlfile is git-ignored. You should generate a newsecret_keyinside it. -
Start Services From the repository root run:
docker compose up -d
-
Verify SearxNG Open your browser and navigate to
http://localhost:8080. You should see the SearxNG search interface.
Step 3: Configure MCP Client
To use this tool in other specific projects or global editors, you need to register it with your MCP Client (e.g., Claude Desktop, VS Code extension).
Option A: Integration with Claude Desktop
-
Locate Config File Find or create the
claude_desktop_config.jsonfile:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Edit Configuration Add the
web-searchentry to themcpServersobject.{ "mcpServers": { "web-search": { "command": "uvx", "args": [ "--from", "web-search-searxng-mcp", "web-search-mcp" ], "env": { "SEARXNG_BASE_URL": "http://localhost:8080" } } } }
-
Restart Claude Desktop Completely quit and restart the application for changes to take effect.
Step 4: Verification
- Open your MCP Client (e.g., Claude Desktop).
- Look for the 🔌 icon or installed tools list to verify
web-searchis connected. - Ask a question that requires searching the web:
"Search for the latest release of Python and tell me the date."
Troubleshooting
- SearxNG not reachable: Ensure Docker container is running (
docker ps) and port 8080 is free. - MCP Error: Check the logs in your client or run
uvx web-search-mcpmanually in the terminal to see if it starts without crashing (it will wait for stdio input).
Configuration
Settings are managed via environment variables (or `.env` file):
- `SEARXNG_BASE_URL`: URL of the SearxNG instance (default: `http://localhost:8080\`)
- `SEARXNG_TIMEOUT`: Request timeout in seconds (default: `10`)
- `LOG_LEVEL`: Logging level (default: `INFO`)
Development
- Architecture: Follows simplified DDD guidelines.
- `domains/`: Business logic
- `infrastructure/`: External implementations (SearxNG client)
- `entry_points/`: MCP server and Main execution
- `config/`: Settings
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file web_search_searxng_mcp-0.1.1.tar.gz.
File metadata
- Download URL: web_search_searxng_mcp-0.1.1.tar.gz
- Upload date:
- Size: 61.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bd6dc67a22a6b1b8bcb2b0d849a6ce2dc39b2227eb15c4f0e6c1c48744e3914
|
|
| MD5 |
42e41eee53803b9847008550b1461e55
|
|
| BLAKE2b-256 |
68cdba064ffe3c2d703aa6e6b6d20bddec065e6413c5802a83aa077e665a246c
|
Provenance
The following attestation bundles were made for web_search_searxng_mcp-0.1.1.tar.gz:
Publisher:
publish-to-pypi.yml on ViktoriaKutseva/web-search-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
web_search_searxng_mcp-0.1.1.tar.gz -
Subject digest:
3bd6dc67a22a6b1b8bcb2b0d849a6ce2dc39b2227eb15c4f0e6c1c48744e3914 - Sigstore transparency entry: 919596127
- Sigstore integration time:
-
Permalink:
ViktoriaKutseva/web-search-mcp@edf52bc100f4339d799d2f5fe09fb0b52ccbf722 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/ViktoriaKutseva
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@edf52bc100f4339d799d2f5fe09fb0b52ccbf722 -
Trigger Event:
release
-
Statement type:
File details
Details for the file web_search_searxng_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: web_search_searxng_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c37557a0724ca71f4f273c736048273863812025922300aaba0332c62d780f51
|
|
| MD5 |
edd74cfef5b48b0dc6114193d013d066
|
|
| BLAKE2b-256 |
3b400bfa7286c764559157eeee5513424b157c3da9380356e1548caf73f0f68e
|
Provenance
The following attestation bundles were made for web_search_searxng_mcp-0.1.1-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on ViktoriaKutseva/web-search-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
web_search_searxng_mcp-0.1.1-py3-none-any.whl -
Subject digest:
c37557a0724ca71f4f273c736048273863812025922300aaba0332c62d780f51 - Sigstore transparency entry: 919596137
- Sigstore integration time:
-
Permalink:
ViktoriaKutseva/web-search-mcp@edf52bc100f4339d799d2f5fe09fb0b52ccbf722 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/ViktoriaKutseva
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@edf52bc100f4339d799d2f5fe09fb0b52ccbf722 -
Trigger Event:
release
-
Statement type: