Ring MCP Server
Controls Ring home security devices including doorbells, cameras, lights, and alarm systems. Allows listing devices, arming/disarming alarms, capturing snapshots, controlling lights, and monitoring events.
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., "@Ring MCP Servershow me all my Ring devices"
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.
Ring MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with Ring home security devices. Control your Ring doorbells, cameras, lights, and alarm systems through MCP-compatible clients like Claude Desktop.
🚀 Features
Device Management: List and get detailed information about all Ring devices
Security Control: Arm/disarm Ring alarm systems with different modes
Camera Operations: Capture snapshots from Ring cameras
Light Control: Turn Ring lights on/off
Real-time Monitoring: Monitor doorbell presses, motion detection, and other Ring events
Smart Authentication: Automatic token management with multiple authentication methods
Auto Token Updates: Maintains push notifications by automatically updating refresh tokens
📋 Prerequisites
Node.js 18+ and npm
Ring Account with Two-Factor Authentication (2FA) enabled
MCP Client like Claude Desktop or other MCP-compatible applications
⚡ Quick Start
1. Installation
git clone https://github.com/jpcors/ring-mcp
cd ring-mcp-server
npm install
npm run build2. First Run (Interactive Authentication)
npm startOn first run, the server will automatically prompt you to authenticate with Ring:
Enter your Ring email and password
Provide the 2FA code when prompted
The server will save your refresh token automatically
3. Use with Claude Desktop
Add this to your Claude Desktop MCP configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ring": {
"command": "node",
"args": ["/path/to/ring-mcp-server/build/index.js"],
"env": {}
}
}
}🔐 Authentication Options
The server supports multiple authentication methods (checked in priority order):
Option 1: Command Line Token
npm start -- --token="your_refresh_token_here"Option 2: Environment Variable
export RING_REFRESH_TOKEN="your_refresh_token"
npm startOption 3: Automatic Config File
Tokens are automatically saved to
ring-config.jsonUpdated tokens are automatically saved to maintain push notifications
Option 4: Interactive Authentication
If no token is found, the server runs
ring-auth-cliautomaticallyFollow the prompts to enter your Ring credentials
Manual Authentication
# Generate token manually
npm run auth
# Then start server
npm start🛠️ Available MCP Tools
Once connected to your MCP client, you can use these tools:
list_devices
Lists all Ring devices in your account with basic information.
get_device_info
Get detailed information about a specific Ring device.
Parameters:
deviceId(string)
arm_disarm_alarm
Control your Ring alarm system.
Parameters:
locationId(string) - The location ID where the alarm is locatedmode(string) -home,away, ordisarmed
get_camera_snapshot
Capture a snapshot from a Ring camera.
Parameters:
deviceId(string) - The camera device ID
turn_light_on_off
Control Ring light devices.
Parameters:
deviceId(string) - The light device IDon(boolean) -trueto turn on,falseto turn off
monitor_events
Monitor real-time Ring events for a specified duration.
Parameters:
duration(number, optional) - Duration in seconds (default: 30)Returns: List of events including doorbell presses, motion detection, and notifications
⚙️ Configuration
Development Commands
npm run build # Compile TypeScript
npm run dev # Development mode with watch
npm start # Start the MCP server
npm run auth # Manual Ring authentication
npm run help # Show usage help
npm test # Run testsConfiguration Files
ring-config.json- Automatically managed token storage.env- Optional environment variablespackage.json- Project dependencies and scriptstsconfig.json- TypeScript configuration
🔒 Security Considerations
Token Security: Refresh tokens provide full access to your Ring account
Local Storage: Tokens are stored locally in
ring-config.jsonAuto-Updates: Tokens are automatically updated to maintain security
Gitignore: Sensitive files are excluded from version control
Important Notes:
Never share your refresh tokens
The
ring-config.jsonfile contains sensitive authentication dataAutomatic token updates are critical for maintaining push notifications
🚨 Troubleshooting
Push Notifications Not Working
This usually means tokens aren't being updated properly:
Check if
ring-config.jsonexists and has recentlastUpdatedtimestampRestart the server to trigger token refresh
If problems persist, delete
ring-config.jsonand re-authenticate
Authentication Fails
Ensure 2FA is enabled on your Ring account
Check your email/password credentials
Verify you have an active internet connection
Try manual authentication:
npm run auth
Device Not Found
Use
list_devicesto get correct device IDsEnsure the device is online in the Ring app
Check that your Ring account has access to the device
MCP Connection Issues
Verify the path in your MCP client configuration
Ensure the server compiled successfully:
npm run buildCheck MCP client logs for connection errors
🔧 Development
Project Structure
src/
index.ts # Main MCP server implementation
package.json # Dependencies and scripts
tsconfig.json # TypeScript configuration
ring-config.json # Auto-generated token storage
.env # Optional environment variablesKey Architecture Components
RingMCPServer: Main server class handling MCP protocol
Token Management: Multi-tier authentication system
Ring API Integration: Uses
ring-client-apilibraryEvent Monitoring: Real-time Ring event subscriptions
Building and Testing
npm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Development with watch mode
npm start -- --help # Show usage options⚠️ Disclaimer
This is an unofficial integration using the community-driven ring-client-api library. It is not affiliated with or endorsed by Ring/Amazon. Use at your own risk and in accordance with Ring's Terms of Service.
🙏 Acknowledgments
dgreif/ring - The Ring API library
Model Context Protocol - The MCP specification
Ring community for reverse-engineering efforts
This server cannot be installed
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
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/jpcors/ring-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server