xngmcp gives MCP clients and the terminal two local-web tools: web_search via
SearXNG and web_fetch for readable public pages.
Requires Rust 1.85 or newer. Docker with the Compose plugin is required for the included SearXNG backend.
From a source checkout, install xngmcp and start the backend:
cargo install --path .
./infra/searxng/bootstrap.sh
docker compose --env-file infra/searxng/.env \
-f infra/searxng/compose.yaml up -d --waitThe backend listens on http://127.0.0.1:8080. Confirm it and the CLI work:
curl --fail --silent --show-error http://127.0.0.1:8080/healthz >/dev/null
xngmcp search --limit 5 'Rust MCP SDK'See the SearXNG guide for configuration, operations, and its integration test. See shell integration to install the generated man pages and shell completions.
Install and configure the Pi package with its
setup guide. It configures
pi-mcp-adapter to run xngmcp serve and exposes web_search and web_fetch
as direct Pi tools.
# Search the web
xngmcp search 'Rust MCP SDK'
xngmcp search --json --limit 5 'Rust MCP SDK'
# Fetch readable text or Markdown from a public URL
xngmcp fetch --format text https://doc.rust-lang.org/book/
# Run the stdio MCP server
xngmcp serveConfigure an MCP client to start xngmcp serve with
SEARXNG_URL=http://127.0.0.1:8080. The server exposes web_search and
web_fetch. Use --searxng-url or SEARXNG_URL to select another endpoint.
search --json and fetch --json write a single JSON value to stdout. Errors
and diagnostics go to stderr. Run xngmcp --help for all commands and options.