Skip to main content

PowerSearch MCP

Lint, unit test status Release status Publish status

Project status License Python Version PyPi version

PowerSearch MCP helps AI agents search and retrieve content from the public web with fewer broken fetches and clean, AI-friendly outputs ready to cite.

TL;DR

Step 1: Clone the repository then run initialize the virtual environment:

git clone https://github.com/theobjectivedad/powersearch-mcp.git

Step 2: Initialize the virtual environment:

cd powersearch-mcp
make init

Step 3: Activate the virtual environment:

source .venv/bin/activate

Step 4: Create a .env file with your desired configuration, use example-configs/example.env as a starting point.

cp example-configs/example.env .env

Step 5: (Optional) run a local instance of SearXNG:

docker run -d \
    --name searxng-local \
    --pull=always \
    --restart unless-stopped \
    -p 127.0.0.1:9876:8080 \
    --tmpfs /etc/searxng:rw,noexec,nosuid,size=16m \
    --tmpfs /tmp:rw,noexec,nosuid,size=512m \
    --cap-drop=ALL \
    --security-opt=no-new-privileges:true \
    --health-cmd='python3 -c "import urllib.request; urllib.request.urlopen(\"http://127.0.0.1:8080/\", timeout=3).read(1)"' \
    --health-interval=10s \
    --health-timeout=3s \
    --health-retries=10 \
    --health-start-period=15s \
    --env SEARXNG_SETTINGS_PATH=/settings.yml \
    --volume "$(pwd)/searxng.yaml:/settings.yml:ro" \
    searxng/searxng

Step 6: Run PowerSearch via FastMCP:

fastmcp run \
    src/powersearch_mcp/app.py \
    --transport=streamable-http \
    --skip-source \
    --skip-env

Step 7: Point your AI agent at http://localhost:8099/mcp to start searching the web!

Feature Roadmap

  • ✅ SearXNG-backed meta search with configurable engines, language, safe-search, and pagination
  • ✅ Strong anti-bot fetching implementation via Scrapling and Camoufox
  • ✅ Search response caching at the tool-level to memory, disk, and Redis storage backends
  • ✅ Automatic retries with exponential backoff for both search and fetch operations
  • ✅ AI Agent-friendly responses: HTML pages are converted to markdown automatically via Trafilatura
  • ✅ Support for STDIO and streaming HTTP transports
  • ✅ Health check endpoint for HTTP transport
  • ✅ Extensive configuration suitable for many deployment scenarios
  • ✅ Authentication support for both JWT and opaque tokens
  • ✅ Authorization support for embedded Eunomia policies
  • ✅ Auto summarization of search results via MCP sampling
  • ✅ Optional server-side fallback for clients that don't support MCP sampling
  • ✅ Public Docker image on Docker Hub
  • 🗓️ (Future) Client selectable synchronous (current behavior) or asynchronous SEP-1686 execution for search / fetch tools
  • 🗓️ (Future) Prometheus metrics exporter
  • 🗓️ (Future) Helm chart

Metadata

Release files for powersearch-mcp 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for powersearch-mcp 0.4.0
File Size Uploaded Provenance
powersearch_mcp-0.4.0.tar.gz 25.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for powersearch-mcp 0.4.0
File Interpreter ABI Platform
powersearch_mcp-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 53.1 kB

Release files / powersearch_mcp-0.4.0.tar.gz

Download URL powersearch_mcp-0.4.0.tar.gz
Size 25.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ecd957aae2eb3668ec105ca3eb36b673aee954e15d8d3516042cf3604d965c1c
BLAKE2b-256 checksum
How to use checksums
1b060f499d72e78295cebc504e3a7c9837d07161142843c12bab22c77c1396fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / powersearch_mcp-0.4.0-py3-none-any.whl

Download URL powersearch_mcp-0.4.0-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bfdb33f9247d3d46c8885dfc4d07e31efa50351e3ba6ed872db670e8b074a5f6
BLAKE2b-256 checksum
How to use checksums
325a79b2974003fbff03ce1692a0ba0a38fa940512477ebc19e3882eb57a3f51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for powersearch-mcp 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page