Skip to content
Back to skills

Serpapi Mcp

ASecurity

Run SerpAPI searches via SerpAPI's MCP server using mcporter. Use when the user asks to search the web with SerpAPI/SerpAPI MCP, wants SerpAPI inside Clawdbot, or to use the /serp command.

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 30, 2026
ai-agentsgoapi

Works with

  • cli
  • api
  • mcp

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 4 files and shows the line behind each finding

Scanned May 30, 2026

npx -y skills add Demerzels-lab/elsamultiskillagent --skill serpapi-mcp --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Serpapi Mcp?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Serpapi Mcp
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/demerzels-lab-serpapi-mcp/badge)](https://www.skillsdirectory.com/skills/demerzels-lab-serpapi-mcp)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: serpapi-mcp
description: Run SerpAPI searches via SerpAPI's MCP server using mcporter. Use when the user asks to search the web with SerpAPI/SerpAPI MCP, wants SerpAPI inside Clawdbot, or to use the /serp command.
---

# serpapi-mcp

A wrapper skill that calls **SerpAPI’s MCP server** (Model Context Protocol) via the **`mcporter`** CLI.

## What this skill provides

- Runs SerpAPI searches from OpenClaw via MCP (HTTP).
- Returns the full SerpAPI JSON to stdout (the primary contract).
- Optionally persists each query + response into **Airtable**:
  - raw JSON (full SerpAPI payload)
  - a structured “summary” (Top 10 organics, PAA/Related questions, videos, images, counts, flags)

## /serp usage

Treat this skill as providing the `/serp` command.

Syntax:
- `/serp <query>`
- `/serp <query> [engine] [num] [mode]`

Defaults:
- `engine=google_light`
- `num=5`
- `mode=compact`

Notes:
- If you want SERP features such as **People also ask (PAA)**, video packs, knowledge graph, etc., prefer:
  - `engine=google`
  - `mode=complete`

Examples:
- `/serp site:cnmv.es "educación financiera"`
- `/serp "AAPL stock" google 3 compact`
- `/serp "mortgage pay off vs invest" google 10 complete`

## How it works

Main script (prints JSON to stdout):
- `skills/serpapi-mcp/scripts/serp.sh "<query>" [engine] [num] [mode]`

It calls this MCP tool endpoint:
- `https://mcp.serpapi.com/$SERPAPI_API_KEY/mcp.search`

Optional Airtable logger:
- `skills/serpapi-mcp/scripts/airtable_log.mjs`

## Requirements

### 1) MCP client (`mcporter`)

This skill requires **`mcporter`** installed on the host.

Install:
- `npm install -g mcporter`

Verify:
- `mcporter --help`

### 2) SerpAPI key(s) + failover

You can configure either a single key or a failover pool:

- Single key:
  - `SERPAPI_API_KEY`
- Failover pool (comma-separated, tried in order):
  - `SERPAPI_API_KEYS`

Recommended placement (any of these is supported):
- Skill-scoped:
  - `skills.entries.serpapi-mcp.env.SERPAPI_API_KEY`
  - `skills.entries.serpapi-mcp.env.SERPAPI_API_KEYS`
- Global:
  - `env.vars.SERPAPI_API_KEY`
  - `env.vars.SERPAPI_API_KEYS`

Failover behavior:
- The script retries with the next key on common **quota / auth / rate-limit** errors (e.g. 429/401/403, “quota exceeded”, “rate limit”).
- For other errors (e.g. malformed request), it stops early and returns the error.

## Optional: store searches/results in Airtable

### Enable / disable

Enable logging:
- `SERP_LOG_AIRTABLE=1` (or `true`)

You can set this globally in the Gateway env (always on) or per-run when executing the script.

### Airtable configuration (Gateway env)

Set these environment variables (do not store secrets in the repo/workspace):
- `AIRTABLE_TOKEN` (Airtable Personal Access Token)
- `AIRTABLE_BASE_ID`
- `AIRTABLE_TABLE` (table name **or** table id)

### Write behavior & compatibility

- Airtable does **not** auto-create fields.
- The logger is **schema-aware**:
  - It reads the table schema via Airtable Metadata API.
  - It only writes fields that already exist in your table (by name).
  - It coerces values to the Airtable field type when possible (checkbox/number/text/select/date).

### Airtable table schema (recommended)

Field names must match exactly.

Core:
- `Query` → Single line text
- `Engine` → Single line text
- `Num` → Number (integer)
- `Mode` → Single line text
- `CreatedAt` → Date/Time

Provenance:
- `SerpApiSearchId` → Single line text
- `SerpApiJsonEndpoint` → URL
- `GoogleUrl` → URL

Raw payload:
- `ResultJson` → Long text
- `ResultJsonTruncatedFlag` → Checkbox
  - (Back-compat: the logger also supports `ResultJsonTruncated` if you prefer that name.)

Structured summary:
- `SummaryJson` → Long text
- `SummaryJsonTruncated` → Checkbox
- `OrganicTop10Json` → Long text
- `RelatedQuestionsTop10Json` → Long text
- `ShortVideosTop10Json` → Long text
- `VideosTop10Json` → Long text
- `ImagesTop10Json` → Long text

Flags + counts:
- `HasAiOverview` → Checkbox
- `HasAnswerBox` → Checkbox
- `HasKnowledgeGraph` → Checkbox
- `OrganicCount` → Number (integer)
- `RelatedQuestionsCount` → Number (integer)
- `ShortVideosCount` → Number (integer)
- `VideosCount` → Number (integer)
- `ImagesCount` → Number (integer)

### Airtable size limits

Airtable has per-cell size limits. The logger truncates JSON strings if needed:
- `AIRTABLE_MAX_JSON_CHARS` (default: 90000)
- `AIRTABLE_MAX_SUMMARY_CHARS` (default: 90000)

## Output

Returns SerpAPI JSON. Depending on engine and what Google shows, the payload may include keys like:
- `organic_results`
- `short_videos` / `videos_results`
- `images_results`
- `related_questions`
- `knowledge_graph`
- `answer_box` / `ai_overview`
- ads blocks (`top_ads`, `bottom_ads`, etc.)

Files in this skill

  • SKILL.md4.7 KB
  • _meta.json463 B
  • scripts/airtable_log.mjs11 KB
  • scripts/serp.sh3.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.