io.github.Ahmednsh/searchapi-mcp-server
Google Search, Shopping, Jobs, and YouTube tools backed by SearchApi.io
Open source Open in the app JSON README (API)
About
Google Search, Shopping, Jobs, and YouTube tools backed by SearchApi.io
Details
- Kind
- MCP servers
- Topic
- Social & content
- Publisher
- ahmednsh
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.2
- Last push
- 2026-09-05T21:57:15Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-09-05 22:00:23
- Updated
- 2026-09-05 22:00:23
- Origin id
io.github.Ahmednsh/searchapi-mcp-server
README
# 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