UNPKG

avp-devlanvi-tabnews-mcp-server

Version:

Servidor MCP com ferramentas de saudação dinâmica e consulta à API do TabNews

230 lines (165 loc) 5.39 kB
# 🤝 Servidor MCP TabNews & Saudação Um servidor **Model Context Protocol (MCP)** que implementa ferramentas de saudação personalizada e consulta à API do **TabNews** - a rede social brasileira de tecnologia. ## ✨ Funcionalidades - 🌅 Saudações contextualizadas por horário (bom dia/tarde/noite) - 📰 Consulta aos artigos mais recentes do TabNews - 📅 Data e hora atuais formatadas em português brasileiro - 🎯 Personalização com nome e ocasião - 🤖 Compatível com qualquer cliente MCP ## 📦 Instalação ### Via NPX (Recomendado) ```bash # Executar diretamente via npx npx tabnews-mcp-server ``` ### Via NPM Global ```bash # Instalar globalmente npm install -g tabnews-mcp-server # Executar tabnews-mcp-server ``` ### Desenvolvimento Local ```bash # Clonar o repositório git clone https://github.com/seu-usuario/tabnews-mcp-server.git cd tabnews-mcp-server # Instalar dependências npm install # Executar npm start ``` ## 🛠️ Ferramentas Disponíveis ### 1. `saudacao_amistosa` Gera uma saudação calorosa e personalizada com informações atuais. **Parâmetros:** - `nome` (obrigatório): Nome da pessoa para personalizar a saudação - `ocasiao` (opcional): Contexto da saudação (padrão: "encontro") **Exemplo de resposta:** ``` 🌅 Bom dia, João! É um prazer te encontrar neste meeting! 🤝 📅 Hoje é segunda-feira, 23 de dezembro de 2024 🕐 Agora são exatamente 09:15:32 Espero que você esteja tendo um dia maravilhoso! ✨ Como posso ajudá-lo(a) hoje? 😊 ``` ### 2. `consultar_tabnews` Consulta os artigos mais recentes do TabNews e retorna informações detalhadas. **Parâmetros:** - `limite` (opcional): Número de artigos (1-100, padrão: 10) - `pagina` (opcional): Página para paginação (padrão: 1) **Exemplo de resposta:** ``` 📰 **ARTIGOS DO TABNEWS** 📰 📊 **Página:** 1 | **Limite:** 10 🔗 **Total encontrado:** 10 artigos ═══════════════════════════════════════════════════ **1. Uma curiosidade sobre o bcrypt que não se fala muito** 🔗 **URL:** https://www.tabnews.com.br/gabolera/uma-curiosidade-sobre-o-bcrypt-que-nao-se-fala-muito 👤 **Autor:** @gabolera 📅 **Data:** 15/07/2025 💰 **TabCoins:** 15 | 💬 **Comentários:** 3 ───────────────────────────────────────────────────── ✨ **Dados atualizados em:** 15/07/2025 17:30:00 🌐 **Fonte:** TabNews API (https://www.tabnews.com.br/api/v1/contents) ``` ## 🚀 Como Usar ### 1. Executar o Servidor ```bash # Via npx (mais simples) npx tabnews-mcp-server # Ou instalação local npm start ``` ### 2. Conectar um Cliente MCP O servidor usa **STDIO transport**, conecte a qualquer cliente MCP: ```bash # Configuração para Claude Desktop (claude_desktop_config.json) { "mcpServers": { "tabnews-server": { "command": "npx", "args": ["tabnews-mcp-server"] } } } ``` ### 3. Exemplo de Uso Programático ```javascript // Listar ferramentas disponíveis const tools = await client.request({ method: "tools/list" }); // Executar saudação const saudacao = await client.request({ method: "tools/call", params: { name: "saudacao_amistosa", arguments: { nome: "Maria", ocasiao: "hackathon" } } }); // Consultar TabNews const artigos = await client.request({ method: "tools/call", params: { name: "consultar_tabnews", arguments: { limite: 5, pagina: 1 } } }); ``` ## 🏗️ Arquitetura ```mermaid graph LR A[Cliente MCP] -->|STDIO| B[Servidor TabNews] B --> C[Ferramenta: saudacao_amistosa] B --> D[Ferramenta: consultar_tabnews] C --> E[Data/Hora Atual] D --> F[API TabNews] D --> G[Formatação de Artigos] ``` ## 📋 Requisitos - **Node.js** >= 18.0.0 - **@modelcontextprotocol/sdk** ^1.12.1 - Conexão com internet (para consultar TabNews) ## 🔧 Desenvolvimento ```bash # Clonar o projeto git clone https://github.com/seu-usuario/tabnews-mcp-server.git cd tabnews-mcp-server # Instalar dependências npm install # Executar em modo desenvolvimento npm run dev # Verificar sintaxe npm test ``` ## 🤝 Integrações Sugeridas Este servidor pode ser integrado com: - **Claude Desktop** via configuração MCP - **IDEs** com suporte a MCP - **Chatbots** personalizados - **Aplicações web** com clientes MCP - **Ferramentas de linha de comando** - **Dashboards** de conteúdo ## 🌐 API do TabNews Este servidor utiliza a API pública do TabNews: - **Endpoint:** `https://www.tabnews.com.br/api/v1/contents` - **Documentação:** [TabNews API](https://www.tabnews.com.br/api) - **Rate Limiting:** Respeita os limites da API ## 🐛 Logs e Debugging O servidor registra informações no **stderr**: ``` 🚀 Servidor MCP de Saudação e TabNews iniciado com sucesso! 💡 Ferramentas disponíveis: • saudacao_amistosa • consultar_tabnews ``` ## 📄 Licença MIT - Veja o arquivo LICENSE para detalhes. ## 🤝 Contribuições Contribuições são bem-vindas! Por favor: 1. Faça um fork do projeto 2. Crie uma branch para sua feature 3. Faça commit das suas mudanças 4. Envie um pull request --- *Desenvolvido com ❤️ usando o Model Context Protocol e a API do TabNews* 🇧🇷