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

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.2 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/scouts-ai/scouts-ai-mcp.git
cd scouts-ai-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest

Publishing to PyPI

One-time setup, then publish in three commands.

1. Create a PyPI account

  • Register at pypi.org/account/register.
  • Account settings → Add 2FA (required for uploads; TOTP authenticator or WebAuthn).
  • Account settings → API tokensAdd API token.
    • Name: scouts-ai-mcp
    • Scope: Entire account (or limit to the project after first upload)
    • Copy the token (pypi-...) — shown only once.

Verify the project name is free: open https://pypi.org/project/scouts-ai-mcp/ (404 = available).

2. Install publishing tools

pip install build twine

3. Build and upload

python -m build
python -m twine upload dist/*
  • Username: __token__
  • Password: your pypi-... API token

For subsequent releases: bump version in pyproject.toml, then repeat step 3.

Optional: automate via GitHub Actions (Trusted Publishing)

Recommended for long-term maintenance — no API token in CI.

  1. PyPI → Project → Publishing → Add a new pending publisher:
    • Owner: scouts-ai
    • Repository: scouts-ai-mcp
    • Workflow filename: release.yml
    • Environment name: pypi
  2. Add .github/workflows/release.yml that runs python -m build && python -m twine publish-dist on tag push (v*).
  3. Cut a release: git tag v0.1.0 && git push --tags.

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.2.tar.gz (12.1 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.2-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: scouts_ai_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 12.1 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.2.tar.gz
Algorithm Hash digest
SHA256 e86750f43d1b96161d5c8d69c4cecf113db3bae2c159331c1618d8da3b528fe4
MD5 2af3cf8c5a3630b6bb37580f528ea952
BLAKE2b-256 8b0dc96b97497fbe414621f59fbaa4c7217554ef45a92bb6d538afd2de5528a2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: scouts_ai_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.6 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f44ac838e47b905c6bf4d60329faa3182c37915d11d1ba70968b0e6c78e47ece
MD5 ea6a02ed71a938414f9d20e7dac4942c
BLAKE2b-256 16810a30c18bd33a17c984a3010404bf61810e695ca280519b73bfac4eeca5bc

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