GridNews
Notícias de mercado, comunicados à imprensa e sentimento de tickers para agentes de IA via REST, streams e MCP.
Documentação
@gridnews/mcp
Servidor MCP para GridNews — notícias de mercado, press releases e análise de sentimento para agentes de IA.
Oferece a qualquer assistente compatível com MCP a cobertura de mercado mais recente: clusters de histórias classificados por quantos veículos independentes os corroboraram, busca de artigos em milhares de fontes, notícias por ticker com leitura agregada de sentimento, releases de fontes primárias e clusters de tópicos em alta.
Instalação
Requer Node.js 20+ e uma chave de API GridNews. get_topics funciona sem chave;
todas as outras ferramentas precisam de uma.
Claude Code
claude mcp add gridnews --env GRIDNEWS_API_KEY=your_key -- npx -y @gridnews/mcp
Claude Desktop
Adicione em claude_desktop_config.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}
Cursor
Adicione em .cursor/mcp.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}
OpenAI Codex
codex mcp add gridnews --env GRIDNEWS_API_KEY=your_key -- npx -y @gridnews/mcp
Gemini CLI
Adicione em ~/.gemini/settings.json:
{
"mcpServers": {
"gridnews": {
"command": "npx",
"args": ["-y", "@gridnews/mcp"],
"env": { "GRIDNEWS_API_KEY": "your_key" }
}
}
}
Configuração
| Variável | Padrão | Finalidade |
|---|---|---|
GRIDNEWS_API_KEY | — | Sua chave de API. Obrigatória para tudo, exceto get_topics. |
GRIDNEWS_BASE_URL | https://api.gridnews.io | Substitui o host da API. |
GRIDNEWS_TIMEOUT_MS | 30000 | Timeout por requisição. Aumente se usar get_symbol_sentiment com frequência. |
Ferramentas
| Ferramenta | Finalidade | Nível mínimo |
|---|---|---|
get_top_events | As maiores histórias do momento, como clusters classificados por corroboração independente | gratuito (filtros exigem básico) |
get_event_detail | Todos os veículos que publicaram uma história, agrupados por voz independente | gratuito |
search_news | Busca de artigos e press releases por texto, símbolo, fonte, data, sentimento e qualidade | gratuito (filtros exigem básico) |
get_symbol_news | Cobertura recente de um ticker, além de leitura agregada de sentimento | gratuito |
get_symbol_sentiment | Análise de sentimento de um ticker em um período, com sua base | pro |
list_press_releases | Releases de agências filtrados por símbolo, provedor, empresa e data | gratuito |
list_sources | As fontes indexadas pela GridNews, com IDs para o filtro sources | gratuito |
get_topics | Clusters de tópicos em alta como grupos de palavras-chave com contagens de artigos | nenhum |
get_usage | O nível da chave, direitos e cota diária restante | gratuito |
Corroboração, não contagem de veículos
get_top_events retorna histórias em vez de documentos e informa dois
números diferentes:
sourcesCount— quantos veículos publicaram a história. Isso é alcance.independent voices— quantos deles não estavam republicando uns aos outros. Isso é a evidência.
Eles geralmente não são iguais. Veículos que redistribuem conteúdo uns dos outros colapsam em uma única voz, então uma história em cinco veículos que publicam o mesmo texto de agência é uma voz, não cinco. Quando um veículo estava publicando cópia de outro, a ferramenta marca isso inline:
2 independent voices across 4 outlets · 4 filings · impact 1.47
- Wall Street Journal: https://wsj.com/...
- Dow Jones [carrying wall-street-journal]: https://morningstar.com/...
- GuruFocus: https://gurufocus.com/...
Um press release é sempre uma única voz, independentemente de quantas agências o distribuíram — um emissor se anunciando não é confirmação.
Passe minVoices: 2 para ver apenas histórias corroboradas. Não há padrão:
clusters de voz única são registros reais de distribuição e não ficam ocultos,
apenas ficam em último lugar na classificação.
Comportamento por nível
A GridNews limita recursos e profundidade de histórico por nível. Em vez de falhar de forma opaca, as ferramentas informam o que uma chamada exige:
- Um 403 indica o nível necessário e o nível atual da chave, para que o agente possa tentar novamente sem o parâmetro bloqueado em vez de desistir.
- Um 429 informa a cota restante e o horário de redefinição, para que o agente aguarde em vez de repetir em loop.
- Os resultados indicam quando a janela de histórico de um nível excluiu artigos mais antigos, para que um resultado enxuto não seja confundido com ausência de cobertura.
get_usage explica qualquer um desses casos sob demanda.
Desenvolvimento
npm install
npm run build
npm test
A suíte de testes executa o servidor compilado em uma sessão MCP stdio real contra uma API simulada, cobrindo handshake de protocolo, validação de argumentos, serialização HTTP, formatação e os caminhos de falha de nível/cota sem precisar de uma chave ativa.
Licença
MIT