关于 Dad Jokes Mcp
Dad Jokes Mcp 是一款用于生成和评价冷笑话的 MCP 服务,面向开发团队及兼容 MCP 的客户端。它支持按主题或随机生成笑话、多种风格、笑话评分、类别浏览和统计信息。
主要功能
- 01按主题和风格生成笑话
- 02随机生成笑话
- 03为笑话评分并提供反馈
- 04浏览笑话类别
- 05查看笑话统计
适用场景
- 01为代码审查评论增添幽默
- 02用笑话开启团队会议
- 03为开发讨论寻找主题笑话
MCP 相关
提供按主题生成、随机生成和评价笑话的 MCP 提示词,以及列出类别和获取笑话统计的工具。通过 stdio 连接 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
爸爸笑话 MCP 服务
一款专业的模型上下文协议(MCP)服务,为开发工作流带来爸爸笑话的乐趣。无论是在代码审查、团队会议期间活跃气氛,还是需要快速放松一下时,都非常适用。
🎯 功能
- 多种笑话风格:经典、双关、温馨和令人冷场的笑话
- 按主题生成:生成关于特定主题的笑话
- 随机生成笑话:需要灵感时获取随机笑话
- 笑话评分系统:为爸爸笑话评分并获取反馈
- 分类浏览器:探索可用的笑话分类
- 趣味统计数据:获取有趣的爸爸笑话统计数据
- 类型安全:使用 TypeScript 构建,确保开发稳健
- 专业架构:代码结构清晰、易于维护
🚀 快速开始
前置条件
- Node.js >= 18.0.0
- npm 或 yarn
- TypeScript 知识(可选,但有帮助)
安装
# 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
开发环境设置
# 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
📋 可用提示词
generate-dad-joke
生成一个特定主题的爸爸笑话,可选择风格。
参数:
topic(字符串):笑话主题style(可选字符串):"classic"、"punny"、"wholesome" 或 "groan-worthy"
示例:
{
"topic": "programming",
"style": "punny"
}
示例输出:
"为什么程序员喜欢深色模式?因为光会吸引 Bug!"
random-dad-joke
生成随机爸爸笑话。
参数:
count(可选字符串):要生成的笑话数量("1" 到 "5")
示例:
{
"count": "3"
}
rate-dad-joke
为爸爸笑话进行专业评分并提供反馈。
参数:
joke(字符串):要评估的笑话
示例:
{
"joke": "Why don't scientists trust atoms? Because they make up everything!"
}
🛠️ 可用工具
get-joke-categories
获取所有可用的笑话分类。
参数: 无
返回: 包含 15 个笑话分类的列表,包括动物、食物、技术、体育等。
joke-stats
获取有关爸爸笑话的趣味统计数据。
参数: 无
返回: 有趣的统计数据,例如成功率、平均冷场时间等!
🔧 与 MCP 客户端集成
Claude Desktop 集成
将以下内容添加到 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": {}
}
}
}
其他 MCP 客户端
对于其他兼容 MCP 的客户端,请使用 stdio 传输:
node /path/to/dad-jokes-mcp-server/dist/index.js
🏗️ 架构
该服务采用清晰的面向对象架构构建:
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)
主要组件
- DadJokesMcpServer:处理 MCP 协议的主服务类
- 提示词管理:组织完善并经过适当验证的提示词定义
- 工具集成:可扩展的工具系统,可提供更多功能
- 错误处理:全面的错误处理与日志记录
- 类型安全:全面覆盖 TypeScript,并采用严格配置
📖 使用示例
工作流示例
-
用幽默开启一天:
Prompt: random-dad-joke Count: 1 -
生成特定主题的笑话:
Prompt: generate-dad-joke Topic: "TypeScript" Style: "punny" -
为团队笑话评分:
Prompt: rate-dad-joke Joke: "Why do developers wear glasses? Because they can't C#!" -
浏览分类,寻找灵感:
Tool: get-joke-categories
集成思路
- 代码审查评论:在 PR 审查中加入爸爸笑话,让气氛轻松一些
- 团队每日站会:用每日爸爸笑话开启会议
- 错误消息:用幽默缓和构建失败带来的沮丧
- 文档:为技术文档增添个性
- Slack 机器人:与团队沟通工具集成
🧪 测试
项目包含基本的测试结构:
# Run tests (implement tests in tests/ directory)
npm test
# Run tests in watch mode
npm test -- --watch
# Run tests with coverage
npm test -- --coverage
手动测试
手动测试服务:
# 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
🔧 配置
环境变量
# Optional: Enable debug logging
DEBUG=true
# Optional: Set custom logging level
LOG_LEVEL=info
自定义
编辑 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"];
📦 发布
要发布到 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
🤝 参与贡献
欢迎参与贡献!以下是入门方法:
贡献者快速入门
- 在 GitHub 上 Fork 此仓库
- 克隆你的 Fork:
git clone https://github.com/YOUR-USERNAME/dad-jokes-mcp-server.git cd dad-jokes-mcp-server - 创建功能分支:
git checkout -b feature/amazing-feature - 进行修改并测试
- 提交修改:
git commit -m "Add amazing feature" - 推送到你的分支:
git push origin feature/amazing-feature - 在 GitHub 上发起 Pull Request
开发指南
- 遵循 TypeScript 最佳实践
- 为新功能添加测试
- API 变更时更新文档
- 提交前运行
npm run lint - 确保笑话适合全家欣赏且具有包容性
贡献点子
- 🎭 新增笑话类别(科学、游戏等)
- 🛠️ 添加工具(笑话历史记录、收藏)
- 🎨 笑话格式(ASCII 艺术、表情符号)
- 🧪 改进测试覆盖率
- 📚 增强文档
- 🚀 优化性能
🐛 故障排除
常见问题
-
构建错误:
# Clear cache and rebuild npm run clean && npm install && npm run build -
MCP 连接问题:
- 确认 Node.js 版本 >= 18.0.0
- 检查 MCP 客户端配置中的文件路径
- 确保构建后的文件位于
dist/中
-
TypeScript 错误:
- 运行
npm run lint检查问题 - 确认所有依赖项均已安装
- 运行
获取帮助
- 问题:GitHub Issues
- 讨论:GitHub Discussions
- 文档:查看 README 和代码注释
📄 许可证
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
🎭 为什么是冷笑话?
冷笑话不只是幽默——它们还能:
- 成为团队会议的破冰话题
- 在紧张的编码过程中缓解压力
- 在代码审查中开启话题
- 提振开发团队士气
- 成为跨越技术障碍的通用语言
- 增强信心(如果你能扛住冷笑话,就能应对任何代码审查)
🚀 路线图
我们正在考虑的未来改进:
- 🎯 笑话持久化(保存收藏)
- 🌐 多语言支持
- 🤖 改进AI 驱动的笑话生成
- 📊 分析(最受欢迎的笑话、使用统计)
- 🎨 丰富格式(Markdown、表情符号)
- 🔌 更多集成(Slack、Discord 等)
🙏 致谢
- 感谢 Model Context Protocol 团队提供出色的框架
- 感谢冷笑话社区带来源源不断的灵感
- 感谢所有帮助改进此项目的贡献者
- 感谢每一位欣赏优质(糟糕)双关语的开发者
📊 项目统计
- 语言:TypeScript
- 运行环境:Node.js
- 协议:Model Context Protocol(MCP)
- 许可证:MIT
- 维护者:OrenGrinker
请记住:没有欢笑的一天是虚度的一天,而充满冷笑话的一天,则是大家一起哀嚎的一天。 😄
趣闻:这份 README 中恰好有 42 处冷笑话相关内容。这可不是巧合——这是生命、宇宙以及一切问题的答案……包括开发者为何钟爱糟糕的双关语!🤓
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。