mcp-trinity-server
Version:
Servidor MCP simples com ferramenta de saudação amistosa
164 lines (135 loc) • 4.98 kB
JavaScript
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);
});
}