@celestia-island/seia-linux-x64

Multi-engine web search — unified interface to nine backends (npx launcher)


Keywords
mcp, rust, web-search
License
SSPL-1.0
Install
npm install @celestia-island/seia-linux-x64@0.1.5

Documentation

Seia

Seia

Multi-engine web search

License: SySL-1.0 GitHub Checks Docs docs.rs

Introduction

seia is a multi-engine web search library and CLI. It provides a unified interface to query diverse search backends. Engines that do not require authentication work out of the box with zero configuration.

Quick Start

CLI

# Basic search (no API key required)
seia search "rust async patterns"

# Choose a specific engine
seia search "Klein bottle" --engine wikipedia

# JSON output
seia search "climate change" --json

# Through a proxy
HTTPS_PROXY=http://localhost:7890 seia search "hello world"

npx (no Rust toolchain required)

Prebuilt binaries are published to npm, so you can run seia with a single command — no cargo build:

npx @celestia-island/seia search "rust async patterns"
npx @celestia-island/seia mcp        # the MCP server (needs the mcp build)

The @celestia-island/seia root package pulls the right platform subpackage (-linux-x64 / -darwin-arm64 / -win32-x64) automatically. To pin a version:

npx @celestia-island/seia@0.1.0 search "Klein bottle" --engine wikipedia

Library

use seia::{SearchClient, Engine};

let client = SearchClient::new();
let results = client.search("rust async", Engine::Wikipedia).await?;

MCP server

Build seia with the mcp feature and run the stdio server — it exposes the multi-engine search client to AI coding assistants over the Model Context Protocol:

seia mcp

The server advertises three tools: seia_search (one engine, defaults to duckduckgo so it needs no key), seia_search_multi (try a chain of engines, return the first with results), and seia_list_engines (the nine engines and their API-key env vars). Wire it into an MCP client:

{
  "mcpServers": {
    "seia": { "command": "seia", "args": ["mcp"] }
  }
}

Set SEIA_PROXY to route search requests through a proxy (e.g. http://localhost:7890); HTTPS_PROXY / HTTP_PROXY are also honoured.

Development

just ci          # fmt-check + clippy + test
just test        # cargo test
just test-proxy  # run tests through localhost:7890 proxy (see tests/integration.rs)

Supported Search Engines

Engine Auth
DuckDuckGo None
Wikipedia None
SearXNG SEARXNG_URL
Tavily TAVILY_API_KEY
Bing BING_SEARCH_API_KEY
Brave BRAVE_SEARCH_API_KEY
秘塔 (MetaSo) METASO_API_KEY
智谱 (Zhipu) ZHIPU_API_KEY
博查 (Bocha) BOCHA_API_KEY

License

SySL-1.0 (Synthetic Source License). See LICENSE or the SySL website.

MCP Server Deployment

For production MCP deployments, use an auto-restart wrapper to keep the server alive across updates without interrupting the client session.

Recommended launcher

#!/bin/bash while true; do /path/to/seia mcp sleep 0.2 done

How it works

  1. The wrapper runs seia mcp in a while true loop.
  2. If the process exits, it restarts within 0.2 seconds.
  3. To update: kill $(pgrep -f "seia mcp" | head -1)