Token导航 LogoToken导航TokenDH.com
MCP Switchbot Go logo
浏览器工具stdio官方级别未说明来源级核验

MCP Switchbot Go

MCP Server

一个基于Model Context Protocol (MCP)的服务器,用于通过Claude Desktop控制SwitchBot设备,支持动态工具生成和自动认证。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
设备控制GoClaude智能家居Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kta

提供方

kta

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -i --rm -e SWITCHBOT_TOKEN=xxx -e SWITCHBOT_SECRET=yyy mcp-switchbot:latest

详细介绍

SwitchBot MCP服务器(Go)

![CI](https://github.com/YOUR_USERNAME/mcp-switchbot-go/actions/workflows/ci.yml) ![Release](https://github.com/YOUR_USERNAME/mcp-switchbot-go/actions/workflows/release.yml) ![Go Report Card](https://goreportcard.com/report/github.com/YOUR_USERNAME/mcp-switchbot-go) ![License: MIT](https://opensource.org/licenses/MIT)

日语版在这里

A. 模型上下文协议(MCP) 使Claude Desktop能够控制SwitchBot设备的服务器。

特性

  • 183工具:完整覆盖SwitchBot API v1.1
  • 动态工具生成:根据YAML规范自动生成工具
  • 自动工具名称消毒:Auto符合MCP命名约定(转换括号等)
  • 自动更新:启动/生成时自动下载最新的API规范
  • HMAC-SHA256身份验证:SwitchBot API身份验证的自动处理
  • 本地/k8s支持:运行二进制、Docker容器或Kubernetes部署

需求

  • 转到1.23+(用于当地发展)
  • Docker(用于容器执行)
  • Kubernetes(用于生产部署)
  • SwitchBot API令牌和机密

正在获取SwitchBot API凭据

  1. 访问 SwitchBot官方网站
  2. 在应用程序中,转到个人资料→ 设置→ 点击“应用程序版本”10次以启用开发者模式
  3. 获取您的“令牌”并将其另存为 SWITCHBOT_TOKENSWITCHBOT_SECRET

有关详细信息,请参阅 SwitchBot API文档.

本地开发

1.设置环境变量

cp .env.example .env
# Edit .env file to set your token and secret

2.构建和运行

# Build
make build

# Run
export SWITCHBOT_TOKEN='your_token'
export SWITCHBOT_SECRET='your_secret'
./mcp-switchbot

或者,如果您在中设置了环境变量 .env 文件:

source .env
./mcp-switchbot

3.测试

# Get list of tools
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | \
  SWITCHBOT_TOKEN=xxx SWITCHBOT_SECRET=yyy ./mcp-switchbot

使用Docker运行

构建

make docker-build

# Set environment variables and run
export SWITCHBOT_TOKEN='your_token'
export SWITCHBOT_SECRET='your_secret'
make docker-run

或者,使用docker compose:

# Set environment variables in .env file first
docker-compose up

Kubernetes部署

1.创建秘密

kubectl create secret generic switchbot-keys \
  --from-literal=token='YOUR_TOKEN' \
  --from-literal=secret='YOUR_SECRET'

2.构建和推送图像

# Build image
docker build -t your-registry/mcp-switchbot:latest .

# Push to registry
docker push your-registry/mcp-switchbot:latest

3.编辑k8s.yaml

更新 image: 领域 k8s.yaml 使用您的注册表URL。

4.部署

kubectl apply -f k8s.yaml

5.配置克劳德桌面

~/.config/claude/claude_desktop_config.json (Linux/Mac)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "switchbot": {
      "command": "kubectl",
      "args": [
        "exec",
        "-i",
        "deployment/mcp-switchbot",
        "--",
        "/app/mcp-switchbot"
      ]
    }
  }
}

与Claude桌面的本地连接

要在没有Kubernetes的情况下直接使用本地二进制文件:

{
  "mcpServers": {
    "switchbot": {
      "command": "/path/to/mcp-switchbot",
      "env": {
        "SWITCHBOT_TOKEN": "your_token",
        "SWITCHBOT_SECRET": "your_secret"
      }
    }
  }
}

可用工具

此MCP服务器提供183个工具。主要类别:

  • 设备状态: getXxxStatus (获取每个设备的当前状态)
  • 设备控制: Xxx_turnOn/turnOff (电源开/关)
  • 参数设置: Xxx_setBrightness, Xxx_setColorTemperature等等。
  • 场景执行: executeScene (执行已注册的场景)

有关工具的完整列表,请参阅 mcp-server.yaml.

自动更新YAML规范

如果满足以下条件,服务器会自动下载最新版本 mcp-server.yaml 启动时不存在。

通过环境变量进行控制

  • MCP_YAML_URL:下载YAML规范的URL(默认:官方SwitchBot存储库)
  • MCP_FORCE_UPDATE:设置为 true 每次启动时强制下载最新版本
# Force download latest version on startup
MCP_FORCE_UPDATE=true ./mcp-switchbot

手动YAML更新

make update-yaml

发展

CI/CD管道

该项目包括使用GitHub Actions的自动化CI/CD管道:

  • 持续集成:对每个pull请求运行lint、构建、测试和安全扫描
  • 自动释放:推送标签时自动生成多平台二进制文件和Docker镜像
  • 依赖关系更新:Dependabot每周检查依赖关系

在本地运行CI检查:

make ci  # Lint + Build + Test

检查工具数量

make count-tools

更新依赖关系

make deps

贡献

对于贡献者,请参阅 贡献.md.

建筑

┌─────────────────┐
│ Claude Desktop  │
└────────┬────────┘
         │ stdio (JSON-RPC)
         │
┌────────▼────────┐
│  MCP Server     │
│  (Go)           │
│                 │
│  - YAML Parser  │
│  - Tool Gen     │
│  - HMAC Auth    │
└────────┬────────┘
         │ HTTPS
         │
┌────────▼────────┐
│  SwitchBot API  │
│  v1.1           │
└─────────────────┘

关键组件

  1. YAML解析器:从加载工具定义 mcp-server.yaml
  2. 动态工具生成:在运行时生成183个工具
  3. HMAC-SHA256身份验证:为每个请求生成签名
  4. HTTP客户端:处理对SwitchBot API的请求

故障排除

Claude Desktop显示“失败”

  1. 检查调试日志:
   tail -f /tmp/mcp-switchbot-debug.log
  1. 手动测试:
   cd /Users/spm/Documents/workspace/myspace/mcp-switchbot-go
   ./test-mcp.sh
  1. 验证环境变量:

确保 SWITCHBOT_TOKENSWITCHBOT_SECRET 在Claude Desktop配置文件中正确设置

  1. 检查克劳德桌面日志:

- 雨衣: ~/Library/Logs/Claude/ - 窗户: %APPDATA%\Claude\logs\

错误:“SWITCHBOT_TOKEN和SWITCHBOT_SCRET环境变量是必需的”

未设置环境变量。将以下内容添加到您的Claude Desktop配置文件中(claude_desktop_config.json):

{
  "mcpServers": {
    "switchbot": {
      "command": "/path/to/mcp-switchbot",
      "env": {
        "SWITCHBOT_TOKEN": "your_token_here",
        "SWITCHBOT_SECRET": "your_secret_here"
      }
    }
  }
}

错误:“读取mcp服务器.yaml失败”

mcp-server.yaml 找不到文件。尝试:

  1. 通过环境变量显式指定路径:
   "env": {
     "SWITCHBOT_TOKEN": "xxx",
     "SWITCHBOT_SECRET": "yyy",
     "MCP_YAML_PATH": "/Users/spm/Documents/workspace/myspace/mcp-switchbot-go/mcp-server.yaml"
   }
  1. 手动下载:
   make update-yaml

Docker stdin不工作

添加 -i 标记为 docker run:

docker run -i --rm -e SWITCHBOT_TOKEN=xxx -e SWITCHBOT_SECRET=yyy mcp-switchbot:latest

许可证

该项目在MIT许可证下发布。

相关链接

来源:

目录标签

目录标签

设备控制GoClaude智能家居本地部署API集成动态工具生成自动化

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP