serpapi-mcp
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.
Install
mkdir -p .claude/skills/serpapi-mcp && curl -L -o skill.zip "https://mcp.directory/api/skills/download/1859" && unzip -o skill.zip -d .claude/skills/serpapi-mcp && rm skill.zipInstalls to .claude/skills/serpapi-mcp
About this skill
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_lightnum=5mode=compact
Notes:
- If you want SERP features such as People also ask (PAA), video packs, knowledge graph, etc., prefer:
engine=googlemode=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_KEYskills.entries.serpapi-mcp.env.SERPAPI_API_KEYS
- Global:
env.vars.SERPAPI_API_KEYenv.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(ortrue)
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_IDAIRTABLE_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 textEngine→ Single line textNum→ Number (integer)Mode→ Single line textCreatedAt→ Date/Time
Provenance:
SerpApiSearchId→ Single line textSerpApiJsonEndpoint→ URLGoogleUrl→ URL
Raw payload:
ResultJson→ Long textResultJsonTruncatedFlag→ Checkbox- (Back-compat: the logger also supports
ResultJsonTruncatedif you prefer that name.)
- (Back-compat: the logger also supports
Structured summary:
SummaryJson→ Long textSummaryJsonTruncated→ CheckboxOrganicTop10Json→ Long textRelatedQuestionsTop10Json→ Long textShortVideosTop10Json→ Long textVideosTop10Json→ Long textImagesTop10Json→ Long text
Flags + counts:
HasAiOverview→ CheckboxHasAnswerBox→ CheckboxHasKnowledgeGraph→ CheckboxOrganicCount→ 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_resultsshort_videos/videos_resultsimages_resultsrelated_questionsknowledge_graphanswer_box/ai_overview- ads blocks (
top_ads,bottom_ads, etc.)
More by openclaw
View all →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
rust-coding-skill
UtakataKyosui
Guides Claude in writing idiomatic, efficient, well-structured Rust code using proper data modeling, traits, impl organization, macros, and build-speed best practices.
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.