关于 jokebox
jokebox 是用于从 icanhazdadjoke.com 获取冷笑话的命令行工具和 stdio MCP 服务,支持随机获取、关键词搜索及按 ID 查找。
主要功能
- 01随机获取冷笑话
- 02按关键词搜索笑话
- 03按 ID 获取笑话
- 04命令行与 stdio MCP 服务
适用场景
- 01随机获取一则笑话
- 02查找包含指定词语的笑话
- 03重新获取已知 ID 的笑话
MCP 相关
向 MCP 客户端提供随机笑话、关键词搜索和按 ID 获取笑话的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
jokebox
jokebox 从 icanhazdadjoke.com 提供爸爸笑话。 可以随机获取一个笑话,搜索包含某个单词或短语的笑话,或者在知道笑话 ID 时再次获取指定的笑话。 一个二进制文件同时提供简易命令行界面和 stdio MCP 服务,因此同一安装既可在终端中使用,也可在 MCP 客户端中使用。
无需进行任何配置:上游服务是公开的,无需 API 密钥,只要求客户端标明身份并接受 JSON 响应;jokebox 每次请求都会做到这一点。
安装
npx @reneturcios/jokebox random
也可以运行容器镜像:
docker run -i ghcr.io/cloudcorprecords/jokebox
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
jokebox random
jokebox search pizza
jokebox search pizza --limit 3
jokebox joke R7UfaahVfFd
jokebox --version
每条命令都会打印 JSON。random 会打印一个笑话,格式为
{ "id": ..., "joke": ... }。search 会打印
{ "term": ..., "total_jokes": ..., "jokes": [...] },其中
total_jokes 统计上游保存的该词所有匹配结果,jokes 则包含所请求的结果页。joke 会打印指定 ID 对应的单个笑话。
搜索限制:--limit 是一个介于 1 到 30 之间的整数,默认值为
5。限制值超出范围、未提供搜索词或未提供笑话 ID 都属于用法错误,且不会发送请求。
退出码:成功时为 0;上游请求失败时为 1(错误信息会指出 HTTP 状态码或响应格式错误);用法错误时为 2。
MCP 服务
一个二进制文件同时支持两种用法。mcp 子命令会启动 stdio MCP 服务:
npx -y @reneturcios/jokebox mcp
MCP 客户端配置:
{
"mcpServers": {
"jokebox": {
"command": "npx",
"args": ["-y", "@reneturcios/jokebox", "mcp"]
}
}
}
工具
| 工具 | 输入 | 返回内容 |
|---|---|---|
get_random_joke_tool | (无) | 一个随机爸爸笑话:其 id 和 joke 文本。 |
search_jokes_tool | term(字符串,必填),limit(整数,可选,默认值为 5,最大值为 30) | 包含该词的笑话:该词、匹配总数和匹配的笑话。 |
get_joke_by_id_tool | joke_id(字符串,必填) | 该 ID 对应的单个笑话。 |
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch only)
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。