Token导航 LogoToken导航TokenDH.com
Smarteros MCP Cloudflare logo
运维云端未说明官方级别未说明来源级核验

Smarteros MCP Cloudflare

MCP Server

一个用于自动管理Cloudflare子域名的模块,支持创建、验证和删除子域名,并与Supabase同步。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
TypeScript云端部署Docker

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

SmarterCL

提供方

SmarterCL

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

=========================================================

SMARTEROS MCP CLOUDFLARE

=========================================================

Módulo MCP para gestión automática de subdominios en Cloudflare.

Propietario: SmarterMCP (tenant raíz) Función: Provisionar subdominios dinámicos para tenants de SmarterOS


🎯 Funcionalidad

Este módulo permite:

Crear subdominios automáticamente para cada tenant ✅ Validar disponibilidad antes de crear ✅ Eliminar subdominios cuando un tenant se da de baja ✅ Sincronizar con Supabase (tabla tenant_domains) ✅ Health checks para verificar conectividad


📦 Instalación

cd /root/smarteros-mcp-cloudflare
npm install
npm run build

⚙️ Configuración

  1. Copiar archivo de ejemplo:
cp .env.example .env
  1. Configurar credenciales en .env:
CLOUDFLARE_API_TOKEN=your_token_here
CLOUDFLARE_ZONE_ID=your_zone_id
CLOUDFLARE_ACCOUNT_ID=your_account_id

PRIMARY_DOMAIN=smarterbot.cl
SECONDARY_DOMAIN=smos.cl

SUPABASE_URL=https://rjfcmmzjlguiititkmyh.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your_key_here

SMARTERMCP_TENANT_ID=3db1a82a-028b-48c5-b20f-da873724c069
  1. Obtener credenciales de Cloudflare:
  • Ve a: https://dash.cloudflare.com/profile/api-tokens
  • Crea un token con permisos:

- Zone.DNS → Edit - Zone.Zone → Read

  • Copia el API Token
  • Copia el Zone ID desde la página de tu dominio

🧪 Testing

Test de conexión

npm run test

Esto verifica:

  • ✅ Conectividad con Cloudflare
  • ✅ Acceso a la zona DNS
  • ✅ Conexión con Supabase
  • ✅ Validación de dominios

Provisionar tenant (dry run)

npm run provision -- --tenant=TENANT_ID --slug=company-name --dry-run

Ejemplo real:

npm run provision -- \
  --tenant=d2f2a7e0-c328-41e7-babf-1788cccbc0a5 \
  --slug=nunex \
  --domain=smarterbot.cl \
  --dry-run

Provisionar tenant (producción)

npm run provision -- --tenant=TENANT_ID --slug=company-name

🔌 Uso programático

import { CloudflareMCP } from '@smarteros/mcp-cloudflare';

const config = {
  apiToken: process.env.CLOUDFLARE_API_TOKEN!,
  zoneId: process.env.CLOUDFLARE_ZONE_ID!,
  accountId: process.env.CLOUDFLARE_ACCOUNT_ID!,
  primaryDomain: 'smarterbot.cl',
};

const mcp = new CloudflareMCP(
  config,
  process.env.SUPABASE_URL!,
  process.env.SUPABASE_SERVICE_ROLE_KEY!
);

// Crear subdominio
const result = await mcp.createTenantSubdomain({
  tenantId: 'uuid-here',
  tenantSlug: 'mycompany',
  domain: 'smarterbot.cl',
  type: 'CNAME',
  target: 'smarterbot.cl',
  proxied: true,
});

console.log(result);
// {
//   success: true,
//   subdomain: 'mycompany.smarterbot.cl',
//   recordId: 'cloudflare-record-id',
//   metadata: { ... }
// }

📡 API REST (Integración con tenant-api)

POST /api/tenant/provision-domain

Request:

{
  "tenant_id": "d2f2a7e0-c328-41e7-babf-1788cccbc0a5",
  "slug": "nunex",
  "domain": "smarterbot.cl"
}

Response:

{
  "success": true,
  "subdomain": "nunex.smarterbot.cl",
  "record_id": "abc123...",
  "metadata": {
    "created_at": "2025-11-30T12:00:00Z",
    "tenant_id": "d2f2a7e0-c328-41e7-babf-1788cccbc0a5",
    "proxied": true,
    "ttl": 3600
  }
}

🔄 Integración con N8N

Puedes crear un workflow de onboarding que:

  1. Recibe signup desde Supabase Auth
  2. Crea tenant en la base de datos
  3. Llama al MCP para crear subdominio
  4. Registra en tenant_domains
  5. Notifica por WhatsApp/Telegram

Endpoint N8N:

POST https://n8n.smarterbot.cl/webhook/provision-tenant

Payload:

{
  "tenant_id": "uuid",
  "slug": "company-name",
  "email": "user@company.com"
}

🗂️ Estructura de archivos

smarteros-mcp-cloudflare/
├── src/
│   └── index.ts          # Lógica principal del MCP
├── types/
│   └── index.ts          # Type definitions
├── scripts/
│   ├── test-connection.js    # Test de conectividad
│   └── provision-tenant.js   # CLI para provisionar
├── config/
├── .env.example          # Plantilla de configuración
├── package.json
├── tsconfig.json
└── README.md

🔐 Seguridad

  • API Token limitado (solo DNS Write + Zone Read)
  • Service Role Key de Supabase (nunca expuesto a frontend)
  • Validación de formato y blacklist de subdominios
  • Dry run mode para testing sin riesgo
  • Logs detallados para auditoría

🚀 Próximos pasos

Cuando tengas el API Token listo:

# 1. Configurar .env
nano .env

# 2. Test de conexión
npm run test

# 3. Provisionar tenant demo
npm run provision -- \
  --tenant=d2f2a7e0-c328-41e7-babf-1788cccbc0a5 \
  --slug=demo

# 4. Integrar con tenant-api
# (agregar endpoint /api/tenant/provision-domain)

# 5. Conectar con N8N onboarding
# (webhook para provisión automática)

📚 Recursos


📝 Notas

  • Este módulo NO debe ser público en repos
  • El API Token tiene permisos limitados (principio de menor privilegio)
  • Los subdominios se crean con Cloudflare Proxy activado (protección DDoS)
  • TTL default: 3600s (1 hora)
  • El sistema soporta dry-run para testing seguro

Status: Listo para activar cuando tengas el API Token 🔧 Propietario: SmarterMCP 📅 Última actualización: 2025-11-30

目录标签

目录标签

TypeScript云端部署Docker子域名管理本地部署Cloudflare集成自动配置Supabase同步DNS管理

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP