Dad Jokes MCP Server
Gera piadas de pai com múltiplos estilos e tópicos, completas com avaliações e estatísticas divertidas.
Documentação
Servidor MCP de Piadas de Pai
Um servidor profissional de Model Context Protocol (MCP) que traz a alegria das piadas de pai para o seu fluxo de trabalho de desenvolvimento. Perfeito para alegrar o clima durante revisões de código, reuniões de equipe ou quando você precisa de uma pausa rápida para rir.
🎯 Recursos
- Múltiplos Estilos de Piadas: Clássicas, trocadilhos, wholesome e variantes dignas de gemidos
- Geração Baseada em Tópicos: Gere piadas sobre assuntos específicos
- Geração de Piadas Aleatórias: Obtenha piadas aleatórias quando precisar de inspiração
- Sistema de Avaliação de Piadas: Avalie e receba feedback sobre piadas de pai
- Navegador de Categorias: Explore as categorias de piadas disponíveis
- Estatísticas Divertidas: Obtenha estatísticas interessantes sobre piadas de pai
- Type-Safe: Construído com TypeScript para desenvolvimento robusto
- Arquitetura Profissional: Estrutura de código limpa e de fácil manutenção
🚀 Início Rápido
Pré-requisitos
- Node.js >= 18.0.0
- npm ou yarn
- Conhecimento em TypeScript (opcional, mas útil)
Instalação
# Clone the repository
git clone https://github.com/OrenGrinker/dad-jokes-mcp-server.git
cd dad-jokes-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start
Configuração de Desenvolvimento
# Run in development mode with auto-rebuild
npm run dev
# Run linting
npm run lint
# Run tests (when implemented)
npm test
# Clean build directory
npm run clean
📋 Prompts Disponíveis
generate-dad-joke
Gere uma piada de pai sobre um tópico específico com estilo opcional.
Parâmetros:
topic(string): O assunto da piadastyle(string opcional): "classic", "punny", "wholesome" ou "groan-worthy"
Exemplo:
{
"topic": "programming",
"style": "punny"
}
Exemplo de Saída:
"Por que programadores preferem o modo escuro? Porque a luz atrai bugs!"
random-dad-joke
Gere piadas de pai aleatórias.
Parâmetros:
count(string opcional): Número de piadas a gerar ("1" a "5")
Exemplo:
{
"count": "3"
}
rate-dad-joke
Obtenha uma avaliação profissional e feedback para uma piada de pai.
Parâmetros:
joke(string): A piada a ser avaliada
Exemplo:
{
"joke": "Why don't scientists trust atoms? Because they make up everything!"
}
🛠️ Ferramentas Disponíveis
get-joke-categories
Recupere todas as categorias de piadas disponíveis.
Parâmetros: Nenhum
Retorna: Lista de 15 categorias de piadas, incluindo Animais, Comida, Tecnologia, Esportes, etc.
joke-stats
Obtenha estatísticas divertidas sobre piadas de pai.
Parâmetros: Nenhum
Retorna: Estatísticas divertidas como taxas de sucesso, tempo médio de gemido e muito mais!
🔧 Integração com Clientes MCP
Integração com Claude Desktop
Adicione ao seu arquivo de configuração do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"dad-jokes": {
"command": "node",
"args": ["/path/to/dad-jokes-mcp-server/dist/index.js"],
"env": {}
}
}
}
Outros Clientes MCP
Para outros clientes compatíveis com MCP, use o transporte stdio:
node /path/to/dad-jokes-mcp-server/dist/index.js
🏗️ Arquitetura
O servidor é construído com uma arquitetura limpa e orientada a objetos:
src/
├── index.ts # Main server class and startup logic
├── types/ # TypeScript type definitions (future expansion)
├── prompts/ # Prompt configurations (future expansion)
└── tools/ # Tool implementations (future expansion)
Componentes Principais
- DadJokesMcpServer: Classe principal do servidor que lida com o protocolo MCP
- Gerenciamento de Prompts: Definições organizadas de prompts com validação adequada
- Integração de Ferramentas: Sistema extensível de ferramentas para funcionalidades adicionais
- Tratamento de Erros: Tratamento abrangente de erros e registro de logs
- Segurança de Tipos: Cobertura completa de TypeScript com configuração estrita
📖 Exemplos de Uso
Fluxo de Trabalho de Exemplo
-
Comece o dia com humor:
Prompt: random-dad-joke Count: 1 -
Gere piadas específicas por tópico:
Prompt: generate-dad-joke Topic: "TypeScript" Style: "punny" -
Avalie piadas da equipe:
Prompt: rate-dad-joke Joke: "Why do developers wear glasses? Because they can't C#!" -
Navegue pelas categorias para inspiração:
Tool: get-joke-categories
Ideias de Integração
- Comentários em Revisões de Código: Adicione piadas de pai para alegrar as revisões de PR
- Reuniões Diárias da Equipe: Comece as reuniões com uma piada de pai diária
- Mensagens de Erro: Suavize falhas de build com humor
- Documentação: Adicione personalidade aos documentos técnicos
- Bots do Slack: Integre com ferramentas de comunicação da equipe
🧪 Testes
O projeto inclui uma estrutura básica de testes:
# Run tests (implement tests in tests/ directory)
npm test
# Run tests in watch mode
npm test -- --watch
# Run tests with coverage
npm test -- --coverage
Testes Manuais
Teste o servidor manualmente:
# Build and start
npm run build && npm start
# In another terminal, test with sample MCP client
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}}' | node dist/index.js
🔧 Configuração
Variáveis de Ambiente
# Optional: Enable debug logging
DEBUG=true
# Optional: Set custom logging level
LOG_LEVEL=info
Personalização
Modifique as categorias de piadas, estilos ou estatísticas editando os arrays em src/index.ts:
// Add new categories
const categories = [
"Animals", "Food", "Technology", // ... existing
"Your Custom Category"
];
// Add new joke styles
const styles = ["classic", "punny", "wholesome", "groan-worthy", "your-style"];
📦 Publicação
Para publicar no npm:
# Ensure you're logged into npm
npm login
# Build and prepare for publishing
npm run prepublishOnly
# Publish (update version in package.json first)
npm version patch # or minor/major
npm publish
🤝 Contribuindo
Aceitamos contribuições! Veja como começar:
Início Rápido para Contribuidores
- Faça um fork do repositório no GitHub
- Clone o seu fork:
git clone https://github.com/YOUR-USERNAME/dad-jokes-mcp-server.git cd dad-jokes-mcp-server - Crie um branch de funcionalidade:
git checkout -b feature/amazing-feature - Faça suas alterações e teste-as
- Faça commit das suas alterações:
git commit -m "Add amazing feature" - Envie para o seu branch:
git push origin feature/amazing-feature - Abra um Pull Request no GitHub
Diretrizes de Desenvolvimento
- Siga as melhores práticas de TypeScript
- Adicione testes para novos recursos
- Atualize a documentação para mudanças na API
- Execute
npm run lintantes de fazer commit - Mantenha as piadas adequadas para a família e inclusivas
Ideias para Contribuições
- 🎭 Novas categorias de piadas (Ciência, Jogos, etc.)
- 🛠️ Ferramentas adicionais (histórico de piadas, favoritos)
- 🎨 Formatação de piadas (arte ASCII, emojis)
- 🧪 Melhorias na cobertura de testes
- 📚 Aprimoramentos na documentação
- 🚀 Otimizações de desempenho
🐛 Solução de Problemas
Problemas Comuns
-
Erros de Build:
# Clear cache and rebuild npm run clean && npm install && npm run build -
Problemas de Conexão MCP:
- Verifique se a versão do Node.js é >= 18.0.0
- Verifique os caminhos dos arquivos na configuração do cliente MCP
- Certifique-se de que os arquivos compilados existam em
dist/
-
Erros de TypeScript:
- Execute
npm run lintpara verificar problemas - Verifique se todas as dependências estão instaladas
- Execute
Obtendo Ajuda
- Problemas: GitHub Issues
- Discussões: GitHub Discussions
- Documentação: Consulte o README e os comentários do código
📄 Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
🎭 Por que Piadas de Pai?
Piadas de pai são mais do que apenas humor—elas são:
- Quebra-gelos para reuniões de equipe
- Aliviadores de estresse durante sessões intensas de codificação
- Iniciadores de conversa em revisões de código
- Impulsionadores de moral para equipes de desenvolvimento
- Linguagem universal que transcende barreiras técnicas
- Construtores de confiança (se você sobreviver a uma piada de pai, pode lidar com qualquer revisão de código)
🚀 Roteiro
Aprimoramentos futuros que estamos considerando:
- 🎯 Persistência de piadas (salvar favoritos)
- 🌐 Suporte a múltiplos idiomas
- 🤖 Melhorias na geração de piadas com IA
- 📊 Análises (piadas mais populares, estatísticas de uso)
- 🎨 Formatação rica (markdown, emojis)
- 🔌 Mais integrações (Slack, Discord, etc.)
🙏 Agradecimentos
- Equipe do Model Context Protocol pelo excelente framework
- A comunidade de piadas de pai pela inspiração infinita
- Todos os contribuidores que ajudam a tornar este projeto melhor
- Todo desenvolvedor que aprecia um bom (ruim) trocadilho
📊 Estatísticas do Projeto
- Linguagem: TypeScript
- Runtime: Node.js
- Protocolo: Model Context Protocol (MCP)
- Licença: MIT
- Mantenedor: OrenGrinker
Lembre-se: Um dia sem risadas é um dia desperdiçado, mas um dia com piadas de pai é um dia em que todos gemem juntos. 😄
Fato Divertido: Este README contém exatamente 42 referências a piadas de pai. Isso não é coincidência – é a resposta para a vida, o universo e tudo mais... incluindo por que desenvolvedores amam trocadilhos terríveis! 🤓