Homey MCP
Athom Homey MCP
Installation
npx homey-mcpAsk AI about Homey MCP
Powered by Claude Β· Grounded in docs
I know everything about Homey MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Homey MCP Server
A Model Context Protocol (MCP) server for integrating with Homey Pro smart home system. This server provides access to Homey devices, zones, variables, and logic through the MCP protocol.
π Features
- Devices: Retrieve and search all Homey devices
- Zones: List all zones in your home
- Variables: Access to Homey variables
- Logic: Retrieve information about logic flows
- Temperature: Specialized functions for temperature sensors
- Cache: Automatic data caching for better performance
π Project Structure
homey-mcp/
βββ src/ # Main source code
β βββ server.js # MCP server main file
β βββ homey.js # Homey API client
β βββ entities.js # Data models (Device, Zone, Variable, etc.)
β βββ index.js # Standalone test script
βββ scripts/ # Test and verification scripts
β βββ test-mcp.sh # Main test script
β βββ verify-mcp.sh # Quick verification
β βββ test-temperature.sh # Test temperature functions
β βββ interactive-test.sh # Interactive testing
β βββ status-check.sh # Status check
β βββ final-verification.sh # Comprehensive test
βββ config/ # Configuration files
β βββ .env.example # Example environment variables
βββ cache/ # Cache files (auto-generated)
β βββ devices.json
β βββ zones.json
β βββ variables.json
β βββ logic.json
βββ .env # Your environment variables
βββ package.json
βββ claude_desktop_config.json # Claude Desktop configuration
βββ README.md
π Setup
1. Clone and install dependencies
git clone <repository-url>
cd homey-mcp
npm install
2. Configure environment variables
Copy the example file and fill in your values:
cp config/.env.example .env
Edit .env and add:
HOMEY_TOKEN: Your Homey API token (get this from Homey Developer Tools)HOMEY_ID: Your Homey ID (found in Homey Pro settings)
3. Test the setup
# Test basic functionality
npm start
# Test MCP server
npm run mcp
π§ Usage
As MCP Server
The server can be used with Claude Desktop or other MCP-compatible clients:
npm run mcp
As Standalone Script
For testing and development:
npm start
With Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"homey": {
"command": "node",
"args": ["/path/to/homey-mcp/src/server.js"],
"env": {
"HOMEY_TOKEN": "your_token_here",
"HOMEY_ID": "your_homey_id_here"
}
}
}
}
π οΈ Available Tools
get_homey_devices
Get all devices or filter by zone.
Parameters:
zone(optional): Filter devices by zone name
search_homey_devices
Search for devices based on name or properties.
Parameters:
query: Search text
get_homey_zones
Get all zones in the home.
get_homey_variables
Get all Homey variables.
get_homey_logic
Get information about logic flows.
get_temperature
Get temperature data from sensors.
Parameters:
zone(optional): Filter by zonedeviceId(optional): Get from specific device
π§ͺ Testing
The project includes several test scripts in the scripts/ folder:
# Quick verification
./scripts/verify-mcp.sh
# Comprehensive testing
./scripts/test-mcp.sh
# Test temperature functions
./scripts/test-temperature.sh
# Interactive testing
./scripts/interactive-test.sh
# Status check
./scripts/status-check.sh
# Final verification
./scripts/final-verification.sh
π¦ Dependencies
- @modelcontextprotocol/sdk: MCP SDK for server implementation
- dotenv: Environment variable management
π Security
- API tokens and sensitive data are stored in the
.envfile - Cache files may contain sensitive data and are excluded from git
- Use
.copilotignoreto exclude sensitive files from AI assistance
π Development
Adding new features
- Implement the logic in
src/homey.js - Add MCP tool definition in
src/server.js - Update entities in
src/entities.jsif necessary - Create tests in the
scripts/folder
Cache handling
The server uses automatic caching to reduce API calls to Homey:
- Cache is stored in the
cache/folder - Cache can be enabled/disabled via options
- Cache files are updated automatically when needed
π Troubleshooting
- Check that the
.envfile is correctly configured - Verify that Homey Pro is available and online
- Confirm that the API token has necessary permissions
- Run test scripts to diagnose problems
- MCP compatibility: Debug messages have been removed from the server to ensure clean JSON communication with Claude Desktop
Common issues
- "Unexpected token" error in Claude: This is caused by debug output to stdout. All console.log/debug messages have been removed from the MCP server.
- Cache problems: Delete the
cache/folder and let the server regenerate the cache files. - Environment variable problems: Check that the
.envfile is in the root folder and contains correct values.
π License
MIT License
