greeting-mcp-server
Version:
🌟 Servidor MCP de saudação amistosa com suporte a múltiplos idiomas e dados dinâmicos de data/hora
332 lines (247 loc) • 7.87 kB
Markdown
# 🌟 Servidor MCP de Saudação Amistosa
Um servidor Model Context Protocol (MCP) simples e amigável que oferece saudações personalizadas com informações dinâmicas de data e hora.
## 📋 Sobre
Este servidor MCP implementa uma única ferramenta chamada `saudacao_amistosa` que:
- 🕒 Mostra data e hora atual
- 🌍 Suporta múltiplos idiomas (Português, Inglês, Espanhol)
- 👤 Permite personalização com nome do usuário
- 🎯 Detecta automaticamente o período do dia (manhã, tarde, noite)
- ✨ Retorna saudações calorosas e motivacionais
## 🚀 Instalação e Uso
### 📦 Via NPX (Recomendado)
A forma mais fácil de usar o servidor é diretamente via npx, sem necessidade de instalação:
```bash
# Executar diretamente (sempre a versão mais recente)
npx greeting-mcp-server
# Ou instalar globalmente
npm install -g greeting-mcp-server
greeting-mcp-server
```
### 🔧 Instalação Local para Desenvolvimento
#### Pré-requisitos
- Node.js 18+ (recomendado) ou 16+ (com avisos)
- npm ou yarn
#### Passos
1. **Clone ou baixe o projeto:**
```bash
git clone <url-do-repositorio>
cd mcp-server
```
2. **Instale as dependências:**
```bash
npm install
```
3. **Execute o servidor:**
```bash
npm start
```
## 🛠️ Uso
### Como Servidor MCP Standalone
O servidor roda via STDIO e pode ser conectado a qualquer cliente MCP compatível:
```bash
node index.js
```
### Integração com Clientes MCP
#### Claude Desktop / Cursor (via NPX)
Adicione ao arquivo de configuração MCP:
```json
{
"mcpServers": {
"greeting-server": {
"command": "npx",
"args": ["greeting-mcp-server"]
}
}
}
```
#### Claude Desktop / Cursor (instalação local)
Para desenvolvimento local:
```json
{
"mcpServers": {
"greeting-server": {
"command": "node",
"args": ["/caminho/para/mcp-server/index.js"]
}
}
}
```
#### Cliente MCP Personalizado (via NPX)
```javascript
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "npx",
args: ["greeting-mcp-server"]
});
```
#### Cliente MCP Personalizado (local)
```javascript
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "node",
args: ["./index.js"]
});
```
## 🔧 Ferramenta Disponível
### `saudacao_amistosa`
**Descrição:** Retorna uma saudação calorosa e amistosa com data e hora atual
**Parâmetros:**
- `nome` (opcional): Nome da pessoa para personalizar a saudação
- `idioma` (opcional): Idioma da saudação
- `"pt"` - Português (padrão)
- `"en"` - Inglês
- `"es"` - Espanhol
**Exemplo de uso:**
```json
{
"name": "saudacao_amistosa",
"arguments": {
"nome": "Maria",
"idioma": "pt"
}
}
```
**Exemplo de resposta:**
```
🌟 Olá Maria! Boa tarde!
🕒 Hoje é quinta-feira, 21 de dezembro de 2023 e são 14:30:25.
✨ Espero que você esteja tendo um dia maravilhoso! As possibilidades são infinitas, e estou aqui para te ajudar a conquistar grandes coisas! 🚀
🎯 Que tal começarmos algo incrível juntos?
```
## 🌍 Exemplos por Idioma
### Português (pt)
```
🌟 Olá João! Boa manhã!
🕒 Hoje é sexta-feira, 22 de dezembro de 2023 e são 09:15:30.
✨ Espero que você esteja tendo um dia maravilhoso! As possibilidades são infinitas, e estou aqui para te ajudar a conquistar grandes coisas! 🚀
🎯 Que tal começarmos algo incrível juntos?
```
### Inglês (en)
```
🌟 Hello Alice! Good morning!
🕒 Today is Friday, December 22, 2023 and it's 9:15:30 AM.
✨ Hope you're having a wonderful day! The possibilities are endless, and I'm here to help you achieve great things! 🚀
```
### Espanhol (es)
```
🌟 ¡Hola Carlos! ¡Buenas tarde!
🕒 Hoy es viernes, 22 de diciembre de 2023 y son las 14:15:30.
✨ ¡Espero que tengas un día maravilloso! Las posibilidades son infinitas, ¡y estoy aquí para ayudarte a lograr grandes cosas! 🚀
```
## 🏗️ Arquitetura
### Estrutura do Projeto
```
mcp-server/
├── index.js # Servidor MCP principal
├── package.json # Dependências e scripts
└── README.md # Esta documentação
```
### Dependências
- `@modelcontextprotocol/sdk` - SDK oficial do MCP
- `zod` - Validação de schemas TypeScript-first
### Fluxo de Funcionamento
1. **Inicialização:** Servidor MCP é iniciado via STDIO
2. **Descoberta:** Cliente lista ferramentas disponíveis (`tools/list`)
3. **Execução:** Cliente chama `saudacao_amistosa` (`tools/call`)
4. **Processamento:**
- Validação dos parâmetros com Zod
- Obtenção da data/hora atual
- Detecção do período do dia
- Geração da saudação no idioma escolhido
5. **Resposta:** Retorna saudação formatada
## 🎛️ Configuração
### Variáveis de Ambiente
Nenhuma variável de ambiente é necessária - o servidor funciona out-of-the-box.
### Customização
Para modificar as saudações ou adicionar novos idiomas, edite a seção `switch (idioma)` no arquivo `index.js`.
## 🧪 Teste Manual
### Teste via Node.js REPL
```bash
# Terminal 1: Iniciar servidor
node index.js
# Terminal 2: Testar com cliente MCP ou enviar JSON-RPC via stdin
```
### Teste com Cliente MCP de Exemplo
```javascript
// Exemplo de teste rápido
const result = await client.callTool("saudacao_amistosa", {
nome: "Desenvolvedor",
idioma: "pt"
});
console.log(result.content[0].text);
```
## 🚨 Solução de Problemas
### Erro: "Unsupported engine"
**Causa:** Versão do Node.js abaixo de 18
**Solução:** Atualize para Node.js 18+ ou ignore os avisos (funcionará com limitações)
### Erro: "Module not found"
**Causa:** Dependências não instaladas
**Solução:** Execute `npm install`
### Servidor não responde
**Causa:** Problema na comunicação STDIO
**Solução:** Verifique se o cliente MCP está configurado corretamente
## 📝 Scripts Disponíveis
```bash
npm start # Inicia o servidor
npm run dev # Inicia com auto-reload (Node 18+)
```
## 📦 Publicação no NPM
Para publicar seu servidor MCP no npm e disponibilizá-lo via npx:
### 1. Preparação
```bash
# Certifique-se de ter uma conta no npm
npm whoami
# Se não tiver, crie uma conta
npm adduser
```
### 2. Configuração
- Atualize as informações no `package.json`:
- `name`: Nome único no npm
- `version`: Versão semântica (1.0.0, 1.0.1, etc.)
- `author.email`: Seu email
- `homepage`, `repository`, `bugs`: URLs do seu repositório
### 3. Teste Local
```bash
# Teste o pacote localmente
npm pack
# Isso criará um arquivo .tgz para verificação
# Teste a instalação
npm install -g ./greeting-mcp-server-1.0.0.tgz
```
### 4. Publicação
```bash
# Primeiro login
npm login
# Publicar
npm publish
```
### 5. Verificação
```bash
# Teste via npx
npx greeting-mcp-server
# Ou instalar globalmente
npm install -g greeting-mcp-server
```
### 6. Atualizações
```bash
# Incrementar versão
npm version patch # 1.0.0 -> 1.0.1
npm version minor # 1.0.0 -> 1.1.0
npm version major # 1.0.0 -> 2.0.0
# Publicar nova versão
npm publish
```
## 🤝 Contribuindo
1. Fork do projeto
2. Crie uma branch para sua feature (`git checkout -b feature/nova-saudacao`)
3. Commit suas mudanças (`git commit -am 'Adiciona nova saudação'`)
4. Push para a branch (`git push origin feature/nova-saudacao`)
5. Abra um Pull Request
## 📄 Licença
Este projeto está licenciado sob a MIT License - veja o arquivo [LICENSE](LICENSE) para detalhes.
## 🔗 Links Úteis
- [Model Context Protocol Specification](https://modelcontextprotocol.io/)
- [MCP SDK Documentation](https://github.com/modelcontextprotocol/typescript-sdk)
- [Claude MCP Integration](https://docs.anthropic.com/claude/docs/mcp)
---
**Feito com ❤️ e muito café ☕**