News MCP
Fornece acesso a artigos de notícias de um banco de dados PostgreSQL e oferece uma ferramenta para resumi-los usando a API da OpenAI.
Documentação
news-mcp MCP server
servidor de notícias mcp
IMPORTANTE
- Não comece a codificar a menos que o usuário peça. Se o usuário estiver fazendo uma pergunta sobre o código, responda à pergunta - não escreva ou modifique código a menos que seja explicitamente solicitado.
Componentes
Recursos
O servidor expõe artigos de notícias armazenados em um banco de dados por meio de um URI de recurso:
news://{category}/{limit}: Recupera uma lista dos artigos mais recentes para uma determinada categoria.{category}: Filtra artigos por categoria (por exemplo,tech,data_science,news). Consulte a descrição da ferramenta para a lista completa.{limit}(opcional, padrão 10): Especifica o número máximo de artigos a retornar.
- Cada artigo retornado inclui título, link, data de publicação e fonte.
Prompts
O servidor atualmente não expõe nenhum prompt. (A lógica de sumarização existe internamente, mas não está disponível por meio de um prompt MCP).
Ferramentas
O servidor implementa uma ferramenta:
summarize_news: Recupera artigos de notícias brutos do banco de dados, permitindo que o cliente (LLM) os resuma.- Aceita argumentos opcionais
category(string) elimit(inteiro, padrão 20). - Retorna uma lista de dicionários de artigos, cada um contendo
id,title,link,published,sourceecontent. - Categorias disponíveis:
tech,data_science,llm_tools,cybersecurity,linux,audio_dsp,startups,news,science,research,policy.
- Aceita argumentos opcionais
Configuração
O servidor depende de um banco de dados PostgreSQL configurado por meio da variável de ambiente DATABASE_URL (padrão: postgresql://localhost/mcp_news).
O script news_gatherer.py (destinado a ser executado separadamente/agendado) popula o banco de dados a partir de vários feeds RSS.
A lógica de sumarização (interna, não exposta via MCP) usa a API da OpenAI, configurada por meio da variável de ambiente OPENAI_API_KEY.
Outras configurações (por meio de variáveis de ambiente ou padrões):
LOOKBACK_HOURS: Até ondenews_gatherer.pyprocura novos artigos retroativamente (padrão: 6).SUMMARY_WORD_TARGET: Contagem de palavras alvo para sumarização interna (padrão: 500).MAX_ARTICLES_PER_SUMMARY: Número máximo de artigos incluídos em um lote de resumo (padrão: 25).KEYWORD_FILTER: Palavras-chave usadas pela lógica de sumarização interna.
Início Rápido
Instalação
Claude Desktop
No MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
No Windows: %APPDATA%/Claude/claude_desktop_config.json
Development/Unpublished Servers Configuration
``` "mcpServers": { "news-mcp": { "command": "uv", "args": [ "--directory", "~/dev/news-mcp", "run", "news-mcp" ] } } ```Published Servers Configuration
``` "mcpServers": { "news-mcp": { "command": "uvx", "args": [ "news-mcp" ] } } ```Desenvolvimento
Compilação e Publicação
Para preparar o pacote para distribuição:
- Sincronize as dependências e atualize o lockfile:
uv sync
- Compile as distribuições do pacote:
uv build
Isso criará distribuições de origem e wheel no diretório dist/.
- Publique no PyPI:
uv publish
Nota: Você precisará definir as credenciais do PyPI por meio de variáveis de ambiente ou flags de comando:
- Token:
--tokenouUV_PUBLISH_TOKEN - Ou nome de usuário/senha:
--username/UV_PUBLISH_USERNAMEe--password/UV_PUBLISH_PASSWORD
Depuração
Como os servidores MCP são executados via stdio, a depuração pode ser desafiadora. Para a melhor experiência de depuração, recomendamos fortemente o uso do MCP Inspector.
Você pode iniciar o MCP Inspector por meio de npm com este comando:
npx @modelcontextprotocol/inspector uv --directory ~/dev/news-mcp run news-mcp
Ao iniciar, o Inspector exibirá uma URL que você pode acessar no seu navegador para começar a depurar.