npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

searxng-mcp-client

v1.0.0

Published

MCP client for SearXNG metasearch engine

Readme

SearXNG MCP Client - Fully Online

A Model Context Protocol (MCP) client for SearXNG metasearch engine that works 100% online with no local dependencies.

🌐 Fully Online Architecture

Cursor MCP Config
    ↓ npx command
Node.js MCP Client (npm package)
    ↓ HTTP requests  
Railway Web Server (your deployment)
    ↓ SearXNG API calls
Public SearXNG Instance

🚀 Quick Setup (Option 1: npm package)

1. Publish to npm (if you want to make it publicly available)

cd /Users/leonardoviri/lab/searxng
npm publish

2. Update your MCP config

Update your ~/.cursor/mcp.json:

{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": ["searxng-mcp-client"],
      "env": {
        "SEARXNG_MCP_WEB_URL": "https://searxng-production-ea9d.up.railway.app"
      },
      "tags": ["search", "web", "metasearch"]
    }
  }
}

🔧 Quick Setup (Option 2: Local but online-connected)

If you don't want to publish to npm yet, you can still eliminate the Python dependency:

1. Install dependencies

cd /Users/leonardoviri/lab/searxng
npm install

2. Update your MCP config

Update your ~/.cursor/mcp.json:

{
  "mcpServers": {
    "searxng": {
      "command": "node",
      "args": ["/Users/leonardoviri/lab/searxng/index.js"],
      "env": {
        "SEARXNG_MCP_WEB_URL": "https://searxng-production-ea9d.up.railway.app"
      },
      "tags": ["search", "web", "metasearch"]
    }
  }
}

What's Now Fully Online

  • Web Server: Deployed on Railway
  • Search Backend: Uses public SearXNG instance
  • MCP Client: Node.js (no Python dependency)
  • All Communication: HTTP requests to online services

🎯 Available Search Tools

Your MCP client now provides:

  1. mcp_searxng_search - General web search
  2. mcp_searxng_search_images - Image search
  3. mcp_searxng_search_news - News search
  4. mcp_searxng_search_videos - Video search
  5. mcp_searxng_search_science - Scientific paper search
  6. mcp_searxng_advanced_search - Advanced search with operators

🔍 Usage Examples

// Basic search
{
  "query": "machine learning trends 2024",
  "max_results": 10
}

// Advanced search with site restriction
{
  "query": "python tutorials",
  "site": "github.com", 
  "max_results": 15
}

// News search with time filter
{
  "query": "artificial intelligence news",
  "time_range": "day",
  "max_results": 8
}

🐛 Troubleshooting

Test your Railway deployment:

curl https://searxng-production-ea9d.up.railway.app/health

Test the Node.js client locally:

cd /Users/leonardoviri/lab/searxng
node index.js

Common Issues:

  1. "Module not found" - Run npm install
  2. "Connection refused" - Check Railway deployment status
  3. "Tool not found" - Verify Railway app is running and /tools endpoint works

🚀 Deployment Options

Option A: Private npm package

npm publish --access=restricted

Option B: Public npm package

npm publish --access=public

Option C: GitHub package

npm publish --registry=https://npm.pkg.github.com

📁 File Structure

searxng/
├── index.js              # Node.js MCP client (replaces Python)
├── package.json          # npm package configuration  
├── searxng_web_server.py  # FastAPI server (deployed on Railway)
├── requirements.txt      # Python dependencies (Railway)
├── Procfile             # Railway deployment config
├── railway.json         # Railway settings
└── README.md           # This file

🎉 Benefits of This Setup

  • 🌐 100% Online - No local Python files needed
  • 📦 npm Distribution - Can be installed anywhere with npx
  • ⚡ Fast - Direct HTTP calls to Railway
  • 🔄 Scalable - Railway handles all the heavy lifting
  • 🛡️ Reliable - No local dependencies to break
  • 🚀 Easy Updates - Update Railway deployment or npm package independently

🔄 Migration Complete!

You've successfully migrated from:

Python MCP Server (local) → Node.js MCP Client (npm) → Railway Web Server (online)

Your SearXNG MCP is now fully online and ready for production! 🎯