Kick MCP Server
一个高性能的模型上下文协议服务器实现,它为第三方应用程序提供了一个标准化的接口,以便与 Kick 直播平台 API 集成。
README
🚀 Kick MCP 服务器
一个高性能的模型上下文协议 (MCP) 服务器实现,用于 Kick 流媒体平台 API。此服务器为第三方应用程序提供了一个强大、安全和标准化的接口,以便与 Kick 的服务集成。
🌟 特性
核心特性
- 🔐 安全的 OAuth 2.0 身份验证
- 自动令牌刷新
- 基于范围的授权
- JWT 验证
- 🔄 实时通信
- WebSocket 支持
- 自动重连
- 会话管理
- 🛡️ 企业级安全
- 速率限制
- IP 白名单
- 请求签名
- CORS 保护
- 📊 高级监控
- Prometheus 指标
- 健康检查
- 性能跟踪
- 💾 缓存与性能
- Redis 支持
- 内存缓存
- 请求优化
MCP 最佳实践
- ✅ 标准化的错误响应
- ✅ 一致的方法命名
- ✅ 正确的参数验证
- ✅ 全面的日志记录
- ✅ 自动重试
- ✅ 速率限制处理
📚 API 文档
身份验证方法
| 方法 | 描述 | 参数 |
|---|---|---|
getOAuthUrl |
获取 OAuth 授权 URL | client_id, redirect_uri, scope |
getAccessToken |
交换代码以获取令牌 | client_id, client_secret, code |
refreshAccessToken |
刷新过期令牌 | client_id, client_secret, refresh_token |
validateToken |
验证访问令牌 | access_token |
revokeToken |
撤销访问令牌 | access_token |
用户方法
| 方法 | 描述 | 参数 |
|---|---|---|
getUserProfile |
获取用户个人资料 | access_token |
updateUserProfile |
更新用户个人资料 | access_token, data |
getUserSubscriptions |
获取订阅 | access_token |
getUserEmotes |
获取用户表情 | access_token |
getUserBadges |
获取用户徽章 | access_token |
getUserFollows |
获取关注的频道 | access_token |
getUserBlockedUsers |
获取被阻止的用户 | access_token |
getUserClips |
获取用户剪辑 | access_token |
getUserVideos |
获取用户视频 | access_token |
getUserHighlights |
获取用户精彩片段 | access_token |
getUserScheduledStreams |
获取计划的直播 | access_token |
getUserNotifications |
获取通知 | access_token |
getUserWallet |
获取钱包信息 | access_token |
getUserGifts |
获取礼物历史 | access_token |
聊天方法
| 方法 | 描述 | 参数 |
|---|---|---|
getChatMessages |
获取聊天消息 | access_token, channel_id |
sendChatMessage |
发送聊天消息 | access_token, channel_id, message |
getChatSettings |
获取聊天设置 | access_token, channel_id |
banUser |
禁止用户发言 | access_token, channel_id, user_id |
unbanUser |
取消禁止用户发言 | access_token, channel_id, user_id |
timeoutUser |
禁言用户 | access_token, channel_id, user_id, duration |
deleteMessage |
删除聊天消息 | access_token, channel_id, message_id |
clearChat |
清除所有聊天消息 | access_token, channel_id |
getChatUserInfo |
获取聊天用户信息 | access_token, channel_id, user_id |
频道方法
| 方法 | 描述 | 参数 |
|---|---|---|
getChannelInfo |
获取频道信息 | access_token, channel_id |
getChannelFollowers |
获取关注者 | access_token, channel_id |
getChannelSubscribers |
获取订阅者 | access_token, channel_id |
getChannelEmotes |
获取频道表情 | access_token, channel_id |
getChannelBadges |
获取频道徽章 | access_token, channel_id |
getChannelModerators |
获取主持人 | access_token, channel_id |
getChannelBans |
获取被禁止的用户 | access_token, channel_id |
getChannelVips |
获取 VIP 用户 | access_token, channel_id |
getChannelClips |
获取频道剪辑 | access_token, channel_id |
getChannelVideos |
获取频道视频 | access_token, channel_id |
getChannelHighlights |
获取精彩片段 | access_token, channel_id |
getChannelScheduledStreams |
获取时间表 | access_token, channel_id |
getChannelChatRules |
获取聊天规则 | access_token, channel_id |
getChannelChatCommands |
获取命令 | access_token, channel_id |
getChannelCategories |
获取分类 | access_token, channel_id |
getChannelTags |
获取频道标签 | access_token, channel_id |
getChannelGifts |
获取礼物历史 | access_token, channel_id |
getChannelRaids |
获取突袭历史 | access_token, channel_id |
getChannelHosts |
获取主机历史 | access_token, channel_id |
直播方法
| 方法 | 描述 | 参数 |
|---|---|---|
startStream |
开始直播 | access_token, channel_id |
endStream |
结束直播 | access_token, channel_id |
updateStreamInfo |
更新直播信息 | access_token, channel_id, data |
updateStreamSettings |
更新设置 | access_token, channel_id, data |
getStreamInfo |
获取直播信息 | access_token, channel_id |
getStreamViewers |
获取观看者 | access_token, channel_id |
getStreamCategories |
获取分类 | access_token, channel_id |
getStreamTags |
获取直播标签 | access_token, channel_id |
getStreamStats |
获取统计信息 | access_token, channel_id |
createPoll |
创建投票 | access_token, channel_id, title, options, duration |
endPoll |
结束活动投票 | access_token, channel_id, poll_id |
createPrediction |
创建预测 | access_token, channel_id, title, options, duration |
endPrediction |
结束预测 | access_token, channel_id, prediction_id, winning_outcome_id |
createMarker |
创建直播标记 | access_token, channel_id, description |
Webhook 方法
| 方法 | 描述 | 参数 |
|---|---|---|
createWebhook |
创建 webhook | access_token, url, events |
deleteWebhook |
删除 webhook | access_token, webhook_id |
listWebhooks |
列出 webhooks | access_token |
getWebhookEvents |
获取可用事件 | access_token |
verifyWebhookSignature |
验证签名 | signature, message_id, timestamp, body |
getPublicKey |
获取公钥 | - |
getWebhookPayloads |
获取示例有效负载 | access_token, event_type |
retryWebhook |
重试失败的 webhook | access_token, webhook_id, message_id |
🚀 快速开始
前提条件
- Node.js >= 18.0.0
- Redis (可选,用于增强缓存)
- Docker (可选,用于容器化)
安装
- 克隆存储库:
git clone https://github.com/NosytLabs/KickMCP.git
cd KickMCP
- 安装依赖项:
npm install
- 配置环境:
cp .env.example .env
# 编辑 .env 文件,填写您的设置
- 启动服务器:
npm start
Docker 部署
# 构建镜像
docker build -t kick-mcp .
# 运行容器
docker run -p 3000:3000 \
-e KICK_API_KEY=your_api_key \
-e PORT=3000 \
kick-mcp
⚙️ 配置
环境变量
# 服务器配置
PORT=3000
NODE_ENV=production
# Redis 配置
REDIS_HOST=localhost
REDIS_PORT=6379
# 安全
ALLOWED_ORIGINS=https://example.com,https://api.example.com
IP_WHITELIST=127.0.0.1,192.168.1.100
REQUIRE_SIGNATURE=true
SIGNATURE_SECRET=your-secret-key
# 速率限制
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100
# Kick API
KICK_API_BASE_URL=https://kick.com/api/v2
🔒 安全特性
速率限制
- 可配置的窗口和限制
- 基于 Redis 的分布式速率限制
- 每个端点的自定义
请求验证
- HMAC 签名验证
- 时间戳验证
- 有效负载完整性检查
访问控制
- IP 白名单
- 来源验证
- 基于范围的授权
📊 监控
Prometheus 指标
- 请求持续时间直方图
- 错误率跟踪
- WebSocket 连接统计
- 缓存命中率
健康检查
GET /health
🔍 调试
日志级别
{
error: 0,
warn: 1,
info: 2,
debug: 3
}
调试模式
DEBUG=kick-mcp:*
LOG_LEVEL=debug
🤝 贡献
- Fork 存储库
- 创建您的功能分支
- 提交您的更改
- 推送到分支
- 创建 Pull Request
📄 许可证
此项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
🙏 鸣谢
🔧 Smithery 部署
前提条件
- Smithery 帐户
- 本地安装 Docker
- 安装 MCP Inspector
本地测试
# 使用 MCP Inspector 测试
npx @modelcontextprotocol/inspector node dist/index.js
# 使用 CLI 测试
npx @wong2/mcp-cli node dist/index.js
部署步骤
-
将服务器添加到 Smithery:
smithery add server @NosytLabs/kickmcp -
配置部署:
smithery config set @NosytLabs/kickmcp kickApiKey=your_api_key smithery config set @NosytLabs/kickmcp port=3001 -
部署:
smithery deploy @NosytLabs/kickmcp
WebSocket 处理
服务器实现了具有指数退避的自动 WebSocket 重新连接:
- 初始重试延迟:1 秒
- 最大重试次数:5
- 最大延迟:30 秒
- 会话亲和性:已启用
测试 WebSocket 连接
# 测试 WebSocket 连接
npx wscat -c ws://localhost:3001/ws
# 使用身份验证进行测试
npx wscat -c "ws://localhost:3001/ws?access_token=your_token"
健康检查
# 测试健康端点
curl http://localhost:3001/health
监控
- WebSocket 连接:
/metrics/ws - API 请求:
/metrics/api - 健康状态:
/health
由 ❤️ NosytLabs 制作
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。