Compare commits

...

2 Commits

Author SHA1 Message Date
jango-blockchained
3f8d67b145 chore: refine configuration and setup scripts for improved usability
- Update README with minor text formatting
- Improve Smithery configuration command formatting
- Enhance macOS setup script with WebSocket URL conversion and security hardening
2025-02-05 02:20:08 +01:00
jango-blockchained
ab8b597843 docs: add MCP client integration documentation and scripts
- Update README with integration instructions for Cursor, Claude Desktop, and Cline
- Add configuration examples for different MCP client integrations
- Create Windows CMD script for starting MCP server
- Include configuration files for Claude Desktop and Cline clients
2025-02-05 00:48:45 +01:00
6 changed files with 145 additions and 3 deletions

View File

@@ -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:
> 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!
@@ -294,3 +294,79 @@ This project is licensed under the MIT License. See [LICENSE](LICENSE) for full
---
🔋 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.

View 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
View 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"
}
}
}
}

View File

@@ -327,3 +327,7 @@ if [[ $REPLY =~ ^[Yy]$ ]]; then
echo -e "${GREEN}Home Assistant MCP test successful!${NC}"
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
View 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

View File

@@ -18,4 +18,11 @@ startCommand:
commandFunction:
# 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()
}
})