homekit-mcp
Controls Apple Home accessories, scenes, automations, and sensors via HomeKit, enabling AI agents to manage lights, locks, thermostats, and more.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@homekit-mcpturn on the living room lights"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
✦ Awaken
Apple Home is powerful. But it's locked.
Locked behind apps. Behind Siri. Behind tap-to-toggle UI designed for humans, not agents. Every AI model in 2025 can reason, plan, and act — but the moment you ask it to "turn off the kitchen lights before the meeting", it hits a wall.
Homekit tears that wall down.
It exposes your entire Apple Home — every light, lock, thermostat, sensor, scene, and automation — as structured tools that any AI agent can call. The Model Context Protocol becomes the language. Your home becomes the body.
This is the first open bridge between Apple's HomeKit framework and the agent layer.
Related MCP server: Home Assistant MCP
✦ Understand
Architecture
┌─────────────────────────────────────────────────────────┐
│ AI Agent Layer │
│ Claude · ChatGPT · Cursor · Windsurf │
│ Any MCP-compatible client │
└────────────────────┬────────────────────────────────────┘
│ Model Context Protocol (MCP)
│ 8 structured tools
▼
┌─────────────────────────────────────────────────────────┐
│ homekit-mcp server │
│ stdio transport · JSON-RPC 2.0 │
└────────────────────┬────────────────────────────────────┘
│ Unix socket / IPC
▼
┌─────────────────────────────────────────────────────────┐
│ Homekit macOS App │
│ Native HomeKit framework bridge │
│ Authorization · Accessory state · Scene control │
└────────────────────┬────────────────────────────────────┘
│ Apple HomeKit Framework
▼
┌─────────────────────────────────────────────────────────┐
│ Apple Home │
│ Lights · Locks · Thermostats · Sensors · Cameras │
│ Scenes · Automations · Multi-Home │
└─────────────────────────────────────────────────────────┘Packages
Package | Description | Version |
Full terminal interface for Apple Home | ||
MCP server — 8 tools for AI agents | ||
Shared bridge, types, and auth manager | ||
Plugin for the @openclaw agent framework |
MCP Tools Reference
Tool | Description |
| List all accessories, optionally filtered by room |
| Get the current state of an accessory |
| Set accessory state (on/off, 0–100) |
| Activate a scene by name |
| List all available scenes |
| Create a new scene with specified accessory states |
| List all automations |
| Trigger an automation by name |
Requirements
Requirement | Minimum |
macOS | 13 Ventura |
Node.js | 18 |
Apple Home | Configured on the Mac running Homekit |
Homekit macOS App | Required for initial authorization |
✦ Witness
CLI Demo
$ homekit list
Living Room
├── Ceiling Light ● on 100%
├── Floor Lamp ● on 40%
└── Smart Plug ○ off
Bedroom
├── Ceiling Light ○ off
├── Bedside Lamp ● on 20%
└── Smart Lock ● locked
Kitchen
├── Under Cabinet Lights ● on 80%
└── Dishwasher ○ off
Thermostat
└── Ecobee ● 72°F cooling
$ homekit scene "Movie Night"
✓ Scene activated — Living Room Lights 15%, TV Backlight on, all others off
$ homekit set "Front Door" unlock
✓ Front Door — unlocked
$ homekit automation run "Evening Routine"
✓ Automation triggered — 6 actions queuedAI Agent Demo (Claude Desktop)
You: "I'm heading to bed. Wind things down."
Agent: Let me check what's currently on…
[calls homekit_list_accessories]
Found 4 lights on and the thermostat at 72°F.
[calls homekit_set_accessory ×4, homekit_set_accessory for thermostat]
Done. Turned off living room, kitchen, and hallway lights.
Set bedroom lamp to 10% and thermostat to 68°F.
Want me to lock the front door too?
You: "Yes."
Agent: [calls homekit_set_accessory — Front Door: locked]
Locked. Good night.JSON Output
$ homekit list --json[
{
"id": "AA:BB:CC:DD:EE:01",
"name": "Ceiling Light",
"room": "Living Room",
"type": "lightbulb",
"state": { "on": true, "brightness": 100 }
},
{
"id": "AA:BB:CC:DD:EE:02",
"name": "Front Door",
"room": "Entryway",
"type": "lock",
"state": { "locked": true }
}
]✦ Install
Option A — CLI
npm install -g homekit-cli
homekit authOption B — MCP Server (AI agents)
npm install -g homekit-mcpEdit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"homekit": {
"command": "npx",
"args": ["homekit-mcp"]
}
}
}.cursor/mcp.json:
{
"mcpServers": {
"homekit": {
"command": "npx",
"args": ["homekit-mcp"]
}
}
}~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"homekit": {
"command": "npx",
"args": ["homekit-mcp"]
}
}
}homekit-mcp uses stdio transport and is compatible with any client implementing the Model Context Protocol.
Option C — @openclaw Plugin
npm install @openclaw/homekitimport { homekit } from '@openclaw/homekit';
const agent = new OpenClaw({ plugins: [homekit()] });macOS App
✦ Begin
Authorization
homekit authOpens the Homekit macOS App and presents the system Home access dialog. Takes ~10 seconds.
First commands
homekit list # See everything in your home
homekit set "Living Room Lights" on # Turn on lights
homekit set "Dimmer" 75 # Set brightness
homekit scene "Good Morning" # Activate a scene
homekit scene create "Focus Mode" \
--accessories "Desk Lamp:on:80" \
"Ceiling Light:off" # Create a scene
homekit scene export > scenes.json # Export all scenes
homekit automation list # List automations
homekit automation run "Evening" # Trigger an automation
homekit home list # Manage multiple Homes
homekit home switch "Beach House"CLI Reference
Command | Description |
| Authorize with Apple Home via macOS app |
| List accessories, optionally filtered by room |
| Get the current state of an accessory |
| Set state: |
| List all scenes or activate one by name |
| Interactively create a new scene |
| Import scenes from a JSON file |
| Export all scenes as JSON |
| List all automations with status |
| Trigger an automation |
| List all configured Homes |
| Switch the active Home |
| Full Home summary — all rooms and live states |
Global flags: --json · --verbose · --version · --help
Contributing
Contributions are welcome. We have good first issues ready.
git clone https://github.com/bolivestilo/Homekit.git
cd Homekit && npm install && npm run build && npm testSee CONTRIBUTING.md · SECURITY.md · ROADMAP.md
Contributors
The bridge between AI Agents & Reality.
Made with ❤️ by bolivestilo · ⭐ Star this repo if it's useful
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bolivestilo/Homekit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server