mcpField
D
Dad Jokes Mcp

Dad Jokes Mcp

本地服务
github.com/OrenGrinker游戏娱乐371 周前更新

关于 Dad Jokes Mcp

Dad Jokes Mcp 是一款用于生成和评价冷笑话的 MCP 服务,面向开发团队及兼容 MCP 的客户端。它支持按主题或随机生成笑话、多种风格、笑话评分、类别浏览和统计信息。

主要功能

  1. 01按主题和风格生成笑话
  2. 02随机生成笑话
  3. 03为笑话评分并提供反馈
  4. 04浏览笑话类别
  5. 05查看笑话统计

适用场景

  1. 01为代码审查评论增添幽默
  2. 02用笑话开启团队会议
  3. 03为开发讨论寻找主题笑话

MCP 相关

提供按主题生成、随机生成和评价笑话的 MCP 提示词,以及列出类别和获取笑话统计的工具。通过 stdio 连接 MCP 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dad-jokes": {
"command": "npx",
"args": [
"-y",
"dad-jokes-mcp-server"
]
}
}
}
启动命令npx -y dad-jokes-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmdad-jokes-mcp-server

工具

3

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

爸爸笑话 MCP 服务

License: MIT Node.js Version TypeScript

一款专业的模型上下文协议(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,并采用严格配置

📖 使用示例

工作流示例
  1. 用幽默开启一天:

    Prompt: random-dad-joke
    Count: 1
    
  2. 生成特定主题的笑话:

    Prompt: generate-dad-joke
    Topic: "TypeScript"
    Style: "punny"
    
  3. 为团队笑话评分:

    Prompt: rate-dad-joke
    Joke: "Why do developers wear glasses? Because they can't C#!"
    
  4. 浏览分类,寻找灵感:

    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

🤝 参与贡献

欢迎参与贡献!以下是入门方法:

贡献者快速入门
  1. 在 GitHub 上 Fork 此仓库
  2. 克隆你的 Fork:
    git clone https://github.com/YOUR-USERNAME/dad-jokes-mcp-server.git
    cd dad-jokes-mcp-server
    
  3. 创建功能分支:
    git checkout -b feature/amazing-feature
    
  4. 进行修改并测试
  5. 提交修改:
    git commit -m "Add amazing feature"
    
  6. 推送到你的分支:
    git push origin feature/amazing-feature
    
  7. 在 GitHub 上发起 Pull Request
开发指南
  • 遵循 TypeScript 最佳实践
  • 为新功能添加测试
  • API 变更时更新文档
  • 提交前运行 npm run lint
  • 确保笑话适合全家欣赏且具有包容性
贡献点子
  • 🎭 新增笑话类别(科学、游戏等)
  • 🛠️ 添加工具(笑话历史记录、收藏)
  • 🎨 笑话格式(ASCII 艺术、表情符号)
  • 🧪 改进测试覆盖率
  • 📚 增强文档
  • 🚀 优化性能

🐛 故障排除

常见问题
  1. 构建错误:

    # Clear cache and rebuild
    npm run clean && npm install && npm run build
    
  2. MCP 连接问题:

    • 确认 Node.js 版本 >= 18.0.0
    • 检查 MCP 客户端配置中的文件路径
    • 确保构建后的文件位于 dist/ 中
  3. TypeScript 错误:

    • 运行 npm run lint 检查问题
    • 确认所有依赖项均已安装
获取帮助

📄 许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

🎭 为什么是冷笑话?

冷笑话不只是幽默——它们还能:

  • 成为团队会议的破冰话题
  • 在紧张的编码过程中缓解压力
  • 在代码审查中开启话题
  • 提振开发团队士气
  • 成为跨越技术障碍的通用语言
  • 增强信心(如果你能扛住冷笑话,就能应对任何代码审查)

🚀 路线图

我们正在考虑的未来改进:

  • 🎯 笑话持久化(保存收藏)
  • 🌐 多语言支持
  • 🤖 改进AI 驱动的笑话生成
  • 📊 分析(最受欢迎的笑话、使用统计)
  • 🎨 丰富格式(Markdown、表情符号)
  • 🔌 更多集成(Slack、Discord 等)

🙏 致谢

  • 感谢 Model Context Protocol 团队提供出色的框架
  • 感谢冷笑话社区带来源源不断的灵感
  • 感谢所有帮助改进此项目的贡献者
  • 感谢每一位欣赏优质(糟糕)双关语的开发者

📊 项目统计

  • 语言:TypeScript
  • 运行环境:Node.js
  • 协议:Model Context Protocol(MCP)
  • 许可证:MIT
  • 维护者:OrenGrinker

请记住:没有欢笑的一天是虚度的一天,而充满冷笑话的一天,则是大家一起哀嚎的一天。 😄

趣闻:这份 README 中恰好有 42 处冷笑话相关内容。这可不是巧合——这是生命、宇宙以及一切问题的答案……包括开发者为何钟爱糟糕的双关语!🤓

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。