SerpApi를 통해 AI 클라이언트가 Google 및 기타 검색 엔진 쿼리를 실행하고 웹 페이지 콘텐츠를 추출하거나 크롤링할 수 있게 합니다.
다른 이름 serpapi/serpapi-mcp, serpapi-mcp
- 스타
- 184
- Tools
- 1
- 다운로드, 30일
- —
- 최신 버전
- 2.3.0
- 마지막 커밋
- 2026년 11월 12일
- 라이선스
- MIT
SerpApi MCP란?
SerpApi은(는) MCP server입니다. SerpApi를 통해 AI 클라이언트가 Google 및 기타 검색 엔진 쿼리를 실행하고 웹 페이지 콘텐츠를 추출하거나 크롤링할 수 있게 합니다. 1개 도구를 제공합니다. 예: mode.
프로젝트 README에서 생성된 요약
SerpApi MCP server 정보
SerpApi MCP Server는 AI 클라이언트를 검색 엔진 및 특정 웹사이트의 실시간 웹 데이터에 연결할 수 있게 합니다. 개발자는 이 서버를 사용하여 Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, Amazon을 포함한 다양한 플랫폼에서 검색을 수행할 수 있습니다. 호스팅된 서비스를 이용하거나 Python 구현체를 로컬에 직접 호스팅하여 Claude Desktop, Cursor, Claude Code와 같은 다양한 클라이언트에서 사용할 수 있습니다.
사용자는 구조화된 JSON 또는 Markdown 형태의 검색 결과를 받을 수 있으며, Markdown을 사용하면 복잡한 결과에 대해 토큰 사용량을 90% 이상 줄일 수 있습니다. 단순한 쿼리 외에도 특정 URL에서 콘텐츠를 추출하거나, 웹사이트 구조를 파악하거나, 최대 100개의 페이지를 크롤링하는 도구를 제공합니다. 또한 실시간 날씨, 주식 시장 금융 정보, Google Flights 및 Hotels를 통한 여행 정보 등 특화된 데이터 검색도 지원합니다. 통합을 위해서는 bearer token 또는 URL 경로를 통해 제공되는 SerpApi API key가 필요합니다.
활용 사례
- 1웹 콘텐츠 추출 및 크롤링단일 웹 페이지에서 구조화된 데이터 또는 Markdown 콘텐츠를 추출하거나 웹사이트의 여러 페이지를 크롤링합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
SerpApi MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 SerpApi MCP 설치
$ claude mcp add --transport http serpapi-mcp https://mcp.serpapi.com/mcpCursor에 SerpApi MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"serpapi-mcp": {
"url": "https://mcp.serpapi.com/mcp"
}
}
}VS Code에 SerpApi MCP 설치
.vscode/mcp.json
{
"servers": {
"serpapi-mcp": {
"type": "http",
"url": "https://mcp.serpapi.com/mcp"
}
}
}VS Code CLI에 SerpApi MCP 설치
$ code --add-mcp '{"name":"serpapi-mcp","type":"http","url":"https://mcp.serpapi.com/mcp"}'Codex에 SerpApi MCP 설치
$ codex mcp add serpapi-mcp --url https://mcp.serpapi.com/mcpCodex config.toml에 SerpApi MCP 설치
~/.codex/config.toml
[mcp_servers.serpapi-mcp] url = "https://mcp.serpapi.com/mcp"
Gemini CLI에 SerpApi MCP 설치
$ gemini mcp add -s user --transport http serpapi-mcp https://mcp.serpapi.com/mcpGemini settings.json에 SerpApi MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"serpapi-mcp": {
"url": "https://mcp.serpapi.com/mcp",
"type": "http"
}
}
}SerpApi MCP 도구 1
README에서 감지됨mode
| mode | — |
구성
SERPAPI_API_KEY
| 이름 | 설명 | 유형 |
|---|---|---|
| SERPAPI_API_KEY | — |
자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 원격 엔드포인트가 HTTPS 사용통과
- 파괴적인 도구에 라벨 표시됨통과
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
README
GitHub에서 보기SerpApi MCP Server
A Model Context Protocol (MCP) server implementation that integrates with SerpApi for comprehensive search engine results and data extraction.
Features
- Multi-Engine Search: Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, and more
- Engine Resources: Per-engine parameter schemas available via MCP resources (see Search Tool)
- Real-time Weather Data: Location-based weather with forecasts via search queries
- Stock Market Data: Company financials and market data through search integration
- Dynamic Result Processing: Automatically detects and formats different result types
- Flexible Response Modes: Complete or compact JSON responses
- JSON Responses (default): Structured JSON output with complete or compact modes
- Markdown Responses: Cut token usage by 50% on average and by more than 90% for APIs with complex nested JSON.
- Interactive UI (MCP Apps): Opt-in
search_tableandsearch_dashboardtools that render results as an interactive UI in supporting hosts - Claude Desktop Extension: One-click local install from an MCP Bundle (
.mcpb), see below
Quick start
SerpApi MCP Server is available as a hosted service at mcp.serpapi.com. In order to connect to it, you need to provide an API key. You can find your API key on your SerpApi dashboard.
You can configure Claude Desktop to use the hosted server:
{
"mcpServers": {
"serpapi": {
"type": "http",
"url": "https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp"
}
}
}
You can also add the hosted server to these MCP clients:
OpenClaw
openclaw mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp --transport streamable-http
Claude Code
claude mcp add --transport http serpapi https://mcp.serpapi.com/mcp --header "Authorization: Bearer YOUR_SERPAPI_API_KEY"
Hermes
hermes mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp
Codex (reads the key from SERPAPI_API_KEY in your shell)
codex mcp add serpapi --url https://mcp.serpapi.com/mcp --bearer-token-env-var SERPAPI_API_KEY
Self-hosting
git clone https://github.com/serpapi/serpapi-mcp.git
cd serpapi-mcp
uv sync && uv run src/server.py
Configure Claude Desktop:
{
"mcpServers": {
"serpapi": {
"type": "http",
"url": "http://localhost:8000/YOUR_SERPAPI_API_KEY/mcp"
}
}
}
Get your API key: serpapi.com/manage-api-key
Claude Desktop Extension (MCP bundle)
For a local, one-click install, download the .mcpb bundle from the latest release and open it with Claude Desktop (or drop it onto Settings → Extensions). Claude Desktop asks for your SerpApi API key during install, stores it as a sensitive setting, and runs the server locally over stdio. It provisions Python and dependencies with uv at install time. The same bundle works on macOS, Windows and Linux.
The same stdio entry point works with any local MCP host that launches servers as a subprocess:
{
"mcpServers": {
"serpapi": {
"command": "uv",
"args": ["run", "--directory", "/path/to/serpapi-mcp", "--frozen", "--no-dev", "src/stdio.py"],
"env": { "SERPAPI_API_KEY": "YOUR_SERPAPI_API_KEY" }
}
}
}
Authentication
Two methods are supported:
- Header-based:
Authorization: Bearer YOUR_API_KEY(recommended: the key stays out of URLs and logs) - Path-based:
/YOUR_API_KEY/mcp, for clients that cannot set headers
Examples:
# Header-based
curl "https://mcp.serpapi.com/mcp" -H "Authorization: Bearer your_key" -d '...'
# Path-based
curl "https://mcp.serpapi.com/your_key/mcp" -d '...'
No key is needed to connect, list tools or read resources. search and the App tools need one and return an error without it.
Search tool
The MCP server has one main search tool that supports all SerpApi engines and result types. You can find all available parameters on the SerpApi API reference.
Engine parameter schemas are also exposed as MCP resources: serpapi://engines (index) and serpapi://engines/<engine>.
Clients that support argument completion can request engine-name suggestions for serpapi://engines/{engine_name}. For example, the prefix google_f suggests matching engine identifiers. This completes the resource URI parameter, not arbitrary search queries.
The parameters you can provide are specific for each API engine. Some sample parameters are provided below:
params.q(required): Search queryparams.engine: Search engine (default: "google_light")params.location: Geographic filterparams.output: Response format; omit for JSON (default), or set to"md"for Markdownmode: Response mode;"compact"removes metadata from JSON, while Markdown is returned unchanged- ...see other parameters on the SerpApi API reference
Examples:
{"name": "search", "arguments": {"params": {"q": "coffee shops", "location": "Austin, TX"}}}
{"name": "search", "arguments": {"params": {"q": "weather in London"}}}
{"name": "search", "arguments": {"params": {"q": "AAPL stock"}}}
{"name": "search", "arguments": {"params": {"q": "news"}, "mode": "compact"}}
{"name": "search", "arguments": {"params": {"q": "detailed search"}, "mode": "complete"}}
{"name": "search", "arguments": {"params": {"q": "news", "output": "md"}}}
{"name": "search", "arguments": {"params": {"engine": "amazon", "k": "mechanical keyboards", "amazon_domain": "amazon.com", "output": "md"}}}
{"name": "search", "arguments": {"params": {"engine": "google_scholar", "q": "retrieval augmented generation"}}}
{"name": "search", "arguments": {"params": {"engine": "youtube", "search_query": "how to make espresso"}}}
{"name": "search", "arguments": {"params": {"engine": "apple_app_store", "term": "habit tracker"}}}
{"name": "search", "arguments": {"params": {"engine": "ebay", "_nkw": "vintage mechanical keyboard"}}}
Supported engines: Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, and more (see serpapi://engines).
Result types: Answer boxes, organic results, news, images, shopping - automatically detected and formatted.
Search responses preserve the existing MCP structuredContent.result string and include the same string in text content. For JSON output, result contains serialized JSON; existing clients can continue parsing it with JSON.parse(response.structuredContent.result). For Markdown output, it contains the unchanged Markdown. Errors and cancellations use the same wrapper. Search execution failures set isError: true; clients using FastMCP's high-level call_tool() should handle ToolError, or use call_tool_mcp() to inspect the result flag. See MCP tool results.
search uses the engine catalog and engine-specific rules to identify missing parameters. Supporting MCP 2026-07-28 clients receive a form before any search runs. Accepted answers are validated; decline or cancellation runs no search. Legacy clients and clients without form elicitation receive an error listing the missing parameters so the agent can ask in conversation. See MCP input requests.
- Google Flights: departure and arrival identifiers, departure date, and a return date for round trips. Dates and airport identifiers are checked. Token-based searches, multi-city itineraries, and
selected_flights_jsonretain their existing behavior. - Google Hotels: destination or hotel query, check-in date, and check-out date. Check-out must follow check-in. Guest counts and other optional filters keep the caller's values or the API defaults.
- Google Maps Directions: missing start and destination addresses. Coordinates or place data IDs already supplied satisfy the corresponding endpoint.
- Other catalog engines use their required fields, such as YouTube's
search_query, Yelp'sfind_loc, and Amazon'sk. Engine rules account for known defaults and alternatives, including Amazon category nodes, eBay categories, and Google Scholar citation searches.
If an answer introduces another requirement, the tool lists the remaining fields for the agent to supply in a new call. Forms support strings, numbers, booleans, and single-choice fields; unsupported complex fields receive the missing-parameter error. Unknown engines pass through to SerpApi.
Extract tool
The extract tool reads web pages and returns their content as structured JSON or Markdown. You can extract a single page, discover a website's URLs, or crawl multiple pages. Find all available parameters on the Extract API reference or in the serpapi://engines/extract resource.
Some parameters you can provide:
params.url(required): Page or website URLparams.mode: Extraction mode;"scrape"(default) reads one page,"map"discovers URLs, and"crawl"extracts multiple pagesparams.include_markdown: Include the page's content as Markdown; defaults totruefor scrape and crawl, or set tofalseto disable itparams.output: Response format; defaults to"json"in complete mode and"md"in compact mode. Set it explicitly to override the format.params.max_pages: Maximum pages to crawl, including the starting page (default: 10, maximum: 100)params.json_restrictor: Choose which fields to return, such as"markdown,error"mode: Response mode;"complete"(default) returns the full response."compact"defaults to native Markdown. With an explicitparams.output="json", single-page compact extraction keeps the top-levelmarkdownfield when present and retains API errors. Responses without Markdown, including results redirected to another engine, keep their data with metadata removed. Explicitparams.json_restrictorvalues andparams.include_markdown=falsetake precedence when using JSON. For map and crawl, compact JSON removes metadata. Markdown output is returned unchanged.
Examples:
{"name": "extract", "arguments": {"params": {"url": "https://example.com"}}}
{"name": "extract", "arguments": {"params": {"url": "https://example.com"}, "mode": "compact"}}
{"name": "extract", "arguments": {"params": {"url": "https://example.com", "output": "md"}}}
{"name": "extract", "arguments": {"params": {"url": "https://example.com", "mode": "map"}}}
{"name": "extract", "arguments": {"params": {"url": "https://example.com", "mode": "crawl", "max_pages": 2}}}
For a single page's content as native Markdown, use mode="compact". Add params.output="json" to receive JSON containing the markdown field instead. Complete JSON includes that field by default; crawl JSON includes it in each pages entry. Setting params.output="json" and params.include_markdown=false keeps the remaining structured fields without Markdown.
Crawling consumes one search credit per successfully extracted page on an uncached request. Use params.max_pages to limit how many pages are extracted.
Interactive UI (MCP apps)
The search tool returns JSON by default. For hosts that support the MCP Apps extension (SEP-1865), two opt-in tools render results as an interactive UI directly in the conversation, so the bulk SERP JSON never enters the model's context window:
search_table: organic results as a sortable, searchable table.search_dashboard: summary metrics, a source-breakdown chart, and a results table with a click-to-expand detail panel.
Both accept the same params as search. Hosts that don't support MCP Apps simply ignore these tools.
Troubleshooting
- "Missing API key": Include key in URL path
/{YOUR_KEY}/mcpor headerBearer YOUR_KEY - "Invalid key": Verify at serpapi.com/dashboard
- "Rate limit exceeded": Wait or upgrade your SerpApi plan
- "No results": Try different query or engine
Privacy policy
- Sent: only the parameters the MCP host passes to a tool call. The server never sees the rest of the conversation, or files, memory or history on the host.
- Forwarded: each search goes to
serpapi.comwith your API key; results come back unchanged. See the SerpApi Privacy Policy for how SerpApi handles searches and accounts. - Kept:
mcp.serpapi.comrecords request metrics (method, status code, duration) and stores no queries or results. A key in the URL path can appear in request logs, so prefer the header. - Local bundle: the Claude Desktop extension runs on your machine, keeps the key in Claude Desktop's settings and calls
serpapi.comdirectly. Nothing passes throughmcp.serpapi.com. - Contact: privacy@serpapi.com, or open an issue.
Contributing
See CONTRIBUTING.md for development setup, schema refresh commands, testing, Docker and MCP Bundle builds, and releases.
License
MIT License - see LICENSE file for details.
SerpApi MCP 질문
SerpApi MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --transport http serpapi-mcp https://mcp.serpapi.com/mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
SerpApi MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
SerpApi MCP는 어떤 도구를 제공하나요?
1개 도구를 제공합니다. 예: mode.
SerpApi MCP는 어떤 검색 엔진을 지원하나요?
Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay 및 기타 SerpApi 엔진을 지원합니다.
SerpApi MCP를 사용하려면 API key가 필요한가요?
검색 및 App 도구는 SerpApi API key가 필요하지만, 연결, 도구 목록 확인 및 리소스 읽기에는 필요하지 않습니다.
extract 도구는 어떻게 작동하나요?
페이지를 JSON 또는 Markdown으로 읽거나, 사이트 URL에서 여러 페이지를 찾아 크롤링합니다.
SerpApi MCP server를 직접 호스팅할 수 있나요?
네, 저장소를 클론한 후 uv를 사용하여 로컬에서 실행할 수 있습니다.
토큰 절약을 위해 Markdown 응답을 지원하나요?
네, 출력을 md로 설정하면 Markdown을 반환하며, 이를 통해 토큰 사용량을 줄일 수 있습니다.