Scout MCP Server
OfficialREADME.md
# Scout MCP Server
Give your coding agent the live web. Scout's MCP server adds web search, scraping to Markdown, structured extraction, crawling, screenshots, and company lookup as tools any MCP client can call: Claude Code, Codex, Gemini CLI, Antigravity, Cursor, Windsurf, and Claude Desktop.
It has **zero dependencies** — the MCP protocol is implemented in a few hundred lines of plain JavaScript, with no build step and nothing pulled from npm at install time. When you run it, the only code that runs is the code in this repo. See [SECURITY.md](./SECURITY.md).
## Tools
| Tool | What it does |
|------|--------------|
| `scout_search` | Search the live web; ranked results as JSON. `depth: "deep"` runs an agentic multi-step search. |
| `scout_scrape` | Fetch a page as clean, LLM-ready Markdown (handles JS + bot defenses). |
| `scout_extract` | Pull structured data from one or more URLs against an objective. |
| `scout_crawl` | Crawl a site from a start URL, bounded by `max_pages`. |
| `scout_screenshot` | Capture a page screenshot. |
| `scout_company` | Company profile from a domain (name, industry, socials, logo). |
| `scout_answer` | Answer a question by reading a page and the pages it links to. |
| `scout_find_all` | Build a list of entities matching a natural-language query. |
## Get a key
Create an API key at [platform.usescout.sh/settings](https://platform.usescout.sh/settings) and set it as `SCOUT_API_KEY`. Every example below uses `npx`, so there's nothing to install first.
## Install per client
### Claude Code
```sh
claude mcp add scout --env SCOUT_API_KEY=sk_your_key -- npx -y @scout-ai/mcp
```
### Codex CLI
Add to `~/.codex/config.toml`:
```toml
[mcp_servers.scout]
command = "npx"
args = ["-y", "@scout-ai/mcp"]
env = { SCOUT_API_KEY = "sk_your_key" }
```
### Gemini CLI
Add to `~/.gemini/settings.json`:
```json
{
"mcpServers": {
"scout": {
"command": "npx",
"args": ["-y", "@scout-ai/mcp"],
"env": { "SCOUT_API_KEY": "sk_your_key" }
}
}
}
```
### Antigravity
In the MCP settings, add a server with this config (or paste it into the MCP config file):
```json
{
"mcpServers": {
"scout": {
"command": "npx",
"args": ["-y", "@scout-ai/mcp"],
"env": { "SCOUT_API_KEY": "sk_your_key" }
}
}
}
```
### Cursor
Add to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):
```json
{
"mcpServers": {
"scout": {
"command": "npx",
"args": ["-y", "@scout-ai/mcp"],
"env": { "SCOUT_API_KEY": "sk_your_key" }
}
}
}
```
### Windsurf
Add to `~/.codeium/windsurf/mcp_config.json`:
```json
{
"mcpServers": {
"scout": {
"command": "npx",
"args": ["-y", "@scout-ai/mcp"],
"env": { "SCOUT_API_KEY": "sk_your_key" }
}
}
}
```
### Claude Desktop
Add to `claude_desktop_config.json` (Settings → Developer → Edit Config) using the same `mcpServers` block as above.
## Use it
Once connected, ask your agent things like:
- "Search the web for the latest on the EU AI Act and summarize the top 5 sources."
- "Scrape https://example.com/pricing and pull the plan names and prices."
- "Look up stripe.com and tell me their industry and socials."
The agent picks the right Scout tool and calls it.
## Progress on long jobs
`scout_search` with `depth: "deep"` runs an agentic multi-step search server-side. The server streams Scout's run events and forwards them as MCP progress notifications, so clients that show progress (Claude Code, Cursor) display live updates instead of a frozen spinner. The final results come back when the run finishes.
## Hosted HTTP/SSE transport
Besides stdio, the server can run over HTTP using MCP's Streamable HTTP transport, so a remote client can connect by URL:
```sh
SCOUT_API_KEY=sk_your_key npx -y -p @scout-ai/mcp scout-mcp-http
# listening on :3000/mcp
```
| Variable | Default | Purpose |
|----------|---------|---------|
| `PORT` | `3000` | Listen port. |
| `SCOUT_MCP_PATH` | `/mcp` | Endpoint path. |
| `SCOUT_MCP_TOKEN` | (none) | If set, clients must send `Authorization: Bearer <token>`. |
Point an MCP client at `http://your-host:3000/mcp`. There's a `/health` endpoint for load balancers. Each request is stateless (a fresh server per request), which keeps it simple to run behind any HTTP front end.
## Configuration
| Variable | Default | Purpose |
|----------|---------|---------|
| `SCOUT_API_KEY` | (required) | Your Scout API key. |
| `SCOUT_BASE_URL` | `https://core.usescout.sh` | Override the API origin. |
## Run from source
No install, no build (zero dependencies):
```sh
SCOUT_API_KEY=sk_your_key node bin/scout-mcp.js # stdio
SCOUT_API_KEY=sk_your_key node bin/scout-mcp-http.js # hosted HTTP/SSE
node test/smoke.mjs # run the protocol test
```
## License
[MIT](./LICENSE)
TDQS
A3.7/5.0
Scored across 8 tools
Disambiguation5/5
Each tool has a distinct purpose: search, scrape, crawl, extract, screenshot, company lookup, entity building, and question answering. Overlaps are minimal and clarified by descriptions.
Naming Consistency5/5
All tools follow the consistent pattern 'scout_verb' with snake_case, making it easy to predict tool names.
Tool Count5/5
8 tools is well-scoped for a web research server, covering common operations without being overwhelming.
Completeness5/5
The set covers core web research needs: search, scrape, crawl, extract, screenshot, company lookup, and intelligent querying. No obvious gaps.
Maintenance
ActivityStale
ResponsivenessNo issues