madorn/bond-mcp-server
If you are the rightful owner of bond-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Bond MCP Server is a Model Context Protocol server designed to manage and control Bond Bridge smart home devices, enabling AI assistants to interact with various RF-controlled devices.
Bond MCP Server
A Model Context Protocol (MCP) server that provides tools for controlling Bond Bridge smart home devices. This server enables AI assistants like Claude to interact with ceiling fans, fireplaces, shades, lights, and other RF-controlled devices through Bond Bridge hubs.
Features
- Device Management: List and get information about all connected Bond devices
- Fan Control: Control ceiling fan speed, direction, and power state
- Shade Control: Open, close, and set positions for motorized shades
- Light Control: Control dimmable lights and brightness levels
- Custom Actions: Send any Bond API action to devices
- Bridge Information: Get Bond Bridge status and configuration
Quick Start
Prerequisites
- Bond Bridge on your local network
- Bond API token (obtained from Bond Home app)
Getting Your Bond Token
- Open the Bond Home app on your mobile device
- Go to Settings → Bond Bridge → Advanced → API
- Copy the Local Token (not the Cloud Token)
Add to your MCP settings:
{
"mcpServers": {
"bond": {
"command": "podman",
"args": [
"run", "-i", "--rm",
"-e", "BOND_TOKEN=your_token_here",
"-e", "BOND_HOST=192.168.1.100",
"quay.io/madorn/bond-mcp-server:latest"
]
}
}
}
Installation
-
Create and activate virtual environment:
python3 -m venv bond-mcp-env source bond-mcp-env/bin/activate # On Windows: bond-mcp-env\Scripts\activate -
Install dependencies:
pip install -r requirements.txt -
Configure environment:
cp .env.example .env # Edit .env with your Bond Bridge settings -
Run the server:
python -m bond_mcp.server
Configuration
Create a .env file with your Bond Bridge configuration:
# Required: Bond Bridge settings
BOND_TOKEN=your_bond_api_token_here
BOND_HOST=192.168.1.100
# Optional: Connection settings
BOND_TIMEOUT=10.0
BOND_MAX_RETRIES=3
BOND_RETRY_DELAY=1.0
# Optional: Logging
LOG_LEVEL=INFO
Available Tools
Device Management
list_devices()- List all Bond devicesget_device_info(device_id)- Get detailed device informationget_device_state(device_id)- Get current device stateget_bridge_info()- Get Bond Bridge information
Device Control
toggle_device_power(device_id)- Toggle device on/offsend_custom_action(device_id, action, argument?)- Send custom Bond action
Fan Control
set_fan_speed(device_id, speed)- Set fan speed (0-8)set_fan_direction(device_id, direction)- Set direction ("forward"/"reverse")
Shade Control
control_shades(device_id, action, position?)- Control shades- Actions: "open", "close", "set_position"
- Position: 0-100 (for set_position action)
Light Control
set_light_brightness(device_id, brightness)- Set brightness (0-100)
Bond API Reference
This server uses the Bond Local API v2:
- Base URL:
http://{bridge_ip}/v2/ - Authentication: Bearer token in Authorization header
- Docs: Bond Local API Documentation
Troubleshooting
Common Issues
- Connection refused: Ensure Bond Bridge IP is correct and accessible
- Authentication failed: Verify Bond token is correct (use Local Token, not Cloud Token)
- Device not found: Check device ID exists using
list_devices() - Action not supported: Verify device supports the action using
get_device_info()
Debug Logging
Enable debug logging by setting LOG_LEVEL=DEBUG in your environment.
License
This project is licensed under the MIT License. See the LICENSE file for details.