Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Documentation

    Welcome — mission & audiences

    Welcome to Ring Platform - Gateway Between Humanity and the Quantum World

    Library hub

    Welcome to Ring Platform - Gateway Between Humanity and the Quantum World

    Getting Started

    Index
    Prerequisites
    Installation
    Database migrations
    First Success Validation
    Troubleshooting
    Next Steps

    Architecture

    Index
    Backend modes and databases
    Data Model
    Authentication Architecture
    Email AI-CRM Architecture
    PaymentConductor architecture
    News Kingdom architecture
    Proxy and internationalization
    Real Time
    Security

    Features

    Platform Features
    Authentication
    Email AI-CRM System
    Entities
    Opportunities
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Web3 Wallet
    Multi-Vendor Store
    Payment Integration
    PaymentConductor
    WayForPay Payment Integration
    News Module - Digital Newspaper Experience

    API

    Index
    Authentication
    Email AI-CRM API
    Entities
    Opportunities
    Messaging API
    Notifications API
    Wallet
    Store API

    CLI

    Ring CLI (enterprise only)

    Customization

    Index
    Branding
    Features
    Localization
    Themes
    Components

    Deployment

    Index
    Self-hosted deployment
    Vercel
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery

    Development

    Index
    Local Setup
    Code Structure
    Community tooling
    Ring MCP Server
    OSS vs enterprise
    Whitelabel Navigation
    Best Practices

    Examples

    Index
    Quick Start
    Authentication
    Email AI-CRM Tutorial
    Api Integration
    Web3 Integration
    White Label
    Real World

    Integrations

    Ethereum wallets (Wagmi v3)

    Quick entry (CTOs · auditors · agents)

    Library hub
    Welcome — mission & audiences
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP
    Deploy (Docker · k8s)
    Security & compliance reads
    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Documentation

    Welcome — mission & audiences

    Welcome to Ring Platform - Gateway Between Humanity and the Quantum World

    Library hub

    Welcome to Ring Platform - Gateway Between Humanity and the Quantum World

    Getting Started

    Index
    Prerequisites
    Installation
    Database migrations
    First Success Validation
    Troubleshooting
    Next Steps

    Architecture

    Index
    Backend modes and databases
    Data Model
    Authentication Architecture
    Email AI-CRM Architecture
    PaymentConductor architecture
    News Kingdom architecture
    Proxy and internationalization

    Features

    Platform Features
    Authentication
    Email AI-CRM System
    Entities
    Opportunities
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Web3 Wallet

    API

    Index
    Authentication
    Email AI-CRM API
    Entities
    Opportunities
    Messaging API
    Notifications API
    Wallet
    Store API

    CLI

    Ring CLI (enterprise only)

    Customization

    Index
    Branding
    Features
    Localization
    Themes
    Components

    Deployment

    Index
    Self-hosted deployment
    Vercel
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery

    Development

    Index
    Local Setup
    Code Structure
    Community tooling
    Ring MCP Server
    OSS vs enterprise
    Whitelabel Navigation
    Best Practices

    Examples

    Index
    Quick Start
    Authentication
    Email AI-CRM Tutorial
    Api Integration
    Web3 Integration
    White Label
    Real World

    Integrations

    Ethereum wallets (Wagmi v3)

    Quick entry (CTOs · auditors · agents)

    Library hub
    Welcome — mission & audiences
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP
    Deploy (Docker · k8s)
    Security & compliance reads
    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Documentation

    Welcome — mission & audiences

    Welcome to Ring Platform - Gateway Between Humanity and the Quantum World

    Library hub

    Welcome to Ring Platform - Gateway Between Humanity and the Quantum World

    Getting Started

    Index
    Prerequisites
    Installation
    Database migrations
    First Success Validation
    Troubleshooting
    Next Steps

    Architecture

    Index
    Backend modes and databases
    Data Model
    Authentication Architecture
    Email AI-CRM Architecture
    PaymentConductor architecture
    News Kingdom architecture
    Proxy and internationalization

    Features

    Platform Features
    Authentication
    Email AI-CRM System
    Entities
    Opportunities
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Web3 Wallet

    API

    Index
    Authentication
    Email AI-CRM API
    Entities
    Opportunities
    Messaging API
    Notifications API
    Wallet
    Store API

    CLI

    Ring CLI (enterprise only)

    Customization

    Index
    Branding
    Features
    Localization
    Themes
    Components

    Deployment

    Index
    Self-hosted deployment
    Vercel
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery

    Development

    Index
    Local Setup
    Code Structure
    Community tooling
    Ring MCP Server
    OSS vs enterprise
    Whitelabel Navigation
    Best Practices

    Examples

    Index
    Quick Start
    Authentication
    Email AI-CRM Tutorial
    Api Integration
    Web3 Integration
    White Label
    Real World

    Integrations

    Ethereum wallets (Wagmi v3)

    Quick entry (CTOs · auditors · agents)

    Library hub
    Welcome — mission & audiences
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP
    Deploy (Docker · k8s)
    Security & compliance reads
    Member Blogs
    Scientific Editor
    Locale System
    Security & Compliance
    NFT Marketplace
    Token Staking System
    Performance Optimization Patterns
    Mobile Experience
    Admin API
    Workflow
    Code Style
    Performance
    Testing
    Deployment
    Debugging
    Contributing
    Api Examples
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)
    Real Time
    Security
    Multi-Vendor Store
    Payment Integration
    PaymentConductor
    WayForPay Payment Integration
    News Module - Digital Newspaper Experience
    Member Blogs
    Scientific Editor
    Locale System
    Security & Compliance
    NFT Marketplace
    Token Staking System
    Performance Optimization Patterns
    Mobile Experience
    Admin API
    Workflow
    Code Style
    Performance
    Testing
    Deployment
    Debugging
    Contributing
    Api Examples
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)
    Real Time
    Security
    Multi-Vendor Store
    Payment Integration
    PaymentConductor
    WayForPay Payment Integration
    News Module - Digital Newspaper Experience
    Member Blogs
    Scientific Editor
    Locale System
    Security & Compliance
    NFT Marketplace
    Token Staking System
    Performance Optimization Patterns
    Mobile Experience
    Admin API
    Workflow
    Code Style
    Performance
    Testing
    Deployment
    Debugging
    Contributing
    Api Examples
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Ring MCP Server (ring-mcp)

    Operate any Ring clone from natural language in Cursor, Claude Desktop, or any MCP host.

    Model Context Protocol (MCP) is an open standard for connecting AI apps to external systems — data sources, tools, and workflows. Think of it as a USB-C port for AI: build a server once, plug it into Cursor, Claude, VS Code Copilot, and others.

    ring-mcp is Ringdom's MCP server for Ring Platform clones. It does not talk to PostgreSQL directly. It calls a service-token HTTP gateway on the clone at /api/mcp/v1/*, which runs as synthetic SUPERADMIN and reuses Ring's existing service layer.

    You (chat) → MCP host (Cursor) → ring-mcp (stdio) → Bearer token → /api/mcp/v1/* → Ring services → DB

    Compared to kingdom tools (legiox-*, ringdom-*), ring-* tools target one Ring white-label instance (entities, opportunities, news, store, users, credits, payments, notifications, messaging).

    AI-RING package (v1.0.0)

    Ringdom ships per-clone MCP under AI-RING/ — operator tooling for individual Ring clones (not kingdom-wide LegioX assets).

    PackagePathRole

    Ring MCP Server (ring-mcp)

    Operate any Ring clone from natural language in Cursor, Claude Desktop, or any MCP host.

    Model Context Protocol (MCP) is an open standard for connecting AI apps to external systems — data sources, tools, and workflows. Think of it as a USB-C port for AI: build a server once, plug it into Cursor, Claude, VS Code Copilot, and others.

    ring-mcp is Ringdom's MCP server for Ring Platform clones. It does not talk to PostgreSQL directly. It calls a service-token HTTP gateway on the clone at /api/mcp/v1/*, which runs as synthetic SUPERADMIN and reuses Ring's existing service layer.

    You (chat) → MCP host (Cursor) → ring-mcp (stdio) → Bearer token → /api/mcp/v1/* → Ring services → DB

    Compared to kingdom tools (legiox-*, ringdom-*), ring-* tools target one Ring white-label instance (entities, opportunities, news, store, users, credits, payments, notifications, messaging).

    AI-RING package (v1.0.0)

    Ringdom ships per-clone MCP under AI-RING/ — operator tooling for individual Ring clones (not kingdom-wide LegioX assets).

    PackagePathRole

    Ring MCP Server (ring-mcp)

    Operate any Ring clone from natural language in Cursor, Claude Desktop, or any MCP host.

    Model Context Protocol (MCP) is an open standard for connecting AI apps to external systems — data sources, tools, and workflows. Think of it as a USB-C port for AI: build a server once, plug it into Cursor, Claude, VS Code Copilot, and others.

    ring-mcp is Ringdom's MCP server for Ring Platform clones. It does not talk to PostgreSQL directly. It calls a service-token HTTP gateway on the clone at /api/mcp/v1/*, which runs as synthetic SUPERADMIN and reuses Ring's existing service layer.

    You (chat) → MCP host (Cursor) → ring-mcp (stdio) → Bearer token → /api/mcp/v1/* → Ring services → DB

    Compared to kingdom tools (legiox-*, ringdom-*), ring-* tools target one Ring white-label instance (entities, opportunities, news, store, users, credits, payments, notifications, messaging).

    AI-RING package (v1.0.0)

    Ringdom ships per-clone MCP under AI-RING/ — operator tooling for individual Ring clones (not kingdom-wide LegioX assets).

    PackagePathRole
    ring-mcp
    AI-RING/ring-mcp/
    stdio MCP server, 55 ring-* tools
    Operator manualThis pageFull tool reference + troubleshooting
    Package READMEAI-RING/ring-mcp/README.mdInstall, config, smoke test
    RoadmapAI-RING/ring-mcp/ROADMAP.mdv1.1 polish, multi-clone profiles

    Kingdom MCP (different scope):

    ring-mcp
    AI-RING/ring-mcp/
    stdio MCP server, 55 ring-* tools
    Operator manualThis pageFull tool reference + troubleshooting
    Package READMEAI-RING/ring-mcp/README.mdInstall, config, smoke test
    RoadmapAI-RING/ring-mcp/ROADMAP.mdv1.1 polish, multi-clone profiles

    Kingdom MCP (different scope):

    ring-mcp
    AI-RING/ring-mcp/
    stdio MCP server, 55 ring-* tools
    Operator manualThis pageFull tool reference + troubleshooting
    Package READMEAI-RING/ring-mcp/README.mdInstall, config, smoke test
    RoadmapAI-RING/ring-mcp/ROADMAP.mdv1.1 polish, multi-clone profiles

    Kingdom MCP (different scope):

    ServerScope
    legiox-mcpAI-CONTEXT, agents, deployment across Ringdom
    ringdom-mcpKingdom DB health, file registry
    reggie-mcpCode propagation between ring clones
    ServerScope
    legiox-mcpAI-CONTEXT, agents, deployment across Ringdom
    ringdom-mcpKingdom DB health, file registry
    reggie-mcpCode propagation between ring clones
    ServerScope
    legiox-mcpAI-CONTEXT, agents, deployment across Ringdom
    ringdom-mcpKingdom DB health, file registry
    reggie-mcpCode propagation between ring clones

    Gateway code lives in the Ring app (app/api/mcp/v1/, lib/auth/service-token.ts, lib/auth/mcp-actor-context.ts). The stdio server lives in AI-RING/ring-mcp/ring-mcp-server.js.


    Features

    Gateway code lives in the Ring app (app/api/mcp/v1/, lib/auth/service-token.ts, lib/auth/mcp-actor-context.ts). The stdio server lives in AI-RING/ring-mcp/ring-mcp-server.js.


    Features

    Gateway code lives in the Ring app (app/api/mcp/v1/, lib/auth/service-token.ts, lib/auth/mcp-actor-context.ts). The stdio server lives in AI-RING/ring-mcp/ring-mcp-server.js.


    Features

    CapabilityWhat you get
    Full CRUDEntities, opportunities, news, store products/orders, users
    Admin / operatorNews Kingdom score/approve/reject, vendor approve/suspend, credit add/spend
    Read & searchEntity/opportunity search, news categories, payment/credit lookup
    MessagingIn-app notifications, FCM push, conversations, chat messages
    Per-clone tenancyOne ring-mcp entry per clone via RING_API_BASE_URL + RING_SERVICE_TOKEN
    Safety guardsDestructive tools require confirm: true
    CapabilityWhat you get
    Full CRUDEntities, opportunities, news, store products/orders, users
    Admin / operatorNews Kingdom score/approve/reject, vendor approve/suspend, credit add/spend
    Read & searchEntity/opportunity search, news categories, payment/credit lookup
    MessagingIn-app notifications, FCM push, conversations, chat messages
    Per-clone tenancyOne ring-mcp entry per clone via RING_API_BASE_URL + RING_SERVICE_TOKEN
    Safety guardsDestructive tools require confirm: true
    CapabilityWhat you get
    Full CRUDEntities, opportunities, news, store products/orders, users
    Admin / operatorNews Kingdom score/approve/reject, vendor approve/suspend, credit add/spend
    Read & searchEntity/opportunity search, news categories, payment/credit lookup
    MessagingIn-app notifications, FCM push, conversations, chat messages
    Per-clone tenancyOne ring-mcp entry per clone via RING_API_BASE_URL + RING_SERVICE_TOKEN
    Safety guardsDestructive tools require confirm: true

    Prerequisites

    • Node.js 20+ (Ring Platform baseline)
    • A running Ring clone with the MCP gateway deployed (app/api/mcp/v1/)
    • MCP client: Cursor, Claude Desktop, VS Code, or MCPJam
    • A service token configured on both sides (Ring env + MCP env)

    Quick start

    1 — Ring clone: enable the gateway

    In the clone's .env.local (never commit real tokens):


    Prerequisites

    • Node.js 20+ (Ring Platform baseline)
    • A running Ring clone with the MCP gateway deployed (app/api/mcp/v1/)
    • MCP client: Cursor, Claude Desktop, VS Code, or MCPJam
    • A service token configured on both sides (Ring env + MCP env)

    Quick start

    1 — Ring clone: enable the gateway

    In the clone's .env.local (never commit real tokens):


    Prerequisites

    • Node.js 20+ (Ring Platform baseline)
    • A running Ring clone with the MCP gateway deployed (app/api/mcp/v1/)
    • MCP client: Cursor, Claude Desktop, VS Code, or MCPJam
    • A service token configured on both sides (Ring env + MCP env)

    Quick start

    1 — Ring clone: enable the gateway

    In the clone's .env.local (never commit real tokens):

    # Comma-separated; ring-mcp uses ONE of these as RING_SERVICE_TOKEN
    RING_MCP_SERVICE_TOKENS=replace-with-long-random-string
    
    # Optional synthetic service identity (defaults are fine for dev)
    # RING_MCP_SERVICE_USER_ID=ring-mcp-service
    # RING_MCP_SERVICE_USER_EMAIL=ring-mcp@system.local
    # RING_MCP_SERVICE_USER_NAME=Ring MCP Service
    # RING_CLONE_NAME=connect-software
    # Comma-separated; ring-mcp uses ONE of these as RING_SERVICE_TOKEN
    RING_MCP_SERVICE_TOKENS=replace-with-long-random-string
    
    # Optional synthetic service identity (defaults are fine for dev)
    # RING_MCP_SERVICE_USER_ID=ring-mcp-service
    # RING_MCP_SERVICE_USER_EMAIL=ring-mcp@system.local
    # RING_MCP_SERVICE_USER_NAME=Ring MCP Service
    # RING_CLONE_NAME=connect-software
    # Comma-separated; ring-mcp uses ONE of these as RING_SERVICE_TOKEN
    RING_MCP_SERVICE_TOKENS=replace-with-long-random-string
    
    # Optional synthetic service identity (defaults are fine for dev)
    # RING_MCP_SERVICE_USER_ID=ring-mcp-service
    # RING_MCP_SERVICE_USER_EMAIL=ring-mcp@system.local
    # RING_MCP_SERVICE_USER_NAME=Ring MCP Service
    # RING_CLONE_NAME=connect-software

    Restart the Next.js dev server after changing env.

    Examples by clone:

    Restart the Next.js dev server after changing env.

    Examples by clone:

    Restart the Next.js dev server after changing env.

    Examples by clone:

    CloneTypical RING_API_BASE_URL
    ring-platform.orghttp://localhost:3000
    ring-connect-softwarehttp://localhost:3690 (check NEXTAUTH_URL in .env.local)
    Productionhttps://your-clone.example.com
    CloneTypical RING_API_BASE_URL
    ring-platform.orghttp://localhost:3000
    ring-connect-softwarehttp://localhost:3690 (check NEXTAUTH_URL in .env.local)
    Productionhttps://your-clone.example.com
    CloneTypical RING_API_BASE_URL
    ring-platform.orghttp://localhost:3000
    ring-connect-softwarehttp://localhost:3690 (check NEXTAUTH_URL in .env.local)
    Productionhttps://your-clone.example.com

    2 — Install ring-mcp

    cd /path/to/ringdom/AI-RING/ring-mcp
    npm install
    node ring-mcp-server.js --test

    Expected output includes "tools": 55 and "ok": true.

    3 — Register in Cursor

    Edit .cursor/mcp.json at the kingdom root (or Cursor Settings → MCP):

    2 — Install ring-mcp

    cd /path/to/ringdom/AI-RING/ring-mcp
    npm install
    node ring-mcp-server.js --test

    Expected output includes "tools": 55 and "ok": true.

    3 — Register in Cursor

    Edit .cursor/mcp.json at the kingdom root (or Cursor Settings → MCP):

    2 — Install ring-mcp

    cd /path/to/ringdom/AI-RING/ring-mcp
    npm install
    node ring-mcp-server.js --test

    Expected output includes "tools": 55 and "ok": true.

    3 — Register in Cursor

    Edit .cursor/mcp.json at the kingdom root (or Cursor Settings → MCP):

    "ring-mcp": {
      "command": "node",
      "args": ["/Users/insight/code/ringdom/AI-RING/ring-mcp/ring-mcp-server.js"],
      "env": {
        "RING_API_BASE_URL": "http://localhost:3690",
        "RING_SERVICE_TOKEN": "replace-with-long-random-string"
    
    
    
    "ring-mcp": {
      "command": "node",
      "args": ["/Users/insight/code/ringdom/AI-RING/ring-mcp/ring-mcp-server.js"],
      "env": {
        "RING_API_BASE_URL": "http://localhost:3690",
        "RING_SERVICE_TOKEN": "replace-with-long-random-string"
    
    
    
    "ring-mcp": {
      "command": "node",
      "args": ["/Users/insight/code/ringdom/AI-RING/ring-mcp/ring-mcp-server.js"],
      "env": {
        "RING_API_BASE_URL": "http://localhost:3690",
        "RING_SERVICE_TOKEN": "replace-with-long-random-string"
    
    
    

    Use the same token string as one entry in RING_MCP_SERVICE_TOKENS on the Ring app.

    Reload MCP in Cursor (restart Cursor or toggle the server).

    4 — Verify

    Ask the agent to run ring-health and ring-whoami, or run the smoke script:

    Use the same token string as one entry in RING_MCP_SERVICE_TOKENS on the Ring app.

    Reload MCP in Cursor (restart Cursor or toggle the server).

    4 — Verify

    Ask the agent to run ring-health and ring-whoami, or run the smoke script:

    Use the same token string as one entry in RING_MCP_SERVICE_TOKENS on the Ring app.

    Reload MCP in Cursor (restart Cursor or toggle the server).

    4 — Verify

    Ask the agent to run ring-health and ring-whoami, or run the smoke script:

    RING_API_BASE_URL=http://localhost:3690 \
    RING_SERVICE_TOKEN=your-token \
    npm run smoke --prefix AI-RING/ring-mcp
    RING_API_BASE_URL=http://localhost:3690 \
    RING_SERVICE_TOKEN=your-token \
    npm run smoke --prefix AI-RING/ring-mcp
    RING_API_BASE_URL=http://localhost:3690 \
    RING_SERVICE_TOKEN=your-token \
    npm run smoke --prefix AI-RING/ring-mcp

    Usage examples

    Once connected, use natural language; the agent picks the right ring-* tool.

    Meta & health

    "Run ring-health and ring-whoami for this clone"
    "Which Ring clone am I connected to?"
    

    Entities

    "List the first 20 entities"
    "Search entities for 'agritech' in Cherkasy"
    "Create an entity for Acme Farms with type vendor"
    "Delete entity <id> — I confirm this is destructive"
    

    Opportunities

    "List open opportunities"
    "Search opportunities mentioning React developer"
    "Create an opportunity titled 'Need agronomist' and run matching"
    

    News (Member Blog / News Kingdom)

    "List draft news articles"
    "Create a draft post titled 'Platform update' with excerpt and body"
    "Publish news article <id>"
    "Score article <id> for main-page promotion"
    "Approve main-page publication for <id>"
    

    Store

    "List store products"
    "Update order <id> status to shipped"
    "Approve vendor <entityId>"
    "Suspend vendor <id> for 30 days — confirm"
    

    Users & credits

    "List users with role member"
    "Set user <id> role to admin — confirm"
    "Show credit balance for user <id>"
    "Add 100 credits to user <id> — confirm"
    

    Notifications & messaging

    "List unread notifications for user <id>"
    "Send in-app notification to user <id>: title 'Hello', body 'Test'"
    "List conversations for user <id>"
    "Send message in conversation <id>: 'Following up on your order'"
    

    Tool reference (55 tools)


    Usage examples

    Once connected, use natural language; the agent picks the right ring-* tool.

    Meta & health

    "Run ring-health and ring-whoami for this clone"
    "Which Ring clone am I connected to?"
    

    Entities

    "List the first 20 entities"
    "Search entities for 'agritech' in Cherkasy"
    "Create an entity for Acme Farms with type vendor"
    "Delete entity <id> — I confirm this is destructive"
    

    Opportunities

    "List open opportunities"
    "Search opportunities mentioning React developer"
    "Create an opportunity titled 'Need agronomist' and run matching"
    

    News (Member Blog / News Kingdom)

    "List draft news articles"
    "Create a draft post titled 'Platform update' with excerpt and body"
    "Publish news article <id>"
    "Score article <id> for main-page promotion"
    "Approve main-page publication for <id>"
    

    Store

    "List store products"
    "Update order <id> status to shipped"
    "Approve vendor <entityId>"
    "Suspend vendor <id> for 30 days — confirm"
    

    Users & credits

    "List users with role member"
    "Set user <id> role to admin — confirm"
    "Show credit balance for user <id>"
    "Add 100 credits to user <id> — confirm"
    

    Notifications & messaging

    "List unread notifications for user <id>"
    "Send in-app notification to user <id>: title 'Hello', body 'Test'"
    "List conversations for user <id>"
    "Send message in conversation <id>: 'Following up on your order'"
    

    Tool reference (55 tools)


    Usage examples

    Once connected, use natural language; the agent picks the right ring-* tool.

    Meta & health

    "Run ring-health and ring-whoami for this clone"
    "Which Ring clone am I connected to?"
    

    Entities

    "List the first 20 entities"
    "Search entities for 'agritech' in Cherkasy"
    "Create an entity for Acme Farms with type vendor"
    "Delete entity <id> — I confirm this is destructive"
    

    Opportunities

    "List open opportunities"
    "Search opportunities mentioning React developer"
    "Create an opportunity titled 'Need agronomist' and run matching"
    

    News (Member Blog / News Kingdom)

    "List draft news articles"
    "Create a draft post titled 'Platform update' with excerpt and body"
    "Publish news article <id>"
    "Score article <id> for main-page promotion"
    "Approve main-page publication for <id>"
    

    Store

    "List store products"
    "Update order <id> status to shipped"
    "Approve vendor <entityId>"
    "Suspend vendor <id> for 30 days — confirm"
    

    Users & credits

    "List users with role member"
    "Set user <id> role to admin — confirm"
    "Show credit balance for user <id>"
    "Add 100 credits to user <id> — confirm"
    

    Notifications & messaging

    "List unread notifications for user <id>"
    "Send in-app notification to user <id>: title 'Hello', body 'Test'"
    "List conversations for user <id>"
    "Send message in conversation <id>: 'Following up on your order'"
    

    Tool reference (55 tools)

    All tools are prefixed ring-. Sensitive mutations require confirm: true in tool arguments.

    Meta

    ToolDescription
    ring-healthGateway liveness
    ring-whoamiClone name, base URL, service actor role

    Entities

    All tools are prefixed ring-. Sensitive mutations require confirm: true in tool arguments.

    Meta

    ToolDescription
    ring-healthGateway liveness
    ring-whoamiClone name, base URL, service actor role

    Entities

    All tools are prefixed ring-. Sensitive mutations require confirm: true in tool arguments.

    Meta

    ToolDescription
    ring-healthGateway liveness
    ring-whoamiClone name, base URL, service actor role

    Entities

    ToolDescription
    ring-entity-listPaginated list (limit, startAfter, search)
    ring-entity-getGet by id
    ring-entity-searchFull-text search (q, limit, location)
    ring-entity-createCreate (data object)
    ring-entity-updateUpdate (id, data)
    ring-entity-deleteDelete (id, confirm)
    ToolDescription
    ring-entity-listPaginated list (limit, startAfter, search)
    ring-entity-getGet by id
    ring-entity-searchFull-text search (q, limit, location)
    ring-entity-createCreate (data object)
    ring-entity-updateUpdate (id, data)
    ring-entity-deleteDelete (id, confirm)
    ToolDescription
    ring-entity-listPaginated list (limit, startAfter, search)
    ring-entity-getGet by id
    ring-entity-searchFull-text search (q, limit, location)
    ring-entity-createCreate (data object)
    ring-entity-updateUpdate (id, data)
    ring-entity-deleteDelete (id, confirm)

    Opportunities

    Opportunities

    Opportunities

    ToolDescription
    ring-opportunity-listList with filters
    ring-opportunity-getGet by id
    ring-opportunity-searchSearch (q)
    ring-opportunity-createCreate (data)
    ring-opportunity-updateUpdate (id, data)
    ring-opportunity-deleteDelete (id, confirm)
    ring-opportunity-matchAI match users to opportunity
    ToolDescription
    ring-opportunity-listList with filters
    ring-opportunity-getGet by id
    ring-opportunity-searchSearch (q)
    ring-opportunity-createCreate (data)
    ring-opportunity-updateUpdate (id, data)
    ring-opportunity-deleteDelete (id, confirm)
    ring-opportunity-matchAI match users to opportunity
    ToolDescription
    ring-opportunity-listList with filters
    ring-opportunity-getGet by id
    ring-opportunity-searchSearch (q)
    ring-opportunity-createCreate (data)
    ring-opportunity-updateUpdate (id, data)
    ring-opportunity-deleteDelete (id, confirm)
    ring-opportunity-matchAI match users to opportunity

    News

    News

    News

    ToolDescription
    ring-news-listList (category, status, search, authorId)
    ring-news-getGet by id
    ring-news-categoriesDistinct categories
    ring-news-createCreate draft (data)
    ring-news-updateUpdate (id, data)
    ring-news-publishPublish (id)
    ring-news-deleteDelete (id, confirm)
    ring-news-scoreAI score (News Kingdom)
    ring-news-approveApprove main-page publication
    ring-news-rejectReject (, , )
    ToolDescription
    ring-news-listList (category, status, search, authorId)
    ring-news-getGet by id
    ring-news-categoriesDistinct categories
    ring-news-createCreate draft (data)
    ring-news-updateUpdate (id, data)
    ring-news-publishPublish (id)
    ring-news-deleteDelete (id, confirm)
    ring-news-scoreAI score (News Kingdom)
    ring-news-approveApprove main-page publication
    ring-news-rejectReject (, , )
    ToolDescription
    ring-news-listList (category, status, search, authorId)
    ring-news-getGet by id
    ring-news-categoriesDistinct categories
    ring-news-createCreate draft (data)
    ring-news-updateUpdate (id, data)
    ring-news-publishPublish (id)
    ring-news-deleteDelete (id, confirm)
    ring-news-scoreAI score (News Kingdom)
    ring-news-approveApprove main-page publication
    ring-news-rejectReject (, , )

    Store

    Store

    Store

    ToolDescription
    ring-store-product-list / ring-store-product-getProducts
    ring-store-product-create / update / deleteProduct CRUD (delete needs confirm)
    ring-vendor-list / ring-vendor-getVendors
    ring-vendor-approveApprove onboarding
    ring-vendor-suspendSuspend (id, confirm, reason, durationDays)
    ring-order-list / ring-order-getOrders
    ring-order-update-statusUpdate order status
    ToolDescription
    ring-store-product-list / ring-store-product-getProducts
    ring-store-product-create / update / deleteProduct CRUD (delete needs confirm)
    ring-vendor-list / ring-vendor-getVendors
    ring-vendor-approveApprove onboarding
    ring-vendor-suspendSuspend (id, confirm, reason, durationDays)
    ring-order-list / ring-order-getOrders
    ring-order-update-statusUpdate order status
    ToolDescription
    ring-store-product-list / ring-store-product-getProducts
    ring-store-product-create / update / deleteProduct CRUD (delete needs confirm)
    ring-vendor-list / ring-vendor-getVendors
    ring-vendor-approveApprove onboarding
    ring-vendor-suspendSuspend (id, confirm, reason, durationDays)
    ring-order-list / ring-order-getOrders
    ring-order-update-statusUpdate order status

    Users

    Users

    Users

    ToolDescription
    ring-user-listList (role, limit)
    ring-user-getGet by id
    ring-user-createCreate (email, name, role)
    ring-user-updateUpdate (id, data)
    ring-user-set-roleSet role (id, role, confirm)
    ring-user-deleteDelete (id, confirm)
    ToolDescription
    ring-user-listList (role, limit)
    ring-user-getGet by id
    ring-user-createCreate (email, name, role)
    ring-user-updateUpdate (id, data)
    ring-user-set-roleSet role (id, role, confirm)
    ring-user-deleteDelete (id, confirm)
    ToolDescription
    ring-user-listList (role, limit)
    ring-user-getGet by id
    ring-user-createCreate (email, name, role)
    ring-user-updateUpdate (id, data)
    ring-user-set-roleSet role (id, role, confirm)
    ring-user-deleteDelete (id, confirm)

    Credit & payments

    Credit & payments

    Credit & payments

    ToolDescription
    ring-credit-balanceBalance for userId
    ring-credit-historyTransaction history
    ring-credit-add / ring-credit-spendMutations (confirm)
    ring-payment-list / ring-payment-getPayment lookup
    ring-payment-statusUpdate payment status
    ToolDescription
    ring-credit-balanceBalance for userId
    ring-credit-historyTransaction history
    ring-credit-add / ring-credit-spendMutations (confirm)
    ring-payment-list / ring-payment-getPayment lookup
    ring-payment-statusUpdate payment status
    ToolDescription
    ring-credit-balanceBalance for userId
    ring-credit-historyTransaction history
    ring-credit-add / ring-credit-spendMutations (confirm)
    ring-payment-list / ring-payment-getPayment lookup
    ring-payment-statusUpdate payment status

    Notifications & messaging

    Notifications & messaging

    Notifications & messaging

    ToolDescription
    ring-notification-listList for userId
    ring-notify-sendCreate in-app notification
    ring-fcm-sendPush via FCM (confirm)
    ring-conversation-listConversations for userId
    ring-message-sendSend chat message
    ToolDescription
    ring-notification-listList for userId
    ring-notify-sendCreate in-app notification
    ring-fcm-sendPush via FCM (confirm)
    ring-conversation-listConversations for userId
    ring-message-sendSend chat message
    ToolDescription
    ring-notification-listList for userId
    ring-notify-sendCreate in-app notification
    ring-fcm-sendPush via FCM (confirm)
    ring-conversation-listConversations for userId
    ring-message-sendSend chat message

    Configuration

    Ring clone (server)


    Configuration

    Ring clone (server)


    Configuration

    Ring clone (server)

    VariableRequiredDescription
    RING_MCP_SERVICE_TOKENSYesComma-separated bearer tokens
    RING_MCP_SERVICE_USER_IDNoSynthetic actor id (default ring-mcp-service)
    RING_MCP_SERVICE_USER_EMAILNoSynthetic actor email
    RING_MCP_SERVICE_USER_NAMENoDisplay name
    RING_CLONE_NAME / RING_PUBLIC_BASE_URLNoShown in ring-whoami
    VariableRequiredDescription
    RING_MCP_SERVICE_TOKENSYesComma-separated bearer tokens
    RING_MCP_SERVICE_USER_IDNoSynthetic actor id (default ring-mcp-service)
    RING_MCP_SERVICE_USER_EMAILNoSynthetic actor email
    RING_MCP_SERVICE_USER_NAMENoDisplay name
    RING_CLONE_NAME / RING_PUBLIC_BASE_URLNoShown in ring-whoami
    VariableRequiredDescription
    RING_MCP_SERVICE_TOKENSYesComma-separated bearer tokens
    RING_MCP_SERVICE_USER_IDNoSynthetic actor id (default ring-mcp-service)
    RING_MCP_SERVICE_USER_EMAILNoSynthetic actor email
    RING_MCP_SERVICE_USER_NAMENoDisplay name
    RING_CLONE_NAME / RING_PUBLIC_BASE_URLNoShown in ring-whoami

    ring-mcp (MCP client env)

    ring-mcp (MCP client env)

    ring-mcp (MCP client env)

    VariableRequiredDescription
    RING_SERVICE_TOKENYesOne token from RING_MCP_SERVICE_TOKENS
    RING_API_BASE_URLYesClone origin, no trailing slash
    RING_CLONE_NAMENoLabel for operators
    VariableRequiredDescription
    RING_SERVICE_TOKENYesOne token from RING_MCP_SERVICE_TOKENS
    RING_API_BASE_URLYesClone origin, no trailing slash
    RING_CLONE_NAMENoLabel for operators
    VariableRequiredDescription
    RING_SERVICE_TOKENYesOne token from RING_MCP_SERVICE_TOKENS
    RING_API_BASE_URLYesClone origin, no trailing slash
    RING_CLONE_NAMENoLabel for operators

    Multiple clones

    Add separate MCP entries, e.g. ring-mcp-platform and ring-mcp-connect, each with its own RING_API_BASE_URL, token, and RING_CLONE_NAME.


    Architecture notes

    Ring's 130+ user-facing API routes use Auth.js session cookies, not bearer tokens. Retrofitting every route was avoided by introducing /api/mcp/v1/*:

    1. Authorization: Bearer <token> checked against RING_MCP_SERVICE_TOKENS
    2. AsyncLocalStorage injects a SUPERADMIN actor into auth() for that request
    3. Handlers call existing features/*/services/* code
    4. Uniform JSON: { success, data?, error? }

    Source: AI-RING/ring-mcp/ (stdio server), ring-platform.org/app/api/mcp/v1/ (gateway).


    Troubleshooting

    Invalid service token / 401

    • Token in Cursor RING_SERVICE_TOKEN must exactly match one value in Ring RING_MCP_SERVICE_TOKENS
    • Restart Ring after env changes
    • No Bearer prefix in env — the client adds it

    RING_MCP_SERVICE_TOKENS is not configured

    • Set the variable on the Ring app, not only in MCP config

    Multiple clones

    Add separate MCP entries, e.g. ring-mcp-platform and ring-mcp-connect, each with its own RING_API_BASE_URL, token, and RING_CLONE_NAME.


    Architecture notes

    Ring's 130+ user-facing API routes use Auth.js session cookies, not bearer tokens. Retrofitting every route was avoided by introducing /api/mcp/v1/*:

    1. Authorization: Bearer <token> checked against RING_MCP_SERVICE_TOKENS
    2. AsyncLocalStorage injects a SUPERADMIN actor into auth() for that request
    3. Handlers call existing features/*/services/* code
    4. Uniform JSON: { success, data?, error? }

    Source: AI-RING/ring-mcp/ (stdio server), ring-platform.org/app/api/mcp/v1/ (gateway).


    Troubleshooting

    Invalid service token / 401

    • Token in Cursor RING_SERVICE_TOKEN must exactly match one value in Ring RING_MCP_SERVICE_TOKENS
    • Restart Ring after env changes
    • No Bearer prefix in env — the client adds it

    RING_MCP_SERVICE_TOKENS is not configured

    • Set the variable on the Ring app, not only in MCP config

    Multiple clones

    Add separate MCP entries, e.g. ring-mcp-platform and ring-mcp-connect, each with its own RING_API_BASE_URL, token, and RING_CLONE_NAME.


    Architecture notes

    Ring's 130+ user-facing API routes use Auth.js session cookies, not bearer tokens. Retrofitting every route was avoided by introducing /api/mcp/v1/*:

    1. Authorization: Bearer <token> checked against RING_MCP_SERVICE_TOKENS
    2. AsyncLocalStorage injects a SUPERADMIN actor into auth() for that request
    3. Handlers call existing features/*/services/* code
    4. Uniform JSON: { success, data?, error? }

    Source: AI-RING/ring-mcp/ (stdio server), ring-platform.org/app/api/mcp/v1/ (gateway).


    Troubleshooting

    Invalid service token / 401

    • Token in Cursor RING_SERVICE_TOKEN must exactly match one value in Ring RING_MCP_SERVICE_TOKENS
    • Restart Ring after env changes
    • No Bearer prefix in env — the client adds it

    RING_MCP_SERVICE_TOKENS is not configured

    • Set the variable on the Ring app, not only in MCP config

    Connection refused / fetch failed

    • Ring dev server must be running
    • RING_API_BASE_URL must match the clone port (e.g. 3690 for connect-software, not 3000)

    RING_SERVICE_TOKEN is not set

    • Fill RING_SERVICE_TOKEN in .cursor/mcp.json and reload MCP

    Tool works but returns empty data

    • Clone database may be empty — seed dev data or create records via UI first
    • Store requires RING_STORE_ADAPTER=postgresql and migrated schema

    FCM / messaging failures

    • FCM needs Firebase Admin configured on the clone
    • Conversation list uses PostgreSQL conversations collection; legacy Firebase-only chat may differ

    MCP server not listed in Cursor

    • Run node ring-mcp-server.js --test manually
    • Check npm install in AI-RING/ring-mcp
    • Confirm absolute path in args

    Security

    • SUPERADMIN power: service token equals full operator access — treat like a root API key
    • Never commit tokens; use per-environment secrets (k8s secrets, .env.local gitignored)
    • Rotate immediately if leaked
    • Prefer one token per clone per environment (dev/staging/prod)
    • Destructive MCP tools require explicit confirm: true — do not disable this pattern in wrappers

    Connection refused / fetch failed

    • Ring dev server must be running
    • RING_API_BASE_URL must match the clone port (e.g. 3690 for connect-software, not 3000)

    RING_SERVICE_TOKEN is not set

    • Fill RING_SERVICE_TOKEN in .cursor/mcp.json and reload MCP

    Tool works but returns empty data

    • Clone database may be empty — seed dev data or create records via UI first
    • Store requires RING_STORE_ADAPTER=postgresql and migrated schema

    FCM / messaging failures

    • FCM needs Firebase Admin configured on the clone
    • Conversation list uses PostgreSQL conversations collection; legacy Firebase-only chat may differ

    MCP server not listed in Cursor

    • Run node ring-mcp-server.js --test manually
    • Check npm install in AI-RING/ring-mcp
    • Confirm absolute path in args

    Security

    • SUPERADMIN power: service token equals full operator access — treat like a root API key
    • Never commit tokens; use per-environment secrets (k8s secrets, .env.local gitignored)
    • Rotate immediately if leaked
    • Prefer one token per clone per environment (dev/staging/prod)
    • Destructive MCP tools require explicit confirm: true — do not disable this pattern in wrappers

    Connection refused / fetch failed

    • Ring dev server must be running
    • RING_API_BASE_URL must match the clone port (e.g. 3690 for connect-software, not 3000)

    RING_SERVICE_TOKEN is not set

    • Fill RING_SERVICE_TOKEN in .cursor/mcp.json and reload MCP

    Tool works but returns empty data

    • Clone database may be empty — seed dev data or create records via UI first
    • Store requires RING_STORE_ADAPTER=postgresql and migrated schema

    FCM / messaging failures

    • FCM needs Firebase Admin configured on the clone
    • Conversation list uses PostgreSQL conversations collection; legacy Firebase-only chat may differ

    MCP server not listed in Cursor

    • Run node ring-mcp-server.js --test manually
    • Check npm install in AI-RING/ring-mcp
    • Confirm absolute path in args

    Security

    • SUPERADMIN power: service token equals full operator access — treat like a root API key
    • Never commit tokens; use per-environment secrets (k8s secrets, .env.local gitignored)
    • Rotate immediately if leaked
    • Prefer one token per clone per environment (dev/staging/prod)
    • Destructive MCP tools require explicit confirm: true — do not disable this pattern in wrappers

    Development


    Development


    Development

    # List tools
    node AI-RING/ring-mcp/ring-mcp-server.js --test
    
    # HTTP smoke (Ring must be up)
    RING_API_BASE_URL=http://localhost:3000 RING_SERVICE_TOKEN=dev-token \
      npm run smoke --prefix AI-RING/ring-mcp
    
    # curl gateway directly
    curl -s -H "Authorization: Bearer dev-token" \
      http://localhost:3000/api/mcp/v1/meta/health | jq
    # List tools
    node AI-RING/ring-mcp/ring-mcp-server.js --test
    
    # HTTP smoke (Ring must be up)
    RING_API_BASE_URL=http://localhost:3000 RING_SERVICE_TOKEN=dev-token \
      npm run smoke --prefix AI-RING/ring-mcp
    
    # curl gateway directly
    curl -s -H "Authorization: Bearer dev-token" \
      http://localhost:3000/api/mcp/v1/meta/health | jq
    # List tools
    node AI-RING/ring-mcp/ring-mcp-server.js --test
    
    # HTTP smoke (Ring must be up)
    RING_API_BASE_URL=http://localhost:3000 RING_SERVICE_TOKEN=dev-token \
      npm run smoke --prefix AI-RING/ring-mcp
    
    # curl gateway directly
    curl -s -H "Authorization: Bearer dev-token" \
      http://localhost:3000/api/mcp/v1/meta/health | jq

    Related links


    Related links


    Related links

    • Model Context Protocol — intro
    • Cursor MCP docs
    • Twenty CRM MCP Server — similar CRUD + MCP client pattern (reference implementation)
    • Package README: AI-RING/ring-mcp/README.md
    • Package roadmap: AI-RING/ring-mcp/ROADMAP.md
    • Kingdom MCP: legiox-mcp, ringdom-mcp, reggie-mcp (Ringdom-wide, not per-clone)
    • Implementation log: AI-CONTEXT/ring-platform.org/implementations/2026-06-06-ring-mcp-server.json
    • Model Context Protocol — intro
    • Cursor MCP docs
    • Twenty CRM MCP Server — similar CRUD + MCP client pattern (reference implementation)
    • Package README: AI-RING/ring-mcp/README.md
    • Package roadmap: AI-RING/ring-mcp/ROADMAP.md
    • Kingdom MCP: legiox-mcp, ringdom-mcp, reggie-mcp (Ringdom-wide, not per-clone)
    • Implementation log: AI-CONTEXT/ring-platform.org/implementations/2026-06-06-ring-mcp-server.json
    • Model Context Protocol — intro
    • Cursor MCP docs
    • Twenty CRM MCP Server — similar CRUD + MCP client pattern (reference implementation)
    • Package README: AI-RING/ring-mcp/README.md
    • Package roadmap: AI-RING/ring-mcp/ROADMAP.md
    • Kingdom MCP: legiox-mcp, ringdom-mcp, reggie-mcp (Ringdom-wide, not per-clone)
    • Implementation log: AI-CONTEXT/ring-platform.org/implementations/2026-06-06-ring-mcp-server.json
    ,
    "RING_CLONE_NAME": "ring-connect-software"
    }
    }
    id
    confirm
    reason
    ,
    "RING_CLONE_NAME": "ring-connect-software"
    }
    }
    id
    confirm
    reason
    ,
    "RING_CLONE_NAME": "ring-connect-software"
    }
    }
    id
    confirm
    reason