{"id":32469148,"url":"https://github.com/knuckles-team/searxng-mcp","last_synced_at":"2026-04-10T07:27:28.129Z","repository":{"id":319030016,"uuid":"1077281933","full_name":"Knuckles-Team/searxng-mcp","owner":"Knuckles-Team","description":"Searxng MCP Server","archived":false,"fork":false,"pushed_at":"2026-03-25T05:57:06.000Z","size":243,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-26T10:38:03.417Z","etag":null,"topics":["a2a","a2a-server","ag-ui","mcp-server","python","searxng","searxng-mcp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Knuckles-Team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-10-16T03:30:00.000Z","updated_at":"2026-03-25T05:55:41.000Z","dependencies_parsed_at":"2026-01-25T10:00:59.188Z","dependency_job_id":null,"html_url":"https://github.com/Knuckles-Team/searxng-mcp","commit_stats":null,"previous_names":["knuckles-team/searxng-mcp"],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/Knuckles-Team/searxng-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fsearxng-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fsearxng-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fsearxng-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fsearxng-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Knuckles-Team","download_url":"https://codeload.github.com/Knuckles-Team/searxng-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fsearxng-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31632758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T02:31:58.306Z","status":"ssl_error","status_checked_at":"2026-04-10T02:31:45.255Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","a2a-server","ag-ui","mcp-server","python","searxng","searxng-mcp"],"created_at":"2025-10-26T15:20:27.791Z","updated_at":"2026-04-10T07:27:28.111Z","avatar_url":"https://github.com/Knuckles-Team.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SearXNG - A2A | AG-UI | MCP\n\n![PyPI - Version](https://img.shields.io/pypi/v/searxng-mcp)\n![MCP Server](https://badge.mcpx.dev?type=server 'MCP Server')\n![PyPI - Downloads](https://img.shields.io/pypi/dd/searxng-mcp)\n![GitHub Repo stars](https://img.shields.io/github/stars/Knuckles-Team/searxng-mcp)\n![GitHub forks](https://img.shields.io/github/forks/Knuckles-Team/searxng-mcp)\n![GitHub contributors](https://img.shields.io/github/contributors/Knuckles-Team/searxng-mcp)\n![PyPI - License](https://img.shields.io/pypi/l/searxng-mcp)\n![GitHub](https://img.shields.io/github/license/Knuckles-Team/searxng-mcp)\n\n![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/Knuckles-Team/searxng-mcp)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/Knuckles-Team/searxng-mcp)\n![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Knuckles-Team/searxng-mcp)\n![GitHub issues](https://img.shields.io/github/issues/Knuckles-Team/searxng-mcp)\n\n![GitHub top language](https://img.shields.io/github/languages/top/Knuckles-Team/searxng-mcp)\n![GitHub language count](https://img.shields.io/github/languages/count/Knuckles-Team/searxng-mcp)\n![GitHub repo size](https://img.shields.io/github/repo-size/Knuckles-Team/searxng-mcp)\n![GitHub repo file count (file type)](https://img.shields.io/github/directory-file-count/Knuckles-Team/searxng-mcp)\n![PyPI - Wheel](https://img.shields.io/pypi/wheel/searxng-mcp)\n![PyPI - Implementation](https://img.shields.io/pypi/implementation/searxng-mcp)\n\n*Version: 0.1.56*\n\n## Overview\n\nSearXNG MCP Server + A2A Server\n\nIt includes a Model Context Protocol (MCP) server and an out of the box Agent2Agent (A2A) agent\n\nPerform privacy-respecting web searches using SearXNG through an MCP server!\n\nThis repository is actively maintained - Contributions are welcome!\n\n### Supports:\n- Privacy-respecting metasearch\n- Customizable search parameters (language, time range, categories, engines)\n- Safe search levels\n- Pagination control\n- Basic authentication support\n- Random instance selection\n\n## MCP\n\n### MCP Tools\n\n| Function Name | Description                                                                                                                            | Tag(s)   |\n|:--------------|:---------------------------------------------------------------------------------------------------------------------------------------|:---------|\n| `web_search`  | Perform web searches using SearXNG, a privacy-respecting metasearch engine. Returns relevant web content with customizable parameters. | `search` |\n\n\n### Using as an MCP Server\n\nThe MCP Server can be run in two modes: `stdio` (for local testing) or `http` (for networked access). To start the server, use the following commands:\n\n#### Run in stdio mode (default):\n```bash\nsearxng-mcp --transport \"stdio\"\n```\n\n#### Run in HTTP mode:\n```bash\nsearxng-mcp --transport \"http\"  --host \"0.0.0.0\"  --port \"8000\"\n```\n\nAI Prompt:\n```text\nSearch for information about artificial intelligence\n```\n\nAI Response:\n```text\nSearch completed successfully. Found 10 results for \"artificial intelligence\":\n\n1. **What is Artificial Intelligence?**\n   URL: https://example.com/ai\n   Content: Artificial intelligence (AI) refers to the simulation of human intelligence in machines...\n\n2. **AI Overview**\n   URL: https://example.org/ai-overview\n   Content: AI encompasses machine learning, deep learning, and more...\n```\n\n## A2A Agent\n\nThis package also includes an A2A agent server that can be used to interact with the SearXNG MCP server.\n\n### Architecture:\n\n```mermaid\n---\nconfig:\n  layout: dagre\n---\nflowchart TB\n subgraph subGraph0[\"Agent Capabilities\"]\n        C[\"Agent\"]\n        B[\"A2A Server - Uvicorn/FastAPI\"]\n        D[\"MCP Tools\"]\n        F[\"Agent Skills\"]\n  end\n    C --\u003e D \u0026 F\n    A[\"User Query\"] --\u003e B\n    B --\u003e C\n    D --\u003e E[\"Platform API\"]\n\n     C:::agent\n     B:::server\n     A:::server\n    classDef server fill:#f9f,stroke:#333\n    classDef agent fill:#bbf,stroke:#333,stroke-width:2px\n    style B stroke:#000000,fill:#FFD600\n    style D stroke:#000000,fill:#BBDEFB\n    style F fill:#BBDEFB\n    style A fill:#C8E6C9\n    style subGraph0 fill:#FFF9C4\n```\n\n### Component Interaction Diagram\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant Server as A2A Server\n    participant Agent as Agent\n    participant Skill as Agent Skills\n    participant MCP as MCP Tools\n\n    User-\u003e\u003eServer: Send Query\n    Server-\u003e\u003eAgent: Invoke Agent\n    Agent-\u003e\u003eSkill: Analyze Skills Available\n    Skill-\u003e\u003eAgent: Provide Guidance on Next Steps\n    Agent-\u003e\u003eMCP: Invoke Tool\n    MCP--\u003e\u003eAgent: Tool Response Returned\n    Agent--\u003e\u003eAgent: Return Results Summarized\n    Agent--\u003e\u003eServer: Final Response\n    Server--\u003e\u003eUser: Output\n```\n\n## Usage\n\n### MCP CLI\n\n| Short Flag | Long Flag                          | Description                                                                 |\n|------------|------------------------------------|-----------------------------------------------------------------------------|\n| -h         | --help                             | Display help information                                                    |\n| -t         | --transport                        | Transport method: 'stdio', 'http', or 'sse' [legacy] (default: stdio)       |\n| -s         | --host                             | Host address for HTTP transport (default: 0.0.0.0)                          |\n| -p         | --port                             | Port number for HTTP transport (default: 8000)                              |\n|            | --auth-type                        | Authentication type: 'none', 'static', 'jwt', 'oauth-proxy', 'oidc-proxy', 'remote-oauth' (default: none) |\n|            | --token-jwks-uri                   | JWKS URI for JWT verification                                              |\n|            | --token-issuer                     | Issuer for JWT verification                                                |\n|            | --token-audience                   | Audience for JWT verification                                              |\n|            | --oauth-upstream-auth-endpoint     | Upstream authorization endpoint for OAuth Proxy                             |\n|            | --oauth-upstream-token-endpoint    | Upstream token endpoint for OAuth Proxy                                    |\n|            | --oauth-upstream-client-id         | Upstream client ID for OAuth Proxy                                         |\n|            | --oauth-upstream-client-secret     | Upstream client secret for OAuth Proxy                                     |\n|            | --oauth-base-url                   | Base URL for OAuth Proxy                                                   |\n|            | --oidc-config-url                  | OIDC configuration URL                                                     |\n|            | --oidc-client-id                   | OIDC client ID                                                             |\n|            | --oidc-client-secret               | OIDC client secret                                                         |\n|            | --oidc-base-url                    | Base URL for OIDC Proxy                                                    |\n|            | --remote-auth-servers              | Comma-separated list of authorization servers for Remote OAuth             |\n|            | --remote-base-url                  | Base URL for Remote OAuth                                                  |\n|            | --allowed-client-redirect-uris     | Comma-separated list of allowed client redirect URIs                       |\n|            | --eunomia-type                     | Eunomia authorization type: 'none', 'embedded', 'remote' (default: none)   |\n|            | --eunomia-policy-file              | Policy file for embedded Eunomia (default: mcp_policies.json)              |\n|            | --eunomia-remote-url               | URL for remote Eunomia server                                              |\n\n\n### A2A CLI\n#### Endpoints\n- **Web UI**: `http://localhost:8000/` (if enabled)\n- **A2A**: `http://localhost:8000/a2a` (Discovery: `/a2a/.well-known/agent.json`)\n- **AG-UI**: `http://localhost:8000/ag-ui` (POST)\n\n| Short Flag | Long Flag         | Description                                                            |\n|------------|-------------------|------------------------------------------------------------------------|\n| -h         | --help            | Display help information                                               |\n|            | --host            | Host to bind the server to (default: 0.0.0.0)                          |\n|            | --port            | Port to bind the server to (default: 9000)                             |\n|            | --reload          | Enable auto-reload                                                     |\n|            | --provider        | LLM Provider: 'openai', 'anthropic', 'google', 'huggingface'           |\n|            | --model-id        | LLM Model ID (default: nvidia/nemotron-3-super)                                  |\n|            | --base-url        | LLM Base URL (for OpenAI compatible providers)                         |\n|            | --api-key         | LLM API Key                                                            |\n|            | --mcp-url         | MCP Server URL (default: http://localhost:8000/mcp)                    |\n|            | --web             | Enable Pydantic AI Web UI                                              | False (Env: ENABLE_WEB_UI) |\n\n\n### Using as an MCP Server\nThe MCP Server can be run in two modes: `stdio` (for local testing) or `http` (for networked access). To start the server, use the following commands:\n\n#### Run in stdio mode (default):\n```bash\nsearxng-mcp --transport \"stdio\"\n```\n\n#### Run in HTTP mode:\n```bash\nsearxng-mcp --transport \"http\"  --host \"0.0.0.0\"  --port \"8000\"\n```\n\nAI Prompt:\n```text\nSearch for information about artificial intelligence\n```\n\nAI Response:\n```text\nSearch completed successfully. Found 10 results for \"artificial intelligence\":\n\n1. **What is Artificial Intelligence?**\n   URL: https://example.com/ai\n   Content: Artificial intelligence (AI) refers to the simulation of human intelligence in machines...\n\n2. **AI Overview**\n   URL: https://example.org/ai-overview\n   Content: AI encompasses machine learning, deep learning, and more...\n```\n\n### Agentic AI\n`searxng-mcp` is designed to be used by Agentic AI systems. It provides a set of tools that allow agents to search the web using SearXNG.\n\n## Agent-to-Agent (A2A)\n\nThis package also includes an A2A agent server that can be used to interact with the SearXNG MCP server.\n\n### CLI\n\n| Argument          | Description                                                    | Default                        |\n|-------------------|----------------------------------------------------------------|--------------------------------|\n| `--host`          | Host to bind the server to                                     | `0.0.0.0`                      |\n| `--port`          | Port to bind the server to                                     | `9000`                         |\n| `--reload`        | Enable auto-reload                                             | `False`                        |\n| `--provider`      | LLM Provider (openai, anthropic, google, huggingface)          | `openai`                       |\n| `--model-id`      | LLM Model ID                                                   | `nvidia/nemotron-3-super`                |\n| `--base-url`      | LLM Base URL (for OpenAI compatible providers)                 | `http://ollama.arpa/v1`        |\n| `--api-key`       | LLM API Key                                                    | `ollama`                       |\n| `--mcp-url`       | MCP Server URL                                                 | `http://searxng-mcp:8000/mcp`  |\n| `--allowed-tools` | List of allowed MCP tools                                      | `web_search`                   |\n\n### Examples\n\n#### Run A2A Server\n```bash\nsearxng-agent --provider openai --model-id gpt-4 --api-key sk-... --mcp-url http://localhost:8000/mcp\n```\n\n#### Run with Docker\n```bash\ndocker run -e CMD=searxng-agent -p 8000:8000 searxng-mcp\n```\n\n## Docker\n\n### Build\n\n```bash\ndocker build -t searxng-mcp .\n```\n\n### Run MCP Server\n\n```bash\ndocker run -p 8000:8000 searxng-mcp\n```\n\n### Run A2A Server\n\n```bash\ndocker run -e CMD=searxng-agent -p 8001:8001 searxng-mcp\n```\n\n### Deploy MCP Server as a Service\n\nThe ServiceNow MCP server can be deployed using Docker, with configurable authentication, middleware, and Eunomia authorization.\n\n#### Using Docker Run\n\n```bash\ndocker pull knucklessg1/searxng-mcp:latest\n\ndocker run -d \\\n  --name searxng-mcp \\\n  -p 8004:8004 \\\n  -e HOST=0.0.0.0 \\\n  -e PORT=8004 \\\n  -e TRANSPORT=http \\\n  -e AUTH_TYPE=none \\\n  -e EUNOMIA_TYPE=none \\\n  -e SEARXNG_URL=https://searxng.example.com \\\n  -e SEARXNG_USERNAME=user \\\n  -e SEARXNG_PASSWORD=pass \\\n  -e USE_RANDOM_INSTANCE=false \\\n  knucklessg1/searxng-mcp:latest\n```\n\nFor advanced authentication (e.g., JWT, OAuth Proxy, OIDC Proxy, Remote OAuth) or Eunomia, add the relevant environment variables:\n\n```bash\ndocker run -d \\\n  --name searxng-mcp \\\n  -p 8004:8004 \\\n  -e HOST=0.0.0.0 \\\n  -e PORT=8004 \\\n  -e TRANSPORT=http \\\n  -e AUTH_TYPE=oidc-proxy \\\n  -e OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration \\\n  -e OIDC_CLIENT_ID=your-client-id \\\n  -e OIDC_CLIENT_SECRET=your-client-secret \\\n  -e OIDC_BASE_URL=https://your-server.com \\\n  -e ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/* \\\n  -e EUNOMIA_TYPE=embedded \\\n  -e EUNOMIA_POLICY_FILE=/app/mcp_policies.json \\\n  -e SEARXNG_URL=https://searxng.example.com \\\n  -e SEARXNG_USERNAME=user \\\n  -e SEARXNG_PASSWORD=pass \\\n  -e USE_RANDOM_INSTANCE=false \\\n  knucklessg1/searxng-mcp:latest\n```\n\n#### Using Docker Compose\n\nCreate a `docker-compose.yml` file:\n\n```yaml\nservices:\n  searxng-mcp:\n    image: knucklessg1/searxng-mcp:latest\n    environment:\n      - HOST=0.0.0.0\n      - PORT=8004\n      - TRANSPORT=http\n      - AUTH_TYPE=none\n      - EUNOMIA_TYPE=none\n      - SEARXNG_URL=https://searxng.example.com\n      - SEARXNG_USERNAME=user\n      - SEARXNG_PASSWORD=pass\n      - USE_RANDOM_INSTANCE=false\n    ports:\n      - 8004:8004\n```\n\nFor advanced setups with authentication and Eunomia:\n\n```yaml\nservices:\n  searxng-mcp:\n    image: knucklessg1/searxng-mcp:latest\n    environment:\n      - HOST=0.0.0.0\n      - PORT=8004\n      - TRANSPORT=http\n      - AUTH_TYPE=oidc-proxy\n      - OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration\n      - OIDC_CLIENT_ID=your-client-id\n      - OIDC_CLIENT_SECRET=your-client-secret\n      - OIDC_BASE_URL=https://your-server.com\n      - ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/*\n      - EUNOMIA_TYPE=embedded\n      - EUNOMIA_POLICY_FILE=/app/mcp_policies.json\n      - SEARXNG_URL=https://searxng.example.com\n      - SEARXNG_USERNAME=user\n      - SEARXNG_PASSWORD=pass\n      - USE_RANDOM_INSTANCE=false\n    ports:\n      - 8004:8004\n    volumes:\n      - ./mcp_policies.json:/app/mcp_policies.json\n```\n\nRun the service:\n\n```bash\ndocker-compose up -d\n```\n\n#### Configure `mcp.json` for AI Integration\n\n```json\n{\n  \"mcpServers\": {\n    \"searxng\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"run\",\n        \"--with\",\n        \"searxng-mcp\",\n        \"searxng-mcp\"\n      ],\n      \"env\": {\n        \"SEARXNG_URL\": \"https://searxng.example.com\",\n        \"SEARXNG_USERNAME\": \"user\",\n        \"SEARXNG_PASSWORD\": \"pass\",\n        \"USE_RANDOM_INSTANCE\": \"false\"\n      },\n      \"timeout\": 300000\n    }\n  }\n}\n```\n\n## Install Python Package\n\n```bash\npython -m pip install searxng-mcp\n```\n```bash\nuv pip install searxng-mcp\n```\n\n## Repository Owners\n\n\u003cimg width=\"100%\" height=\"180em\" src=\"https://github-readme-stats.vercel.app/api?username=Knucklessg1\u0026show_icons=true\u0026hide_border=true\u0026\u0026count_private=true\u0026include_all_commits=true\" /\u003e\n\n![GitHub followers](https://img.shields.io/github/followers/Knucklessg1)\n![GitHub User's stars](https://img.shields.io/github/stars/Knucklessg1)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknuckles-team%2Fsearxng-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknuckles-team%2Fsearxng-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknuckles-team%2Fsearxng-mcp/lists"}