mcpField
S
searxng-search

searxng-search

github.com/walterraProductivity3538 installsUpdated 9w ago
Repository

About searxng-search

A skill for searching the web through a local or network-accessible SearXNG instance. It provides command-line search and page-content extraction without requiring external API keys.

Key features

  1. 01Searches through SearXNG
  2. 02Extracts page content as Markdown
  3. 03Supports result counts and content options
  4. 04Detects local and Docker environments
  5. 05Allows a custom SearXNG URL

Use cases

  1. 01Find documentation and API references
  2. 02Research libraries and frameworks
  3. 03Search for current information without external API keys
  4. 04Fetch a URL and extract readable content

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/walterra/agent-tools --skill searxng-search

After installing, type/searxng-searchin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

package.json
README.md
scripts/
content.js
search.js
searxng/
settings.yml

Details

From the project README

SearXNG Search

Local web search using SearXNG metasearch engine. No external API keys required.

Prerequisites

  • SearXNG instance running locally (default: http://localhost:8080) or accessible via network
  • Node.js 18+ installed
Quick SearXNG Setup

The JSON API must be enabled in SearXNG settings (it's disabled by default). This skill includes a pre-configured settings.yml that enables it.

# Using Docker (recommended) - mount the included settings to enable JSON API
docker run -d -p 8080:8080 --name searxng \
  -v {baseDir}/searxng/settings.yml:/etc/searxng/settings.yml:ro \
  searxng/searxng

# Or see https://docs.searxng.org/admin/installation.html

Note: The default SearXNG image only enables HTML format. Without the custom settings, the JSON API will return HTTP 403 Forbidden.

Setup

Before first use, install dependencies:

cd {baseDir} && npm install

Environment

The skill auto-detects whether it's running locally or in Docker:

EnvironmentDefault URLHow detected
Localhttp://localhost:8080No /.dockerenv file
Dockerhttp://searxng:8080/.dockerenv exists

Override with SEARXNG_URL environment variable if needed.

Search

{baseDir}/scripts/search.js "query"                    # Basic search (5 results)
{baseDir}/scripts/search.js "query" -n 10              # More results
{baseDir}/scripts/search.js "query" --content          # Include page content as markdown
{baseDir}/scripts/search.js "query" -n 3 --content     # Combined
Examples
# Search for documentation
{baseDir}/scripts/search.js "typescript generics tutorial"

# Research with content extraction
{baseDir}/scripts/search.js "react server components" -n 5 --content

# Find API references
{baseDir}/scripts/search.js "site:docs.github.com REST API" -n 3

Extract Page Content

Fetch a URL and extract readable content as markdown:

{baseDir}/scripts/content.js https://example.com/article
Examples
# Extract documentation page
{baseDir}/scripts/content.js https://docs.python.org/3/tutorial/classes.html

# Extract blog post
{baseDir}/scripts/content.js https://blog.example.com/some-article

Output Format

Search Results
--- Result 1 ---
Title: Page Title
Link: https://example.com/page
Snippet: Description from search results
Content: (if --content flag used)
  Markdown content extracted from the page...

--- Result 2 ---
...
Content Extraction
Title: Article Title
URL: https://example.com/article

--- Content ---
Markdown content of the page...

Advantages

  • ✅ No API keys required
  • ✅ No rate limits
  • ✅ Privacy-preserving (local instance)
  • ✅ Aggregates results from multiple search engines
  • ✅ Fast and reliable
  • ✅ Works locally and in Docker containers

When to Use

  • Searching for documentation or API references
  • Looking up facts or current information
  • Researching libraries, frameworks, or tools
  • Fetching content from specific URLs
  • Any task requiring web search without external dependencies

Troubleshooting

Connection refused

SearXNG is not running. Start it with:

docker run -d -p 8080:8080 --name searxng \
  -v {baseDir}/searxng/settings.yml:/etc/searxng/settings.yml:ro \
  searxng/searxng
HTTP 403 Forbidden

The JSON API is not enabled. The default SearXNG only allows HTML format. Ensure you mount the included settings.yml when starting the container:

docker stop searxng && docker rm searxng
docker run -d -p 8080:8080 --name searxng \
  -v {baseDir}/searxng/settings.yml:/etc/searxng/settings.yml:ro \
  searxng/searxng
Custom SearXNG URL

Set the environment variable:

export SEARXNG_URL=http://your-searxng-host:8080

Comments

Markdown supported