TrendPulse - Google News & Trends
Pesquise no Google News e no Google Trends para avaliar o momentum de palavras-chave, a demanda de mercado, consultas relacionadas e decisões de conteúdo.
Documentação
mcp-trendpulse
TrendPulse é um servidor Python Model Context Protocol (MCP) para pesquisar notícias atuais e tendências de interesse de busca. Ele combina descoberta de notícias do Google News e extração de artigos com análise do Google Trends, permitindo que clientes MCP inspecionem o que está em alta, comparem o momentum de palavras-chave, explorem demanda relacionada e adicionem contexto de notícias atuais aos fluxos de pesquisa.
O projeto atualmente é distribuído como um servidor MCP comunitário/auto-hospedado e também contém a implementação para uma superfície separada TrendPulse hospedado por DigestSEO para clientes MCP remotos, como ChatGPT e Codex. A camada hospedada usa uma superfície de ferramentas menor e orientada a objetivos, enquanto o servidor comunitário mantém o kit completo de ferramentas de pesquisa de baixo nível disponível para desenvolvedores.
Status do projeto: o servidor local/comunitário é utilizável hoje. O MCP hospedado por DigestSEO e o plugin público OpenAI ainda não foram lançados e não devem ser tratados como endpoints disponíveis.
Contexto de engenharia: TrendPulse faz parte do ecossistema MCP DigestSEO. Ele complementa o mcp-gsc para dados do Google Search Console, o mcp-geo para visibilidade de IA e o mcp-web-validator para validação técnica de web. A arquitetura mais ampla está documentada no estudo de caso de engenharia do DigestSEO MCP Suite.
TrendPulse Demand Brief
Precisa de uma verificação rápida de evidências antes de escolher um tópico, palavra-chave, mercado, ângulo de produto ou aposta de conteúdo? Durante o experimento de lançamento atual, Tomi está oferecendo um TrendPulse Demand Brief produzido por humanos por EUR 49.
Para uma decisão, o brief cobre até cinco palavras-chave/frases e dois mercados geográficos usando os recursos de pesquisa de código aberto do TrendPulse, além de fontes públicas atuais: direção do interesse de busca, momentum relativo, demanda relacionada, contexto útil de notícias e três implicações concretas. O prazo de entrega é de até 24 horas após a confirmação do pagamento e o fornecimento das entradas.
Veja o escopo exato e o formato da solicitação, leia um brief de amostra público ou envie um e-mail para info@tomiseregi.si com o assunto TrendPulse Demand Brief [TP-RS1].
O brief pago é opcional. O MCP comunitário permanece gratuito e inalterado, e o marcador TP-RS1 é apenas um marcador de atribuição de entrada; nenhuma telemetria oculta é adicionada ao MCP.
O que o TrendPulse pode fazer
Pesquisa de notícias
- Pesquisar no Google News por palavra-chave, local, tópico ou domínio de editor.
- Recuperar as principais notícias.
- Resolver links do Google News e extrair conteúdo de artigos.
- Recorrer à recuperação HTTP normal para Playwright/Chromium em páginas difíceis.
- Opcionalmente, resumir o texto do artigo com amostragem do cliente MCP, com NLP local como fallback.
Pesquisa de tendências
- Recuperar termos atuais em alta para um mercado geográfico.
- Obter dados de interesse ao longo do tempo do Google Trends para uma ou mais palavras-chave.
- Calcular o crescimento de palavras-chave em janelas personalizadas, como 3M ou 1A.
- Classificar tendências ao vivo por volume ou crescimento.
- Inspecionar o interesse por país, região, cidade ou DMA, quando suportado.
- Explorar consultas relacionadas, tópicos relacionados, sugestões e IDs de categorias.
- Comparar propriedades de tendências do Google Search, YouTube Search, News Search, Image Search e Google Shopping, quando suportado pelo provedor subjacente.
Arquitetura comunitária e hospedada
O TrendPulse está sendo desenvolvido com duas superfícies deliberadas:
| Superfície | Propósito | Status |
|---|---|---|
| MCP comunitário | Servidor Python MCP completo para uso local, desenvolvimento, auto-hospedagem e integrações com clientes compatíveis com MCP. | Disponível neste repositório |
| TrendPulse por DigestSEO | MCP remoto gerenciado para ChatGPT/Codex e um futuro plugin público OpenAI com uma superfície de ferramentas menor e orientada a tarefas. | Em desenvolvimento |
O servidor comunitário permanece útil de forma independente. A edição hospedada reutilizará os mesmos conceitos centrais de pesquisa de tendências, adicionando a implantação, confiabilidade, autenticação, observabilidade e integração de produto necessárias para um serviço gerenciado.
A superfície de ferramentas hospedada implementada é intencionalmente de nível mais alto do que a API comunitária e se concentra em objetivos como:
discover_trendsanalyze_keyword_trendcompare_keyword_trendsdiscover_related_demandget_trend_contextfind_seo_opportunities
Esses nomes descrevem a interface hospedada de ChatGPT Apps/MCP; eles permanecem separados dos nomes atuais das ferramentas do MCP comunitário.
Instalação
Executar a partir do PyPI com uvx (recomendado)
O TrendPulse é publicado no PyPI, então o caminho de instalação mais curto é:
uvx mcp-trendpulse
Para executar o head do repositório atual em vez do pacote publicado:
uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse
Instalar com pip a partir de um checkout
git clone https://github.com/AKzar1el/mcp-trendpulse.git
cd mcp-trendpulse
python -m pip install .
python -m mcp_trendpulse
Fallback de navegador
As ferramentas de notícias/artigos podem recorrer ao Playwright quando a recuperação comum não consegue extrair um artigo utilizável. Instalar o pacote Python playwright não instala o Chromium automaticamente.
Para uso local:
playwright install chromium
Para ambientes Linux que também exigem dependências de sistema do navegador:
playwright install --with-deps chromium
Operações somente de tendências não exigem inerentemente o Chromium.
Configuração do cliente
Claude Desktop
Usando uvx diretamente do GitHub:
{
"mcpServers": {
"mcp-trendpulse": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/AKzar1el/mcp-trendpulse.git",
"mcp-trendpulse"
]
}
}
}
VS Code
{
"mcp": {
"servers": {
"mcp-trendpulse": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/AKzar1el/mcp-trendpulse.git",
"mcp-trendpulse"
]
}
}
}
}
Cursor
O Cursor suporta configuração MCP global e por projeto. Adicione o servidor à configuração mcp.json relevante:
{
"mcpServers": {
"mcp-trendpulse": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/AKzar1el/mcp-trendpulse.git",
"mcp-trendpulse"
]
}
}
}
Kiro
Requer uv/uvx. A instalação executa o MCP comunitário atual diretamente deste repositório GitHub; ela não usa a superfície hospedada não lançada.
ChatGPT e outros clientes MCP em nuvem
O repositório agora inclui um ponto de entrada ASGI Streamable HTTP stateless dedicado em mcp_trendpulse.asgi:app. Isso é separado do ponto de entrada stdio comunitário, que permanece inalterado.
Para testes locais/privados controlados, você pode executar o aplicativo ASGI com Uvicorn ou usar o contêiner fornecido. Veja deploy/README.md para o contêiner endurecido, listas de permissão de Host/Origem, requisitos de sandbox do Chromium, endpoints de health/readiness e notas de proxy reverso.
O endpoint hospedado por DigestSEO e o aplicativo público ChatGPT ainda não foram lançados. Implantações hospedadas agora suportam autenticação OAuth Clerk com fail-closed; não exponha o transporte remoto publicamente, a menos que as configurações de issuer/JWKS/audience do Clerk, a URL base pública e as listas de permissão de Host/Origem estejam configuradas para essa implantação.
Configuração
O TrendPulse carrega variáveis de ambiente do ambiente do processo e de um arquivo local .env quando presente.
Variáveis úteis incluem:
HTTP_PROXY=http://your-proxy-address:port
HTTPS_PROXY=http://your-proxy-address:port
GOOGLE_TRENDS_DELAY=2.0
GOOGLE_TRENDS_DELAY controla o atraso de solicitação usado pelo provedor de Trends atual. Variáveis de proxy podem ser úteis quando o serviço upstream limita a taxa ou bloqueia uma rede específica.
Implantações remotas também suportam TRENDPULSE_HTTP_PATH, TRENDPULSE_HTTP_ALLOWED_HOSTS, TRENDPULSE_HTTP_ALLOWED_ORIGINS e TRENDPULSE_BROWSER_SANDBOX. O contêiner habilita o sandbox do Chromium explicitamente; execuções locais do comunitário mantêm o padrão compatível com Playwright, a menos que você opte por ativar.
Não faça commit de segredos, credenciais de proxy privadas ou arquivos .env específicos da máquina.
Ferramentas MCP
O servidor MCP comunitário atualmente expõe 16 ferramentas.
Ferramentas de notícias
| Ferramenta | Propósito |
|---|---|
get_news_by_keyword | Encontrar artigos de notícias recentes que correspondam a uma palavra-chave. |
get_news_by_location | Encontrar notícias recentes associadas a um local. |
get_news_by_topic | Encontrar notícias recentes para um tópico suportado do Google News. |
get_top_news | Recuperar as principais notícias do Google News. |
get_news_by_site | Encontrar notícias recentes de um domínio de editor específico. |
get_article_content | Baixar, validar, extrair e opcionalmente resumir uma URL de artigo. |
Ferramentas de tendências
| Ferramenta | Propósito |
|---|---|
get_trending_terms | Recuperar termos atuais em alta para um alvo geográfico. |
get_trends | Recuperar pontos de interesse ao longo do tempo para uma ou mais palavras-chave. |
get_growth | Calcular o crescimento do interesse de busca nas janelas solicitadas. |
get_ranked_trends | Classificar tendências atuais por crescimento ou volume. |
get_top_trends | Recuperar um feed de principais tendências sem fornecer uma palavra-chave. |
get_interest_by_region | Comparar o interesse de palavras-chave entre regiões geográficas. |
get_related_queries | Recuperar consultas de busca relacionadas principais e em ascensão. |
get_related_topics | Recuperar tópicos relacionados principais e em ascensão do Google Trends. |
get_suggestions | Resolver sugestões de autocomplete/tópicos para uma consulta. |
get_categories | Recuperar IDs e nomes de categorias do Google Trends. |
Exemplo: janela de tendência explícita
get_trends aceita um timeframe explícito. Fornecer um é preferível quando você precisa de comparações reproduzíveis.
{
"keyword": ["technical SEO audit", "AI SEO audit"],
"geo": "US",
"source": "google search",
"timeframe": "today 12-m",
"cat": 0
}
Os intervalos suportados pelo provedor incluem janelas padrão como today 12-m e today 5-y, janelas relativas como today 90-d, all e intervalos de datas exatos como 2021-01-01 2026-01-01.
Os valores do Google Trends são pontuações de interesse normalizadas. Não interprete uma série de interesse de 0 a 100 como volume absoluto de busca.
CLI
A CLI separada do Click expõe um conjunto de comandos de notícias menor do que o servidor MCP:
uv run mcp-trendpulse-cli --help
Comandos atuais da CLI:
keyword
location
top
topic
trending
As superfícies CLI e MCP são documentadas separadamente de propósito, pois não expõem o mesmo conjunto de comandos.
Desenvolvimento
Instale o projeto com suas dependências de desenvolvimento usando seu ambiente Python preferido e execute a suíte de testes unitários:
python -m pytest
A configuração padrão do pytest exclui testes de integração ao vivo.
Execute testes de provedor ao vivo explicitamente com:
python -m pytest tests/integration -m integration
Testes de integração marcados como browser exigem que o Playwright Chromium esteja instalado.
Execute verificações do Ruff com:
ruff check .
MCP Inspector
Execute o servidor publicado a partir do GitHub através do MCP Inspector:
npx @modelcontextprotocol/inspector uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse
Para um checkout local:
npx @modelcontextprotocol/inspector uv run mcp-trendpulse
Empacotamento
Um workflow do GitHub Actions compila e publica distribuições Python através do PyPI Trusted Publishing quando um release do GitHub é publicado. O pacote estável atual pode ser executado com uvx mcp-trendpulse; use o formulário uvx --from ... do GitHub apenas quando você intencionalmente quiser o código do head do repositório.
Notas de segurança
A recuperação de artigos é um recurso de rede de saída e é tratada como entrada não confiável. A implementação valida alvos HTTP(S), rejeita destinos privados e não roteáveis, verifica alvos de redirecionamento, aplica limites de tamanho de resposta e aplica validação de rota de navegador quando o Playwright é usado.
Se você implantar o TrendPulse remotamente, mantenha esses controles e adicione limitação de taxa no nível de implantação, timeouts de solicitação, observabilidade e limites de recursos, em vez de depender apenas dos padrões do aplicativo.
Roadmap
O trabalho atual de prontidão para produção está focado em:
- Manter a documentação, os metadados de empacotamento e os manifestos MCP gerados coerentes com a superfície de ferramentas ao vivo.
- Adicionar integração contínua para testes unitários e verificações estáticas.
- Separar o acesso ao provedor da lógica de domínio do TrendPulse para que os provedores possam ser alterados sem reescrever a camada MCP.
- Adicionar um transporte HTTP remoto de produção, preservando a operação stdio local.
- Projetar uma superfície de ferramentas hospedada de alto nível menor para ChatGPT/Codex.
- Integrar o serviço hospedado ao aplicativo DigestSEO e à pilha operacional.
- Empacotar e testar o MCP hospedado como um plugin OpenAI somente após o serviço estar pronto para produção.
Licença
MIT. Veja LICENSE.