Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f8d67b145 | ||
|
|
ab8b597843 |
78
README.md
78
README.md
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
Welcome to the **Model Context Protocol (MCP) Server for Home Assistant**! This robust platform bridges Home Assistant with cutting-edge Language Learning Models (LLMs), enabling natural language interactions and real-time automation of your smart devices. Imagine entering your home, saying:
|
Welcome to the **Model Context Protocol (MCP) Server for Home Assistant**! This robust platform bridges Home Assistant with cutting-edge Language Learning Models (LLMs), enabling natural language interactions and real-time automation of your smart devices. Imagine entering your home, saying:
|
||||||
|
|
||||||
> “Hey MCP, dim the lights and start my evening playlist,”
|
> "Hey MCP, dim the lights and start my evening playlist,"
|
||||||
|
|
||||||
and watching your home transform instantly—that's the magic that MCP Server delivers!
|
and watching your home transform instantly—that's the magic that MCP Server delivers!
|
||||||
|
|
||||||
@@ -294,3 +294,79 @@ This project is licensed under the MIT License. See [LICENSE](LICENSE) for full
|
|||||||
---
|
---
|
||||||
|
|
||||||
🔋 Batteries included.
|
🔋 Batteries included.
|
||||||
|
|
||||||
|
## MCP Client Integration
|
||||||
|
|
||||||
|
This MCP server can be integrated with various clients that support the Model Context Protocol. Below are instructions for different client integrations:
|
||||||
|
|
||||||
|
### Cursor Integration
|
||||||
|
|
||||||
|
The server can be integrated with Cursor by adding the configuration to `.cursor/config/config.json`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"homeassistant-mcp": {
|
||||||
|
"command": "bun",
|
||||||
|
"args": ["run", "start"],
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"env": {
|
||||||
|
"NODE_ENV": "development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Claude Desktop Integration
|
||||||
|
|
||||||
|
For Claude Desktop, add the following to your Claude configuration file:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"homeassistant-mcp": {
|
||||||
|
"command": "bun",
|
||||||
|
"args": ["run", "start", "--port", "8080"],
|
||||||
|
"env": {
|
||||||
|
"NODE_ENV": "production"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cline Integration
|
||||||
|
|
||||||
|
For Cline-based clients, add the following configuration:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"homeassistant-mcp": {
|
||||||
|
"command": "bun",
|
||||||
|
"args": [
|
||||||
|
"run",
|
||||||
|
"start",
|
||||||
|
"--enable-cline",
|
||||||
|
"--config",
|
||||||
|
"${configDir}/.env"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"NODE_ENV": "production",
|
||||||
|
"CLINE_MODE": "true"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Command Line Usage
|
||||||
|
|
||||||
|
#### Windows
|
||||||
|
A CMD script is provided in the `scripts` directory. To use it:
|
||||||
|
|
||||||
|
1. Navigate to the `scripts` directory
|
||||||
|
2. Run `start_mcp.cmd`
|
||||||
|
|
||||||
|
The script will start the MCP server with default configuration.
|
||||||
|
|||||||
16
docs/claude_desktop_config.json
Normal file
16
docs/claude_desktop_config.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"homeassistant-mcp": {
|
||||||
|
"command": "bun",
|
||||||
|
"args": [
|
||||||
|
"run",
|
||||||
|
"start",
|
||||||
|
"--port",
|
||||||
|
"8080"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"NODE_ENV": "production"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
docs/cline_config.json
Normal file
18
docs/cline_config.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"homeassistant-mcp": {
|
||||||
|
"command": "bun",
|
||||||
|
"args": [
|
||||||
|
"run",
|
||||||
|
"start",
|
||||||
|
"--enable-cline",
|
||||||
|
"--config",
|
||||||
|
"${configDir}/.env"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"NODE_ENV": "production",
|
||||||
|
"CLINE_MODE": "true"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -326,4 +326,8 @@ if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|||||||
else
|
else
|
||||||
echo -e "${GREEN}Home Assistant MCP test successful!${NC}"
|
echo -e "${GREEN}Home Assistant MCP test successful!${NC}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# macOS environment configuration
|
||||||
|
HASS_SOCKET_URL="${HASS_HOST/http/ws}/api/websocket" # WebSocket URL conversion
|
||||||
|
chmod 600 "$CLAUDE_CONFIG_DIR/claude_desktop_config.json" # Security hardening
|
||||||
21
scripts/start_mcp.cmd
Normal file
21
scripts/start_mcp.cmd
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
@echo off
|
||||||
|
setlocal
|
||||||
|
|
||||||
|
:: Set environment variables
|
||||||
|
set NODE_ENV=production
|
||||||
|
|
||||||
|
:: Change to the script's directory
|
||||||
|
cd /d "%~dp0"
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
:: Start the MCP server
|
||||||
|
echo Starting Home Assistant MCP Server...
|
||||||
|
bun run start --port 8080
|
||||||
|
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo Error starting MCP server
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
pause
|
||||||
@@ -18,4 +18,11 @@ startCommand:
|
|||||||
commandFunction:
|
commandFunction:
|
||||||
# A function that produces the CLI command to start the MCP on stdio.
|
# A function that produces the CLI command to start the MCP on stdio.
|
||||||
|-
|
|-
|
||||||
config => ({command: 'bun', args: ['--smol', 'run', 'start'], env: { HASS_TOKEN: config.hassToken, PORT: config.port.toString() }})
|
config => ({
|
||||||
|
command: 'bun',
|
||||||
|
args: ['--smol', 'run', 'start'],
|
||||||
|
env: {
|
||||||
|
HASS_TOKEN: config.hassToken,
|
||||||
|
PORT: config.port.toString()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user