Add web search to your AI agent

SCOUTS-AI gives AI agents a no-key web search tool. One MCP server, one HTTP endpoint and the same JSON shape everywhere. Pick your host, copy the config and start searching.

Shared contract

1. Claude Desktop (MCP)

Add the MCP server to claude_desktop_config.json:

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

Test prompt: “Search the web for the latest MCP server registry changes and cite sources.”

2. Cursor (MCP)

Open Cursor → Settings → MCP and add a new global MCP server. Command is the same as Claude Desktop.

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

Use it for code research, library lookups and changelog checks. Test prompt: “Look up the current TypeScript ESM package.json contract for MCP plugins.”

3. Cline (MCP)

Cline reads the same MCP config. Point its MCP server list to:

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

Test prompt: “Search docs for InetAddress.ofLiteral in Java 25.”

4. Continue (MCP or HTTP)

If your Continue build supports MCP, register the same server. Otherwise point it at the HTTP endpoint:

GET https://scouts-ai.com/api/search?q={query}&lang=en&page=1

5. Open WebUI (MCP)

Open WebUI accepts MCP servers under Settings → Tools. Set command to scouts-ai-mcp and pick a stable name like scouts-ai.

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

Pair it with a local model for private agent search. The tool shows up in chat as web_search.

6. OpenClaw (plugin)

Install the OpenClaw plugin:

openclaw plugins install clawhub:@scouts-ai/openclaw-search

Or from a local checkout:

git clone https://github.com/scouts-ai/scouts-ai-openclaw-plugin.git
cd scouts-ai-openclaw-plugin
pnpm install
pnpm build
openclaw plugins install --link .

Optional config in ~/.openclaw/openclaw.json:

{
  "plugins": {
    "entries": {
      "scouts-ai-search": {
        "enabled": true,
        "config": {
          "baseUrl": "https://scouts-ai.com",
          "defaultLang": "en",
          "timeoutMs": 5000,
          "maxQueryLength": 512,
          "maxPage": 10
        }
      }
    }
  }
}

Tool: scouts_ai_web_search. Enable in tools.allow if your host filters tools by name.

7. Hermes (MCP or HTTP wrapper)

Hermes agents that support MCP can register the official server:

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

Hermes builds without MCP support can wrap the HTTP endpoint. Example wrapper exposing a web_search tool to a Hermes agent runtime:

import httpx

def web_search(query: str, lang: str = "en", page: int = 1) -> dict:
    """Search the public web via SCOUTS-AI and return compact JSON."""
    r = httpx.get(
        "https://scouts-ai.com/api/search",
        params={"q": query, "lang": lang, "page": page},
        timeout=10.0,
    )
    r.raise_for_status()
    return r.json()

Hook the wrapper into your Hermes tool registry under the name web_search. The exact registration call depends on your Hermes build — check your host’s tool/plugin docs.

8. LangChain (Python tool)

import requests
from langchain_core.tools import tool

@tool
def scouts_ai_web_search(query: str, lang: str = "en", page: int = 1) -> dict:
    """Search the public web via SCOUTS-AI and return compact JSON."""
    r = requests.get(
        "https://scouts-ai.com/api/search",
        params={"q": query, "lang": lang, "page": page},
        timeout=10,
    )
    r.raise_for_status()
    return r.json()

9. LlamaIndex (tool)

import requests
from llama_index.core.tools import FunctionTool

def scouts_ai_web_search(query: str, lang: str = "en", page: int = 1) -> dict:
    r = requests.get(
        "https://scouts-ai.com/api/search",
        params={"q": query, "lang": lang, "page": page},
        timeout=10,
    )
    r.raise_for_status()
    return r.json()

tool = FunctionTool.from_defaults(
    fn=scouts_ai_web_search,
    name="scouts_ai_web_search",
    description="Search the public web via SCOUTS-AI.",
)

10. Dify (HTTP tool)

In Dify, create a new custom tool and add an HTTP request step with this configuration:

Method:  GET
URL:     https://scouts-ai.com/api/search
Headers: (none required)
Query:
  q:    {{ input.query }}
  lang: {{ input.lang | default("en") }}
  page: {{ input.page | default(1) }}

Output variable: json. Map {{ json.results }} to your workflow as a list of {title, url, content}.

11. Flowise (Custom tool node)

In a Flowise agent flow, drop a Custom Tool node and paste:

import requests

def scouts_ai_web_search(query: str, lang: str = "en", page: int = 1) -> dict:
    r = requests.get(
        "https://scouts-ai.com/api/search",
        params={"q": query, "lang": lang, "page": page},
        timeout=10,
    )
    r.raise_for_status()
    return r.json()

Name the tool scouts_ai_web_search and describe it as “Search the public web via SCOUTS-AI.”

12. n8n (HTTP Request node)

Add an HTTP Request node to your n8n workflow:

Method:        GET
URL:           https://scouts-ai.com/api/search
Authentication: None
Query Parameters:
  Name: q     Value: {{ $json.query }}
  Name: lang  Value: {{ $json.lang ?? "en" }}
  Name: page  Value: {{ $json.page ?? 1 }}
Response:      JSON
Options → Timeout: 10000

Use the returned results array in the next n8n node (Agent, Set, Email, Slack, etc.).

Troubleshooting

FAQ

Do I need an API key?

No. SCOUTS-AI is no-key. Respect the per-IP rate limit and Retry-After.

What tool name should I expect from MCP?

The official scouts-ai-mcp package exposes one tool named web_search.

What tool name does the OpenClaw plugin expose?

The plugin registers the web search provider id scouts-ai-search and an agent tool named scouts_ai_web_search.

Can agents crawl the API?

No. Use the API only for user-requested searches. Do not crawl /api/search to build a derivative index.

Is there a paid tier?

No. SCOUTS-AI is best-effort with no SLA. See the terms.