Skip to main content

MCP server exposing the SCOUTS-AI web search API as a single web_search tool for AI agents.

Project description

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 v2, 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.6

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.6

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

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

Available tags:

  • kecven/scouts-ai-mcp:0.1.6 — 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.6 \
  -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).

Tool: web_search

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.

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": "duckduckgo"
    }
  ]
}

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.6 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scouts_ai_mcp-0.1.6.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scouts_ai_mcp-0.1.6-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file scouts_ai_mcp-0.1.6.tar.gz.

File metadata

  • Download URL: scouts_ai_mcp-0.1.6.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for scouts_ai_mcp-0.1.6.tar.gz
Algorithm Hash digest
SHA256 c330262ff5eca5564faab7ca58159ff64f6a98b389942ebe78c8786c985c4130
MD5 a243e88f2d2e5e66231a3f4ef3f6225f
BLAKE2b-256 4362a5d19b9daccc66ae69c6d83b766131946c74a5f00b1a95666bfb604d1473

See more details on using hashes here.

File details

Details for the file scouts_ai_mcp-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: scouts_ai_mcp-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for scouts_ai_mcp-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 52f833ec24401f96c04ad86b652ecad9ab220274edcbf12799d19fd3d4457352
MD5 1a8459ccd41ee2b0709fc649bc450186
BLAKE2b-256 d302af0a632aa4f7e4927b95e7b856c98457e975150777e09b9284102f3f6029

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page