UNPKG

mcp-trinity-server

Version:

Servidor MCP simples com ferramenta de saudação amistosa

164 lines (135 loc) 4.98 kB
const { Server } = require('@modelcontextprotocol/sdk/server/index.js'); const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio.js'); const { CallToolRequestSchema, ListToolsRequestSchema, } = require('@modelcontextprotocol/sdk/types.js'); const server = new Server( { name: 'greeting-server', version: '1.0.0', }, { capabilities: { tools: {}, }, } ); server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: 'friendly_greeting', description: 'Gera uma saudação amistosa personalizada com data e hora atual', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Nome da pessoa para personalizar a saudação', }, language: { type: 'string', description: 'Idioma da saudação (pt, en, es)', enum: ['pt', 'en', 'es'], default: 'pt', }, }, required: ['name'], }, }, ], }; }); server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; if (name !== 'friendly_greeting') { throw new Error(`Ferramenta desconhecida: ${name}`); } if (!args || !args.name) { throw new Error('Nome é obrigatório'); } const userName = args.name; const language = args.language || 'pt'; const now = new Date(); let greeting; if (language === 'pt') { const dateStr = now.toLocaleDateString('pt-BR'); const timeStr = now.toLocaleTimeString('pt-BR'); const dayOfWeek = now.toLocaleDateString('pt-BR', { weekday: 'long' }); const hour = now.getHours(); let greetingTime; if (hour >= 5 && hour < 12) { greetingTime = 'Bom dia'; } else if (hour >= 12 && hour < 18) { greetingTime = 'Boa tarde'; } else { greetingTime = 'Boa noite'; } greeting = `🌟 ${greetingTime}, ${userName}! 🌟 Sou Paulo, um agente de IA do Trinity Suite. Estou aqui para ajudar você com o que precisar! 📅 Data: ${dateStr} 🕒 Horário: ${timeStr} 📌 Hoje é ${dayOfWeek} Que este momento seja repleto de alegria e positividade! 😊✨`; } else if (language === 'en') { const dateStr = now.toLocaleDateString('en-US'); const timeStr = now.toLocaleTimeString('en-US'); const dayOfWeek = now.toLocaleDateString('en-US', { weekday: 'long' }); const hour = now.getHours(); let greetingTime; if (hour >= 5 && hour < 12) { greetingTime = 'Good morning'; } else if (hour >= 12 && hour < 18) { greetingTime = 'Good afternoon'; } else { greetingTime = 'Good evening'; } greeting = `🌟 ${greetingTime}, ${userName}! 🌟 I'm Paulo, an AI agent from Trinity Suite. I'm here to assist you with whatever you need! 📅 Date: ${dateStr} 🕒 Time: ${timeStr} 📌 Today is ${dayOfWeek} May this moment be filled with joy and positivity! 😊✨`; } else if (language === 'es') { const dateStr = now.toLocaleDateString('es-ES'); const timeStr = now.toLocaleTimeString('es-ES'); const dayOfWeek = now.toLocaleDateString('es-ES', { weekday: 'long' }); const hour = now.getHours(); let greetingTime; if (hour >= 5 && hour < 12) { greetingTime = 'Buenos días'; } else if (hour >= 12 && hour < 18) { greetingTime = 'Buenas tardes'; } else { greetingTime = 'Buenas noches'; } greeting = `🌟 ¡${greetingTime}, ${userName}! 🌟 Soy Paulo, un agente de IA de Trinity Suite. ¡Estoy aquí para ayudarte con lo que necesites! 📅 Fecha: ${dateStr} 🕒 Hora: ${timeStr} 📌 Hoy es ${dayOfWeek} ¡Que este momento esté lleno de alegría y positividad! 😊✨`; } return { content: [ { type: 'text', text: greeting, }, ], }; }); async function main() { const transport = new StdioServerTransport(); await server.connect(transport); console.error('🚀 Servidor MCP de saudação iniciado com sucesso!'); } if (require.main === module) { main().catch((error) => { console.error('❌ Erro ao iniciar o servidor:', error); process.exit(1); }); }