Fillo

Infraestructura de formularios headless: los formularios se renderizan de forma nativa en tu producto (sin iframe), los archivos se suben directamente desde el navegador al almacenamiento que posees, y un agente de codificación puede aprovisionarlos, publicarlos y consultarlos a través de MCP.

Documentación

Fillo — forms inside your product, with your UI.

Docs · Guías · Agentes · Registro de cambios

npm version MIT license

El servidor MCP de Fillo. Le da a un agente de codificación el ciclo completo de Fillo — aprovisionar un espacio de trabajo, generar un formulario en el repositorio anfitrión, publicarlo y consultar sus respuestas — sin salir de la sesión, autenticado exactamente como un usuario humano de CLI.

Instalación

Un clic, si tu editor lo admite:

Add to Cursor Add to VS Code

Claude Code:

claude mcp add fillo -- npx -y @usefillo/mcp

Cualquier otro cliente MCP: ejecuta npx -y @usefillo/mcp sobre stdio. Configura FILLO_API para apuntar a un despliegue que no sea de producción.

Credenciales

El servidor lee las mismas credenciales que la CLI escribe en ~/.fillo/config.json, o desde el entorno:

  • FILLO_TOKEN — un token de inicio de sesión de fcli_… (de npx @usefillo/cli login). Herramientas autenticadas (fillo_list_forms, fillo_publish_form y envíos confiables a un espacio de trabajo reclamado), además de la selección local de proyectos con un inicio de sesión ordinario. Los envíos de solicitudes de archivos permanecen en borrador/en etapa de revisión.
  • FILLO_PK — una clave publicable de pk_…. fillo_provision_workspace genera una y la guarda por ti.
  • FILLO_API_KEY — una clave de API de proyecto de fsk_…, generada en Configuración → Conexiones de un espacio de trabajo reclamado. Requerida por las herramientas de respuestas.
  • FILLO_API — anula el origen (por defecto https://fillo.so).
  • FILLO_CONFIG_DIR — anula el directorio de configuración (por defecto ~/.fillo).

El servidor nunca imprime tokens de inicio de sesión, claves de API o tokens de reclamo en la transcripción. La clave publicable de pk_ es segura de mostrar (vive en el código del navegador), por lo que fillo_provision_workspace la devuelve para que la conectes al entorno público de la aplicación. El aprovisionamiento también hace que ese proyecto temporal sea el contexto MCP local activo, por lo que un inicio de sesión de cuenta guardado más antiguo no puede recibir el siguiente envío. Seleccionar un proyecto cambia el contexto de vuelta a la cuenta.

Herramientas

HerramientaAutenticaciónQué hace
fillo_provision_workspaceninguna (necesita un correo electrónico)Crea un espacio de trabajo de vista previa no reclamado, devuelve su clave pk_ y límites, y envía por correo su enlace de reclamo.
fillo_whoamitoken de inicio de sesión o pk_Informa la credencial activa, el espacio de trabajo y el proyecto.
fillo_list_projectstoken de inicio de sesión ordinarioLista los proyectos en el espacio de trabajo actual y marca la selección actual.
fillo_create_projecttoken de inicio de sesión ordinarioCrea y selecciona un proyecto aislado y guarda su clave pk_.
fillo_select_projecttoken de inicio de sesión ordinarioSelecciona por id, slug o nombre exacto único y actualiza el estado local del proyecto.
fillo_push_formtoken de inicio de sesión o pk_Crea o actualiza un formulario y publica por defecto; configura publish: false con un token de inicio de sesión para flujos de revisión explícitos. Las solicitudes de archivos bloqueadas por almacenamiento permanecen en borrador.
fillo_publish_formtoken de inicio de sesiónLleva un borrador o cambios en etapa a producción después de la revisión; devuelve el enlace exacto de configuración de almacenamiento cuando está bloqueado.
fillo_list_formstoken de inicio de sesiónLista los formularios del proyecto.
fillo_get_formninguna (publicado)Obtiene el esquema, tema y capacidades de un formulario publicado.
fillo_search_examplesningunaBusca en la biblioteca de ejemplos curada de Fillo.
fillo_docsningunaObtiene una página de documentación de Fillo como Markdown por tema.
fillo_list_responsestoken de inicio de sesión o clave fsk_Lista las respuestas aceptadas de un formulario (solo espacios de trabajo reclamados).
fillo_search_library / fillo_get_library_formningunaBusca y lee la biblioteca pública de formularios.
fillo_get_responseclave de API fsk_Obtiene una respuesta (solo espacios de trabajo reclamados).
fillo_response_summaryclave de API fsk_Resume las respuestas de un formulario sin leer cada fila (solo espacios de trabajo reclamados).
fillo_claim_statuspk_Informa los límites del espacio de trabajo aprovisionado y la fecha límite de reclamo.

Gestión de un espacio de trabajo reclamado

Todo lo que un miembro puede hacer en el panel de Fillo también tiene una herramienta, con el MISMO NOMBRE que usa el servidor MCP alojado de Fillo — un nombre, una capacidad, cualquier servidor al que tu agente haya llegado. Cada una llama a la ruta HTTP que llama la CLI de Fillo: tu token de inicio de sesión fcli_ cuando lo tienes (npx @usefillo/cli login o FILLO_TOKEN), de lo contrario una clave de API de proyecto fsk_ en FILLO_API_KEY que lleva el alcance nombrado. Con ambos, el token de inicio de sesión gana — una clave no tiene un humano actuante.

ÁreaHerramientasAlcance
Ciclo de vida del formulariofillo_pull_form, fillo_rename_form, fillo_duplicate_form, fillo_unpublish_form, fillo_discard_changes, fillo_delete_form, fillo_list_versionsforms:read, forms:write
Logotipofillo_import_logo — descarga un PNG, JPEG o WebP desde una URL https pública; coloca el id devuelto en el logo o dark.logo del temaforms:write
Cargasfillo_get_storage, fillo_set_storage, fillo_list_drive_folders, fillo_set_drive_folder, fillo_reset_drive_folderstorage:manage
Configuraciónfillo_get_settings, fillo_update_settingssettings:manage (más forms:write para las claves de presentación)
Destinosfillo_get_integration, fillo_enable_integration, fillo_disable_integration, fillo_list_connections, fillo_select_connection, fillo_disconnect_integration, fillo_remove_connection_account, fillo_rename_discord_channel, fillo_hubspot_properties, fillo_hubspot_pipelinesintegrations:manage
Respuestas y entregafillo_list_held_responses, fillo_release_responses, fillo_delete_response, fillo_delivery_status, fillo_retry_deliveries, fillo_redeliver_responses, fillo_list_drafts, fillo_form_insights, fillo_list_respondents, fillo_delete_respondentresponses:manage, respondents:*; fillo_form_insights necesita forms:read y responses:read
Webhooksfillo_list_webhooks, fillo_add_webhook, fillo_update_webhook, fillo_remove_webhookwebhooks:manage
Espacio de trabajofillo_rename_workspace, fillo_rename_project, fillo_get_branding, fillo_set_branding, fillo_get_billing, fillo_list_members, fillo_invite_member, fillo_change_member_role, fillo_remove_memberworkspace:manage, members:manage
Credencialesfillo_list_tokens, fillo_revoke_token, fillo_list_sync_tokens, fillo_create_sync_token, fillo_revoke_sync_token, fillo_list_api_keys, fillo_revoke_api_key, fillo_list_agents, fillo_revoke_agentworkspace:manage
Configuración de desarrolladorfillo_get_code_sync_policy, fillo_set_code_sync_policy, fillo_get_origins, fillo_set_origins, fillo_identity_status, fillo_enable_identity, fillo_disable_identityworkspace:manage

fillo_delete_form, fillo_get_branding, fillo_set_branding, fillo_get_billing, fillo_list_api_keys y fillo_revoke_api_key necesitan un token de inicio de sesión — no hay ruta de clave de API de proyecto para ellos, por lo que una clave filtrada nunca puede enumerar o revocar las credenciales del espacio de trabajo ni leer su plan. fillo_get_billing es de solo lectura: informa el plan y el uso de este mes y devuelve el enlace de Configuración, pero ninguna herramienta puede suscribirse, cambiar el plan o abrir el pago — un propietario o administrador lo hace en Configuración → Facturación y plan. fillo_delete_response también necesita uno, por una razón diferente: su ruta con alcance no toma confirmación escrita, por lo que en una clave de API de proyecto la confirmación sería verificada solo por el llamador, lo que no es ninguna confirmación.

La URL de destino de un webhook es una credencial — la ruta de un gancho de captura de Zapier o un webhook de n8n es lo que autoriza publicar en él — por lo que fillo_delivery_status nombra destinos sin deletrearlos: los ganchos propiedad del conector vuelven como "Zapier" o "n8n", y otros webhooks como su host más una huella corta de la ruta. Lee la URL completa en la página de Actividad del panel.

La capa humana

Las acciones rutinarias y reversibles se ejecutan solo con la credencial. Dos tipos no lo hacen:

  • Hacia afuera — despublicar, iniciar un destino de terceros, agregar un webhook, liberar o reenviar respuestas, invitar a un miembro o cambiar un rol, una política de sincronización de código, los orígenes permitidos o la verificación de identidad. Estas toman confirm: true, y la herramienta se niega sin él con un mensaje que le dice al modelo que pregunte primero a una persona. Nada ha cambiado cuando se niega. Publicar es la excepción en este servidor: fillo_push_form y fillo_publish_form no toman confirm, porque un token de inicio de sesión ES la persona que ejecutó fillo login en esta máquina — la misma razón por la que fillo publish se ejecuta sin una bandera. El servidor OAuth alojado, donde la concesión pertenece a un agente en lugar de a ti, es lo que limita la publicación detrás de un enlace de aprobación.
  • Destructivas — eliminar un formulario, una respuesta o un encuestado, quitar un miembro o una cuenta de integración, desconectar un proveedor o un servidor de Discord, revocar un token, token de sincronización, clave de API o concesión MCP, desactivar la verificación de identidad. Estas toman confirm como una cadena que debe coincidir exactamente con el objetivo — el correo de un miembro, un id de token, un id de respuesta — y el servidor lo compara, por lo que una suposición es un 409 que cita el valor para reintentar.

Un secreto que Fillo genera una vez (un secreto de firma de webhook, un token fsync_, un secreto de verificación de identidad) se devuelve en ese único resultado de herramienta y nunca más. Guárdalo en un gestor de secretos; nunca se escribe en un registro.

Las anotaciones de escritura usan la pista conservadora del peor caso porque un envío puede reemplazar el estado de borrador y una publicación puede reemplazar el esquema público, y openWorldHint marca exactamente las acciones cuyo efecto deja el espacio de trabajo. Cada herramienta es un envoltorio delgado sobre la API HTTP pública de Fillo — el servidor nunca toca la base de datos e importa ningún código de aplicación, por lo que el alcance del espacio de trabajo, los límites de velocidad, la autorización y la validación permanecen en un solo lugar.

Las tres herramientas de proyecto son solo locales y requieren el token general generado por fillo login. Una entrega específica del proyecto y una concesión OAuth remota-MCP alojada permanecen fijadas al proyecto que un humano aprobó. Seleccionar localmente también limpia el estado de vista previa en caché y fsk_ del proyecto anterior; reemplaza cualquier anulación de entorno FILLO_PK o FILLO_API_KEY tú mismo.

Los proyectos son sitios/aplicaciones bajo un espacio de trabajo facturado. Aíslan formularios, claves publicables/API, orígenes permitidos, identidades de encuestados y autoridad del agente. La membresía del espacio de trabajo, la facturación, las conexiones de almacenamiento y los totales de uso permanecen compartidos.

Enlaces

Licencia MIT.