A developer toolkit MCP server for building Amazon Ring integrations. Unlike Ring's official MCP — which provides documentation search — this server generates production-ready code, validates your configuration, and guides you through certification and publishing. One tool call gives you a working, self-contained module instead of requiring multiple doc searches and LLM interpretation.
Ring provides an official Appstore Knowledge MCP server with two tools (search_docs and get_doc) for searching their documentation. It's a great reference tool, and this server can even proxy queries to it.
This MCP server is a developer toolkit that goes beyond documentation:
- Code generation — 6 tools that produce self-contained, plug-and-play modules (OAuth, webhooks, device client, streaming, video processing). Each module includes its own auth, error handling, and everything needed to run — no phantom imports, no missing dependencies.
- Structured API reference — typed endpoint definitions, webhook payload schemas, and OAuth flow details optimized for LLM consumption, not prose paragraphs.
- Developer workflow — config validation, certification checklist, testing guide, and publishing guide covering the full lifecycle from build to app store.
- Deterministic output — the same tool call produces the same proven code every time, unlike doc-search approaches where output varies per LLM and per prompt.
- Offline-first — built-in knowledge base works without network access, with optional remote fallback to Ring's official MCP.
You can use both servers together. This one handles code generation and workflows; Ring's handles live documentation search.
This MCP server provides 16 tools across four categories that cover the full Ring development lifecycle:
| Tool | Description |
|---|---|
search_ring_docs |
Search Ring documentation with local knowledge base + optional proxy to Ring's official MCP |
refresh_ring_docs |
Fetch latest docs from the Ring developer portal and update the local cache |
| Tool | Description |
|---|---|
get_ring_api_reference |
Browse Ring Partner API endpoints by category or search by keyword |
get_ring_webhook_schema |
Get webhook event payload schemas with examples (motion, person, device events) |
get_ring_oauth_reference |
OAuth 2.0 account linking flow, required endpoints, and configuration |
| Tool | Description |
|---|---|
scaffold_ring_project |
Generate complete project structure (Next.js or Express) |
generate_ring_oauth |
Production-ready OAuth token management with caching and auto-refresh |
generate_ring_webhook_handler |
Webhook handler with HMAC-SHA256 verification and idempotency |
generate_ring_device_client |
Device discovery, status monitoring, and capability inspection |
generate_ring_streaming_client |
WebRTC/WHEP live video streaming with session management |
generate_ring_video_processor |
Video processor plugin for real-time camera feed analysis |
generate_ring_env_template |
Environment variables template with security reminders |
| Tool | Description |
|---|---|
validate_ring_config |
Validate credentials, endpoints (HTTPS), and app metadata |
get_ring_certification_checklist |
Complete certification checklist with common rejection reasons |
get_ring_testing_guide |
Staging environment setup and testing workflows |
get_ring_publishing_guide |
Rollout strategies, monetization, and version management |
Choose one:
- Node.js 22+ for building from source
- Docker for containerized deployment
Plus any AI coding assistant that supports MCP (Claude Desktop, Cursor, VS Code, Kiro, Cline, Windsurf).
git clone https://github.com/benjmac/ring-developer-mcp.git
cd ring-developer-mcp
npm install
npm run buildgit clone https://github.com/benjmac/ring-developer-mcp.git
cd ring-developer-mcp
docker build -t ring-developer-mcp .Or using npm scripts:
npm run docker:buildVerify the Docker image works:
echo '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}' | docker run -i --rm ring-developer-mcpYou should see a JSON response with "serverInfo":{"name":"ring-developer-mcp"}.
Below are configurations for every major AI coding tool. Each shows both Node.js and Docker variants — pick whichever matches how you built the server.
Important: Replace
/absolute/path/to/ring-developer-mcpwith the actual path where you cloned the repo.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Node.js
{
"mcpServers": {
"ring-developer": {
"command": "node",
"args": ["/absolute/path/to/ring-developer-mcp/dist/index.js"]
}
}
}Docker
{
"mcpServers": {
"ring-developer": {
"command": "docker",
"args": ["run", "-i", "--rm", "ring-developer-mcp"]
}
}
}Add to .vscode/settings.json or user settings:
Node.js
{
"claude-code.mcpServers": {
"ring-developer": {
"command": "node",
"args": ["/absolute/path/to/ring-developer-mcp/dist/index.js"]
}
}
}Docker
{
"claude-code.mcpServers": {
"ring-developer": {
"command": "docker",
"args": ["run", "-i", "--rm", "ring-developer-mcp"]
}
}
}Settings > Features > MCP > Edit Config:
Node.js
{
"mcpServers": {
"ring-developer": {
"command": "node",
"args": ["/absolute/path/to/ring-developer-mcp/dist/index.js"]
}
}
}Docker
{
"mcpServers": {
"ring-developer": {
"command": "docker",
"args": ["run", "-i", "--rm", "ring-developer-mcp"]
}
}
}Kiro button > MCP Servers > Edit:
Node.js
{
"ring-developer": {
"command": "node",
"args": ["/absolute/path/to/ring-developer-mcp/dist/index.js"]
}
}Docker
{
"ring-developer": {
"command": "docker",
"args": ["run", "-i", "--rm", "ring-developer-mcp"]
}
}Cline icon > MCP Servers > Installed > Add MCP Server:
- Node.js:
node /absolute/path/to/ring-developer-mcp/dist/index.js - Docker:
docker run -i --rm ring-developer-mcp
Add to MCP configuration:
Node.js
{
"mcpServers": {
"ring-developer": {
"command": "node",
"args": ["/absolute/path/to/ring-developer-mcp/dist/index.js"]
}
}
}Docker
{
"mcpServers": {
"ring-developer": {
"command": "docker",
"args": ["run", "-i", "--rm", "ring-developer-mcp"]
}
}
}After configuring, restart your AI assistant and ask:
"Search the Ring docs for how authentication works"
You should see the search_ring_docs tool invoked and get back detailed OAuth and API reference information.
Once configured, ask your AI assistant questions like:
"Search the Ring docs for how to get started with the Ring API"
"Show me the Ring OAuth flow and generate the auth module"
"Generate a webhook handler for my Next.js app with HMAC verification"
"Create a WebRTC streaming client for Ring cameras"
"Generate a device client that lists all cameras and their status"
"Scaffold a new Ring integration project using Express"
"Validate my Ring app configuration for certification"
"Show me the certification checklist — what do I need before submitting?"
"What are the common rejection reasons for Ring app certification?"
"Refresh the Ring documentation cache with the latest content"
Each tool is a self-contained module in its own file — one tool, one file — organized by category:
src/
├── index.ts # Entry point — stdio MCP transport
├── server.ts # Tool registration hub
├── tools/
│ ├── types.ts # Shared ToolDefinition and ToolResult types
│ ├── docs/
│ │ ├── cache.ts # Documentation cache with 24h TTL
│ │ ├── search-docs.ts # search_ring_docs
│ │ └── refresh-docs.ts # refresh_ring_docs
│ ├── api/
│ │ ├── get-api-reference.ts # get_ring_api_reference
│ │ ├── get-webhook-schema.ts # get_ring_webhook_schema
│ │ └── get-oauth-reference.ts # get_ring_oauth_reference
│ ├── codegen/
│ │ ├── scaffold-project.ts # scaffold_ring_project
│ │ ├── generate-oauth.ts # generate_ring_oauth
│ │ ├── generate-webhook-handler.ts # generate_ring_webhook_handler
│ │ ├── generate-device-client.ts # generate_ring_device_client
│ │ ├── generate-streaming-client.ts # generate_ring_streaming_client
│ │ ├── generate-video-processor.ts # generate_ring_video_processor
│ │ └── generate-env-template.ts # generate_ring_env_template
│ └── workflow/
│ ├── validate-config.ts # validate_ring_config
│ ├── get-certification-checklist.ts # get_ring_certification_checklist
│ ├── get-testing-guide.ts # get_ring_testing_guide
│ └── get-publishing-guide.ts # get_ring_publishing_guide
└── knowledge/
├── api-endpoints.ts # Ring Partner API endpoint definitions
├── webhook-schemas.ts # Webhook event types and payload schemas
├── oauth-config.ts # OAuth configuration and account linking reference
├── guides.ts # Certification, testing, and publishing guides
└── templates.ts # Code generation templates (self-contained modules)
- Zero runtime dependencies beyond MCP SDK and Zod — no bloat, fast startup
- Built-in knowledge base — works offline with comprehensive Ring API reference data
- Remote doc proxy — optionally queries Ring's official Appstore Knowledge MCP server for the latest docs
- Framework-agnostic code gen — generates code for Next.js, Express, or standalone Node.js
- Security-first templates — all generated code includes HMAC verification, token caching, HTTPS enforcement, and idempotency
# Watch mode for development
npm run dev
# Type check without emitting
npm run typecheck
# Clean build artifacts
npm run clean
# Full rebuild
npm run clean && npm run buildThis server covers the complete Ring Partner API:
| Category | Endpoints |
|---|---|
| Authentication | OAuth token exchange via refresh_token grant |
| Users | GET /v1/users/me |
| Devices | Discovery, status, capabilities, location, configurations |
| Video Streaming | WHEP session creation (POST) and cleanup (DELETE) |
| Account Linking | POST + PATCH for account link lifecycle |
| Media Clips | POST download for recorded video footage |
| Webhooks | motion_detected, person_detected, button_press, device_added, device_removed, device_online, device_offline |
Ring provides an official Appstore Knowledge MCP server (https://knowledge.appstore-mcp.ring.amazon.dev/mcp) with documentation search powered by Amazon Bedrock. See Ring's MCP docs for setup instructions.
The two servers complement each other well — use Ring's for live documentation search and this one for code generation, structured API reference, and developer workflows. The search_ring_docs tool in this server can proxy queries to Ring's MCP when you set source: "remote" or source: "both".
Official documentation and references used to build this MCP server:
- Ring Developer Portal — https://developer.amazon.com/ring
- Ring API Hello World — Amazon's official example repo for the Ring Partner API. A great reference for working code examples and was an inspiration for this project. If you're looking for hands-on sample code beyond what this MCP generates, start there.
- Getting Started
- Development Guide
- Configuration Guide
- Testing Guide
- Certification Guide
- Publishing Guide
- Ring Appstore MCP Server
- Webhook Notifications
- Motion Detection
- Button Press
- Device Addition
- Device Removal
- Device Online
- Device Offline
MIT