Instala SerpHubAPI
Cuatro formas de empezar, según cómo lo uses: en un agente, desde código, para probarlo o por lotes. Las cuatro usan la misma clave y el mismo monedero.
Primero, consigue una clave en /dashboard/keys (los usuarios nuevos reciben 1.000 créditos gratis). El servidor MCP es el paquete local serphubapi-mcp (versión 0.1.0, stdio): no es un endpoint alojado, así que tu clave se queda en la configuración de tu propio cliente.
1. En tu agente
Servidor MCP o SKILL.md: para Claude Code, Cursor, VS Code y más.
2. Desde código
REST directamente: curl o cualquier cliente HTTP, sin necesidad de agente.
3. Pruébalo primero
Playground en la consola, tras iniciar sesión.
4. Por lotes
Hasta 5 búsquedas por llamada con /v1/batch.
En tu agente: MCP
Una línea para Claude Code y el mismo bloque stdio para cualquier otro cliente: comando uvx, argumento serphubapi-mcp y tu clave en el entorno.
Claude Code
claude mcp add serphubapi -e SERPHUBAPI_API_KEY=shapi_xxxxxxxx -- uvx serphubapi-mcp
Esa es toda la instalación: tu agente obtiene list_services, search, batch y fetch. El servidor necesita tener uv instalado (proporciona uvx) y se comunica con https://api.serphubapi.com.
Cursor
Archivo: ~/.cursor/mcp.json (o .cursor/mcp.json en un proyecto).
{
"mcpServers": {
"serphubapi": {
"command": "uvx",
"args": ["serphubapi-mcp"],
"env": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}VS Code
Archivo: .vscode/mcp.json. VS Code usa servers en lugar de mcpServers como clave de nivel superior.
{
"servers": {
"serphubapi": {
"command": "uvx",
"args": ["serphubapi-mcp"],
"env": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}Windsurf
Archivo: ~/.codeium/windsurf/mcp_config.json.
{
"mcpServers": {
"serphubapi": {
"command": "uvx",
"args": ["serphubapi-mcp"],
"env": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}Cline
En Cline, abre los ajustes de MCP Servers y añade el mismo bloque.
{
"mcpServers": {
"serphubapi": {
"command": "uvx",
"args": ["serphubapi-mcp"],
"env": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}OpenCode
Archivo: opencode.json. OpenCode describe un servidor local con type local y una lista de comandos.
{
"mcp": {
"serphubapi": {
"type": "local",
"command": ["uvx", "serphubapi-mcp"],
"environment": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}Herramientas y precios: list_services es gratis; search cuesta el precio del servicio (p. ej., google/web 10 créditos, cache_first la mitad, 0 con acierto de caché) más 3 por cada página de contenido; fetch cuesta 5 créditos por página, 0 si falla; batch cobra cada elemento como una búsqueda. Referencia completa: Documentación de MCP →
Skill: para agentes que llaman a la API directamente
Si tu agente llama a HTTP directamente en lugar de usar MCP, dale el SKILL.md de la raíz del repositorio. Explica cuándo buscar, cuándo pedir una respuesta con citas, cuándo extraer una página y cómo agrupar búsquedas en lotes.
# In your agent's skills folder, or pasted into its instructions: # https://github.com/sou2026x/serp/blob/main/SKILL.md
Los mismos endpoints, sin MCP: POST /v1/search, POST /v1/ai-search, POST /v1/fetch y POST /v1/batch, todos con la cabecera X-API-Key.
Si las herramientas no aparecen
- Ejecuta uvx serphubapi-mcp en una terminal: si arranca, el paquete está bien y el problema está en la configuración del cliente.
- Revisa la clave: empieza por shapi_ (las claves antiguas empiezan por fapi_ y siguen funcionando).
- Reinicia el cliente después de editar su configuración y revisa tu gasto en /dashboard/logs.
Desde código: REST directamente
No hace falta un agente. Cada llamada es un POST con tu clave en la cabecera X-API-Key; las llamadas fallidas, vacías y con acierto de caché son gratis. Referencia completa: Documentación de la API →
curl -s https://api.serphubapi.com/v1/search \
-H "X-API-Key: shapi_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"q": "best espresso machine 2026", "engine": "google", "num": 5}'import json, urllib.request
req = urllib.request.Request(
"https://api.serphubapi.com/v1/search",
data=json.dumps({"q": "best espresso machine 2026", "engine": "google", "num": 5}).encode(),
headers={"X-API-Key": "shapi_xxxxxxxx", "Content-Type": "application/json"},
)
with urllib.request.urlopen(req) as r:
print(json.load(r)["results"])Otros endpoints con la misma clave: POST /v1/ai-search para una respuesta con citas, POST /v1/fetch para convertir una página en Markdown y POST /v1/batch para hasta 5 búsquedas en una llamada.
Pruébalo primero: Playground
Regístrate y prueba sin configurar nada: inicia sesión y lanza búsquedas en el Playground de la consola, con la tarifa estándar. Las cuentas nuevas reciben 1.000 créditos gratis.
Por lotes: búsqueda por lotes
Para pipelines de datos y comparativas: hasta 5 búsquedas independientes en una llamada. Cada elemento se cobra como una búsqueda individual, y si uno falla no bloquea a los demás.
curl -s https://api.serphubapi.com/v1/batch \
-H "X-API-Key: shapi_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"queries": [{"q": "espresso", "engine": "google"}, {"q": "espresso", "engine": "xiaohongshu", "type": "notes"}]}'La respuesta siempre es JSON, con resultados por elemento y meta.total_credits_charged para toda la llamada.
Haz tu primera llamada en cinco minutos
1.000 créditos gratis al registrarte. Sin tarjeta de crédito.