
Servidor MCP para búsqueda en Google y obtención de páginas usando Chromium sin cabeza.
Si quieres apoyar noapi-google-mcp o gpt-oss-20B/120B-Vision y otros modelos de código abierto en desarrollo, por favor contribuye a mi fondo de cómputo en GPU: se necesitan alrededor de $3000.
Si encuentras esto útil, considera apoyar el desarrollo continuo y nuevas funciones.
BTC:16DT4AHemLyn7C6P116YepjY518gu9wUUH
ETH:
0x7287D1F9c77832cFF246937af0443622bFdACD04
38 herramientas. Cero claves API. Dale a cualquier LLM local búsqueda real en Google, feeds en vivo, visión, OCR y comprensión completa de video.
Un servidor MCP que convierte tu LLM local en un asistente completamente conectado. Resultados reales de Google, noticias en vivo y feeds sociales, búsqueda inversa de imágenes, OCR sin conexión, transcripción de YouTube y extracción de clips — todo ejecutándose localmente mediante Chromium sin interfaz gráfica y modelos de ML de código abierto. Sin claves API, sin límites de uso, sin dependencia en la nube.
Funciona con LM Studio, Claude Desktop, OpenClaw, Ollama y cualquier cliente compatible con MCP.
Google comenzó a detectar navegadores Chromium sin interfaz gráfica y a mostrar CAPTCHAs en lugar de resultados de búsqueda (#2). Lo solucionamos adecuadamente y luego añadimos un solucionador de CAPTCHA con red neuronal solo porque podíamos.
Parches anti-detección:
navigator.webdriver, falsificar plugins del navegador, chrome.runtime y eliminar las huellas de Playwrightaarch64, ahora coincide con el binario de Chromium real)Solucionador de CAPTCHA con red neuronal (MobileNetV2 + OpenCV):
¿Resolverá todos los CAPTCHA? No. Pero logrará superar algunos, y honestamente lo construimos principalmente porque podíamos.
Una tubería completa de recuperación-aumentada local para YouTube. Suscríbete a cualquier canal y, cuando revises los feeds, el servidor descarga automáticamente el audio, lo transcribe con Whisper y almacena la transcripción completa en SQLite con búsqueda de texto completo FTS5. Cada palabra de cada video se vuelve buscable: tu LLM hace una pregunta y obtiene la respuesta del video correcto.
¿Encontraste algo interesante? Pídele al LLM que extraiga ese segmento como un clip. Lee la transcripción, encuentra las marcas de tiempo exactas y recorta el video por ti. Este es el comienzo de la edición de video impulsada por IA/LLM — tu LLM comprende el contenido y recorta clips según lo que se dice, no solo las marcas de tiempo.
Cómo funciona:
suscribir a un canal de YouTube — por identificador (@3Blue1Brown), URL o ID del canalcheck_feeds — los videos nuevos se obtienen y se transcriben automáticamente localmente con faster-whisper. Las transcripciones se escriben en la base de datos para búsqueda instantánea. Hasta 5 videos por revisión, en caché para que nada se descargue de nuevo.search_feeds — búsqueda de texto completo en todas las transcripciones. Soporta AND, OR, NOT y frases entre comillas. Tu LLM encuentra el video y el pasaje exactos que responden tu pregunta.extract_video_clip — dile al LLM qué te interesa y recorta el clip del video. El LLM usa la transcripción para encontrar el segmento correcto y lo extrae automáticamente.```
"Subscribe to @AndrejKarpathy on YouTube"
"Check my feeds"
"Search my feeds for backpropagation explained"
"What did Karpathy say about tokenization?"
"Extract the part where he explains gradient descent"
"Cut a clip of the hardware comparison section"Sin embeddings, sin base de datos vectorial, sin API — solo Whisper + SQLite FTS5 ejecutándose en tu máquina.
> **Hoja de ruta:** La extracción de clips es el primer paso hacia la edición de video completamente impulsada por IA. Futuras versiones añadirán superposición de música/audio, remezcla de video, compilación de múltiples clips, reformateo vertical para TikTok/Reels/Shorts y resúmenes automáticos de momentos destacados — todo impulsado por tu LLM al comprender el contenido.
---
### Suscripciones a Fuentes en Vivo
Suscríbete a noticias, Reddit, Hacker News, canales de YouTube, perfiles de Twitter/X, repositorios de GitHub, artículos de arXiv y podcasts. El contenido se obtiene, se almacena localmente en SQLite con búsqueda de texto completo y está disponible para tu LLM al instante.
| Nueva Herramienta | Qué Hace |
|----------|-------------|
| `subscribe` | Agregar cualquier fuente — RSS de noticias, Reddit, HN, GitHub, arXiv, YouTube, podcasts, Twitter/X |
| `unsubscribe` | Eliminar una suscripción y su contenido almacenado |
| `list_subscriptions` | Ver todas las fuentes activas con conteos de elementos |
| `check_feeds` | Consultar todas las suscripciones, obtener contenido nuevo, transcribir automáticamente videos de YouTube |
| `search_feeds` | Búsqueda de texto completo en todo lo que tus fuentes han recolectado |
| `get_feed_items` | Explorar elementos recientes, filtrados por fuente o tipo |
**Fuentes de noticias preconfiguradas** — suscríbete con una sola palabra: `bbc`, `cnn`, `nyt`, `guardian`, `npr`, `aljazeera`, `techcrunch`, `ars`, `verge`, `wired`, `reuters`
**Atajos de arXiv** — `ai`, `ml`, `cv`, `nlp`, `robotics`, `crypto`, `systems`, `hci````
"Subscribe to BBC News, r/LocalLLaMA, and Hacker News"
"Follow @elonmusk on Twitter"
"Subscribe to the YouTube channel @3Blue1Brown"
"Watch anthropics/claude-code on GitHub for new releases"
"Subscribe to the machine learning arXiv category"
"Check my feeds"
"Search my feeds for transformer architecture"
"What's new in my Reddit feeds?"
Transcribe reuniones, convierte formatos, lee documentos — todo local, sin nube.
| Nueva Herramienta | Qué Hace |
|---|---|
transcribe_local | Transcribe cualquier archivo de audio o video local con Whisper (mp3, wav, mp4, mkv, etc.) |
convert_media | Conversión de formatos con FFmpeg — video a audio, formato a formato, video a GIF |
read_document | Extrae texto de PDF, DOCX, HTML, CSV, JSON y más de 30 formatos de texto |
Obtén correos electrónicos, genera códigos QR, acorta URLs, archiva páginas, consulta Wikipedia, sube a S3.
**Sin dependencias adicionales para los feeds.** Construido completamente con la biblioteca estándar de Python: SQLite para almacenamiento, FTS5 para búsqueda, urllib para descargas, xml.etree para análisis. YouTube y Twitter usan el navegador Playwright existente. Se requiere FFmpeg para `convert_media` (comúnmente preinstalado).
---
## Las 38 herramientas por categoría
### Suscripciones en vivo a feeds
| Herramienta | Descripción |
|------|-------------|
| `subscribe` | Suscribirse a noticias, Reddit, HN, GitHub, arXiv, YouTube, podcasts, Twitter/X |
| `unsubscribe` | Eliminar una suscripción y su contenido almacenado |
| `list_subscriptions` | Listar todas las suscripciones activas con conteos de elementos |
| `check_feeds` | Obtener contenido nuevo de todas o fuentes específicas |
| `search_feeds` | Búsqueda de texto completo en todo el contenido almacenado de feeds |
| `get_feed_items` | Obtener elementos recientes filtrados por fuente o tipo |
### Búsqueda en Google y Web
| Herramienta | Descripción |
|------|-------------|
| `google_search` | Búsqueda web con filtros de tiempo, sitio, paginación, idioma/región |
| `google_news` | Búsqueda de noticias con miniaturas de artículos en línea |
| `google_scholar` | Artículos académicos con citas |
| `google_images` | Búsqueda de imágenes con resultados mostrados en línea en el chat |
| `google_trends` | Interés del tema a lo largo del tiempo, consultas relacionadas |
| `visit_page` | Obtener cualquier URL y extraer texto legible |
### Viajes y Comercio
| Herramienta | Descripción |
|------|-------------|
| `google_shopping` | Búsqueda de productos con precios, tiendas, valoraciones, imágenes |
| `google_flights` | Búsqueda de vuelos con precios y tiempos de viaje |
| `google_hotels` | Búsqueda de hoteles con imágenes, precios, valoraciones, URLs de reserva |
| `google_translate` | Traducción en más de 100 idiomas |
| `google_maps` | Búsqueda de lugares con valoraciones, reseñas y capturas de mapa |
| `google_maps_directions` | Direcciones de ruta con paso a paso y captura de mapa |
### Finanzas e Información
| Herramienta | Descripción |
|------|-------------|
| `google_finance` | Precios de acciones, datos de mercado, información de empresas |
| `google_weather` | Condiciones actuales y pronóstico de varios días |
| `google_books` | Búsqueda de libros con autor, ISBN, fragmentos |
### Visión y OCR
| Herramienta | Descripción |
|------|-------------|
| `google_lens` | Búsqueda inversa de imágenes: identificar objetos, productos, lugares emblemáticos, texto |
| `google_lens_detect` | Detectar todos los objetos en una imagen (OpenCV) e identificar cada uno mediante Lens |
| `ocr_image` | Extraer texto de imágenes localmente (RapidOCR, completamente sin conexión) |
| `list_images` | Listar archivos de imagen en un directorio para usar con herramientas de visión |
### Video y Audio Inteligentes — Edición de Video con IA
| Herramienta | Descripción |
|------|-------------|
| `transcribe_video` | Descargar y transcribir cualquier video con marcas de tiempo (faster-whisper) |
| `transcribe_local` | Transcribir archivos de audio/video locales (mp3, wav, m4a, mp4, mkv, etc.) |
| `search_transcript` | Buscar en una transcripción de video temas por palabra clave |
| `extract_video_clip` | Extracción de clips con IA: dile al LLM lo que quieres y corta el video usando el contexto de la transcripción |
| `convert_media` | Convertir entre formatos de audio/video mediante FFmpeg |
### Documentos y Datos
| Herramienta | Descripción |
|------|-------------|
| `read_document` | Extraer texto de PDF, DOCX, HTML, CSV, JSON y más de 30 formatos |
### Correo Electrónico
| Herramienta | Descripción |
|------|-------------|
| `fetch_emails` | Obtener correos mediante IMAP: Gmail, Outlook, Yahoo, iCloud, cualquier servidor IMAP |
### Utilidades Web
| Herramienta | Descripción |
|------|-------------|
| `paste_text` | Publicar texto en un pastebin y obtener una URL compartible |
| `shorten_url` | Acortar cualquier URL mediante TinyURL |
| `generate_qr` | Generar imágenes de códigos QR (URLs, Wi-Fi, contactos, cualquier dato) |
| `archive_webpage` | Archivar una página web en Wayback Machine |
| `wikipedia` | Consulta de artículos de Wikipedia en cualquier idioma |
### Almacenamiento en la Nube
| Herramienta | Descripción |
|------|-------------|
| `upload_to_s3` | Subir archivos a MinIO, AWS S3, DigitalOcean Spaces, Cloudflare R2, Backblaze B2 |
---
## Formatos de archivo compatibles
### Documentos (`read_document`)
| Categoría | Formatos |
|----------|---------|
| Documentos | PDF (con OCR de respaldo para páginas escaneadas), DOCX |
| Web | HTML, HTM |
| Datos | CSV, JSON, XML, YAML, YML, TOML |
| Texto | TXT, MD, LOG |
| Configuración | INI, CFG, CONF, ENV |
| Código | PY, JS, TS, GO, RS, C, CPP, H, JAVA, KT, RB, SQL, R, M, SWIFT |
| Shell | SH, BASH, ZSH |
### Audio y Video (`transcribe_local`, `transcribe_video`, `convert_media`)
| Categoría | Formatos |
|----------|---------|
| Audio | MP3, WAV, M4A, FLAC, OGG, AAC, WMA, OPUS |
| Video | MP4, MKV, WEBM, AVI, MOV |
| Especial | GIF (salida de video a GIF) |
| Entrada | Cualquier formato que FFmpeg pueda decodificar (cientos de formatos) |
### Imágenes (`google_lens`, `google_lens_detect`, `ocr_image`, `list_images`)
| Categoría | Formatos |
|----------|---------|
| Estándar | JPG, JPEG, PNG, GIF, BMP, WEBP |
| Profesional | TIFF, TIF, SVG |
| Métodos de entrada | Ruta de archivo local, URL pública, base64 (arrastrar y soltar en el chat) |
---
## Por qué esto y no alternativas basadas en API?
| | **noapi-google-search-mcp** | Servidores MCP basados en API | OpenClaw incorporado |
|---|---|---|---|
| Clave de API necesaria | **No** | Sí | Sí |
| Costo | **Gratuito** | Pagado después de 100 consultas/día | Tarifas de API |
| Tiempo de configuración | **`pip install` + listo** | Crear proyecto en Cloud, habilitar API, configurar | Múltiples claves de API |
| Calidad de resultados | **Resultados reales de Google** | Motor de búsqueda personalizado | Índice de Brave |
| Páginas con JavaScript | **Las renderiza (Chromium)** | No puede renderizar JS | No puede renderizar JS |
| Cantidad de herramientas | **38** | 1-3 | 2 (web_search, web_fetch) |
| Búsqueda en Google | Incorporada (con filtros) | Solo básica | No disponible |
| Google Shopping | Incorporado | No disponible | No disponible |
| Google Flights | Incorporado | No disponible | No disponible |
| Google Hotels | Incorporado | No disponible | No disponible |
| Google Translate | Incorporado | Se necesita API aparte | No disponible |
| Google Maps | Incorporado (con capturas) | No disponible | No disponible |
| Google Maps Directions | Incorporado (con mapa de ruta) | No disponible | No disponible |
| Google Weather | Incorporado | No disponible | No disponible |
| Google Finance | Incorporado | No disponible | No disponible |
| Google News | Incorporado | Generalmente no disponible | No disponible |
| Google Scholar | Incorporado | No disponible | No disponible |
| Google Books | Incorporado | No disponible | No disponible |
| Google Images | Incorporado (en línea en el chat) | Se necesita API aparte | No disponible |
| Google Lens | Incorporado (búsqueda inversa de imágenes) | No disponible | No disponible |
| Detección de objetos | Incorporado (OpenCV + Lens) | No disponible | No disponible |
| OCR local | Incorporado (sin conexión) | No disponible | No disponible |
| Transcripción de video | Incorporado (Whisper local) | No disponible | No disponible |
| Extracción de clips de video | **Incorporado (con IA/LLM)** | No disponible | No disponible |
| Pipeline RAG de YouTube | **Incorporado (suscribirse → transcribir → buscar)** | No disponible | No disponible |
| Google Trends | Incorporado | Se necesita API aparte | No disponible |
| Suscripciones a feeds | **Incorporado (8 tipos de fuente)** | No disponible | No disponible |
| Búsqueda de texto completo en feeds | **Incorporado (SQLite FTS5)** | No disponible | No disponible |
| Transcripción automática de feeds | **Incorporado (YouTube → Whisper)** | No disponible | No disponible |
| Transcripción de archivos locales | **Incorporado (cualquier audio/video)** | No disponible | No disponible |
| Conversión de formatos multimedia | **Incorporado (FFmpeg)** | No disponible | No disponible |
| Lector de documentos | **Incorporado (PDF, DOCX, etc.)** | No disponible | No disponible |
| Integración de correo electrónico | **Incorporado (IMAP)** | No disponible | No disponible |
| Pastebin | **Incorporado** | No disponible | No disponible |
| Acortador de URLs | **Incorporado (TinyURL)** | No disponible | No disponible |
| Generación de códigos QR | **Incorporado (OpenCV)** | No disponible | No disponible |
| Archivo web | **Incorporado (Wayback Machine)** | No disponible | No disponible |
| Wikipedia | **Incorporado** | No disponible | No disponible |
| Subida a S3/MinIO | **Incorporado** | No disponible | No disponible |
| Obtención de páginas | Incorporado | Generalmente aparte | Básico |
---
## Detalles y Parámetros de las Herramientas
### Herramientas de Suscripción a Feeds
#### `subscribe` — Agregar una Fuente de Contenido
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `source_type` | Tipo de fuente (obligatorio) | `"news"`, `"reddit"`, `"hackernews"`, `"github"`, `"arxiv"`, `"youtube"`, `"podcast"`, `"twitter"` |
| `identifier` | Identificador de fuente (obligatorio) | `"bbc"`, `"LocalLLaMA"`, `"top"`, `"anthropics/claude-code"`, `"ml"`, `"@3Blue1Brown"`, `"https://..."`, `"elonmusk"` |
| `name` | Nombre para mostrar (opcional) | `"Mi Feed Personalizado"` |
**Formatos de identificador por tipo:**
- **news:** nombre predefinido (`bbc`, `cnn`, `nyt`, `guardian`, `npr`, `aljazeera`, `techcrunch`, `ars`, `verge`, `wired`, `reuters`) o cualquier URL de RSS
- **reddit:** nombre de subreddit (ej. `LocalLLaMA`, `programming`)
- **hackernews:** `top`, `new` o `best`
- **github:** `owner/repo` (ej. `anthropics/claude-code`)
- **arxiv:** acceso directo (`ai`, `ml`, `cv`, `nlp`, `robotics`, `crypto`) o categoría como `cs.AI`
- **youtube:** identificador de canal (`@3Blue1Brown`), URL o ID de canal (`UCxxxx`)
- **podcast:** URL del feed RSS
- **twitter:** nombre de usuario con o sin `@`
#### `check_feeds` — Obtener Contenido Nuevo
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `source_type` | Limitar a un tipo (opcional) | `"news"`, `"reddit"` |
#### `search_feeds` — Búsqueda de Texto Completo
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Consulta de búsqueda (obligatorio) — soporta FTS5: AND, OR, NOT, "frases entre comillas" | `"machine learning"`, `"GPU NOT NVIDIA"` |
| `source_type` | Limitar a un tipo (opcional) | `"news"` |
| `limit` | Máximo de resultados (por defecto 20) | `10` |
#### `get_feed_items` — Explorar Elementos Recientes
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `source` | Filtrar por nombre de fuente (opcional) | `"BBC"`, `"LocalLLaMA"` |
| `source_type` | Filtrar por tipo (opcional) | `"reddit"`, `"hackernews"` |
| `limit` | Máximo de elementos (por defecto 20) | `10` |
---
### Herramientas de Búsqueda en Google
#### `google_search` — Búsqueda Web
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Consulta de búsqueda (obligatorio) | `"best python frameworks 2025"` |
| `num_results` | Número de resultados (1-10, por defecto 5) | `5` |
| `time_range` | Filtrar por actualidad | `"past_hour"`, `"past_day"`, `"past_week"`, `"past_month"`, `"past_year"` |
| `site` | Limitar a un dominio | `"reddit.com"`, `"stackoverflow.com"`, `"github.com"` |
| `page` | Página de resultados (1-10, por defecto 1) | `2` |
| `language` | Código de idioma | `"en"`, `"de"`, `"fr"`, `"ja"` |
| `region` | Código de país/región | `"us"`, `"gb"`, `"de"`, `"jp"` |
#### `google_shopping` — Búsqueda de Productos
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Consulta de búsqueda de productos (obligatorio) | `"Sony WH-1000XM5"` |
| `num_results` | Número de resultados (1-10, por defecto 5) | `5` |
#### `google_flights` — Búsqueda de Vuelos
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `origin` | Ciudad o aeropuerto de salida (obligatorio) | `"New York"`, `"LAX"` |
| `destination` | Ciudad o aeropuerto de llegada (obligatorio) | `"London"`, `"NRT"` |
| `date` | Fecha de salida (opcional) | `"March 15"` |
| `return_date` | Fecha de regreso (opcional) | `"March 22"` |

#### `google_hotels` — Búsqueda de Hoteles
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Búsqueda de hoteles con ubicación (obligatorio) | `"Paris"`, `"Tokyo near Shibuya"` |
| `num_results` | Número de resultados (1-10, por defecto 5) | `5` |

#### `google_translate` — Traducción
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `text` | Texto a traducir (obligatorio) | `"Hello, how are you?"` |
| `to_language` | Idioma de destino (obligatorio) | `"Spanish"`, `"Japanese"` |
| `from_language` | Idioma de origen (opcional, detección automática) | `"English"` |
#### `google_maps` — Búsqueda de Lugares con Captura de Mapa
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Consulta de búsqueda de lugares (obligatorio) | `"pizza near Central Park"` |
| `num_results` | Número de resultados (1-10, por defecto 5) | `5` |

#### `google_maps_directions` — Direcciones de Ruta con Mapa
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `origin` | Ubicación de inicio (obligatorio) | `"Berlin"` |
| `destination` | Ubicación de destino (obligatorio) | `"Munich"` |
| `mode` | Modo de viaje (por defecto "driving") | `"driving"`, `"walking"`, `"transit"`, `"cycling"` |

#### `google_weather` — Clima
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `location` | Ciudad o ubicación (obligatorio) | `"Dubai"`, `"Tokyo"` |
#### `google_finance` — Datos de Acciones y Mercado
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Símbolo bursátil o nombre de empresa (obligatorio) | `"AAPL:NASDAQ"`, `"TSLA:NASDAQ"` |

#### `google_news` — Búsqueda de Noticias
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Consulta de búsqueda de noticias (obligatorio) | `"AI regulation"` |
| `num_results` | Número de resultados (1-10, por defecto 5) | `5` |

#### `google_scholar` — Búsqueda Académica
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Consulta de búsqueda académica (obligatorio) | `"transformer attention mechanism"` |
| `num_results` | Número de resultados (1-10, por defecto 5) | `5` |
#### `google_books` — Búsqueda de Libros
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Consulta de búsqueda de libros (obligatorio) | `"machine learning"` |
| `num_results` | Número de resultados (1-10, por defecto 5) | `5` |
#### `google_images` — Búsqueda de Imágenes (en línea en el chat)
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Consulta de búsqueda de imágenes (obligatorio) | `"sunset over ocean"` |
| `num_results` | Número de resultados (1-10, por defecto 5) | `5` |


#### `google_trends` — Tendencias
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `query` | Tema (obligatorio) | `"artificial intelligence"` |
---
### Herramientas de Visión y OCR
#### `google_lens` — Búsqueda Inversa de Imágenes
Identificar objetos, productos, marcas, lugares emblemáticos y texto. Soporta URLs, archivos locales y base64 (arrastrar y soltar).
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `image_source` | URL de imagen, ruta de archivo o base64 (obligatorio) | `"https://example.com/photo.jpg"` or `"/home/user/image.jpg"` |

#### `google_lens_detect` — Detección + Identificación de Objetos
Detectar todos los objetos (OpenCV), recortar cada uno, identificar individualmente mediante Lens.
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `image_source` | Ruta de archivo local o base64 (obligatorio) | `"/home/user/photo.jpg"` |
#### `ocr_image` — OCR Local (sin conexión)
Extraer texto de imágenes usando RapidOCR. No se necesita internet.
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `image_source` | Ruta de archivo local o base64 (obligatorio) | `"/home/user/screenshot.png"` |

#### `list_images` — Descubrimiento de Imágenes
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `directory` | Carpeta a escanear (por defecto `~/lens/`) | `"/home/user/photos"` |
---
### Herramientas de Inteligencia de Video
#### `transcribe_video` — Transcripción de Video
Descargar y transcribir cualquier video de YouTube (o URL de video) con marcas de tiempo usando faster-whisper.
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `url` | URL de YouTube o video (obligatorio) | `"https://youtube.com/watch?v=..."` |
| `model_size` | Tamaño del modelo Whisper (por defecto: tiny) | `"tiny"`, `"base"`, `"small"`, `"medium"`, `"large"` |
| `language` | Código de idioma (opcional, detección automática) | `"en"` |
#### `search_transcript` — Búsqueda en Transcripción
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `url` | Misma URL usada con transcribe_video (obligatorio) | `"https://youtube.com/watch?v=..."` |
| `query` | Palabra clave o frase (obligatorio) | `"memory bandwidth"` |
| `context_segments` | Segmentos circundantes (por defecto: 2) | `3` |
#### `extract_video_clip` — Extracción de Clip por Tema
Pide "extrae la parte sobre X" y el LLM encuentra las marcas de tiempo en la transcripción y corta el clip.
| Parámetro | Descripción | Ejemplo |
|-----------|-------------|---------|
| `url` | URL de YouTube o video local (obligatorio) | `"https://youtube.com/watch?v=..."` |
| `start_seconds` | Tiempo de inicio en segundos (obligatorio) | `150` |
| `end_seconds` | Tiempo de fin en segundos (obligatorio) | `315` |
| `buffer_seconds` | Segundos extra antes/después (por defecto: 3) | `5.0` |
| `output_filename` | Nombre de archivo personalizado (opcional) | `"hardware_overview"` |
---
## Ejemplos de Instrucciones
### Suscripciones a Feeds
| Lo que escribes | Herramienta llamada |
|--------------|-------------|
| *"Suscríbete a BBC News y CNN"* | `subscribe` |
| *"Sigue r/LocalLLaMA en Reddit"* | `subscribe` |
| *"Monitorea las historias principales de Hacker News"* | `subscribe` |
| *"Vigila anthropics/claude-code para nuevas versiones"* | `subscribe` |
| *"Suscríbete a @3Blue1Brown en YouTube"* | `subscribe` |
| *"Sigue a @elonmusk en Twitter"* | `subscribe` |
| *"Suscríbete a la categoría ML de arXiv"* | `subscribe` |
| *"Revisa mis feeds"* | `check_feeds` |
| *"¿Qué hay de nuevo en mis suscripciones?"* | `check_feeds` |
| *"Busca en mis feeds transformer architecture"* | `search_feeds` |
| *"Muéstrame las últimas publicaciones de Reddit"* | `get_feed_items` |
| *"¿Cuáles son mis suscripciones?"* | `list_subscriptions` |
| *"Cancela la suscripción a BBC News"* | `unsubscribe` |
### Búsqueda Web
| Lo que escribes | Herramienta llamada | Parámetros usados |
|--------------|-------------|-----------------|
| *"Busca los mejores frameworks de Python"* | `google_search` | `query` |
| *"Encuentra discusiones de Reddit sobre configuraciones de laboratorio en casa"* | `google_search` | `query` + `site="reddit.com"` |
| *"Busca en Stack Overflow ejemplos de Python asíncrono"* | `google_search` | `query` + `site="stackoverflow.com"` |
| *"¿Qué hay de nuevo en IA esta semana?"* | `google_search` | `query` + `time_range="past_week"` |
| *"Busca en Hacker News publicaciones sobre Rust"* | `google_search` | `query` + `site="news.ycombinator.com"` |
| *"Obtén la página 2 de resultados para tutoriales de ML"* | `google_search` | `query` + `page=2` |
| *"Busca restaurantes en Tokio en japonés"* | `google_search` | `query` + `language="ja"` + `region="jp"` |
### Compras y Viajes
| Lo que escribes | Herramienta llamada |
|--------------|-------------|
| *"Encuentra la MacBook Air más barata"* | `google_shopping` |
| *"Encuentra vuelos de Nueva York a Londres"* | `google_flights` |
| *"Encuentra hoteles en París para el próximo fin de semana"* | `google_hotels` |
| *"Traduce 'hello world' al japonés"* | `google_translate` |
### Mapas y Direcciones
| Lo que escribes | Herramienta llamada |
|--------------|-------------|
| *"Encuentra restaurantes italianos cerca de Times Square"* | `google_maps` |
| *"Obtén direcciones de Berlín a Múnich"* | `google_maps_directions` |
| *"Direcciones a pie de la Torre Eiffel al Louvre"* | `google_maps_directions` |
### Finanzas, Clima e Información
| Lo que escribes | Herramienta llamada |
|--------------|-------------|
| *"¿Cuál es el precio de las acciones de Apple?"* | `google_finance` |
| *"¿Cómo está el clima en Dubái?"* | `google_weather` |
| *"¿Cuáles son los titulares principales de hoy?"* | `google_news` |
| *"Encuentra artículos sobre mecanismos de atención en transformers"* | `google_scholar` |
| *"Encuentra libros sobre aprendizaje automático"* | `google_books` |### Imágenes y Visión
| Lo que escribes | Herramienta utilizada |
|--------------|-------------|
| *"Muéstrame imágenes de la aurora boreal"* | `google_images` |
| *"¿Qué producto es este? /path/to/photo.jpg"* | `google_lens` |
| *"Detecta todos los objetos en esta foto"* | `google_lens_detect` |
| *"Lee el texto en esta captura de pantalla"* | `ocr_image` |
| Arrastra la imagen al chat + *"¿Qué es esto?"* | `google_lens` |
| Arrastra la imagen al chat + *"Lee el texto"* | `ocr_image` |
> **Consejo:** Para habilitar imágenes de arrastrar y soltar con modelos solo texto en LM Studio, añade un archivo `model.yaml` en el directorio del modelo con `metadataOverrides: { vision: true }`. La imagen se enviará como base64 y las herramientas MCP lo manejarán automáticamente.
### Inteligencia de Video y Extracción de Clips Impulsada por IA
| Lo que escribes | Herramienta utilizada |
|--------------|-------------|
| *"Transcribe este video: https://youtube.com/watch?v=..."* | `transcribe_video` |
| *"¿De qué hablan en este video?"* | `transcribe_video` |
| *"Encuentra dónde hablan sobre ancho de banda de memoria"* | `search_transcript` |
| *"Extrae la parte donde discuten precios"* | `extract_video_clip` |
| *"Corta un clip de la sección de comparación de hardware"* | `extract_video_clip` |
| *"Transcribe ~/meeting.mp3"* | `transcribe_local` |
| *"Convierte video.mp4 a mp3"* | `convert_media` |
| *"Convierte este video a GIF"* | `convert_media` |
### Documentos y Correo Electrónico
| Lo que escribes | Herramienta utilizada |
|--------------|-------------|
| *"Lee este PDF: ~/report.pdf"* | `read_document` |
| *"Extrae texto de ~/contract.docx"* | `read_document` |
| *"Lee este artículo para mí: https://..."* | `visit_page` |
| *"Revisa mi correo en [email protected] contraseña: xxxx"* | `fetch_emails` |
| *"Obtén mis últimos 10 correos de Outlook"* | `fetch_emails` |
### Utilidades Web y Nube
| Lo que escribes | Herramienta utilizada |
|--------------|-------------|
| *"Acorta esta URL: https://very-long-url..."* | `shorten_url` |
| *"Genera un código QR para https://mysite.com"* | `generate_qr` |
| *"Haz un código QR para mi red Wi-Fi"* | `generate_qr` |
| *"Publica este código en un pastebin"* | `paste_text` |
| *"Archiva este artículo: https://news.example.com/story"* | `archive_webpage` |
| *"Wikipedia: computación cuántica"* | `wikipedia` |
| *"Busca la misión Apollo 11 en Wikipedia en alemán"* | `wikipedia` |
| *"Sube report.pdf a mi bucket de MinIO"* | `upload_to_s3` |
| *"Almacena backup.tar.gz en el bucket S3 my-backups"* | `upload_to_s3` |
---
## Instalación
### Instalación Rápida (pipx - recomendado)```bash
pipx install noapi-google-search-mcp
playwright install chromium
python3 -m venv ~/.local/share/noapi-google-search-mcp ~/.local/share/noapi-google-search-mcp/bin/pip install noapi-google-search-mcp ~/.local/share/noapi-google-search-mcp/bin/playwright install chromium
### Python 3.13 / OCR
El paquete principal se instala en todos los Python compatibles, incluido 3.13. OCR es opcional porque `rapidocr-onnxruntime` aún no distribuye una rueda de Python 3.13 upstream ([RapidAI/RapidOCR#579](https://github.com/RapidAI/RapidOCR/issues/579)). Todo excepto las herramientas OCR (`ocr_image` y el fallback de PDF escaneado en `read_document`) funciona sin él.
Para habilitar OCR, añade el extra `[ocr]` en un Python compatible (3.10–3.12):```bash
pipx install "noapi-google-search-mcp[ocr]"
Si instalas el paquete principal y luego llamas a una herramienta OCR sin el extra,
la herramienta devuelve un mensaje corto indicándote que instales "noapi-google-search-mcp[ocr]" en lugar de fallar.
Añade a ~/.lmstudio/mcp.json:```json
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp",
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
Si se instala en un venv, utilice la ruta completa: `~/.local/share/noapi-google-search-mcp/bin/noapi-google-search-mcp`
### Claude Desktop
Añada a su configuración de Claude Desktop (`claude_desktop_config.json`):```json
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp"
}
}
}
Agregar a la configuración de su agente:```yaml mcp_servers: google-search: command: "noapi-google-search-mcp" env: PYTHONUNBUFFERED: "1"
Esto le da a tu agente OpenClaw acceso a las 38 herramientas — búsqueda real de Google, transmisiones en vivo, visión, OCR e inteligencia de video — con cero claves API.
### Como CLI```bash
noapi-google-search-mcp
O:```bash python -m google_search_mcp
## Desarrollo```bash
git clone https://github.com/VincentKaufmann/noapi-google-search-mcp.git
cd google-search-mcp
pip install -e .
playwright install chromium
MIT
| Nueva Herramienta | Qué Hace |
|---|
fetch_emails | Obtén correos electrónicos vía IMAP — Gmail, Outlook, Yahoo, cualquier servidor IMAP |
paste_text | Publica texto en un pastebin y obtén un enlace compartible |
shorten_url | Acorta cualquier URL mediante TinyURL |
generate_qr | Genera imágenes de código QR para URLs, Wi-Fi, contactos, cualquier dato |
archive_webpage | Guarda una instantánea de página web en Wayback Machine |
wikipedia | Consulta cualquier artículo de Wikipedia, en cualquier idioma, con soporte de resumen |
upload_to_s3 | Sube archivos a MinIO, AWS S3, DigitalOcean Spaces, Cloudflare R2 |
| "Transcribe this recording: ~/meeting.mp3" | |
| "Convert video.mp4 to mp3" | |
| "Read this PDF: ~/report.pdf" | |
| "Check my email: [email protected] password: xxxx" | |
| "Shorten this URL: https://very-long-url..." | |
| "Generate a QR code for https://mysite.com" | |
| "Archive this article: https://news.example.com/story" | |
| "Wikipedia: quantum computing" | |
| "Upload report.pdf to my MinIO bucket" |