笑话生成服务器

一个专业的Model Context Protocol (MCP)服务器,为开发工作流程带来欢乐,适用于代码审查、团队会议或快速放松的场景。

  • by OrenGrinker
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 OrenGrinker/dad-jokes-mcp-server

使用说明

爸爸调侃MCP服务器

一个专业的模型上下文协议(MCP)服务器,为您的开发工作流程带来爸爸笑话的乐趣。非常适合在代码审查、团队会议或需要快速休息时放松心情。

🎯 特性

  • 多种笑话风格:经典、小巧、有益健康、值得抱怨的变体
  • 基于主题的生成:生成关于特定主题的笑话
  • 随机笑话生成:当你需要灵感时,可以随意开玩笑
  • 笑话评分系统:评价爸爸的笑话并获得反馈
  • 类别浏览器:探索可用的笑话类别
  • 有趣的统计数据:获取有趣的爸爸笑话统计数据
  • 类型安全:使用TypeScript构建,实现稳健开发
  • 专业建筑:干净、可维护的代码结构

🚀 快速开始

先决条件

  • Node.js>=18.0.0
  • npm或纱线
  • 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 (可选字符串):“经典”、“微不足道”、“有益健康”或“值得抱怨”

例子:

{
  "topic": "programming",
  "style": "punny"
}

样本输出:

“为什么程序员更喜欢黑暗模式?因为光线会吸引虫子!”

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桌面集成

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %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)

关键组件

  • DadJokes微信服务器:处理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
    

整合思路

  • 代码审查意见:添加爸爸笑话以减轻公关评论
  • 团队站立:每天开一个爸爸笑话开始会议
  • 错误消息:用幽默软化构建失败
  • 文档:为技术文档添加个性
  • 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上
  2. 克隆你的叉子:
    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上

开发指南

  • 遵循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许可证获得许可-请参阅 许可证 文件以获取详细信息。

🎭 爸爸为什么开玩笑?

爸爸的笑话不仅仅是幽默——它们是:

  • 破冰船 用于团队会议
  • 减压剂 在密集的编码会话期间
  • 对话启动 在代码审查中
  • 鼓舞士气的事物 对于开发团队
  • 通用语言 超越技术壁垒
  • 信心建设者 (如果你能挺过爸爸的笑话,你就可以处理任何代码审查)

🚀 路线图

我们正在考虑的未来增强功能:

  • 🎯 笑话坚持 (保存收藏夹)
  • 🌐 多语言支持
  • 🤖 AI驱动的笑话生成 改进
  • 📊 分析 (最受欢迎的笑话,使用统计数据)
  • 🎨 丰富的格式 (标记、表情符号)
  • 🔌 更多集成 (松弛、不协调等)

🙏 致谢

  • 模型上下文协议 优秀框架团队
  • 爸爸笑话社区,获得无尽的灵感
  • 所有帮助改善这个项目的贡献者
  • 每个欣赏好(坏)双关语的开发人员

📊 项目统计

  • 语言:TypeScript
  • 运行时:Node.js
  • 协议:模型上下文协议(MCP)
  • 许可证:MIT
  • 维护者: OrenGrinker

记住:没有笑声的一天是浪费的一天,但有爸爸笑话的一天却是大家一起呻吟的一天。 😄

有趣的事实:此自述文件包含42个爸爸笑话参考。这不是巧合——这是生命、宇宙和一切的答案。..包括为什么开发人员喜欢可怕的双关语! 🤓