searchapi-mcp-server
# searchapi-mcp-server
[](https://github.com/Ahmednsh/searchapi-mcp-server/actions)
```bash
npx @ahmednsh/searchapi-mcp-server
```
MCP server exposing [SearchApi.io](https://www.searchapi.io/) as four tools: Google Search, Google Shopping, Google Jobs, and YouTube Search. Results come back as compact structured text built for an LLM context — direct answers first, no raw JSON.
> Community project — not affiliated with or endorsed by SearchApi.io.
> "SearchApi" is a trademark of its respective owner.
## Claude Desktop setup
Get an API key at [searchapi.io](https://www.searchapi.io/), then add the server to `claude_desktop_config.json` (`%AppData%\Claude\` on Windows, `~/Library/Application Support/Claude/` on macOS):
```json
{
"mcpServers": {
"searchapi": {
"command": "npx",
"args": ["-y", "@ahmednsh/searchapi-mcp-server"],
"env": {
"SEARCHAPI_API_KEY": "your-api-key"
}
}
}
}
```
Restart Claude Desktop. The four tools appear under the "searchapi" server.
## Tools
### google_search
`q` (required), `num` (1–20, default 10), `gl` (country code, e.g. `sa`), `hl` (language code, e.g. `ar`).
Direct-answer features (answer box, knowledge graph, AI overview) are placed before the organic results whenever Google returns them:
```
Search results for "capital of Saudi Arabia":
---
[Answer box]
Saudi Arabia Capital: Riyadh
---
1. Riyadh
https://en.wikipedia.org/wiki/Riyadh
Riyadh is the capital and largest city of Saudi Arabia. It is also the capital of the Riyadh Province and the centre of the Riyadh Governorate.
2. Riyadh | Population, Climate, Map, History, & Facts
https://www.britannica.com/place/Riyadh
Riyadh is Saudi Arabia's capital and largest city. It became the capital of the Saud dynasty in 1824 and, except for a brief period in the ...
```
### google_shopping
`q` (required), `gl` (country code), `include_links` (boolean, default `false`).
```
Shopping results for "wireless mouse" (showing 10 of 40):
1. Logitech M220 Silent Wireless Mouse
$13.83 — Walmart — 4.8★ (44,000 reviews)
Free 90-day returns
2. Logitech G305 Lightspeed Wireless Gaming Mouse
$29.99 — Target — 4.6★ (8,100 reviews)
30-day returns
```
### google_jobs
`q` (required), `location` (e.g. `"Riyadh, Saudi Arabia"`).
```
Job results for "software engineer" in "Riyadh, Saudi Arabia":
1. Senior Software Engineer - Backend — Delivery Hero
Riyadh Saudi Arabia · via Delivery Hero
No degree mentioned
Apply: https://careers.deliveryhero.com/job/senior-software-engineer-backend-in-riyadh-saudi-arabia-jid-7417
About the opportunity We are looking for a highly talented Senior Backend Engineer to join our Riyadh office. If you are looking for a place where ...
```
### youtube_search
`q` (required).
```
YouTube results for "model context protocol tutorial":
1. Model Context Protocol Clearly Explained | MCP Beyond the Hype
https://www.youtube.com/watch?v=tzrwxLNHtRY
codebasics ✓ — 557,404 views — 15:04 — 1 year ago
This video contains a very simple explanation of MCP, also known as Model Context Protocol. We will first understand what ...
2. What is MCP? Integrate AI Agents with Databases & APIs
https://www.youtube.com/watch?v=eur8dUO9mvE
IBM Technology ✓ — 684,035 views — 3:46 — 1 year ago
Dive into the world of Model Context Protocol and learn how to seamlessly connect AI agents to databases, APIs, and more.
```
## For developers
- **Error semantics:** tool execution failures (missing/invalid key, HTTP 429/4xx/5xx, network errors) return a readable message with `isError: true`, so clients and models can distinguish a failed call from search content. "No results" is deliberately **not** an error — an empty search succeeded, and the message tells the model to change keywords instead of retrying.
- **`include_links`** on `google_shopping` is off by default because Google Shopping product links are ~500-character tracking URLs pointing back at Google, not at the merchant; the seller name is shown instead. Set `include_links: true` if you need them.
- **Output caps:** at most 10 results per call (the header says `showing 10 of N` when truncated); job descriptions are stripped of HTML and cut at 250 characters.
- **Layout:** `src/index.ts` registers the tools and talks to SearchApi; `src/format.ts` holds the pure response-to-text formatters, unit-tested in `src/format.test.ts` (`npm test`).
## Development
```bash
git clone https://github.com/Ahmednsh/searchapi-mcp-server.git && cd searchapi-mcp-server && npm install && npm run build
```
```bash
npm test
```
## License
MIT
TDQS
Scored across 4 tools
Each tool targets a clearly distinct search vertical: shopping, jobs, YouTube, and general web. There is no overlap in purpose or output type, so an agent can easily select the right tool for a given query.
All names follow a consistent snake_case pattern of provider/vertical + search (google_shopping, google_jobs, youtube_search, google_search). The convention is predictable and readable across the set.
Four tools is a well-scoped set for a search aggregator, with each tool representing a distinct search category and no redundancy. The count falls comfortably within the typical 3-15 range for a focused server.
The surface covers four popular verticals but lacks common search types such as news, images, maps, or scholarly results that a general SearchApi wrapper would typically offer. This gap may force agents to work around missing capabilities for many real-world tasks.