SearxNG MCP Server

by Sacode
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Connects to SearxNG instances to provide privacy-focused web search capabilities with configurable parameters like result count, language, and format

SearxNG MCP サーバー

SearxNG を使用して Web 検索機能を提供し、Claude などの AI アシスタントによる Web 検索を可能にするモデル コンテキスト プロトコル (MCP) サーバー。

人間の監督の下で AI によって作成されました。人工知能であっても、コーヒー休憩を取るタイミングを誰かに指示してもらう必要がある場合があるからです。🤖☕

概要

このプロジェクトは、プライバシーを尊重するメタ検索エンジンであるSearxNGに接続するMCPサーバーを実装します。このサーバーは、大規模言語モデルがユーザーを追跡することなくWebを検索するためのシンプルで効率的な方法を提供します。

このサーバーはLLM向けに特別に設計されており、コンテキストウィンドウの使用を最小限に抑えるために必要不可欠な機能のみを搭載しています。この合理化されたアプローチにより、LLMと検索エンジン間の通信が効率的になり、貴重なコンテキスト空間をより重要な情報のために確保できます。

特徴

  • SearxNGによるプライバシー重視のウェブ検索
  • LLM統合のためのシンプルなAPI
  • Claude Desktopおよびその他のMCP準拠クライアントと互換性があります
  • 設定可能な検索パラメータ
  • LLM 向けに最適化された、整理された検索結果

MCP互換アプリケーションとの統合

統合例

pipx run を使用する(推奨、インストールは不要)

ホームディレクトリに.claudercファイルを作成します。

{ "mcpServers": { "searxng": { "command": "pipx", "args": [ "run", "searxng-simple-mcp@latest" ], "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" } } } }

uvx run を使用する(インストールは不要)

{ "mcpServers": { "searxng": { "command": "uvx", "args": [ "run", "searxng-simple-mcp@latest" ], "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" } } } }

pip で Python を使用する (インストールが必要)

{ "mcpServers": { "searxng": { "command": "python", "args": ["-m", "searxng_simple_mcp.server"], "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" } } } }

Docker での使用 (インストール不要)

{ "mcpServers": { "searxng": { "command": "docker", "args": [ "run", "--rm", "-i", "--network=host", "-e", "SEARXNG_MCP_SEARXNG_URL=http://localhost:8080", "ghcr.io/sacode/searxng-simple-mcp:latest" ] } } }

注意: MCP サーバーで Docker を使用する場合:

  1. envオブジェクトは Docker コンテナに適切に渡されないため、環境変数はargs配列の-eフラグを使用して直接渡す必要があります。
  2. ローカルホスト(例: http://localhost:8080 )で実行されているSearxNGインスタンスにアクセスする必要がある場合は、コンテナがホストのネットワークにアクセスできるように、 --network=hostフラグを使用する必要があります。そうしないと、コンテナ内の「localhost」はホストマシンではなく、コンテナ自体を参照することになります。
  3. --network=hostを使用する場合、コンテナはホストのネットワーク スタックを直接共有するため、ポート マッピング ( -p ) は必要なく、無視されます。

構成

環境変数を使用してサーバーを構成します。

環境変数説明デフォルト値
SEARXNG_MCP_SEARXNG_URL使用するSearxNGインスタンスのURLhttps://paulgo.io/
SEARXNG_MCP_TIMEOUTHTTPリクエストのタイムアウト(秒)10
SEARXNG_MCP_DEFAULT_RESULT_COUNT返される結果のデフォルトの数10
SEARXNG_MCP_DEFAULT_LANGUAGE結果の言語コード(例:「en」、「ru」、「all」)全て
SEARXNG_MCP_DEFAULT_FORMAT結果のデフォルト形式('text'、'json')文章
SEARXNG_MCP_ログ_レベルログレベル(例:「DEBUG」、「INFO」、「WARNING」、「ERROR」、「CRITICAL」)エラー
トランスポートプロトコルトランスポートプロトコル('stdio' または 'sse')標準入出力

**注意:**ログ レベルを ERROR よりも高く設定すると (DEBUG や INFO など)、通信チャネルでの出力が過剰になり、一部のアプリケーションとの統合が壊れる可能性があります。

独自にホストしたくない場合は、 https://searx.spaceで公開されている SearxNG インスタンスのリストを見つけることができます。

インストールと使用方法

前提条件

  • Python 3.10以上
  • SearxNG インスタンス (パブリックまたはセルフホスト)

オプション 1: インストールせずに実行 (推奨)

このサーバーを使用する最も簡単な方法は、pipx または uvx を使用することです。これにより、パッケージを永続的にインストールせずに実行できます。

# Using pipx pip install pipx # Install pipx if you don't have it pipx run searxng-simple-mcp # OR using uvx pip install uvx # Install uvx if you don't have it uvx run searxng-simple-mcp

設定オプションを直接渡すことができます:

# Using pipx with custom SearxNG instance pipx run searxng-simple-mcp --searxng-url https://your-instance.example.com

オプション2: PyPIまたはソースからインストールする

より永続的なインストールの場合:

# From PyPI using pip pip install searxng-simple-mcp # OR using uv (faster installation) pip install uv uv pip install searxng-simple-mcp # OR from source git clone https://github.com/Sacode/searxng-simple-mcp.git cd searxng-simple-mcp pip install uv uv pip install -e .

インストール後、次のコマンドでサーバーを実行できます。

# Run directly after installation python -m searxng_simple_mcp.server # OR with configuration options python -m searxng_simple_mcp.server --searxng-url https://your-instance.example.com

オプション3: Docker

Docker を使用する場合:

# Pull the Docker image docker pull ghcr.io/sacode/searxng-simple-mcp:latest # Run the container with default settings (stdio transport) docker run --rm -i ghcr.io/sacode/searxng-simple-mcp:latest # Run with environment file for configuration docker run --rm -i --env-file .env ghcr.io/sacode/searxng-simple-mcp:latest # Run with SSE transport (starts HTTP server on port 8000) docker run -p 8000:8000 -e TRANSPORT_PROTOCOL=sse ghcr.io/sacode/searxng-simple-mcp:latest # Building locally docker build -t searxng-simple-mcp:local . docker run --rm -i searxng-simple-mcp:local # Using Docker Compose docker-compose up -d

Docker の完全な使用方法については、以下のDocker 構成セクションを参照してください。

トランスポートプロトコル

MCP サーバーは、次の 2 つのトランスポート プロトコルをサポートしています。

  • STDIO (デフォルト): CLIアプリケーションおよび直接統合用
    • すべての例でデフォルトで使用される
    • Claude Desktop やその他の MCP 準拠クライアントとの統合に適しています
    • HTTPサーバーが起動されていません
  • SSE (Server-Sent Events): WebベースのクライアントとHTTPベースの統合向け
    • クライアントが接続できるHTTPサーバーを起動します
    • リアルタイム更新が必要なWebアプリケーションやサービスに役立ちます
    • Dockerを使用する場合はポートマッピングが必要です

SSEトランスポートの使用

SSE トランスポート プロトコルを使用するには:

  1. 直接実行の場合
    # Set the transport protocol to SSE TRANSPORT_PROTOCOL=sse python -m searxng_simple_mcp.server # Or with FastMCP fastmcp run src/searxng_simple_mcp/server.py --transport sse
  2. Dockerを使用する場合:
    # Run with SSE transport protocol docker run -p 8000:8000 -e TRANSPORT_PROTOCOL=sse -e SEARXNG_MCP_SEARXNG_URL=https://your-instance.example.com ghcr.io/sacode/searxng-simple-mcp:latest
  3. Docker Compose を使用する場合(付属のdocker-compose.ymlから):
    environment: - SEARXNG_MCP_SEARXNG_URL=https://searx.info - SEARXNG_MCP_TIMEOUT=10 - SEARXNG_MCP_MAX_RESULTS=20 - SEARXNG_MCP_LANGUAGE=all - TRANSPORT_PROTOCOL=sse # Transport protocol: stdio or sse

SSE を使用する場合、デフォルトではhttp://localhost:8000で HTTP 経由でサーバーにアクセスできるようになります。

MCP クライアントから SSE サーバーに接続するには、次のような構成を使用します。

{ "mcpServers": { "searxng": { "url": "http://localhost:8000", "transport": "sse" } } }

**注:**すべてのアプリケーションがSSEトランスポートプロトコルをサポートしているわけではありません。このトランスポート方式を使用する前に、MCPクライアントがSSEと互換性があることを確認してください。

発達

開発とテストの場合:

# Install dependencies uv pip install -e . # Run linter and formatter ruff check . ruff check --fix . ruff format . # Run the server directly python -m src.searxng_simple_mcp.server # OR using FastMCP fastmcp run src/searxng_simple_mcp/server.py # Use stdio transport (default) fastmcp run src/searxng_simple_mcp/server.py --transport sse # Use sse transport # Run in development mode (launches MCP Inspector) fastmcp dev src/searxng_simple_mcp/server.py

PyPIへの公開

パッケージの新しいバージョンを PyPI に公開する必要があるメンテナーの場合:

# Install development dependencies npm run install:deps # Clean, build, and check the package npm run build:package npm run check:package # Publish to PyPI (requires PyPI credentials) npm run publish:pypi # Alternatively, use the all-in-one commands to update version and publish npm run publish:patch # Increments patch version (1.0.1 -> 1.0.2) npm run publish:minor # Increments minor version (1.0.1 -> 1.1.0) npm run publish:major # Increments major version (1.0.1 -> 2.0.0)

これらのコマンドは次のことを行います。

  1. package.json と pyproject.toml の両方のバージョンを更新します。
  2. distディレクトリをクリーンアップして古いビルドを削除します
  3. パッケージをビルドする(ホイールとソース配布物を作成する)
  4. パッケージにエラーがないか確認する
  5. パッケージをPyPIにアップロードする

PyPIアカウントとtwineによる認証が必要です。認証は以下の方法で設定できます。

  • ホームディレクトリに.pypircファイルを作成する
  • 環境変数の使用( TWINE_USERNAMETWINE_PASSWORD
  • PyPI APIトークンの使用(推奨)

Dockerの設定

MCP サーバーで Docker を使用する場合は、次の点に注意してください。

  1. MCP クライアントとの統合: Claude Desktop またはその他の MCP 準拠クライアントと統合するには、「Docker での使用」セクションに示されている構成を使用します。
  2. トランスポートプロトコル:
    • デフォルトでは、Dockerコンテナはstdioトランスポートプロトコルを使用します。
    • SSEトランスポートについては、 「SSEトランスポートの使用」セクションを参照してください。
  3. 設定オプション:
    • 環境ファイル (.env) を使用してサーバーを構成します: docker run --env-file .env ...
    • -eフラグを使用して個々の環境変数を渡します: docker run -e SEARXNG_MCP_SEARXNG_URL=https://example.com ...
    • 利用可能な環境変数については、構成セクションを参照してください。
  4. ネットワーキング:
    • ホストマシン上のサービスにアクセスする必要がある場合は--network=hostを使用します。
    • SSEサーバーをネットワークに公開する場合は-p 8000:8000を使用します。

パッケージ構造

searxng-simple-mcp/ ├── src/ │ ├── run_server.py # Entry point script │ └── searxng_simple_mcp/ # Main package ├── docker-compose.yml # Docker Compose configuration ├── Dockerfile # Docker configuration └── pyproject.toml # Python project configuration

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

SearxNG を使用した Web 検索機能を提供し、Claude などの AI アシスタントがプライバシーを尊重するメタ検索エンジンを使用して Web を検索できるようにします。

  1. Overview
    1. Features
  2. Integration with MCP-Compatible Applications
    1. Integration Examples
  3. Configuration
    1. Installation & Usage
      1. Prerequisites
      2. Option 1: Run Without Installation (Recommended)
      3. Option 2: Install from PyPI or Source
      4. Option 3: Docker
    2. Transport Protocols
      1. Using SSE Transport
    3. Development
      1. Publishing to PyPI
        1. Docker Configuration
          1. Package Structure
            1. Contributing
              1. License
                ID: nfm42nf0cu