爸爸笑话MCP服务器🎭
一个基于Python的MCP(模型上下文协议)服务器,可以生成创意爸爸笑话提示。将您的AI代理连接到此服务器,并请求爸爸以各种风格就任何主题讲笑话!
虽然这个项目完全是一团糟,但应该 OrenGrinker的爸爸开玩笑MCP服务器 以获取灵感,并可能参考振动编码LLM的示例。
特性
- 🎪 8种笑话风格双关语、文字游戏、观察、反幽默、问答、一句话、敲门和经典
- 🛠️ MCP工具:
joke_styles和build_dad_joke_prompt用于自动提示构建 - 🌐 网络支持:通过具有标准化端点的SSE(服务器发送事件)传输运行(
/sse和/messages) - 📝 广泛的日志记录:采用结构化JSON格式的完整请求/响应日志记录
- 🐳 Docker就绪:完成独立部署的Docker配置
运作原理
当你通过MCP客户端请求一个爸爸笑话时:
- 用户请求:“添加一个关于鱼的爸爸笑话”
- MCP服务器返回:一个提示,比如“你是一个擅长双关语的喜剧专家。创造一个适合工作场所的关于鱼的笑话。”
- AI代理执行:提示并生成实际笑话
- 结果“为什么鱼不成功?他辍学了!”
安装
本地安装
- 克隆或导航到项目目录:
cd joke-poc-mcp-server- 创建虚拟环境 (推荐):
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 配置环境 (可选):
cp .env.example .env
# Edit .env with your preferred settings- 运行服务器:
python -m src.server服务器将于启动 http://0.0.0.0:8000 默认情况下。
- SSE连接:
http://localhost:8000/sse(或/messages为了兼容性) - 留言发布:
http://localhost:8000/messages
Docker安装
- 使用Docker Compose构建和运行:
docker-compose up -d- 查看日志:
docker-compose logs -f dad-joke-mcp- 停止服务器:
docker-compose down或者,直接使用Docker:
# Build the image
docker build -t dad-joke-mcp-server .
# Run the container
docker run -d -p 8000:8000 --name dad-joke-mcp dad-joke-mcp-server
# View logs
docker logs -f dad-joke-mcp配置
使用环境变量或 .env 文件:
| 变量 | 默认值 | 描述 |
|---|---|---|
HOST | 0.0.0.0 | 服务器主机地址 |
PORT | 8000 | 服务器端口 |
LOG_LEVEL | INFO | 日志记录级别(调试、信息、警告、错误、严重) |
LOG_FORMAT | json | 日志格式(json或文本) |
LOG_FILE | logs/dad-joke-mcp.log | 日志文件路径 |
LOG_TO_FILE | false | 启用文件日志记录 |
LOG_REQUESTS | true | 记录传入请求 |
LOG_RESPONSES | true | 记录传出响应 |
MCP客户端配置
克劳德桌面版
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"dad-joke": {
"url": "http://localhost:8000/sse"
}
}
}Cline(VS代码扩展)
添加到您的Cline MCP设置中:
{
"mcpServers": {
"dad-joke": {
"url": "http://localhost:8000/sse",
"transport": "sse"
}
}
}用法
提示
使用 dad_joke 提示生成LLM提示:
- 必修的:
topic - 可选:
style(默认值:classic)
工具
服务器提供自动化交互工具:
joke_styles:返回所有可用笑话样式的列表。
- *参数*:无
build_dad_joke_prompt:通过程序生成一个爸爸笑话提示。
- *参数*: - topic (字符串,必填):笑话的主题。 - style (字符串,可选):笑话的风格。
可用样式:
pun-巧妙的文字游戏和多重含义wordplay-创造性单词组合和同音词observational-对日常情况的有趣观察anti-humor-用文字妙语颠覆期望question-answer-经典的“为什么…”或“你叫什么…”格式one-liner-简短有力的单句笑话knock-knock-传统的敲门笑话形式classic-传统的爸爸笑话风格(默认)
例子
光标
build_dad_joke_prompt( football ) and use the output as a prompt and then append the result of that prompt to the test.txt file. Only append the result, oo not include the call to the tool or the parameters. 调用该工具并将输出用作提示
append /dad-joke/dad_joke to the test.txt file 使用提示(斜线将触发一个对话框,询问主题和样式)
日志记录
服务器提供广泛的日志记录,其中包含完整的请求/响应详细信息:
JSON格式(默认)
{
"timestamp": "2026-02-01T20:24:00.123Z",
"logger": "dad_joke_mcp",
"level": "INFO",
"message": "Generated dad joke prompt",
"request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"topic": "fish",
"style": "classic",
"prompt_length": 145
}文本格式
集 LOG_FORMAT=text 对于人类可读的日志:
2026-02-01 20:24:00,123 - dad_joke_mcp - INFO - Generated dad joke prompt建筑
┌─────────────────┐
│ MCP Client │
│ (Claude/Cursor) │
└────────┬────────┘
│ SSE/HTTP
▼
┌─────────────────┐
│ Dad Joke MCP │
│ Server │
│ │
│ ┌───────────┐ │
│ │ Prompts / │ │
│ │ Tools │ │
│ │ Handlers │ │
│ └───────────┘ │
│ │
│ ┌───────────┐ │
│ │ Logger │ │
│ │ (JSON) │ │
│ └───────────┘ │
└─────────────────┘发展
运行测试
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest项目结构
joke-poc-mcp-server/
├── src/
│ ├── __init__.py # Package initialization
│ ├── config.py # Configuration management
│ └── server.py # Main MCP server
├── Dockerfile # Docker image definition
├── docker-compose.yml # Docker Compose configuration
├── pyproject.toml # Project metadata
├── requirements.txt # Python dependencies
├── .env.example # Example environment config
└── README.md # This file故障排除
服务器无法启动
- 检查端口8000是否已在使用中:
lsof -i :8000 - 验证Python版本:
python --version(要求3.11+) - 检查日志中的错误消息
MCP客户端无法连接
- 确保服务器正在运行:
curl http://localhost:8000/sse - 验证防火墙设置是否允许端口8000上的连接
- 检查客户端配置是否与服务器主机/端口匹配(确保使用
/sse对于GET)
没有出现日志
- 集
LOG_LEVEL=DEBUG用于详细日志记录 - 验证
LOG_REQUESTS=true和LOG_RESPONSES=true - 如果出现以下情况,请检查控制台输出或日志文件
LOG_TO_FILE=true
许可证
免费,就像啤酒一样。..将其用于任何用途,无需归因,窃取此代码,说这是你自己的,等等。
______________________________________________________________________
由以下材料制成❤️ 还有可怕的双关语
