Google Trends MCP Server
Servidor MCP de Google Trends
Un servidor alojado del Model Context Protocol (MCP) que ofrece a Claude, Cursor, Windsurf y a cualquier otro cliente MCP una herramienta de Google Trends. Consulta el interés a lo largo del tiempo, el interés por región y las consultas y temas relacionados más populares o en ascenso para cualquier término, todo como JSON estructurado, sin librerías de scraping que mantener y sin cuenta de Google.
https://mcp.hasdata.com/api/mcp?apis=google_trends
Contenidos
Lo que necesitas
Un cliente MCP y una clave de API de HasData desde el panel de control, gratis de crear sin tarjeta, y la prueba cubre unas 200 llamadas a la tarifa de 5 créditos. Este es un servidor remoto, así que la vía más sencilla es una URL y una cabecera x-api-key, sin contenedor que ejecutar y sin cuenta de Google en ningún paso del proceso. Un cliente que solo hable stdio llega a él a través de un lanzador ligero, publicado como @hasdata/google-trends-mcp en npm y como hasdata-google-trends-mcp en PyPI, como se muestra a continuación.
Inicio rápido
La URL del servidor es la misma para todos los clientes. Lo hemos probado directamente con Claude Code y Claude Desktop. Los demás bloques siguen el formato documentado de cada cliente para un servidor remoto.
Campo | Valor |
URL |
|
Transporte | HTTP, transmisible (streamable) |
Cabecera de autenticación |
|
Los clientes con soporte OAuth pueden añadir la misma URL como conector e iniciar sesión sin tener que poner una clave en un archivo de configuración.
claude mcp add --transport http google-trends "https://mcp.hasdata.com/api/mcp?apis=google_trends" \
--header "x-api-key: HASDATA_API_KEY"Ajustes, luego Conectores, luego Añadir conector personalizado, y pega https://mcp.hasdata.com/api/mcp?apis=google_trends e inicia sesión.
Para la vía del archivo de configuración, Claude Desktop solo carga servidores locales (stdio), así que alcanza un servidor remoto a través de un lanzador stdio. El paquete @hasdata/google-trends-mcp es ese lanzador y lee la clave del entorno. Añade esto a claude_desktop_config.json:
{
"mcpServers": {
"google-trends": {
"command": "npx",
"args": ["-y", "@hasdata/google-trends-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}Para Python en lugar de Node, cambia el lanzador por el paquete de PyPI, que uvx ejecuta sin instalación manual:
{
"mcpServers": {
"google-trends": {
"command": "uvx",
"args": ["hasdata-google-trends-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}~/.cursor/mcp.json para todos los proyectos, o .cursor/mcp.json para uno solo:
{
"mcpServers": {
"google-trends": {
"url": "https://mcp.hasdata.com/api/mcp?apis=google_trends",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.codeium/windsurf/mcp_config.json. Windsurf llama al campo serverUrl, no url:
{
"mcpServers": {
"google-trends": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_trends",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}.vscode/mcp.json dentro del área de trabajo:
{
"servers": {
"google-trends": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=google_trends",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}Ejemplos de prompts
Prompts, no código. Pega uno y el agente elige la herramienta por sí mismo. Cada uno viene anotado con las llamadas que requiere porque cada llamada correcta cuesta 5 créditos.
Haz un gráfico del interés por "cold brew coffee" en EE. UU. durante los últimos 12 meses y dime en qué semanas alcanzó su máximo.
Una llamada, 5 créditos. La serie semanal llega en una sola petición.
Para "cold brew coffee" en EE. UU., dame las consultas relacionadas en ascenso y señala las marcadas como Breakout.
Una llamada, 5 créditos.
Compara el interés por "cold brew" con el de "iced coffee" en todo el mundo durante cinco años y di cuál está creciendo.
Una llamada, 5 créditos. La herramienta admite varios términos en una única petición de serie temporal.
Muéstrame el interés por "sunscreen" por estado de EE. UU. en los últimos 90 días para poder ver dónde hay más demanda.
Una llamada, 5 créditos. Es la vista de interés por región a nivel de estado.
Una comparación entre términos cabe en una sola llamada de timeseries. Los desgloses por región, las consultas relacionadas y los temas relacionados son cada uno un dataType propio, así que un prompt que quiera un gráfico más sus consultas en ascenso supone dos llamadas.
Herramientas
Una herramienta, de solo lectura. La muestra siguiente está recortada de una llamada real, y los números cambian a medida que cambia la tendencia. L puedes leer como una forma. El nombre de la herramienta enlaza con la referencia de su endpoint, que incluye la lista de parámetros completa.
La muestra es la carga útil, no la respuesta completa. Un resultado de tools/call lleva un bloque de texto, y ese texto es a su vez JSON que contiene url, status, text y json, con los datos extraídos en json. Desde una respuesta JSON-RPC en bruto, la ruta es result.content[0].text, parseada y luego .json. Un cliente de chat hace el desenvuelto por ti; el código que habla directamente con el endpoint no lo hace.
Obtener datos de Google Trends
hasdata_google_trends_search_getTrendsData
Interés a lo largo del tiempo, por región, o las consultas y temas em relacionados para un término.
Parámetro | Tipo | Obligatorio | Notas |
| string | sí | El término de búsqueda. |
| string | no |
|
| string | no | Una ventana como |
| string | no | Un código de ubicación como |
| string | no | Granularidad solo para |
| string | no | Identificador de categoría para acotar el término. |
| string | no | Propiedad de Google: |
| number | no | Desfase de zona horaria en minutos, por defecto |
La clave de respuesta depende de dataType. timeseries devuelve interestOverTime.timelineData, geoMap devuelve el interés por región, y los tipos relacionados devuelven relatedQueries o relatedTopics, cada uno dividido en rising y top. Lee la clave que coincida con el tipo que pediste.
timeseries (el valor por defecto) devuelve un valor de 0 a 100 para cada punto, tanto en array de string y preprocesado en listlineData.extractedValue. El punto más reciente suele llevar un isPartial: true cuando la semana aún se está completando. Descártalo antes de calcular una tendencia, o la última barra se leerá como una caída que no es real.
{
"interestOverTime": {
"timelineData": [
{ "date": "Apr 12 – 18, 2026", "timestamp": "1775952000", "isPartial": false,
"values": [{ "query": "cold brew coffee", "value": "100", "extractedValue": 100, "hasData": true }] },
{ "date": "Aug 23 – 29, 2026", "timestamp": "1787443200", "isPartial": true,
"values": [{ "query": "cold brew coffee", "value": "44", "extractedValue": 44, "hasData": true }] }
]
}
}relatedQueries se divide en rising y top. Una entrada rising se lee como un porcentaje tipo +300%, o como Breakout para un salto demasiado grande como para puntuarlo. extractedValue da el número subyacente. Un Breakout viene con un extractedValue marcador muy por encima de cualquier porcentaje previo, así que ordena por la etiqueta del string, no por el número bruto.
{
"relatedQueries": {
"rising": [
{ "query": "organic cold brew coffee", "value": "+300%", "extractedValue": 300, "link": "https://trends.google.com/trends/explore?q=organic+cold+brew+coffee&date=today+12-m&geo=US" }
],
"top": [
{ "query": "how to cold brew coffee", "value": "100", "extractedValue": 100, "link": "https://trends.google.com/trends/explore?q=how+to+cold+brew+coffee&date=today+12-m&geo=US" }
]
}
}La referencia del endpoint lista cada geo, cat y formato de fecha aceptado por la herramienta.
Errores y vías de fallo
Tu cliente redirección. Casi nunca verás un código de error HTTP en una llamada de herramienta. La capa MCP responde con 200 y pone el error dentro del resultado, con isError establecido a true y la razón como texto. El agente lee un mensaje donde esperabas una línea de estado.
Una clave incorrecta aparece como salida de herramienta, no como conexión fallida. tools/list acepta cualquier clave no vacía y devuelve la herramienta, así que el cliente completa el apretón y muestra todo en verde. La primera llamada a la herramienta vuelve con isError: true y el texto HasData API error: 401 Unauthorized. Atento a ese string, porque nada antes en el flujo informa del problema.
Una clave que falta es el único error HTTP real. La autorización se ejecuta antes que cualquier herramienta y la conexión en sí falla con 401. Las cabeceras CORS están presentes y un cliente de navegador leerá el estado y no un fallo de red opaco.
Un argumento que rompe el esquema de la herramienta se rechaza antes de llegar a ser un scraping. El servidor responde con isError: true y el texto MCP error -32602: Input validation error, nombrando el campo infractor. No se busca un resultado en la red y no se cobra nada.
Una búsqueda con muy poco volumen devuelve un resultado correcto con los array de datos vacíos, no un error. Google Trends no tiene nada que mostrar para un término raro, y requestMetadata.status sigue diciendo ok. Comprueba que hay puntos antes de graficarlos.
Un identificador que la plataforma rechaza devuelve 400 con requestMetadata.status puesto a error. Un valor de geo o cat desconocido es la forma típica de verlo.
Los resultados que contienen datos también contienen un requestMetadata.id que conviene citar en el soporte.
Precios, límites y límites
Cada llamada a Google Trends cuesta 5 créditos por llamada correcta. El tamaño de la respuesta no cambia el precio. Una serie semanal de cinco años cuesta lo mismo que una sola semana.
La prueba gratuita es de 1.000 créditos durante 30 días sin tarjeta, lo que equivale a 200 llamadas a Google Trends. Después, una cuenta activa sigue recibiendo 100 créditos de recarga cada día cuando su saldo baja de 100, así que un agente de bajo volumen funciona de forma indefinida con el nivel gratuito.
Los planes de pago empiezan en 49 dólares al mes por 200.000 créditos, es decir, 40.000 llamadas. El precio unitario baja con el volumen, desde $1.00 por cada 1.000 llamadas en el plan de entrada hasta $0.50 en Business, $0.42 en Growth y $0.37 en los planes de gran volumen.
Tu plan LL fija también la concurrencia. La prueba gratuita permite una petición a la vez; Startup, 15; Business, 30; Growth y los planes de alto volumen van de 200 a 1.500. Trata el desbordamiento de forma defensiva en cualquier proceso desatendido.
Una petición que vuelve con un estado distinto de 200 no se registra. Una llamada correcta que no encuentra datos sigue siendo una llamada.
Herramientas de selección de herramientas
El parámetro de consulta de apis decide qué herramientas ve tu agente. Menos herramientas significa menos contexto dedicado a las definiciones de herramientas y menos ocasiones de que el modelo elija la equivocada.
?apis=google_trends the one tool in this repo
?apis=google_trends,google_serp add Google search
?apis=google_trends,youtube trends plus YouTubeEl parámetro acepta nombres de proveedores como google_trends y nombres de API individuales. Los nombres mal escritos se ignoran. Si todos los nombres son incorrectos, la solicitid falla with 400, y el cuerpo de la respuista list casi tanto lo que no reconoció como todos los valores válidos. Si omitas el parámetro, el mismo endpoint expone las 57 herramientas de HasData.
Cómo se compara
Google no publica una API pública de Trends. Las dos rutas comunes son la librería no oficial pytrends, que aplica ingeniería inversa a los mismos endpoints internos y se rompe cando Google los cambia o aplica límites de tasas a quien la usa, y crear tu propio scraper. Este servidor hace ese trabajo detrás de un esquema estable.
pytrends / mulino hágaslo tú mismo | Este servidor | |
Soporte oficial | Ninguno, Google no envía ningún API de Trends | Esquema mantenido sobre los mismos datos |
Límites de tasa y 429 | Frequentos y tu responsabilidad | Gestionados detrás del endpoint |
Output | Pandas frames o respuestas sin procesar to re-formate | JSON estructurado, valores preprocesados |
Setup | Un entorno de Python y mantenerlo cuando se rompe | Una clave y una URL |
Coste | Gratis, cuando funciona | De pago pasada la prueba, 5 créditos por llamada |
Si ya usas pytrends con un volumen bajo y no te importa arreglarlo cuando se rompe, esa sigue siendo la opción gratuita. Este servidor es para agentes y pipelines que necesitan que los datos lleguen siempre con la misma forma.
FAQ
¿Existe una API oficial de Google Trends?
No. Google nunca ha lanzado una API pública de Trends. Cada opción lee los mismos endpoints internos que utiliza el sitio trends.google.com. Esta está mantenida por HasData y devuelve el resultado como JSON estructurado.
¿Qué es un servidor MCP de Google Trends?
Un servidor que expone Google Trends como una herramienta a la que un cliente de IA puede llamar. El cliente envía una llamada de herramienta a través del Model Context Protocol, el servidor recupera los datos y devuelve JSON estructurado, y el modelo trabaja con el resultado. Este servidor expone una sola herramienta y se ejecuta de forma remota, por lo que el cliente se conecta a una URL y no inicia ningún proceso local.
¿Los números representan un volumen de búsqueda absoluto?
No, y tampoco el propio Google Trends. Los valores son interés relativo en una escala de 0 a 100 dentro de la consulta, la ventana y la región que pediste. Úsalo para ver la forma y comparar, no como un recuento de búsquedas.
¿Por qué el último dato es más bajo que los demás?
El bloque más reciente normalmente todavía se está completando y vuelve con isPartial: true. Ejecutelo antes de calcular una tendencia.
¿Puedo comparar varios terminos at once?
Sí, en timeseries y geoMap. Pasa los terminos separados by comas en q. Los tipos related-query y related-topic admoman un único termino.
¿Puedo usar esto junto con otras APIs de HasData?
Sí. El parámetro apis acepta una lista, y ?apis=google_trends,googles_serp le da a tu agente Trends mías la búsqueda de Google. Omite el parámetro y obtendrás todo.
Cumplimiento y datos personales
HasData solo accesses a datos certificate públicamente. The términos of a platform may restrict automatized access, and you are responsible for your own compliance.
Enlaces de HasData
Página del producto and generador de solicitadas | |
Documentación del servidor | |
Las 57 herramientas en un solo servidor | |
Guías para clientos | |
Todo lo demás que extraemos | |
Planes y costes de créditos | |
Claves y accesso |
Desarrollo
Este repositorio es configur comercialmente documentación for un servidor remoto. No hit build step nor nothing to containerize.
Las pruebas en test/ verifican el contrato de la herramienta—the part that can break without a commit here. Check that ?apis=google_trends returns exactly one tool, that it still declares its required parameter, that the name has not changed, and that the key in use is actually accepted. That last check calls the tool for real and costs 5 credits, which is the price of a canary that can fail for the right reason.
# macOS and Linux
HASDATA_API_KEY=your_key_here npm test
# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm testThe same suite runs in CI on every push and once a week on a schedule, because the upstream tool list can change without anyone touching this repository. A failure means the tool list moved, the key stopped working, or the endpoint was unreachable, and the assertion message says which.
Las correcciones a la tabla de parameters y a la muestra de la resuesta son la útile contribuión, porque these son the parts that fall apart. Include the llamada that canvarias and the respuesta obtenida. The pull requests from forks run the suite without a key, and the live checks skip instead of going red.
Licencia
MIT. See LICENSE.
Maintenance
Related MCP Connectors
Trend data from Google, TikTok, Amazon, Reddit, YouTube, Steam, npm and more as JSON
Trend data from Google Trends, YouTube, TikTok, Reddit, Amazon, Wikipedia, npm, Steam and more
Cross-platform social media intelligence. Trend volume and growth signals. Free key at trendsmcp.ai
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HasData/google-trends-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server