Skip to main content

scouts-ai-mcp

Model Context Protocol (MCP) server that exposes the SCOUTS-AI web search API as a single web_search tool for AI agents, LLM apps, answer engines and GEO workflows.

  • One tool, no API key. Backed by GET https://scouts-ai.com/api/search.
  • Drop-in for Claude Desktop, Cursor, Open WebUI, Continue, Cline and any MCP host.
  • Python ≥ 3.10, fastmcp (>=2.0, currently resolves to 3.x), httpx.
  • MIT licensed.

Install

pip install scouts-ai-mcp

Run (stdio)

scouts-ai-mcp

That's it. Wire it into your MCP host of choice — for example, Claude Desktop's claude_desktop_config.json:

{
  "mcpServers": {
    "scouts-ai": {
      "command": "scouts-ai-mcp"
    }
  }
}

Run (HTTP)

For remote MCP hosts and self-hosted bridges:

scouts-ai-mcp --transport http --host 127.0.0.1 --port 8765

Run (Docker)

A multi-arch (linux/amd64 + linux/arm64) image is published to Docker Hub as kecven/scouts-ai-mcp. It runs the MCP server in streamable HTTP mode on port 8765 and exposes the web_search tool at http://localhost:8765/mcp. No API key, no external dependencies.

Quick start:

docker run --rm -p 8765:8765 kecven/scouts-ai-mcp:0.1.7

Then point any streamable-HTTP MCP host at http://localhost:8765/mcp (or, when run behind a public proxy, https://<your-host>/mcp).

Override the upstream API base URL:

docker run --rm -p 8765:8765 \
  -e SCOUTS_AI_BASE_URL=https://scouts-ai.com \
  kecven/scouts-ai-mcp:0.1.7

Append CLI args (the image entrypoint is scouts-ai-mcp):

docker run --rm -p 8765:8765 kecven/scouts-ai-mcp:0.1.7 --log-level=DEBUG

Available tags:

  • kecven/scouts-ai-mcp:0.1.7 — pinned, recommended for production.
  • kecven/scouts-ai-mcp:0.1 — minor-version rolling tag.
  • kecven/scouts-ai-mcp:latest — latest stable release.

Build and push locally (requires docker buildx):

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -f Dockerfile.hosted \
  -t kecven/scouts-ai-mcp:0.1.7 \
  -t kecven/scouts-ai-mcp:0.1 \
  -t kecven/scouts-ai-mcp:latest \
  --push .

The image runs as a non-root user (scouts, uid 1001) and includes a TCP-level HEALTHCHECK on 127.0.0.1:8765 (the streamable HTTP endpoint does not return 200 on plain GET, so an HTTP probe would be unreliable).

Parameter Type Default Description
query string — Search query, 1–512 chars.
lang string en BCP-47 language code (e.g. en, en-US).
page int 1 1-based page number, 1–10. page=1 is the reliable default; pages >1 may be empty for some queries because the upstream provider (Bing) does not always return additional pages.

Returns a compact JSON object mirroring the SCOUTS-AI response shape:

{
  "query": "rust async runtime",
  "lang": "en",
  "page": 1,
  "pageSize": 10,
  "cached": false,
  "tookMs": 412,
  "results": [
    {
      "title": "Tokio - An asynchronous runtime for Rust",
      "url": "https://tokio.rs/",
      "content": "Tokio is an asynchronous runtime for the Rust programming language...",
      "publishedAt": "2025-11-14T00:00:00Z",
      "engine": "bing"
    }
  ]
}

Error handling

The tool raises ToolError (rendered as an MCP tool error) when:

  • The query is empty/too long or lang/page are invalid → invalid arguments.
  • The upstream returns 429 → rate limit exceeded; honors Retry-After when present.
  • The upstream returns 5xx or the network call fails → SCOUTS-AI temporarily unavailable.
  • The upstream returns a structured 4xx error envelope → forwards the code and message.

Configuration

All settings are environment variables. Defaults match the public SCOUTS-AI deployment.

Variable Default Description
SCOUTS_AI_BASE_URL https://scouts-ai.com Base URL of the SCOUTS-AI API.
SCOUTS_AI_TIMEOUT_S 5.0 HTTP timeout in seconds (0.1–60).
SCOUTS_AI_USER_AGENT scouts-ai-mcp/0.1.7 User-Agent header.
SCOUTS_AI_DEFAULT_LANG en Default lang when the tool omits it.
SCOUTS_AI_MAX_QUERY_LENGTH 512 Reject queries longer than this.
SCOUTS_AI_MAX_PAGE 10 Reject page numbers above this.

Development

git clone https://github.com/kecven/scouts-ai-mcp.git
cd scouts-ai-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest

License

MIT — see LICENSE.

Metadata

Release files for scouts-ai-mcp 0.1.7

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

Source distribution (sdist)

Source distribution for scouts-ai-mcp 0.1.7
File Size Uploaded Provenance
scouts_ai_mcp-0.1.7.tar.gz 21.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for scouts-ai-mcp 0.1.7
File Interpreter ABI Platform
scouts_ai_mcp-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 33.7 kB

Release files / scouts_ai_mcp-0.1.7.tar.gz

Download URL scouts_ai_mcp-0.1.7.tar.gz
Size 21.2 kB
Tags Source
SHA-256 checksum
How to use checksums
057048b755c19c7aef5f117c0e4c89e541afe01329ff1eca359255a7620686f8
BLAKE2b-256 checksum
How to use checksums
04d8f58663195990ddbf62a4b35dae43825420d0fb7b63767b112ba8f0dcced5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / scouts_ai_mcp-0.1.7-py3-none-any.whl

Download URL scouts_ai_mcp-0.1.7-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8ecc2792a5567ee38d38330665187d6c2d0d7ec140626045a5604807643df83
BLAKE2b-256 checksum
How to use checksums
bedf3888fd245846cea189636127f138dcdff9766fc4ceea125e92f51227d0be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Security for scouts-ai-mcp 0.1.7

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.

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