Skip to content

Feature: SearXNG web search provider (self-hosted, no API key) #922

Description

@mattezell

Summary

Web search currently supports two providers, Google Custom Search and Brave -- both external paid APIs. A large share of this plugin's audience is self-hosters running it against local OpenAI-compatible backends, and that audience typically already runs SearXNG. A SearXNG provider gives agents web search with no API key, no external dependency, and no per-query cost, entirely inside the operator's own network.

SearXNG exposes a stable JSON API (GET /search?q=...&format=json) returning results[] with title/url/content -- a direct fit for the existing websearch.Provider interface.

Implementation

PR incoming from mattezell/mattermost-plugin-agents:feat/websearch-searxng-provider following the Brave/Google pattern: websearch/searxng.go + tests, config struct + wiring in mmtools/web_search.go, system-console provider option with Base URL and result limit. Two operator-experience details baked in from real deployment: a 403 response carries a hint about SearXNG's search.formats json allowlist (the most common misconfiguration), and the Base URL help text points at AllowedUntrustedInternalConnections for instances on private/reserved addresses.

🤖 Generated with Claude Code

https://claude.ai/code/session_016e12GP7EHU2KeCGGYcfvBo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions