使用说明
三星SmartThings MCP服务器
使用自然语言命令通过Claude Desktop控制您的三星电视
概述
Samsung SmartThings MCP服务器是一个模型上下文协议(MCP)服务器,使Claude Desktop能够控制三星SmartThings设备,重点是三星电视。使用自然语言打开/关闭电视、更换频道、调整音量、切换输入等!
什么是MCP? 模型上下文协议允许像克劳德这样的人工智能助手通过标准化的接口与外部系统和服务进行交互。
特性
🔌 设备控制
- 打开/关闭三星电视
- 更改音量(0-100)和静音/取消静音
- 切换电视频道
- 更改输入源(HDMI1、HDMI2、USB等)
📱 设备管理
- 列出所有SmartThings设备
- 专门过滤和显示电视设备
- 获取详细的设备信息和状态
- 实时设备状态监测
🤖 自然语言接口
- 使用对话命令控制设备
- “打开我的三星电视”
- “将音量设置为25”
- “更改为HDMI1”
- “将电视静音”
🛡️ 安全可靠
- 使用SmartThings个人访问令牌进行安全身份验证
- 全面的错误处理和记录
- 异步操作实现响应性能
- 内置连接测试和诊断
先决条件
- Python 3.8或更高版本
- 三星电视连接到SmartThings
- 带有个人访问令牌的SmartThings帐户(此令牌应每24小时更新一次)
- Claude桌面应用程序
安装
1.克隆存储库
git clone https://github.com/PaulaAdelKamal/samsung_smartthings-mcp.git
cd smartthings-mcp-server
2.设置虚拟环境
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
3.安装依赖项
pip install -r requirements.txt
4.配置SmartThings
创建个人访问令牌
- 访问 SmartThings令牌管理器
- 使用您的SmartThings帐户登录
- 点击“生成新令牌”
- 名称:“克劳德MCP服务器”
- 选择权限:
- ✅ 设备 → 读取设备
- ✅ 设备 → 在设备上执行命令
- ✅ 位置 → 读取位置
- 复制令牌(安全保存!)
设置环境变量
# Windows
set SMARTTHINGS_ACCESS_TOKEN=your_token_here
# macOS/Linux
export SMARTTHINGS_ACCESS_TOKEN="your_token_here"
5.测试连接
python test_smartthings.py
您应该看到列出了您连接的设备,包括您的三星电视。
配置
Claude桌面设置
将MCP服务器添加到您的Claude Desktop配置中:
视窗
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"smartthings": {
"command": "C:\\path\\to\\smartthings-mcp-server/venv/Scripts/python.exe",
"args": ["C:\\path\\to\\smartthings-mcp-server\\smartthings_mcp.py"],
"env": {
"SMARTTHINGS_ACCESS_TOKEN": "your_token_here"
}
}
}
}
macOS
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"smartthings": {
"command": "python3",
"args": ["/path/to/smartthings-mcp-server/smartthings_mcp.py"],
"env": {
"SMARTTHINGS_ACCESS_TOKEN": "your_token_here"
}
}
}
}
Linux
编辑 ~/.config/Claude/claude_desktop_config.json 配置与macOS相同。
用法
配置后,重新启动Claude Desktop并尝试以下命令:
基本命令
列出您的设备:
Show me my SmartThings devices
List my TV devices
电视控制:
Turn on my Samsung TV
Turn off the TV
Set TV volume to 30
Mute my TV
Change to channel 5
Switch TV input to HDMI1
设备信息:
What's the status of my TV?
Show me device information for [device_id]
对话示例
You: "Turn on my Samsung TV and set volume to 25"
Claude: I'll help you turn on your Samsung TV and set the volume to 25.
First, let me turn on your TV:
✅ TV turned on successfully.
Now setting the volume to 25:
✅ Volume set to 25.
Your Samsung TV is now on with volume set to 25!
可用工具
| 工具 | 说明 |
|---|---|
list_devices |
列出所有SmartThings设备 |
list_tv_devices |
仅列出电视设备 |
get_device_info |
获取详细的设备信息 |
get_device_status |
获取当前设备状态 |
turn_tv_on_off |
打开或关闭电视 |
change_tv_volume |
设置音量(0-100) |
mute_tv |
将电视静音或取消静音 |
change_tv_channel |
更换电视频道 |
change_tv_input |
更改输入源 |
故障排除
常见问题
“SmartThings客户端未初始化”
- 验证您的访问令牌是否正确
- 检查环境变量是否已设置
- 确保令牌具有必要的权限
“找不到设备”
- 确认电视已连接到SmartThings应用程序
- 验证您是否可以通过SmartThings移动应用程序控制电视
- 检查设备ID是否正确
“API请求失败”
- 检查互联网连接
- 验证SmartThings服务状态
- 确保访问令牌未过期
MCP服务器未连接
- 验证Claude配置中的Python脚本路径
- 检查Python是否在系统PATH中
- 确保虚拟环境已激活
调试模式
通过修改启用调试日志记录 smartthings_mcp.py:
logging.basicConfig(level=logging.DEBUG)
获取帮助
项目结构
smartthings-mcp-server/
├── smartthings_mcp.py # Main MCP server
├── test_smartthings.py # Connection test utility
├── requirements.txt # Python dependencies
├── Quick_setup.bat # Quick setup script (Windows)
├── SETUP_GUIDE.md # Detailed setup instructions
└── README.md # This file
api参考
使用SmartThings功能
- 开关:打开/关闭设备
- 音频音量:控制音量和静音
- tv频道:更改电视频道
- 媒体输入源:切换输入源
认证
使用SmartThings个人访问令牌(PAT)和OAuth2承载身份验证。
所需范围:
r:devices:*-读取设备信息x:devices:*-执行设备命令r:locations:*-读取位置信息
安全
- 🔒 访问令牌存储为环境变量
- 🛡️ 没有记录或保存敏感数据
- 🔑 令牌可以旋转而无需更改代码
- 📋 遵循SmartThings安全最佳实践
安全最佳实践:
- 确保您的访问令牌安全
- 不要将令牌提交到版本控制
- 定期轮换访问令牌
- 使用环境变量进行配置
贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
开发设置
- 复刻仓库
- 创建要素分支:
git checkout -b feature/amazing-feature - 进行更改
- 如果适用,添加测试
- 承诺:
git commit -m 'Add amazing feature' - 推:
git push origin feature/amazing-feature - 打开拉取请求
运行测试
# Test SmartThings connection
python test_smartthings.py
# Run the MCP server in test mode
python smartthings_mcp.py --test
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 🏠 三星SmartThings为综合物联网平台
- 🤖 克劳德的拟人化和MCP协议
- 🐍 优秀异步库的Python社区
支持
如果你觉得这个项目有帮助,请:
- ⭐ 为存储库添加星号
- 🐛 通过以下方式报告错误 问题
- 💡 建议功能或改进
- 🔄 与可能受益的人分享
Made with ❤️ for the smart home community