home / mcp / tcpipuk mcp server

Tcpipuk MCP Server

Provides tools to clients over the Model Context Protocol

Installation
Add the following to your MCP client configuration file.

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.

How to use

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.

How to install

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:rw

How to install (continued)

Important: 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 -d

Connecting with LibreChat (network SSE)

To 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 needed

Running locally

If 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 update

Continue with local setup

2. Create and activate a virtual environment.

uv venv
source .venv/bin/activate  # Linux/macOS
# or
.venv\Scripts\activate     # Windows

Install dependencies and configure environment

3. Install dependencies from the lockfile.

uv sync

Set required environment variables

4. 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"

Run the server

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-server

Available arguments

The 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.

Security and usage notes

- 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.

Troubleshooting

- 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.

Learn more about MCP

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.

License

This project is licensed under the GPLv3. Review the LICENSE file for full details.

Available tools

Search

Search the web via SearXNG for current information, specific resources, or to perform calculations.

Web

Access websites and process their content, convert pages to markdown, get raw content, or extract links.