home / mcp / tcpipuk mcp server
Provides tools to clients over the Model Context Protocol
Configuration
View docs{
"mcpServers": {
"tcpipuk-mcp-server": {
"url": "http://mcp-server:8080/sse",
"headers": {
"SSE_HOST": "0.0.0.0",
"SSE_PORT": "8080",
"USER_AGENT": "MCP-Server/1.0 (github.com/tcpipuk/mcp-server)",
"SEARXNG_QUERY_URL": "http://searxng:8080"
}
}
}
}Give your AI assistants the power to help you more effectively by safely accessing websites and searching the web with clear feedback and helpful error messages. This server provides two core tools to help you solve real-world problems: web search via a SearXNG instance and direct access to website content. You can run it locally for testing or deploy it in a networked setup to connect with clients like LibreChat.
You connect a client to the MCP Web/Search server either over the network using Server-Sent Events (SSE) or directly through standard input/output. For networked clients like LibreChat, the server exposes an SSE endpoint you can point your client at. For local testing or clients that connect via stdio, you run the server in stdio mode and interact directly with its input/output streams. Use the SSE option when you want multi-client, networked access and the stdio option for simple, local usage.
In practice, you will configure a MCP server instance with a SearXNG query URL and optional settings like a custom User-Agent. Then you choose how you want clients to connect and start the server accordingly. The available tools are designed to let your AI assistants search the web for current information and to process website content, including converting pages to readable formats and extracting links.
Prerequisites you need before starting are a modern container runtime (Docker) or Python-based tooling for local development. You will also need access to a SearXNG instance to query via the server.
Option A — Using Docker (recommended) lets you run the MCP server in a container for safety and simplicity. Create a docker-compose.yml with the following content and customize the environment as needed.
:docker-compose.yml
services:
mcp-server:
environment:
# Required: URL for your SearXNG instance's Search API
- SEARXNG_QUERY_URL=http://searxng:8080
# Optional: Configure network mode (SSE) for LibreChat etc.
- SSE_HOST=0.0.0.0
- SSE_PORT=8080
# Optional: Set a custom User-Agent for web requests
- USER_AGENT=MCP-Server/1.0 (github.com/tcpipuk/mcp-server)
image: ghcr.io/tcpipuk/mcp-server/server:latest
ports: # Only needed if using SSE_HOST/SSE_PORT
- "8080:8080" # Expose port 8080 on host
restart: unless-stopped
stop_grace_period: 1s
# Example SearXNG service (optional, adapt as needed)
# searxng:
# environment:
# - SEARXNG_BASE_URL=http://searxng:8080 # Ensure SearXNG knows its own URL
# image: searxng/searxng:latest
# restart: unless-stopped
# volumes:
# - ./searxng:/etc/searxng:rwImportant: You must provide the SEARXNG_QUERY_URL environment variable, pointing to the Search API endpoint of your SearXNG instance (usually ending in / or /search). Setting SSE_HOST and SSE_PORT enables network mode (Server-Sent Events), recommended for multi-container setups like LibreChat. If omitted, the server uses standard I/O.
3. Run the docker composition to start the server container (and optionally SearXNG).
docker compose up -dTo connect LibreChat over SSE, configure the MCP server in your LibreChat client with the SSE endpoint and a suitable label and icon. The example below shows how to reference the MSS SSE endpoint from LibreChat.
:librechat.yaml
mcpServers:
mcp-server:
iconPath: "/path/to/icon.png" # Optional: Custom icon
label: "MCP Web/Search" # Optional: Custom label shown in UI
type: sse
url: http://mcp-server:8080/sse # Adjust host/port if neededIf you prefer to run the MCP server on your own machine without Docker, follow these steps to install and run locally using Python tooling.
1. Install uv (requires Python 3.13+) and set up a virtual environment.
curl -LsSf https://astral.sh/uv/install.sh | sh
```
# If you already have uv installed, update it
uv self update2. Create and activate a virtual environment.
uv venv
source .venv/bin/activate # Linux/macOS
# or
.venv\Scripts\activate # Windows3. Install dependencies from the lockfile.
uv sync4. Set the required environment variables for your SearXNG instance and optional User-Agent.
export SEARXNG_QUERY_URL="http://your-searxng-instance.local:8080"
export USER_AGENT="CustomAgent/1.0"5. Start the MCP server. Choose network (SSE) mode for LibreChat or stdio mode for direct use.
# For network (SSE) mode (e.g., for LibreChat)
mcp-server --sse-host 0.0.0.0 --sse-port 3001
# For direct stdio mode (e.g., for Claude Desktop)
mcp-serverThe server accepts --sse-host to set the SSE listening address and --sse-port to set the SSE listening port. Use --user-agent to override the User-Agent header for web requests.
If neither --sse-host nor --sse-port are provided (and SSE_HOST/SSE_PORT env vars are not set), the server defaults to stdio mode. The SEARXNG_QUERY_URL variable is always required.
- Only connect to trusted SearXNG instances and monitor the data you expose through the server. - Use SSE in environments where multiple clients will connect, and ensure your network security settings allow the SSE port to be accessed by your clients.
- If the server fails to connect to SearXNG, verify the SEARXNG_QUERY_URL is reachable from the MCP server container or host running the server. - Check the User-Agent header if web access is failing due to blocks or rate limits.
Explore the MCP ecosystem to understand the specification, SDKs, and example servers you can run alongside this MCP server to build powerful AI-assisted workflows.
This project is licensed under the GPLv3. Review the LICENSE file for full details.
Search the web via SearXNG for current information, specific resources, or to perform calculations.
Access websites and process their content, convert pages to markdown, get raw content, or extract links.