7TV MCP服务器
一种模型上下文协议(MCP)服务器,提供与 7TV表情平台.7TV是一个用于表情和其他流媒体相关工具和服务的开源平台。
特性
此MCP服务器提供以下工具:
1. 搜索_远程
在7TV上按名称或关键字搜索表情。支持过滤和分页。
参数:
query(必填):表情搜索查询page(可选):分页页码(默认值:1)limit(可选):每页结果数(默认值:20,最大值:100)animated(可选):动画表情过滤器(全部为真/假/空)case_sensitive(可选):搜索是否应区分大小写(默认值:false)
例子:
{
"query": "Pog",
"page": 1,
"limit": 10,
"animated": true
}2. get_user_emotes
获取平台(Twitch、Kick或YouTube)上特定用户的所有表情。
参数:
platform(必填):平台名称(twitch、kick或youtube)user_id(必填):指定平台上的用户ID
例子:
{
"platform": "twitch",
"user_id": "70647828"
}3. get_global_motes
获取所有平台上所有用户都可以使用的全球7TV表情集。
参数: 无
4. 获取远程详细信息
通过ID获取特定表情的详细信息。
参数:
emote_id(必填):7TV表情ID
例子:
{
"emote_id": "603caa69fccf9c40e807ab87"
}5. 获取远程设置
通过ID获取特定表情集的信息。
参数:
emote_set_id(必填):7TV表情集ID
例子:
{
"emote_set_id": "62cdd34e72a832540de95857"
}6. copy_motes_between set ⚠️ 需要身份验证
将所有表情从一个表情集复制到另一个表情集中。这是一个经过身份验证的操作,需要有效的7TV JWT令牌。
参数:
source_set_id(必填):要复制的7TV表情集IDtarget_set_id(必填):要复制到的7TV表情集IDauth_token(必填):用于身份验证的JWT Bearer令牌override_conflicts(可选):是否覆盖同名现有表情(默认值:false)
例子:
{
"source_set_id": "62cdd34e72a832540de95857",
"target_set_id": "65a1b2c3d4e5f6789abcdef0",
"auth_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"override_conflicts": false
}使用案例:
- 将表情从一个频道复制到另一个频道
- 通过复制到个人集来备份表情集
- 合并表情收藏
- 克隆表情集配置
认证
一些工具(如 copy_emotes_between_sets)需要使用7TV JWT令牌进行身份验证。以下是如何获取您的代币:
获取7TV代币
- 登录7TV:参观 7tv.app 并使用您的帐户登录
- 打开浏览器工具:新闻
F12或右键单击并选择“检查” - 打开控制台:导航到“Console”选项卡
- 获取令牌:运行以下命令:
localStorage.getItem('7tv-token')- 复制令牌:复制令牌值(不带引号)
令牌安全
⚠️ 重要安全注意事项:
- 您的JWT令牌是授予7TV帐户访问权限的敏感信息
- 切勿公开共享您的令牌或将其提交给版本控制
- 令牌可能会过期,需要刷新
- 如果您怀疑您的令牌已被泄露,请退出7TV并重新登录以使旧令牌无效
身份验证标头
当执行经过身份验证的操作时,服务器会发送以下请求:
Authorization: Bearer 7TV API验证令牌,并检查您是否有权执行请求的操作(例如,修改表情集)。
安装
先决条件
- Python 3.10或更高版本
- 点
设置
- 克隆此存储库或下载文件
- 安装依赖项:
pip install -e .发展:
pip install -e ".[dev]"用法
用于本地测试的CLI工具
该软件包包括一个CLI工具,用于直接测试MCP服务器工具,而无需设置完整的MCP基础设施。这对开发和调试很有用。
安装后,您可以使用 7tv-cli 命令或运行 python cli.py 直接。
示例:
搜索表情:
7tv-cli search "Pog" --limit 5
# or
python cli.py search "Pog" --limit 5 --animated true获取用户表情:
7tv-cli user-emotes twitch 70647828
# or
python cli.py user-emotes kick USER_ID获取全局表情:
7tv-cli global-emotes获取表情详情:
7tv-cli emote-details 603caa69fccf9c40e807ab87获取表情设置:
7tv-cli emote-set 62cdd34e72a832540de95857在集合之间复制表情(需要身份验证):
7tv-cli copy-emotes SOURCE_SET_ID TARGET_SET_ID --token YOUR_JWT_TOKEN
# With override option
7tv-cli copy-emotes SOURCE_SET_ID TARGET_SET_ID --token YOUR_JWT_TOKEN --override获取帮助:
7tv-cli --help
7tv-cli search --help # Get help for a specific command运行MCP服务器
服务器可以直接运行:
python server.py使用Claude Desktop进行配置
将此添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"7tv": {
"command": "python",
"args": ["/path/to/7tv-mcp/server.py"]
}
}
}或者,如果使用紫外线:
{
"mcpServers": {
"7tv": {
"command": "uv",
"args": [
"--directory",
"/path/to/7tv-mcp",
"run",
"server.py"
]
}
}
}api信息
此MCP服务器使用7TV API v3:
- REST API基础: https://7tv.io/v3
- GraphQL端点: https://7tv.io/v3/gql
- CDN: https://cdn.7tv.app
使用的API端点
- 全局表情:
GET https://7tv.io/v3/emote-sets/global - 用户表情:
GET https://7tv.io/v3/users/{platform}/{user_id} - 表情集:
GET https://api.7tv.app/v3/emote-sets/{emote_set_id} - 搜索(GraphQL):
POST https://7tv.io/v3/gql
发展
运行测试
pytest代码格式化
black .类型检查
mypy server.py代码检查
ruff check .设计理念
此MCP服务器遵循MCP最佳实践:
- 面向工作流:工具是围绕完整的工作流(搜索、浏览用户表情)设计的,而不是原始的API端点
- 针对上下文进行了优化:返回格式化为LLM消费的高信号信息
- 清除错误消息:提供具有具体指导的可操作错误消息
- 综合文档:每个工具都有详细的描述和参数模式
用例
- 浏览表情:在7TV平台上搜索和发现表情
- 渠道管理:查看特定频道可用的表情
- 表情研究:获取有关特定表情或表情集的详细信息
- 整合:构建适用于7TV表情的聊天机器人或工具
贡献
欢迎投稿!请随时提交问题或拉取请求。
许可证
MIT许可证
资源
致谢
- 提供API的7TV团队
- 模型上下文协议规范的拟人化
