Charming

Servidor MCP Charming: genera y aloja aplicaciones web interactivas a través de MCP.

Documentación

Charming

Servidor MCP de Charming

Charming es un servidor MCP alojado que genera, aloja y actualiza aplicaciones web interactivas. Conéctalo a cualquier cliente de IA compatible con MCP y pídele que cree una aplicación. Recibirás una URL en vivo en segundos.

Conectar

ClienteEndpoint
Claude, Claude Code, Cursor, Codex, Gemini CLI y la mayoría de clientes MCPhttps://charm.ing/mcp
ChatGPThttps://charm.ing/mcp/chatgpt (un clic a través del listado de Charming en el directorio de aplicaciones de ChatGPT; esta cadena de pegado es la alternativa del Modo Desarrollador)

La mayoría de clientes MCP pueden usar esta configuración remota:

{
  "mcpServers": {
    "charming": {
      "url": "https://charm.ing/mcp",
      "type": "streamableHttp"
    }
  }
}

Los endpoints MCP requieren un token de portador, y OAuth con Registro Dinámico de Clientes lo inicia automáticamente: los clientes que lo admiten muestran una pantalla de consentimiento única, sin necesidad de pegar una clave API. La creación anónima sin token está disponible solo en la ruta HTTP. Guía de autenticación: usecharming.com/auth.md.

Para cadenas de pegado por cliente y pasos de configuración, consulta usecharming.com/clients.txt.

Prompt inicial

Una vez que Charming esté conectado, pega esto para iniciar una sesión de construcción:

Help me figure out what to build. Look at what you know about me and suggest 2-3 apps that fit, or ask me up to 3 short questions to find an idea.

Read https://usecharming.com/start.md then help me create my first app.

Herramientas

Charming expone 37 herramientas. Los clientes conectados las descubren automáticamente mediante tools/list.

HerramientaQué hace
create_appAlmacena un módulo creado por un agente (un manifest más routes) con UI y CSS opcionales, y lo renderiza en línea. Requiere un description. Dale al usuario el shareUrl devuelto sin token, nunca el url solo para máquinas.
update_appEdita una aplicación existente reemplazando su módulo/UI/estilos/descripción o aplicando ediciones de cadena exacta, con versionado de concurrencia optimista.
get_appRenderiza una aplicación existente en línea (donde el cliente lo admita) y devuelve sus operaciones API invocables y metadatos.
get_app_sourceDevuelve el módulo, la UI y los estilos persistidos de una aplicación existente, además de su versión actual.
list_appsLista las aplicaciones del llamador más las compartidas con él, de más reciente a más antigua, con el rol, la descripción y las capacidades de cada una.
delete_appElimina permanentemente una aplicación que poseas. Es irreversible y requiere confirmación: falla de forma segura hasta que se vuelva a invocar con confirm: true. Pasa purge_storage: true para también borrar el estado almacenado.
upload_assetAlmacena un recurso estático (imagen, PDF, conjunto de datos) para que el código de la aplicación siga siendo pequeño; se puede leer de vuelta desde el mismo origen.
rename_appCambia el slug de URL de una aplicación. La URL anterior sigue funcionando mediante redirección.
set_remixableMarca una aplicación como remezclable para que los visitantes obtengan su propia copia editable.
unset_remixableDeja de permitir remezclas; las remezclas existentes sobreviven intactas.
set_starter_promptEstablece o borra el prompt precargado en el host de chat cuando un visitante abre una aplicación compartida.
query_appEjecuta una operación de backend de solo lectura dentro de un módulo de aplicación.
mutate_appEjecuta una operación de backend mutante dentro de un módulo de aplicación sin editar código.
submit_feedbackRegistra comentarios creados por agentes (errores, mejoras, informes de fallos) sobre una aplicación.
list_feedbackLista las filas de comentarios de las aplicaciones del llamador, de más reciente a más antigua.
set_handleCambia el identificador del usuario conectado (el primer segmento de sus URLs de aplicación).
share_appInvita a alguien a una aplicación como collaborator (predeterminado), end-user (ejecutar y escribir datos, no puede editar el código fuente) o viewer (solo lectura). Volver a llamarlo con un rol cambia su rol en el lugar.
unshare_appRevoca el acceso de cualquier beneficiario, ya sea que la invitación esté pendiente o ya aceptada.
list_app_sharesLista las invitaciones de compartir activas y pendientes para una de tus aplicaciones.
set_publicHace pública una aplicación: cualquiera con la URL puede abrirla sin iniciar sesión y leer Y escribir sus datos compartidos. Advierte al usuario de que cada visitante anónimo comparte un único grupo de datos, por lo que cualquiera con la URL puede sobrescribirlo o borrarlo.
unset_publicVuelve a hacer privada una aplicación pública; los visitantes anónimos ya no pueden abrirla.
set_templatePublica una aplicación como plantilla para que cualquiera que abra su URL obtenga su propia copia nueva, dejando la original intacta. Pasa listed: true para también listarla en el directorio público. Omitir listed deja el estado actual del listado sin cambios. La aplicación debe estar reclamada primero.
unset_templateDeja de tratar una aplicación como plantilla: los nuevos visitantes ya no pueden copiarla y se borra cualquier listado público. Las copias existentes sobreviven.
search_templatesBusca en el directorio público de plantillas de Charming por palabra clave. Revisa aquí si existe una plantilla antes de llamar a create_app, o cuando el usuario pregunte qué plantillas existen. Cada resultado lleva un copyUrl que un visitante puede abrir para crear su propia copia independiente sin iniciar sesión.
acknowledge_feedback_responsesConfirma las respuestas a comentarios después de que el agente las haya procesado.
cancel_app_buildÚsalo para cancelar una construcción de aplicación aceptada antes de que se publique.
create_routineÚsalo cuando el usuario quiera que una operación de aplicación se ejecute por sí sola, con un temporizador, sin necesidad de tener un chat abierto.
delete_routineÚsalo para detener y eliminar una Rutina.
get_app_buildÚsalo para inspeccionar una construcción de aplicación aceptada sin ejecutarla ni publicarla.
list_feedback_responsesObtiene las respuestas no leídas del personal de Charming a los comentarios enviados por esta cuenta autenticada.
list_routinesÚsalo para ver las Rutinas del llamador en todas sus aplicaciones.
read_docsLee la documentación de Charming sin acceso web.
update_routineÚsalo para cambiar el interval de una Rutina, o habilitarla/deshabilitarla.
create_webhookÚsalo cuando un servicio externo (Zapier, un proveedor de pagos, un backend de socio) necesite llamar directamente a una de las operaciones de una aplicación.
delete_webhookÚsalo para eliminar un Webhook.
list_webhooksÚsalo para ver los Webhooks en cada aplicación que el llamador pueda editar, con el estado de entrega.
update_webhookÚsalo para renombrar un Webhook, habilitarlo/deshabilitarlo o rotar su secreto.

Uso con un agente de codificación

¿Trabajas en Codex, Claude Code, Cursor u otro agente de codificación de IA? Instala la habilidad opcional de autoría de Charming desde skills.sh con npx skills add tambo-labs/charming-mcp. Esto instala la guía de autoría; no conecta el servidor MCP.

Le enseña al agente el contrato de construcción y el flujo de trabajo de Charming. La habilidad en sí es SKILL.md; AGENTS.md tiene instrucciones de conexión y autoría para cualquier agente de codificación de IA. Los usuarios de Codex pueden instalar en su lugar el plugin de Charming para Codex incluido.

Cursor

Cursor lee las reglas del proyecto desde .cursor/rules/. Coloca .cursor/rules/charming.mdc en tu proyecto (o copia su contenido en un .cursorrules raíz heredado) y el agente de Cursor recurrirá a Charming (URL real, almacenamiento y renderizado en línea) cada vez que pidas una aplicación que quieras conservar. La regla apunta a los documentos servidos; no duplica el contrato.

Distribución

Este repositorio es la fuente canónica de cada paquete público de integración de Charming. Los artefactos independientes de plataforma se editan a mano; los adaptadores de plataforma se generan a partir de ellos, por lo que un dato vive exactamente en un archivo.

TipoArtefacto
Independiente de plataforma (edita estos)canonical/facts.json, SKILL.md, AGENTS.md, .cursor/rules/charming.mdc, charming-icon.png
Adaptador (generado)plugins/cursor/charming, plugins/claude-code/charming, plugins/codex/charming, plugins/agent-plugins/charming (un paquete portátil de Agent Plugins v1.0.0), gemini-extension.json, GEMINI.md, los tres catálogos de marketplace
npm ci                                   # install ajv, the schema validator
node scripts/build-packages.mjs          # regenerate every adapter
node scripts/build-packages.mjs --check  # fail on drift (runs in CI)

Los adaptadores aún no se publican; la publicación de cada uno se rastrea por separado. Consulta DISTRIBUTION.md para ver la estructura, las comprobaciones de desviación y cómo el monorepo de Charming propone cambios aquí.

Documentación

Editor

Publicado por Tambo.