2Captcha MCP

Servidor oficial de 2Captcha MCP: búsqueda web, scraping que supera la protección anti-bot, análisis de productos/búsquedas del marketplace en JSON estructurado, automatización de navegador y resolución de CAPTCHA para agentes de IA. Local (npx @2captcha/mcp) o remoto (https://mcp.2captcha.com/mcp).

Servidor MCP alojado

npx add-mcp 'https://mcp.2captcha.com/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

2Captcha

2Captcha MCP: herramientas para agentes de IA, scraping web y automatización de navegadores

Scraping web con evasión anti-bot, análisis de marketplaces a JSON estructurado y resolución de CAPTCHA para agentes de IA mediante el Protocolo de Contexto de Modelo.

Funciona con Claude, Cursor, agentes de codificación y cualquier cliente compatible con MCP.

Cuota mensual gratuita en cada cuenta — regístrate, añade tu clave de API y las primeras 200 llamadas al mes corren de nuestra cuenta. Qué incluye

npm version npm downloads CI MCP Registry Node License

Plan gratuito • Inicio rápido • Instalación • Grupos de herramientas • Herramientas • Configuración • Solución de problemas

English • Русский

https://github.com/user-attachments/assets/884d89a8-3a73-495b-9649-dca282a70369

Codex desktop, mismo modelo y prompt, grabados uno tras otro · velocidad 3×

[!IMPORTANT] El paquete oficial de 2Captcha MCP es @2captcha/mcp (publicado bajo la organización npm @2captcha). El paquete 2captcha-mcp sin ámbito en npm no está afiliado a 2Captcha — no pongas tu clave de API en él.


Resumen

El servidor MCP de 2Captcha ofrece a los agentes de IA acceso en tiempo real a datos web que bloquean a los clientes HTTP ordinarios. Expone 40 herramientas que cubren:

  • Búsqueda web — resultados orgánicos clasificados (título, URL, fragmento) para una consulta
  • Scraping de páginas — cualquier URL como Markdown limpio o HTML sin procesar. Cada solicitud pasa por una escalera anti-bot por niveles: APIs JSON ocultas, un cliente HTTP que imita TLS, proxies residenciales rotativos y un navegador gestionado con resolución de CAPTCHA — escalando solo hasta donde la página lo requiera, para que las páginas fáciles sigan siendo rápidas y económicas.
  • Análisis de marketplaces — páginas de producto y listados de búsqueda como JSON estructurado (título, precio, valoración, vendedor, stock, ofertas). Primero niveles deterministas (APIs ocultas del marketplace, JSON-LD, selectores aprendidos); una pasada de extracción con LLM solo cuando fallan.
  • Extracción estructurada — cualquier URL o texto sin procesar más tu propio esquema JSON de entrada, JSON coincidente de salida.
  • Trabajos por lotes — ejecuta las herramientas de scraping/análisis sobre muchas URLs como un trabajo en segundo plano: envía, consulta, cancela.
  • Resolución de CAPTCHA, incluso en tu navegador — resuelve cualquier tipo que 2Captcha soporte (reCAPTCHA, Turnstile, hCaptcha, DataDome, imágenes, …). detect_captcha nombra el muro en una página que ya estás manejando en Playwright MCP, browser-use o una extensión — gratis, desde HTML que pegues — y solve_captcha_on_page lo resuelve y devuelve el JavaScript o la cookie exacta para aplicar en tu propia sesión. Nada tiene que moverse a nuestro navegador.
  • Inicios de sesión en navegador — opcional. Inicia sesión en un sitio cuyo formulario de acceso está detrás de un CAPTCHA, en un navegador gestionado, y guarda la sesión para más tarde.

Dos opciones de despliegue: el servidor remoto alojado (una URL, sin instalación) o una instancia local mediante npx @2captcha/mcp.


Plan gratuito: qué incluye

Registrarse en 2Captcha es gratis, y una cuenta viene con una cuota mensual en este servidor: 200 llamadas o $0.50 de gasto medido por cada 30 días, lo que ocurra primero, en toda la superficie de herramientas — scraping, análisis de marketplaces, extracción estructurada, trabajos por lotes, herramientas de navegador y resolución de CAPTCHA. Sin tarjeta, sin plan separado, sin restricciones de funciones.

La ventana es móvil en lugar de mensual-calendario, por lo que la capacidad regresa continuamente en lugar de que la cuota de todos se reinicie el día 1.

La cuota se mide por cuenta, por eso se requiere una credencial: la identidad es contra lo que se cuenta. No hay modo anónimo — una dirección IP no es una identidad, y un plan gratuito vinculado a una es un plan gratuito vinculado a un grupo de proxies.

get_account informa de lo que queda, para que un agente pueda planificar en torno al límite en lugar de descubrirlo como un fallo a mitad de una tarea:

{"tenant": "2captcha:8f14e45fceea167a",
 "free_tier": {"allowance": {"max_calls": 200, "calls": 12, "remaining_calls": 188,
                             "max_spend_usd": 0.5, "remaining_spend_usd": 0.4871,
                             "window_hours": 720}}}

Nada más en este servidor factura por llamada: las resoluciones de CAPTCHA se cargan a tu saldo de 2Captcha como siempre se hizo, y include_meta: true informa de lo que realmente costó cualquier llamada. Así que cuando la cuota se agota, las llamadas se rechazan hasta que la ventana se rellena — el mensaje lo dice, y dice que el operador puede aumentarla. ¿Necesitas más que la cuota? Habla con el operador; en el servicio alojado eso es soporte de 2Captcha.


Inicio rápido

Servidor alojado — sin instalación

Añade la URL a tu cliente MCP con una cabecera Authorization:

URL:    https://mcp.2captcha.com/mcp
Header: Authorization: Bearer YOUR_API_TOKEN

Tu token es tu clave de API de 2Captcha (configuración de la cuenta) o el token de portador que emitió el operador de tu servidor. Registrarse es gratis y trae la cuota mensual consigo.

Servidor local mediante npx

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": {
        "API_TOKEN": "<your-api-token-here>"
      }
    }
  }
}

El servidor local refleja la superficie de herramientas alojada a través de stdio — úsalo con clientes que no pueden enviar cabeceras de autenticación o que solo lanzan servidores MCP locales.


Instalación

Cada cliente de abajo necesita las mismas dos cosas: el comando npx @2captcha/mcp con API_TOKEN en su entorno, o — donde el cliente hable HTTP — la URL alojada más una cabecera Authorization: Bearer. Obtén un token en 2captcha.com/setting; registrarse es gratis y trae la cuota mensual consigo.

Claude Code
claude mcp add --transport http 2captcha https://mcp.2captcha.com/mcp \
  --header "Authorization: Bearer YOUR_API_TOKEN"

O localmente:

claude mcp add 2captcha -e API_TOKEN=YOUR_API_TOKEN -- npx @2captcha/mcp
Claude Desktop

Un clic: descarga 2captcha-mcp-<version>.mcpb de la última versión y ábrelo. Claude Desktop lo instala como extensión y te pide tu token de API — sin Node, sin npx, sin archivo de configuración.

O manualmente: edita el archivo de configuración (macOS ~/Library/Application Support/Claude/claude_desktop_config.json, Windows %APPDATA%\Claude\claude_desktop_config.json) y reinicia la aplicación:

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}
Cursor

Añade a ~/.cursor/mcp.json:

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}
Codex CLI
codex mcp add 2captcha --env API_TOKEN=YOUR_API_TOKEN -- npx @2captcha/mcp

O añádelo a ~/.codex/config.toml manualmente:

[mcp_servers.2captcha]
command = "npx"
args = ["@2captcha/mcp"]
env = { API_TOKEN = "YOUR_API_TOKEN" }
VS Code (GitHub Copilot)

Añade a .vscode/mcp.json:

{
  "servers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}
MCP Inspector (explora las herramientas manualmente)
API_TOKEN=YOUR_API_TOKEN npx @modelcontextprotocol/inspector npx @2captcha/mcp

O conecta el Inspector directamente a https://mcp.2captcha.com/mcp (transporte Streamable HTTP, cabecera Authorization: Bearer YOUR_API_TOKEN).

Windsurf

Añade a ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}
Zed

Añade al settings.json de Zed (cmd/ctrl + ,):

{
  "context_servers": {
    "2captcha": {
      "source": "custom",
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}
Warp

Configuración → IA → Gestionar servidores MCP → + Añadir, luego pega:

{
  "2captcha": {
    "command": "npx",
    "args": ["@2captcha/mcp"],
    "env": { "API_TOKEN": "YOUR_API_TOKEN" },
    "start_on_launch": true
  }
}
Gemini CLI

Añade a ~/.gemini/settings.json:

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}
Kimi Code CLI

Añade a ~/.kimi-code/mcp.json, o .kimi-code/mcp.json para un solo proyecto:

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}

O salta el proceso local — una clave url en lugar de command lo convierte en un servidor HTTP:

{
  "mcpServers": {
    "2captcha": {
      "url": "https://mcp.2captcha.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_TOKEN" }
    }
  }
}

/mcp-config en la TUI edita el mismo archivo; /mcp muestra el estado de la conexión.

Qwen Code
qwen mcp add 2captcha -e API_TOKEN=YOUR_API_TOKEN npx @2captcha/mcp

O alojado:

qwen mcp add --transport http 2captcha https://mcp.2captcha.com/mcp \
  --header "Authorization: Bearer YOUR_API_TOKEN"

Ambos escriben en ~/.qwen/settings.json (.qwen/settings.json para el ámbito del proyecto), que puedes editar manualmente — ten en cuenta que el campo HTTP es httpUrl, no url:

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}
DeepSeek Harness (dsh)

dsh llega a los servidores MCP a través del plugin @deepseek-ai/dsh-mcp-client — una entrada por servidor en cordis.patch.yml, o cualquier archivo que pases a --patch:

- id: mcp-2captcha
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: 2captcha
    transport: stdio
    command: npx
    args: ['@2captcha/mcp']
    env:
      API_TOKEN: !!js process.env.API_TOKEN

O contra el servidor alojado:

- id: mcp-2captcha
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: 2captcha
    transport: streamable-http
    url: https://mcp.2captcha.com/mcp
    headers:
      Authorization: !!js '`Bearer ${process.env.API_TOKEN}`'

El agente entonces ve las herramientas como mcp__2captcha__<tool>.

GLM (Z.ai)

Dos superficies, dos respuestas.

A través de un CLI de codificación. El Plan de Codificación GLM expone un endpoint con forma de Anthropic, así que Claude Code se ejecuta en GLM y mantiene su propia configuración MCP. Establece ANTHROPIC_BASE_URL a https://api.z.ai/api/anthropic y ANTHROPIC_AUTH_TOKEN a tu clave de Z.ai en ~/.claude/settings.json, luego instala este servidor exactamente como en el bloque de Claude Code de arriba.

A través de la API. El chat/completions de Z.ai llama a servidores MCP remotos por sí mismo. No hay proceso local en esa ruta, así que necesita la URL alojada:

"tools": [
  {
    "type": "mcp",
    "mcp": {
      "server_label": "2captcha",
      "server_url": "https://mcp.2captcha.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_TOKEN" }
    }
  }
]

Streamable HTTP es el transporte predeterminado, así que transport_type se puede omitir. allowed_tools recorta lo que ve el modelo; también lo hace GROUPS — consulta Selección de herramientas.

MiniMax

MiniMax publica servidores MCP (voz, imagen, video) pero ningún cliente MCP de primera parte, así que no hay archivo específico de MiniMax que editar para este servidor. Dos rutas que funcionan hoy:

  • Ejecuta un modelo MiniMax dentro de cualquier cliente de arriba que te permita elegir el backend — Cline, Continue, Cursor y LM Studio todos lo hacen — e instala 2captcha allí como de costumbre.
  • Para hosts que aceptan una URL MCP remota directamente, apúntalos a https://mcp.2captcha.com/mcp con una cabecera Authorization: Bearer YOUR_API_TOKEN.
Continue

Añade a ~/.continue/config.yaml:

mcpServers:
  - name: 2captcha
    command: npx
    args:
      - "@2captcha/mcp"
    env:
      API_TOKEN: YOUR_API_TOKEN
LM Studio

Programa → Instalar → Editar mcp.json:

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}
Cline / Roo Code

Servidores MCP → Configurar → Editar cline_mcp_settings.json:

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" },
      "disabled": false
    }
  }
}
Goose
goose session --with-extension "npx @2captcha/mcp"

O añádelo permanentemente con goose configure → Añadir extensión → Extensión de línea de comandos, comando npx @2captcha/mcp, variable de entorno API_TOKEN.

n8n

Usa el nodo Herramienta de cliente MCP contra el servidor alojado — sin proceso local que gestionar:

Endpoint:       https://mcp.2captcha.com/mcp
Transport:      HTTP Streamable
Authentication: Header Auth
Header name:    Authorization
Header value:   Bearer YOUR_API_TOKEN

Apúntalo a las herramientas parsing para flujos de scraping; consulta Selección de herramientas para recortar la superficie que ve el agente.

Cualquier otro cliente MCP

El servidor es un servidor MCP estándar de stdio, por lo que cualquier cosa que pueda lanzar un comando funciona:

command: npx
args:    ["@2captcha/mcp"]
env:     API_TOKEN=YOUR_API_TOKEN

Los clientes que hablan Streamable HTTP pueden omitir el proceso por completo y usar https://mcp.2captcha.com/mcp con un encabezado Authorization: Bearer.

Docker

Publicado en GHCR en cada lanzamiento, para amd64 y arm64:

docker run --rm -i -e API_TOKEN=YOUR_API_TOKEN ghcr.io/2captcha/2captcha-mcp:latest

-i importa: el servidor habla MCP a través de stdin/stdout. En una configuración de cliente:

{
  "mcpServers": {
    "2captcha": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "API_TOKEN", "ghcr.io/2captcha/2captcha-mcp:latest"],
      "env": { "API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}

La imagen se ejecuta como el usuario no root node y contiene solo el servidor empaquetado — sin gestor de paquetes, sin árbol de dependencias.

Pruébalo

Pregunta a tu agente:

Analiza https://www.wildberries.ru/catalog/0/search.aspx?search=coffee como resultados de búsqueda y lista los cinco artículos más baratos.

Extrae https://news.ycombinator.com y resume las historias principales.

¿Cuál es mi saldo de 2Captcha?


Selección de herramientas: Grupos

Por defecto, el servidor expone los grupos de análisis, lote y captcha (17 herramientas). Los grupos de navegador son opcionales: son la única parte de la superficie que cuesta a un cliente contexto real en cada turno, y la mayoría de las tareas nunca lo tocan.

Costo medido de cada grupo, como las definiciones de herramientas que un cliente pone en cada solicitud (nombre + descripción + JSON Schema, tiktoken o200k_base — regenerar con el repositorio de servicios benchmarks/scripts/tool_surface_tokens.py):

GrupoHerramientasTokens
parsing73,936
batch41,759
captcha62,180
predeterminado (los tres anteriores)177,875
browser11+2,842
browser_full23+5,201
all4013,076
GrupoHerramientasPara qué sirve
parsingscrape_page, search_web, discover_urls, discover_search_params, parse_marketplace, extract, get_accountBuscar en la web, extraer páginas, descubrir las URL de un sitio y sus parámetros de búsqueda, analizar mercados, extraer JSON estructurado
batchscrape_pages, parse_pages, get_job, cancel_jobLas herramientas de análisis sobre muchas URL como trabajos en segundo plano
captchalist_captcha_types, solve_captcha, detect_captcha, solve_captcha_on_page, captcha_report, captcha_balanceResolver cualquier tipo de CAPTCHA que 2Captcha soporte — incluyendo uno en una página en tu propio navegador
browser11 herramientas browser_*Iniciar sesión detrás de un CAPTCHA en un navegador gestionado y guardar la sesión
browser_fulllas 23 herramientas browser_*La superficie completa estilo Playwright, cuando realmente la quieres aquí
alltodo lo que el servidor anunciaSin filtrado — incluye herramientas añadidas en el servidor en el futuro

Por qué captcha es un predeterminado y browser no. detect_captcha y solve_captcha_on_page funcionan en HTML desde cualquier navegador que ya estés manejando, por lo que son útiles para un cliente que nunca abre el nuestro — que es el caso común. Ver Manejando tu propio navegador.

Ejemplos de configuración

{
  "mcpServers": {
    "2captcha": {
      "command": "npx",
      "args": ["@2captcha/mcp"],
      "env": {
        "API_TOKEN": "YOUR_API_TOKEN",
        "GROUPS": "parsing,browser"
      }
    }
  }
}

Herramientas individuales, sin grupos:

"env": {
  "API_TOKEN": "YOUR_API_TOKEN",
  "TOOLS": "scrape_page,solve_captcha"
}

GROUPS y TOOLS se combinan (unión). La disponibilidad de herramientas es en última instancia la decisión del servidor — un grupo nombrado aquí solo filtra lo que el servidor realmente anuncia.


Referencia de herramientas (40 herramientas)

Qué herramienta usar

  • ¿Buscas páginas para extraer? → search_web (consulta → URL clasificadas)
  • ¿Solo necesitas el contenido de la página? → scrape_page (sin LLM, más barato)
  • ¿Necesitas un inventario de URL antes de procesar en lote? → discover_urls (robots.txt + sitemaps, sin rastreo)
  • ¿Construyendo una URL de búsqueda para un sitio? → discover_search_params (sus nombres de parámetros reales, no una suposición)
  • ¿Página de producto o búsqueda → JSON? → parse_marketplace (niveles deterministas primero, respaldo LLM)
  • ¿Tu propio esquema desde cualquier página/texto? → extract (siempre una llamada LLM, o caché)
  • ¿Muchas URL? → scrape_pages / parse_pages + get_job
  • ¿Encontraste un CAPTCHA en tu propio navegador? → detect_captcha (gratis) luego solve_captcha_on_page
  • ¿Un token CAPTCHA para tu propia automatización? → list_captcha_types luego solve_captcha
  • ¿Iniciar sesión pasando un CAPTCHA y mantener la sesión? → GROUPS=browser, luego browser_navigate → browser_fill → browser_click → browser_save_session

Análisis

HerramientaDescripción¿Cuesta dinero?
scrape_pageObtener una página y devolver su contenido legible como markdown (o HTML sin procesar con clean=false). Opciones: render, keep_links, structured_data, country, max_chars/offset ventanas, caché freshness_seconds por llamada.solo proxy/navegador
search_webEncontrar URL para una consulta: resultados orgánicos clasificados con título, URL y fragmento. Opciones: count, country, engine.sin LLM
discover_urlsListar las URL que un sitio publica en robots.txt y sitemaps XML — un inventario revisable para scrape_pages/parse_pages, con filtros pattern/prefix. No es un rastreador.sin LLM
discover_search_paramsLos parámetros de búsqueda URL reales de un sitio, leídos de una página: los parámetros de consulta que sus propios enlaces usan (con valores que se sabe que funcionan) más cualquier control <form>. Úsalo en lugar de adivinar una URL de búsqueda.sin LLM
parse_marketplacePágina de producto (target="product") o listado (target="search_results") → JSON estructurado. Pasa schema para tu propia forma, include_offers para datos de Amazon Buy-Box, include_meta para metadatos de costo/procedencia.LLM solo cuando los niveles deterministas fallan
extractCualquier URL o texto sin procesar + tu JSON Schema → JSON extraído. instructions dirige la extracción.siempre una llamada LLM (o caché)
get_accountIdentidad del inquilino, capacidades configuradas, contadores de gasto de sesión.no

Trabajos en lote

HerramientaDescripción
scrape_pages / parse_pagesLas herramientas anteriores sobre muchas URL; devuelven un job_id inmediatamente (o esperan hasta wait_seconds).
get_jobConsultar el estado y recopilar resultados por elemento.
cancel_jobDetener un trabajo en ejecución (detiene el gasto).

Manejando tu propio navegador (recomendado)

Si ya tienes un navegador — Playwright MCP, browser-use, una extensión de Chrome, tu propio script de Playwright — consérvalo, y usa estas dos herramientas para la parte que necesita una cuenta de solucionador:

your browser hits a wall
  -> browser_get_html / page.content()      your session, your IP
  -> detect_captcha(url, html=...)          free: "recaptcha, sitekey 6Lc..., solvable"
  -> solve_captcha_on_page(url, html=...)   one solve
  -> run apply.javascript in your page      returns 'callback' / 'submit' / 'set'

apply.javascript es una expresión completa con el token ya incluido — es el mismo inyector que usa el nivel de renderizado de este servicio — por lo que se inserta directamente en page.evaluate, una consola de devtools, o cualquier herramienta de ejecutar-JS. Cuando la respuesta es una cookie en su lugar (DataDome, AWS WAF) obtienes la cookie analizada y la instrucción de volver a solicitar en lugar de recargar.

Dos cosas que vale la pena saber. Pasa html desde tu navegador, porque los muros anti-bot se levantan por cliente y nuestra dirección ve una página diferente a la tuya. Y para DataDome o CaptchaFox pasa tu propio proxy y user_agent: esas respuestas se acuñan para la identidad que las resolvió, por lo que una resuelta como nosotros se rechaza en tu sesión aunque sea técnicamente correcta.

Inicios de sesión en navegador (GROUPS=browser, 11 herramientas)

El navegador gestionado no intenta superar a Playwright. Esa superficie es gratuita y probablemente ya la tienes, y esta mantiene una página en vivo por cuenta, por lo que es la herramienta equivocada para cualquier cosa paralela. Lo que tiene que un navegador normal no tiene es que resuelve el CAPTCHA en el formulario de inicio de sesión, y puede mantener las cookies después — por lo que el grupo se limita exactamente a eso, a 2,842 tokens en lugar de 5,201:

CategoríaHerramientas
Navegar e interactuarbrowser_navigate, browser_click, browser_fill, browser_type, browser_press_key
Leerbrowser_snapshot (árbol de accesibilidad con refs de elemento), browser_get_text, browser_get_html
Sesionesbrowser_save_session, browser_load_session, browser_list_sessions

Establece GROUPS=browser_full para la superficie completa de 23 herramientas — añadiendo historial (browser_go_back, browser_go_forward, browser_reload), browser_scroll, browser_select_option, browser_hover, browser_drag, browser_console_messages, browser_evaluate, browser_snapshot_items, browser_screenshot y browser_save_as_pdf.

CAPTCHA

HerramientaDescripción¿Cuesta dinero?
list_captcha_typesEl catálogo de tipos resolubles con sus parámetros requeridos — llámalo antes de solve_captcha en lugar de adivinar.no
solve_captchaResolver un CAPTCHA de cualquier tipo soportado; devuelve el token/respuesta, un captcha_id, y el costo.sí — una resolución por llamada
detect_captchaIdentificar el muro en una página — tipo de widget, sitekey, si se puede construir una tarea resoluble a partir de él, y la llamada exacta solve_captcha a emitir. Pasa html desde tu propio navegador. Nunca resuelve.no (gratis con html)
solve_captcha_on_pageDetectar + resolver en un solo paso, y devolver un bloque apply: una expresión JS autocontenida para evaluate, o una cookie para añadir y una URL para volver a solicitar.sí — una resolución por llamada
captcha_reportReportar una solución buena/mala (los reportes malos reembolsan).no
captcha_balanceSaldo actual en USD.no

Local

HerramientaDescripción
session_statsUso de herramientas durante esta sesión (llamadas por herramienta, ventana de límite de velocidad). Manejado localmente, gratis.

Configuración

Variables de entorno

VariableRequeridaPredeterminadoDescripción
API_TOKENsí—Tu clave API de 2Captcha, o el token de portador que emitió el operador de tu servidor. Registrarse es gratis e incluye el subsidio mensual
GROUPSnoparsing,batch,captchaGrupos de herramientas separados por comas (ver arriba): browser añade las 11 herramientas de inicio de sesión, browser_full las 23, all desactiva el filtrado
TOOLSno—Nombres de herramientas individuales separados por comas para habilitar
MCP_URLnohttps://mcp.2captcha.com/mcpEl endpoint MCP remoto — configúralo para un servidor autoalojado
POLLING_TIMEOUTno600Tiempo de espera por llamada de herramienta en segundos (los renders, trabajos en lote y resoluciones de CAPTCHA pueden tomar minutos)
RATE_LIMITno—Limitador de llamadas del lado del cliente, p. ej. 100/1h o 50/30m
MAX_SPEND_USDno—Límite de gasto, medido desde lo que cada llamada reporta que costó: 5 para toda la sesión, o 5/1h para una ventana móvil
MAX_CONCURRENCYno—Máximo de llamadas de herramientas en vuelo a la vez. Sin él, un agente que se expande sobre una lista de URL abre una conexión por URL
CACHE_DIRnodirectorio de caché del SODónde se mantiene la caché de la lista de herramientas sin conexión

MAX_SPEND_USD es el que vale la pena configurar si solo configuras uno. Un límite de llamadas acota la cantidad equivocada — un solo parse_pages sobre 500 URL cuesta más que cien llamadas scrape_page — por lo que RATE_LIMIT te protege de un bucle descontrolado mientras MAX_SPEND_USD te protege de una factura descontrolada. El costo de una llamada solo se conoce una vez que el servidor responde, por lo que el límite se verifica contra lo que ya se ha gastado: acota el exceso a una llamada en lugar de pretender ser exacto.

Línea de comandos

npx @2captcha/mcp --version
npx @2captcha/mcp --help      # every variable above, with its default

Qué sale de tu máquina

Vale la pena aclarar esto antes de que llegue a una revisión de seguridad, porque la respuesta honesta es "más que una herramienta local, menos que una extensión de navegador".

A dónde va. Un lugar: MCP_URL — https://mcp.2captcha.com/mcp a menos que lo apuntes a tu propio servidor. Sin telemetría, sin análisis, sin terceros. El puente no abre ningún puerto de escucha. Qué viaja con una llamada de herramienta. Los argumentos de esa herramienta, reenviados textualmente y ni inspeccionados ni registrados por el puente. Para scrape_page eso es una URL. Para detect_captcha y solve_captcha_on_page es el HTML de la página que pasas — y el HTML tomado de una sesión iniciada contiene lo que esa página contenga. Para extract es tu esquema y cualquier texto que proporciones directamente.

Tu token de API va a MCP_URL como token de portador y a ningún otro lugar. Este paquete nunca lo escribe en disco.

Lo que almacenan los grupos de navegador. browser y browser_full controlan un navegador en el servidor, y browser_save_session mantiene deliberadamente las cookies de ese navegador en el lado del servidor para que una ejecución posterior pueda omitir el inicio de sesión. Esa es la característica, y también es la parte en la que pensar más detenidamente: una sesión guardada es una credencial viva para ese sitio, retenida por nosotros. browser_list_sessions muestra lo que existe. Ambos grupos son opcionales y están desactivados por defecto.

Las herramientas de CAPTCHA del lado de la página — detect_captcha y solve_captcha_on_page, ambas activadas por defecto — existen en parte para evitar esto. Leen el HTML de tu navegador y devuelven el JavaScript o la cookie para aplicar en tu sesión, de modo que la sesión nunca se mueve.

Lo que permanece en tu máquina. Un archivo: la caché offline de la lista de herramientas — nombres de herramientas y esquemas JSON, claveados por endpoint, bajo CACHE_DIR (por defecto ~/Library/Caches/2captcha-mcp en macOS, $XDG_CACHE_HOME/2captcha-mcp en Linux, %LOCALAPPDATA%\2captcha-mcp en Windows). Sin argumentos, sin resultados, sin credenciales. Eliminarlo cuesta un viaje de ida y vuelta en el próximo inicio.

Retención y eliminación. Los datos de solicitud se retienen en el lado del servidor según la política de privacidad de 2Captcha. Para eliminar una sesión de navegador almacenada, cárgala y límpiala, o contacta con support@2captcha.com. Para eliminar todo lo local, borra el directorio de caché; para invalidar el acceso, rota tu clave en 2captcha.com/setting.


Cómo funciona

Este paquete es un puente stdio delgado hacia el servicio remoto: los esquemas de herramientas se obtienen en vivo del servidor y se mantienen durante 60 segundos, de modo que el paquete nunca se desvía de la superficie de herramientas implementada, y las nuevas herramientas del lado del servidor aparecen automáticamente bajo GROUPS=all. Las llamadas se reenvían textualmente — incluyendo structuredContent, imágenes (capturas de pantalla) y errores de herramientas — con reconexión automática si la conexión se cae a mitad de sesión, y reintentos con retroceso exponencial en respuestas 429 y 5xx, respetando Retry-After.

Se inicia tanto si la red funciona como si no. La lista de herramientas se almacena en caché en disco, de modo que un portátil que se despierta con Wi-Fi muerto aún registra un servidor funcional y repuebla sus herramientas por notificación una vez que la conexión vuelve — en lugar de que el cliente marque el servidor como roto hasta que lo reinicies manualmente. El único fallo con el que se niega a iniciar es un token rechazado, porque ese no se arreglará solo.

Los costos se miden en el lado del servidor contra tu token: el scraping gasta recursos de proxy/navegador, solve_captcha gasta una resolución por llamada, y la extracción LLM en parse_marketplace/extract factura tu propia clave LLM cuando tienes una guardada (BYOK), el valor predeterminado del servidor en caso contrario. Pasa include_meta: true a las herramientas de análisis para ver exactamente qué gastó una llamada — este servicio es el único que informa el precio de una llamada al agente que la realiza, en lugar de solo en un panel después.

La asignación de nivel gratuito funciona con ese mismo medidor, vinculado a tu cuenta en su propia ventana de 30 días — por eso get_account puede decirte exactamente cuántas llamadas y cuánto gasto te queda.


Solución de problemas

"Cannot run without the API_TOKEN env"

Establece API_TOKEN en el bloque env de la configuración de tu cliente con tu clave API de 2Captcha (https://2captcha.com/setting). La asignación gratuita se mide por cuenta, por lo que necesita la credencial — registrarse es gratis.

"Authentication to … failed"

El servidor rechazó el token. Verifica si hay espacios en blanco y confirma qué credencial acepta tu implementación (clave API de 2Captcha vs. un token emitido por el operador).

"has used N of N calls allowed per 720h"

La asignación mensual de tu cuenta está agotada. La ventana es móvil, por lo que la capacidad regresa a medida que las llamadas más antiguas caducan; get_account muestra cuánto queda y cuándo. En un servidor autoalojado, el operador aumenta WEBPARSE_FREE_TIER_MAX_CALLS / WEBPARSE_FREE_TIER_MAX_SPEND_USD, o exime la cuenta por completo.

"is outside this server's allowance, which covers: …"

El operador restringió la asignación a un subconjunto de herramientas (WEBPARSE_FREE_TIER_TOOLS). Esa es una restricción de todo el servidor, no algo que una credencial diferente levante — pídeles que la amplíen. get_account enumera las herramientas a las que tu cuenta puede acceder.

"spawn npx ENOENT"

Tu cliente MCP no puede encontrar Node. Instala Node.js ≥ 18 y asegúrate de que npx esté en el PATH que usa el cliente (en aplicaciones GUI de macOS, usa una ruta absoluta a npx).

Tiempos de espera en sitios difíciles

Las páginas que fuerzan la escalera completa (navegador gestionado + resolución de CAPTCHA) pueden tardar minutos. Aumenta POLLING_TIMEOUT (segundos) y prefiere scrape_pages/parse_pages para muchas URLs para que la espera ocurra en el lado del servidor.

Falta una herramienta que espero

El valor predeterminado expone parsing,batch,captcha. Para una herramienta de navegador, establece GROUPS=browser (las 11 herramientas de inicio de sesión) o GROUPS=browser_full (las 23); GROUPS=all desactiva el filtrado por completo. Si aún falta, el servidor mismo tiene ese conjunto de herramientas deshabilitado — o el operador restringió la asignación a un subconjunto de herramientas (get_account lo dirá).


Licencia

MIT — © 2Captcha. Ver LICENSE.