Dad Jokes MCP Server
Genera chistes de papá con múltiples estilos y temas, completos con calificaciones y estadísticas divertidas.
Documentación
Servidor MCP de Dad Jokes
Un servidor profesional de Model Context Protocol (MCP) que lleva la alegría de los dad jokes a tu flujo de trabajo de desarrollo. Perfecto para alegrar el ambiente durante revisiones de código, reuniones de equipo o cuando necesitas un descanso rápido con una risa.
🎯 Características
- Múltiples estilos de chistes: Clásicos, con juegos de palabras, familiares y dignos de un gemido
- Generación por tema: Genera chistes sobre temas específicos
- Generación aleatoria de chistes: Obtén chistes aleatorios cuando necesites inspiración
- Sistema de calificación: Califica y recibe comentarios sobre dad jokes
- Explorador de categorías: Explora las categorías de chistes disponibles
- Estadísticas divertidas: Obtén estadísticas interesantes sobre dad jokes
- Seguridad de tipos: Construido con TypeScript para un desarrollo robusto
- Arquitectura profesional: Estructura de código limpia y mantenible
🚀 Inicio rápido
Requisitos previos
- Node.js >= 18.0.0
- npm o yarn
- Conocimiento de TypeScript (opcional pero útil)
Instalación
# 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
Configuración de desarrollo
# 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 disponibles
generate-dad-joke
Genera un dad joke sobre un tema específico con estilo opcional.
Parámetros:
topic(string): El tema del chistestyle(string opcional): "classic", "punny", "wholesome" o "groan-worthy"
Ejemplo:
{
"topic": "programming",
"style": "punny"
}
Salida de muestra:
"¿Por qué los programadores prefieren el modo oscuro? ¡Porque la luz atrae a los bugs!"
random-dad-joke
Genera dad jokes aleatorios.
Parámetros:
count(string opcional): Número de chistes a generar ("1" a "5")
Ejemplo:
{
"count": "3"
}
rate-dad-joke
Obtén una calificación profesional y comentarios para un dad joke.
Parámetros:
joke(string): El chiste a evaluar
Ejemplo:
{
"joke": "Why don't scientists trust atoms? Because they make up everything!"
}
🛠️ Herramientas disponibles
get-joke-categories
Recupera todas las categorías de chistes disponibles.
Parámetros: Ninguno
Devuelve: Lista de 15 categorías de chistes, incluyendo Animales, Comida, Tecnología, Deportes, etc.
joke-stats
Obtén estadísticas divertidas sobre dad jokes.
Parámetros: Ninguno
Devuelve: Estadísticas entretenidas como tasas de éxito, tiempo promedio de gemido, ¡y más!
🔧 Integración con clientes MCP
Integración con Claude Desktop
Añade a tu archivo de configuración de 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": {}
}
}
}
Otros clientes MCP
Para otros clientes compatibles con MCP, usa el transporte stdio:
node /path/to/dad-jokes-mcp-server/dist/index.js
🏗️ Arquitectura
El servidor está construido con una arquitectura limpia y 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 clave
- DadJokesMcpServer: Clase principal del servidor que maneja el protocolo MCP
- Gestión de prompts: Definiciones de prompts organizadas con validación adecuada
- Integración de herramientas: Sistema extensible de herramientas para funcionalidad adicional
- Manejo de errores: Manejo integral de errores y registro
- Seguridad de tipos: Cobertura completa de TypeScript con configuración estricta
📖 Ejemplos de uso
Flujo de trabajo de ejemplo
-
Comienza tu día con humor:
Prompt: random-dad-joke Count: 1 -
Genera chistes sobre temas específicos:
Prompt: generate-dad-joke Topic: "TypeScript" Style: "punny" -
Califica los chistes del equipo:
Prompt: rate-dad-joke Joke: "Why do developers wear glasses? Because they can't C#!" -
Explora categorías para inspirarte:
Tool: get-joke-categories
Ideas de integración
- Comentarios en revisiones de código: Añade dad jokes para alegrar las revisiones de PR
- Reunión diaria del equipo: Comienza las reuniones con un dad joke diario
- Mensajes de error: Suaviza los fallos de compilación con humor
- Documentación: Añade personalidad a los documentos técnicos
- Bots de Slack: Integra con herramientas de comunicación del equipo
🧪 Pruebas
El proyecto incluye una estructura básica de pruebas:
# Run tests (implement tests in tests/ directory)
npm test
# Run tests in watch mode
npm test -- --watch
# Run tests with coverage
npm test -- --coverage
Pruebas manuales
Prueba el 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
🔧 Configuración
Variables de entorno
# Optional: Enable debug logging
DEBUG=true
# Optional: Set custom logging level
LOG_LEVEL=info
Personalización
Modifica las categorías de chistes, estilos o estadísticas editando los arreglos en 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"];
📦 Publicación
Para publicar en 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
🤝 Contribuciones
¡Agradecemos las contribuciones! Así es como puedes comenzar:
Inicio rápido para contribuyentes
- Haz un fork del repositorio en GitHub
- Clona tu fork:
git clone https://github.com/YOUR-USERNAME/dad-jokes-mcp-server.git cd dad-jokes-mcp-server - Crea una rama de características:
git checkout -b feature/amazing-feature - Haz tus cambios y pruébalos
- Confirma tus cambios:
git commit -m "Add amazing feature" - Sube a tu rama:
git push origin feature/amazing-feature - Abre un Pull Request en GitHub
Pautas de desarrollo
- Sigue las mejores prácticas de TypeScript
- Añade pruebas para nuevas características
- Actualiza la documentación para cambios en la API
- Ejecuta
npm run lintantes de confirmar - Mantén los chistes aptos para toda la familia e inclusivos
Ideas para contribuciones
- 🎭 Nuevas categorías de chistes (Ciencia, Gaming, etc.)
- 🛠️ Herramientas adicionales (historial de chistes, favoritos)
- 🎨 Formato de chistes (arte ASCII, emojis)
- 🧪 Mejoras en la cobertura de pruebas
- 📚 Mejoras en la documentación
- 🚀 Optimizaciones de rendimiento
🐛 Solución de problemas
Problemas comunes
-
Errores de compilación:
# Clear cache and rebuild npm run clean && npm install && npm run build -
Problemas de conexión MCP:
- Verifica que la versión de Node.js sea >= 18.0.0
- Revisa las rutas de archivos en la configuración del cliente MCP
- Asegúrate de que los archivos compilados existan en
dist/
-
Errores de TypeScript:
- Ejecuta
npm run lintpara verificar problemas - Verifica que todas las dependencias estén instaladas
- Ejecuta
Obtener ayuda
- Problemas: GitHub Issues
- Discusiones: GitHub Discussions
- Documentación: Revisa el README y los comentarios del código
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para más detalles.
🎭 ¿Por qué dad jokes?
Los dad jokes son más que solo humor—son:
- Rompehielos para reuniones de equipo
- Aliviadores de estrés durante sesiones intensas de codificación
- Iniciadores de conversación en revisiones de código
- Impulsores de moral para equipos de desarrollo
- Lenguaje universal que trasciende barreras técnicas
- Constructores de confianza (si puedes sobrevivir a un dad joke, puedes manejar cualquier revisión de código)
🚀 Hoja de ruta
Mejoras futuras que estamos considerando:
- 🎯 Persistencia de chistes (guardar favoritos)
- 🌐 Soporte multilingüe
- 🤖 Mejoras en la generación de chistes con IA
- 📊 Analíticas (chistes más populares, estadísticas de uso)
- 🎨 Formato enriquecido (markdown, emojis)
- 🔌 Más integraciones (Slack, Discord, etc.)
🙏 Agradecimientos
- Al equipo de Model Context Protocol por el excelente framework
- A la comunidad de dad jokes por la inspiración infinita
- A todos los contribuyentes que ayudan a mejorar este proyecto
- A cada desarrollador que aprecia un buen (malo) juego de palabras
📊 Estadísticas del proyecto
- Lenguaje: TypeScript
- Runtime: Node.js
- Protocolo: Model Context Protocol (MCP)
- Licencia: MIT
- Mantenedor: OrenGrinker
Recuerda: Un día sin risas es un día desperdiciado, pero un día con dad jokes es un día donde todos gimen juntos. 😄
Dato curioso: Este README contiene exactamente 42 referencias a dad jokes. No es una coincidencia: es la respuesta a la vida, el universo y todo lo demás... ¡incluyendo por qué los desarrolladores aman los juegos de palabras terribles! 🤓