Desarrollo de un servidor MCP para Google Search Console

Cómo diseñé un servicio MCP en producción que conecta asistentes de AI con Google Search Console manteniendo explícitos los límites de OAuth, acceso a datos, persistencia y herramientas.

El problema

Search Console contiene datos propios muy útiles sobre búsquedas, pero normalmente hay que alternar entre la interfaz de Google, exportaciones y herramientas de análisis separadas. Quería que un asistente de AI pudiera trabajar con esos datos directamente sin convertir el acceso a Search Console en un proxy irrestricto de la API.

El resultado es Search Console Insights: un servicio MCP dedicado que expone un conjunto pequeño y deliberado de operaciones de Search Console y mantiene la autenticación, los límites y el estado del flujo de trabajo del lado del servidor.

Una superficie MCP acotada

El servicio expone herramientas para detectar la cuenta conectada, listar propiedades, consultar Search Analytics, comparar períodos, detectar oportunidades, inspeccionar indexación de URLs y revisar sitemaps. Las entradas se validan y se limitan en lugar de permitir llamadas arbitrarias a la API de Google.

Esto convierte a la capa MCP en un límite de aplicación y no en un simple wrapper de transporte. El asistente recibe las operaciones necesarias para análisis SEO y el servidor conserva el control sobre rangos de fechas, cantidad de filas y recursos accesibles.

OAuth como parte de la arquitectura

El servicio implementa el flujo OAuth necesario para una integración MCP remota: metadata del recurso protegido, metadata del servidor de autorización, registro de clientes, autorización con Google, intercambio de tokens y autenticación con bearer tokens.

Los refresh tokens de Google permanecen del lado del servidor y se asocian a la identidad MCP autenticada. El cliente nunca recibe las credenciales de Google directamente, lo que separa la superficie de herramientas de AI del mecanismo de autenticación aguas arriba.

Estado persistente del flujo SEO

Las respuestas de rendimiento de Search Console se leen desde Google y solo se mantienen en una caché breve en memoria. No se copian a la base de datos de la aplicación.

La persistencia se reserva para estado creado por el usuario: acciones SEO planificadas y registros de cambios implementados. Esos datos se aíslan por sujeto autenticado de Google y propiedad de Search Console, evitando que una cuenta conectada pueda leer el historial de otra.

Seguridad y límites de falla

Los secretos OAuth y las credenciales de base de datos existen únicamente como variables de entorno. El servicio no permite requests arbitrarios hacia URLs externas y los errores genéricos de HTTP o almacenamiento evitan exponer credenciales o detalles de conexión.

También se limitan rangos de consulta y tamaños de resultados, se validan las entradas con Zod y se separa el acceso a Search Console de la persistencia en PostgreSQL. Estas restricciones importan porque un servidor MCP es a la vez una capa de integración y un límite de ejecución para un cliente de AI.

Entrega en producción

El servicio corre sobre Node.js con transporte MCP HTTP streamable, health checks y una superficie web pequeña para producto, soporte, privacidad y términos. El flujo de desarrollo incluye type checking de TypeScript, tests con Vitest y smoke tests del protocolo MCP.

Se despliega como servicio independiente en Render y usa PostgreSQL solo cuando está habilitado el estado persistente del flujo SEO. Así, la integración con Search Console queda operable como backend propio en lugar de quedar acoplada a un dashboard o al portfolio.

Qué demuestra este proyecto

El proyecto está en la intersección entre backend, tooling de AI e integración de APIs. La parte interesante no es simplemente llamar a Google Search Console, sino diseñar el contrato que un sistema de AI puede usar y hacer explícitos la autenticación, el estado, el aislamiento y el comportamiento ante fallas.

Refleja cómo trabajo con ingeniería basada en agentes en producción: darles capacidades útiles, pero detrás de interfaces claras, validación y límites operativos.

Artículos técnicos relacionados

Profundizaciones técnicas sobre decisiones de arquitectura e implementación usadas en este proyecto.

Tecnologías

← Volver a proyectos destacados