Home Assistant Model Context Protocol (MCP)

Home Assistant Model Context Protocol (MCP)

为家庭助手提供的高级MCP服务器。 🔋 包含电池。

License TypeScript

什么是 MCP?

模型上下文协议(MCP)是一种标准化协议,使 AI 助手能够安全地与 Home Assistant 交互,控制智能家居设备并获取信息。

安装

# 克隆仓库
git clone https://github.com/your-repo/homeassistant-mcp.git

# 安装依赖
cd homeassistant-mcp
npm install

# 构建项目
npm run build

运行服务器

# 使用标准 I/O 传输启动(用于 AI 助手集成)
npm start -- --stdio

# 使用 HTTP 传输启动(用于 API 访问)
npm start -- --http

# 同时使用两种传输方式
npm start -- --stdio --http

配置

创建一个 .env 文件(或使用环境变量):

# 服务器配置
PORT=3000
NODE_ENV=development
EXECUTION_TIMEOUT=30000
STREAMING_ENABLED=true
USE_STDIO_TRANSPORT=true
USE_HTTP_TRANSPORT=true

与 AI 模型集成

Claude 集成

import { createClaudeToolDefinitions } from "./mcp/index.js";

// 生成 Claude 兼容的工具定义
const claudeTools = createClaudeToolDefinitions([
  new LightsControlTool(),
  new ClimateControlTool()
]);

// 与 Claude API 一起使用
const response = await claude.messages.create({
  model: "claude-3-opus-20240229",
  messages: [{ role: "user", content: "打开客厅的灯" }],
  tools: claudeTools
});

Cursor 集成

在您的 .cursor/config/config.json 文件中添加:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bash",
      "args": ["-c", "cd ${workspaceRoot} && bun run dist/index.js --stdio 2>/dev/null | grep -E '\{"jsonrpc":"2\.0"'"],
      "env": {
        "NODE_ENV": "development",
        "USE_STDIO_TRANSPORT": "true",
        "DEBUG_STDIO": "true"
      }
    }
  }
}

核心功能

  • 模块化架构,支持多种传输方式
  • 完全类型化的接口(TypeScript)
  • 内置工具:灯光控制、气候控制等
  • 流式响应支持长时间运行的操作
  • 参数验证(使用 Zod)
  • 可扩展插件系统

故障排除

如果遇到"无法创建客户端"错误:

  1. 确保已构建服务器 (npm run build)
  2. 验证 JSON-RPC 输出是否正确
  3. 尝试重启 Cursor 或清除缓存

支持的设备功能

  • 灯光:开关、亮度、颜色控制
  • 恒温器:温度调节、模式切换
  • 更多功能持续添加中...