一个全面的模型上下文协议(MCP)服务器,用于与 Home Assistant 集成。此服务器提供了 60 个工具 和资源,通过 REST API 与您的 Home Assistant 实例进行交互,实现完整的智能家居管理和自动化。
在 9 大类别 中提供 60 个工具,以实现全面的 Home Assistant 管理:
git clone https://github.com/cronus42/homeassistant-mcp.git
cd homeassistant-mcp
./setup.sh
获取您的 Home Assistant 长期访问令牌:
配置设置:
cp .env.example .env
# 使用您的 Home Assistant URL 和令牌编辑 .env 文件
python tests/test_connection.py
./setup.sh
warp mcp add-server --config mcp_config.json
或者手动启动服务器:
./start_server.sh
添加到您的 Claude 桌面配置文件(macOS 上位于 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"homeassistant": {
"command": "/path/to/homeassistant-mcp/start_server.sh",
"env": {},
"args": []
}
}
}
get_entity_state获取特定 Home Assistant 实体的当前状态。
{
"entity_id": "light.living_room"
}
call_service调用 Home Assistant 服务来控制设备。
{
"domain": "light",
"service": "turn_on",
"entity_id": "light.living_room",
"service_data": {
"brightness": 255,
"color_temp": 3000
}
}
search_entities按名称、域或状态搜索实体。
{
"query": "temperature",
"domain": "sensor"
}
fire_event在 Home Assistant 中触发自定义事件。
{
"event_type": "custom_automation_trigger",
"event_data": {
"source": "mcp_server",
"action": "test"
}
}
get_history获取特定实体的历史数据。
{
"entity_ids": ["sensor.temperature", "light.living_room"],
"start_time": "2024-01-01T00:00:00Z"
}
{
"tool": "get_areas",
"arguments": {}
}
{
"tool": "create_area",
"arguments": {
"name": "家庭办公室",
"aliases": ["办公室", "工作区"]
}
}
{
"tool": "get_devices",
"arguments": {}
}
{
"tool": "get_system_health",
"arguments": {}
}
{
"tool": "send_notification",
"arguments": {
"message": "安全警报:前门打开",
"title": "安全系统",
"target": "mobile_app_phone"
}
}
{
"tool": "get_integrations",
"arguments": {}
}
服务器包括全面的测试套件:
# 测试工具定义和模式
python tests/test_mcp_tools.py
# 使用模拟测试工具处理器
python tests/test_tool_handlers.py
# 使用真实的 Home Assistant 测试(需要 HA_TOKEN)
python tests/test_new_features.py
# 测试基本连接
python tests/test_connection.py
homeassistant://states - 所有实体的当前状态homeassistant://config - Home Assistant 配置homeassistant://services - 可用服务homeassistant://events - 可用事件类型{
"tool": "call_service",
"arguments": {
"domain": "light",
"service": "turn_on",
"entity_id": "light.living_room"
}
}
{
"tool": "search_entities",
"arguments": {
"query": "temperature",
"domain": "sensor"
}
}
{
"tool": "search_entities",
"arguments": {
"query": "light",
"domain": "light"
}
}
欢迎提交问题和增强请求!