Skip to main content
Glama
franktheglock

SearXNG MCP Server

README.md
# SearXNG MCP Server

A Model Context Protocol (MCP) server that provides web search capabilities using SearXNG.

## Features

- šŸ” Web search using your SearXNG instance
- šŸŽÆ Category filtering (general, news, images, videos, science, etc.)
- šŸŒ Multi-language support
- ā° Time range filtering
- šŸ›”ļø Safe search options
- šŸ“Š Formatted results with titles, URLs, snippets, and metadata

## Quick Start

### Prerequisites

- Node.js 18 or higher
- A running SearXNG instance
- ngrok (for public sharing)

### Installation

```bash
npm install
```

### Configuration

The server uses the SearXNG instance at `http://192.168.1.44:55001` by default. You can override this with the `SEARXNG_URL` environment variable:

```bash
export SEARXNG_URL=http://your-searxng-instance:port
```

### Running Locally

```bash
npm start
```

### Sharing Publicly with ngrok

1. Install ngrok if you haven't already:
   ```bash
   npm install -g ngrok
   ```

2. Start the MCP server:
   ```bash
   npm start
   ```

3. In another terminal, expose it via ngrok:
   ```bash
   ngrok http 3000
   ```

4. Use the ngrok URL in your MCP client configuration

## Usage in LM Studio

### For Local Use

Add this to your LM Studio MCP settings:

```json
{
  "mcpServers": {
    "searxng": {
      "command": "node",
      "args": ["C:\\Users\\claym\\Desktop\\public mcp\\index.js"],
      "env": {
        "SEARXNG_URL": "http://192.168.1.44:55001"
      }
    }
  }
}
```

### For Public/Shared Use (via ngrok)

When sharing with others, they can use this configuration:

```json
{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": ["-y", "searxng-mcp-server@latest"]
    }
  }
}
```

**Note:** For the npx version to work, you'll need to publish this to npm first.

## Available Tools

### `web_search`

Search the web using SearXNG.

**Parameters:**
- `query` (required): The search query
- `categories` (optional): Search categories - "general", "news", "images", "videos", "science", etc. Default: "general"
- `language` (optional): Language code like "en", "es", "fr". Default: "en"
- `time_range` (optional): Filter by time - "day", "week", "month", "year". Default: all time
- `safesearch` (optional): Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 0

**Example:**
```
Search for "latest AI news" in the news category from the past week
```

## Development

### Project Structure

```
.
ā”œā”€ā”€ index.js          # Main MCP server implementation
ā”œā”€ā”€ package.json      # Dependencies and scripts
└── README.md         # This file
```

### Testing

You can test the server using any MCP-compatible client like:
- LM Studio
- Claude Desktop
- Other MCP clients

## Troubleshooting

### Connection Issues

If you can't connect to SearXNG:
1. Verify your SearXNG instance is running: `curl http://192.168.1.44:55001`
2. Check firewall settings
3. Ensure the URL is correct in the configuration

### No Results

If searches return no results:
1. Test the same query directly in SearXNG web interface
2. Try different categories or remove filters
3. Check SearXNG logs for errors

## License

MIT

TDQS

A3.9/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined and distinct by default.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The name 'web_search' follows a clear verb_noun pattern.

Tool Count2/5

A single tool for a web search server feels thin and limited in scope. While it covers the core search functionality, it lacks additional features like filtering, advanced queries, or result management that might be expected in a more complete search interface.

Completeness2/5

The server provides only basic search functionality without any supporting operations. There are significant gaps, such as no ability to refine searches, handle pagination, or access search history, making the surface incomplete for robust web search tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues