Files
ha-mcp-server/QUICK_START.md
Felix Zösch 1761c3cdd3 Initial commit
2025-12-11 20:29:51 +01:00

250 lines
5.2 KiB
Markdown

# Quick Start Guide
Get your Home Assistant MCP Server running in 5 minutes!
## Prerequisites
- Node.js 18+ installed
- Running Home Assistant instance
- Home Assistant long-lived access token
## Getting Your Access Token
1. Open Home Assistant in your browser
2. Click your profile picture (bottom left)
3. Scroll down to "Long-Lived Access Tokens"
4. Click "Create Token"
5. Give it a name (e.g., "MCP Server")
6. Copy the token immediately (you won't see it again!)
## Installation
### Option 1: Automated Setup (Recommended)
```bash
cd /Users/felix/Nextcloud/AI/projects/ha-mcp-server
./setup.sh
```
The script will:
- Check Node.js version
- Install dependencies
- Create and configure .env file
- Build the TypeScript code
- Test the connection to Home Assistant
### Option 2: Manual Setup
```bash
# 1. Install dependencies
npm install
# 2. Create .env file
cp .env.example .env
# 3. Edit .env with your details
nano .env
# Set HA_BASE_URL and HA_ACCESS_TOKEN
# 4. Build the project
npm run build
# 5. Test it works
npm start
```
## Configuration
Edit `/Users/felix/Nextcloud/AI/projects/ha-mcp-server/.env`:
```bash
# Your Home Assistant URL (with port)
HA_BASE_URL=http://homeassistant.local:8123
# Your long-lived access token
HA_ACCESS_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGc...
```
**Important:**
- Include the port number (usually :8123)
- Use `http://` or `https://` prefix
- Use your local network address if using `homeassistant.local` doesn't work
- Example: `http://192.168.1.100:8123`
## Testing the Server
```bash
npm start
```
You should see:
```
Successfully connected to Home Assistant
Home Assistant MCP Server running on stdio
```
Press `Ctrl+C` to stop.
## Using with Claude Desktop
1. Find your Claude config file:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
2. Add this configuration:
```json
{
"mcpServers": {
"home-assistant": {
"command": "node",
"args": ["/Users/felix/Nextcloud/AI/projects/ha-mcp-server/build/index.js"],
"env": {
"HA_BASE_URL": "http://homeassistant.local:8123",
"HA_ACCESS_TOKEN": "your_token_here"
}
}
}
}
```
3. Replace:
- Path to match your installation location
- `HA_BASE_URL` with your Home Assistant URL
- `HA_ACCESS_TOKEN` with your actual token
4. Restart Claude Desktop
5. Look for the 🔌 icon in Claude to see connected MCP servers
## First Commands to Try
Once connected, try these with Claude:
### Check Status
```
What entities do you have access to?
```
### Control Lights
```
Turn on the living room lights
```
### Check Temperature
```
What's the temperature in the bedroom?
```
### Complex Query
```
How many lights are currently on?
```
## Troubleshooting
### "Cannot connect to Home Assistant"
**Check:**
- Is Home Assistant running?
- Can you access it in a browser?
- Is the URL in .env correct?
- Does the URL include the port number?
**Try:**
```bash
# Test with curl
curl -H "Authorization: Bearer YOUR_TOKEN" http://homeassistant.local:8123/api/
```
### "Invalid access token"
**Check:**
- Token is copied correctly (no spaces)
- Token hasn't been revoked in Home Assistant
- Token is from the correct Home Assistant instance
**Fix:**
- Create a new token in Home Assistant
- Update .env with the new token
- Rebuild: `npm run build`
### "Command not found" in Claude
**Check:**
- Path in claude_desktop_config.json is correct
- Build folder exists: `/Users/felix/Nextcloud/AI/projects/ha-mcp-server/build/`
- Run `npm run build` if build folder is missing
### Claude doesn't show MCP connection
**Check:**
- claude_desktop_config.json syntax is valid JSON
- No trailing commas in JSON
- Restart Claude Desktop after config changes
- Check Claude Desktop logs
**View logs:**
- macOS: `~/Library/Logs/Claude/`
- Windows: `%APPDATA%\Claude\logs\`
## Common Issues
### Port Already in Use
The server uses stdio (not a network port), so this shouldn't happen.
### Permission Denied
```bash
chmod +x setup.sh
```
### TypeScript Errors
```bash
npm install
npm run build
```
### Home Assistant SSL Certificate Issues
If using HTTPS with self-signed certificate:
```bash
# Add to .env
NODE_TLS_REJECT_UNAUTHORIZED=0
```
⚠️ Only use this in development/private networks!
## Verification Checklist
✅ Node.js 18+ installed
✅ Dependencies installed (`npm install`)
✅ .env file configured
✅ Project built (`npm run build`)
✅ Connection test passes (`npm start`)
✅ Claude config updated
✅ Claude Desktop restarted
## Getting Help
1. Check the logs when running `npm start`
2. Read README.md for detailed documentation
3. Review EXAMPLES.md for usage patterns
4. Check Home Assistant logs for API errors
## Next Steps
Once everything is working:
1. **Explore capabilities**: Read EXAMPLES.md
2. **Understand architecture**: Read ARCHITECTURE.md
3. **Customize**: Modify src/index.ts to add features
4. **Secure**: Use HTTPS and strong tokens in production
## Security Reminders
- Never commit .env file
- Never share your access token
- Use HTTPS if exposing HA to internet
- Rotate tokens periodically
- Use separate tokens for different applications
Enjoy controlling your smart home with natural language! 🏠🤖