Octopus.do

Lee y edita los mapas visuales de octopus.do: páginas, bloques y notas de revisión, como el usuario con sesión iniciada.

Documentación

Una vez conectado, tu agente puede:

  • Ver tu trabajo — listar tus proyectos y espacios de trabajo, y leer la estructura completa de un sitemap (páginas, bloques, colores, etiquetas, símbolos).
  • Crear y editar sitemaps — crear y actualizar páginas, añadir bloques de contenido con wireframes, reestructurar el árbol de páginas, aplicar varios cambios a la vez como una única actualización atómica.
  • Leer y dejar notas de revisión — leer los comentarios en páginas y bloques y los hilos anclados al lienzo, añadir notas y respuestas, y resolver o reabrir un hilo. Una nota dejada por un agente se atribuye a tu cuenta y se ve exactamente igual que una escrita por ti, y publicarla no notifica a nadie.
  • Gestionar proyectos — crear, duplicar, archivar, mover proyectos; transferir la propiedad; actualizar la configuración del proyecto como el tema y el diseño. Los proyectos no se pueden eliminar a través de MCP — el archivado es lo máximo que puede hacer un agente, y los archivos son reversibles.

Cada acción se ejecuta como — el agente solo ve y cambia lo que tu cuenta de Octopus.do tiene acceso.

Conexión

Endpoint

https://mcp.octopus.do/mcp

El flujo general es el mismo en todos los clientes:

  1. Añade Octopus como servidor MCP remoto / conector usando el endpoint anterior.
  2. Elige OAuth como tipo de autorización — la mayoría de los clientes lo detectan automáticamente.
  3. Inicia sesión (o regístrate) con tu cuenta de Octopus.do cuando se abra el navegador.
  4. Pide a tu agente que haga algo — por ejemplo, "muestra mis proyectos de Octopus" o "añade una página de precios a mi sitemap."

No hay claves API que copiar o gestionar — la autorización ocurre a través de tu inicio de sesión normal de Octopus.do. Instrucciones específicas por cliente a continuación.

Claude (web y escritorio)

  1. Ve a Configuración → Conectores → Añadir conector personalizado.
  2. Introduce https://mcp.octopus.do/mcp como URL y haz clic en Añadir.
  3. Haz clic en Conectar e inicia sesión con tu cuenta de Octopus.do.

Claude Code

Ejecuta en tu terminal:

claude mcp add --transport http octopus https://mcp.octopus.do/mcp

Luego ejecuta /mcp dentro de Claude Code para completar el inicio de sesión.

Cursor

Añade Octopus.do a Cursor — abre Cursor con el servidor ya rellenado.

O añádelo manualmente a ~/.cursor/mcp.json (usa .cursor/mcp.json para limitarlo a un proyecto):

{
  "mcpServers": {
    "octopus": {
      "url": "https://mcp.octopus.do/mcp"
    }
  }
}

Cursor te pedirá que te autentiques la primera vez que se use el servidor.

VS Code (GitHub Copilot)

Ejecuta MCP: Añadir servidor desde la Paleta de comandos y elige HTTP, o añádelo a .vscode/mcp.json:

{
  "servers": {
    "octopus": {
      "type": "http",
      "url": "https://mcp.octopus.do/mcp"
    }
  }
}

ChatGPT

Octopus.do está publicado en el directorio de aplicaciones de ChatGPT: busca Octopus.do en Configuración → Aplicaciones y conectores y pulsa Conectar. Requiere ChatGPT Plus o superior. Guía completa: Octopus.do para ChatGPT.

Para añadir el endpoint MCP manualmente — para un entorno de desarrollo, o un espacio de trabajo donde la aplicación no esté disponible — activa el modo desarrollador (Configuración → Aplicaciones y conectores → Configuración avanzada) y:

  1. Ve a Configuración → Aplicaciones y conectores → Crear (o Añadir conector).
  2. Establece la URL del servidor MCP en https://mcp.octopus.do/mcp y la autenticación en OAuth.
  3. Completa el inicio de sesión de Octopus.do cuando se te solicite.

Windsurf

Añade a ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "octopus": {
      "serverUrl": "https://mcp.octopus.do/mcp"
    }
  }
}

Grok

  1. Abre grok.com → Conectores, haz clic en Nuevo conector, luego Personalizado.
  2. Introduce https://mcp.octopus.do/mcp como URL del servidor MCP.
  3. Completa el inicio de sesión de Octopus.do cuando se te solicite.

Los conectores personalizados son una función de plan de pago en Grok. En los planes Business y Enterprise, un administrador del equipo debe aprovisionar el conector en la consola en la nube de xAI antes de que los miembros puedan añadirlo.

Gemini

  1. Abre gemini.google.com → Configuración y ayuda → Aplicaciones conectadas.
  2. En Aplicaciones personalizadas para Spark, añade https://mcp.octopus.do/mcp como URL del servidor MCP.
  3. Completa el inicio de sesión de Octopus.do cuando se te solicite.

Las aplicaciones personalizadas requieren Gemini Spark en una cuenta personal de Google — las cuentas de Workspace no pueden añadirlas — y Google actualmente limita la función a usuarios en Estados Unidos, en inglés, desde la aplicación web de Gemini. Una vez conectado, también funciona en las aplicaciones móviles.

Otros clientes MCP

Cualquier cliente que admita servidores MCP remotos (Streamable HTTP) con OAuth funciona: apúntalo a https://mcp.octopus.do/mcp, elige OAuth e inicia sesión con tu cuenta de Octopus.do.

Autenticación

Octopus MCP usa OAuth 2.1, el estándar que los clientes MCP usan para la autorización segura por usuario. Tu agente solicita acceso en tu nombre, lo apruebas una vez durante el inicio de sesión, y el acceso se puede revocar desde tu cuenta de Octopus.do en cualquier momento. El propio servidor MCP nunca ve ni almacena tu contraseña.

Herramientas disponibles

Tu agente elige estas herramientas por sí mismo — no las llamas directamente. La referencia a continuación es útil cuando quieres saber exactamente qué puede (y no puede) hacer el agente, o para formular una solicitud con precisión.

La mayoría de las herramientas de escritura aceptan un idempotency_key opcional (cadena): una clave única que hace que los reintentos sean seguros — una solicitud repetida con la misma clave se aplica solo una vez. Se omite de las tablas a continuación.

Las acciones destructivas (como eliminar una página, un bloque o un comentario) se marcan para tu cliente de IA, que normalmente te pedirá confirmación antes de ejecutarlas.

Lectura

get_me

Devuelve el nombre de tu cuenta. Sin parámetros.

list_projects

Lista los proyectos a los que puedes acceder, en todos los espacios de trabajo (personales y de equipo), ordenados por más recientemente actualizados primero. Cada elemento incluye el espacio de trabajo al que pertenece. Una página a la vez: total es cuántos coincidieron y has_more si quedó alguno fuera. Para encontrar un proyecto por nombre usa q en lugar de paginar — busca en todos los proyectos de la cuenta, no solo en la página actual.

CampoObligatorioTipoDescripción
qNocadenaSolo proyectos cuyo título contenga esto, sin distinguir mayúsculas
workspace_uuidNocadenaSolo este espacio de trabajo. Usa el literal "my" para tu espacio de trabajo personal
limitNonúmeroCuántos devolver, 1–200 (por defecto 50)
offsetNonúmeroCuántos omitir; para paginar

list_workspaces

Lista tus espacios de trabajo (personal + equipos) con sus carpetas y los 10 proyectos más recientemente actualizados en cada uno — project_count da el total real, y list_projects busca y pagina por el resto. Sin parámetros.

get_workspace

Devuelve un espacio de trabajo: información, carpetas y proyectos.

CampoObligatorioTipoDescripción
uuidcadenaUUID del espacio de trabajo. Usa el literal "my" para tu espacio de trabajo personal.

get_project

Devuelve el estado de un proyecto: las entidades (pestañas, secciones, nodos = páginas, bloques, colores, etiquetas, símbolos, flechas, …) y el árbol padre/hijo que las conecta. Un sitemap completo es una lectura grande, así que empieza con view: "outline" y reduce aún más con scope_id cuando solo necesites una rama. Los notes de una página vuelven en camelCase (seoTitle, pageIntent) aunque las escrituras los nombran en snake_case — ver Nombres de campos de notas.

En el plan Team, un espacio de trabajo puede mantener una biblioteca de símbolos compartida, y los proyectos referencian símbolos de ella en lugar de poseerlos. Esas referencias vuelven resueltas — el símbolo se lee como cualquier otro, con un libraryId extra que marca dónde viven su título, wireframes y contenido predeterminado. Tal símbolo no se puede editar a través de symbols.update (la llamada se rechaza): es compartido por cada proyecto del espacio de trabajo y se edita en la propia biblioteca, en el editor. Eliminarlo de un proyecto está permitido y deja la biblioteca intacta.

CampoObligatorioTipoDescripción
project_uuidcadenaUUID del proyecto. uuid se acepta como sinónimo, así que una llamada escrita de cualquier manera funciona
viewNoenumoutline (por defecto) — el árbol de páginas con títulos, urls e ids, un orden de magnitud más barato; full — también el contenido de las páginas
scope_idNocadenaLee una rama en lugar del proyecto: un id de pestaña, sección o página. La respuesta lleva la cadena de ancestros, así que la rama mantiene su contexto
excludeNoarrayGrupos de contenido a descartar — blocks, content, notes, styling, tags, estimates, overlays, meta
includeNoarrayGrupos de contenido a añadir de vuelta a la vista predeterminada outline, de la misma lista que excludeinclude: ["estimates"] devuelve el árbol de páginas con la tarjeta de tasa de estimación (los ids lineItems necesarios para escribir valores) sin pagar por view: "full". Se ignora cuando view es full; exclude gana en un grupo nombrado en ambos
formatNoenumnested (por defecto) — el árbol; plain — colecciones planas más el grafo de relaciones

list_comments

Lee las notas de revisión en un proyecto. Hay dos tipos y una sola llamada devuelve ambos: comentarios planos dejados en páginas y en bloques de contenido (las respuestas de hilos también son comentarios), y hilos de lienzo — los pines en el lienzo del sitemap, que llevan una posición y un estado abierto/resuelto. El resultado tiene un array comments y un array threads; el que no se pidió vuelve vacío. Los hilos por defecto son los abiertos, así que la respuesta predeterminada es lo que aún está pendiente en lugar de todo lo escrito alguna vez.

La falta de acceso se muestra de manera diferente según lo que se pidió. Una llamada predeterminada lee ambas mitades, y la mitad de hilos se rechaza por completo, así que toda la llamada falla y lo dice. Una llamada solo de comentarios (un kind de page, block o reply) obtiene una lista vacía en su lugar — el endpoint subyacente responde 200 con nada en lugar de un 403, y ningún llamador puede distinguir eso de un proyecto que simplemente no tiene notas.

Ambas mitades nombran a qué apuntan: el target de un comentario y el anchor de un hilo llevan un title junto al id, así que una nota se puede leer sin descargar todo el proyecto para buscar el id. Para una página o una pestaña es su título; para un bloque es el nombre del bloque. title es null en cuatro casos ordinarios, ninguno de ellos un error: el pin es huérfano (abajo); la nota es una respuesta, cuyo objetivo es un hilo y los hilos no tienen título propio; la página simplemente no tiene título; o el árbol del proyecto no se pudo leer, lo que cuesta los títulos y nada más — una llamada solo de comentarios en un proyecto que no puedes leer aún responde con una lista vacía en lugar de un error, exactamente como antes.

Un anchor.type de null en un hilo significa que la página o pestaña a la que estaba anclado se ha eliminado y el pin le sobrevivió — los pines huérfanos son normales. content es markdown, sea cual sea el formato en que el editor almacenó la nota, así que el asistente lee una nota de revisión como texto en lugar de como un documento de editor. author es { id, name, avatar } — el nombre y la foto del escritor junto a un id estable, y null cuando la nota fue dejada por un comentarista anónimo; la url del avatar es pública. En un comentario anónimo, guest_name es el nombre que el visitante escribió para sí mismo — no verificado, así que se le dice al asistente que diga "alguien que se llama X" en lugar de "X" — o null cuando no dio ninguno. Un hilo lo lleva en los mismos términos que un comentario — se le pide un nombre al visitante cuando suelta el pin — y es null en pines soltados antes de que el editor empezara a preguntar, lo que se lee igual que un visitante que no dio ninguno.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
kindNoenumpage | block | reply | thread. Omítelo para comentarios de todo tipo e hilos juntos; thread devuelve solo hilos
target_idNostringSolo notas sobre este id: un id de página, un id de bloque o un id de hilo, que devuelve las respuestas de ese hilo
resolvedNobooleanSolo hilos. Omítelo para los hilos abiertos, true para los resueltos
include_repliesNobooleanIncrusta las respuestas de cada hilo dentro del hilo (por defecto false)

Edición

apply_changes

Aplica varias operaciones de edición a un proyecto como un cambio atómico — la forma preferida de construir o reestructurar un mapa del sitio. Las operaciones se ejecutan en orden y cada una ve el efecto de las anteriores. Asigna a una entidad creada un ref y refiérela en operaciones posteriores mediante parent_ref / node_ref en lugar de un id.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
operationsarrayAl menos una operación (ver más abajo)
dry_runNobooleanSolo validar y previsualizar: no se cambia nada
idempotency_keyNostringRepetir una llamada con la misma clave la aplica una sola vez

Cada operación:

CampoObligatorioTipoDescripción
operationstringNombre de la operación, p. ej. "nodes.create"
refNostringNombre local para la entidad creada, referenciado por operaciones posteriores mediante campos *_ref
dataNoobjectCarga útil de la operación: los mismos campos que la herramienta independiente correspondiente

Hay dos límites en un lote, y solo uno es nuestro. La API limita una llamada a 100 operaciones. Por separado, el cliente de IA que aloja la conexión limita el tamaño de los argumentos de una sola llamada de herramienta, y a partir de aproximadamente 15–20 KB de JSON algunos clientes los truncan. Una llamada truncada no llega como un lote más pequeño: llega como JSON roto, y el error dice que los argumentos no se pudieron analizar como JSON. Eso no es un error de sintaxis en lo que enviaste, y reintentarlo sin cambios no ayudará: divide el trabajo en varios lotes más pequeños por tamaño, no solo por número de operaciones. No hay límite de bytes en el lado de Octopus, por lo que el límite exacto depende del cliente.

Una respuesta exitosa también puede incluir warnings: notas informativas, como una página cuya URL no está bajo la ruta de su padre. Nada fue bloqueado y no se necesita reintento; están ahí para leerse, no para actuar automáticamente sobre ellas.

Los nombres de las operaciones siguen group.action:

GrupoAcciones
nodescreate, update, move, delete, clone, collapse, replace_url_prefix
sectionscreate, update, delete, clone, collapse, move_up, move_down
tabscreate, update, delete, clone
blockscreate, update, replace_text, move, delete, clone
tagscreate, update, delete, assign_node, unassign_node
colorscreate, update, delete
symbolscreate, update, delete
sticky_notescreate, update, delete, clone
arrowscreate, update, delete
estimatesadd_line_item, update_line_item, delete_line_item, set_value, update_settings
settingsupdate

Ambas mitades del nombre están en snake_case: tags.assign_node, sections.move_up, nodes.replace_url_prefix. El endpoint REST para la misma operación escribe su ruta con guiones (/tags/assign-node); las dos formas no son intercambiables, y una operación nombrada en forma de ruta es rechazada.

Dos de ellas editan muchas entidades desde una sola operación, lo cual vale la pena saber antes de escribir ochenta de algo. nodes.replace_url_prefix {from, to, scope_id?} reescribe el inicio de cada URL de página coincidente; blocks.replace_text {from, to, scope_id?} reemplaza una cadena literal dentro del contenido de un bloque sin reenviar el contenido: la forma de corregir una palabra en todo un sitio. Ambas coinciden literalmente y distinguen mayúsculas y minúsculas en lugar de usar patrones, ambas toman un scope_id (una pestaña, sección o página — y para blocks.replace_text, un solo bloque) que por defecto es todo el proyecto, y ambas fallan si nada coincide en lugar de responder éxito: una reescritura que no afectó nada es algo que debes saber, no algo de lo que pasar por alto. Responden con count y una lista de lo que cambiaron, limitada a 50 entradas y avisando cuando se trunca. blocks.replace_text omite las instancias de símbolos, cuyo contenido pertenece al símbolo, y dice cuántas omitió.

Las estimaciones son editables a través de MCP: estimates.add_line_item y estimates.update_line_item construyen la tarifa, estimates.set_value pone una cantidad de unidades en una página para una de sus filas (la primera llamada para un par página/fila crea el valor, las posteriores lo actualizan), estimates.delete_line_item elimina una fila con los valores por página, y estimates.update_settings establece moneda, unidades, impuestos y visibilidad. Las cinco necesitan que el propietario del proyecto tenga Pro o superior, y hidden — una estimación privada — necesita Team.

La API REST aún tiene algunas operaciones que el servidor MCP deliberadamente no ofrece: reordenamiento de pestañas, vinculación de símbolos y enlaces externos. Siguen disponibles a través de la API pública.

create_node

Crea una página (nodo) en el mapa del sitio.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
parent_idstringId del padre: una pestaña, sección u otro nodo (los ids provienen de get_project)
titleNostringTítulo de la página
color_idNostringId de color del proyecto; por defecto el color predeterminado del proyecto
urlNostringURL/slug de la página mostrado en el nodo
variantNoenumdefault | frame | ghost | stack
after_idNostringColócalo directamente después de este hermano: nombra un vecino en lugar de contar posiciones
before_idNostringColócalo directamente antes de este hermano
indexNonumberPosición absoluta entre los hijos del padre; omítelo para añadir al final

update_node

Actualiza campos de la página.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
idstringId del nodo
titleNostringNuevo título
color_idNostringId de color del proyecto; default lo restablece al color predeterminado del proyecto
urlNostring | nullURL/slug de la página; null lo borra: una cadena vacía es rechazada
variantNoenumdefault | frame | ghost | stack
notesNoobjectCampos de SEO/notas para fusionar: note, keywords, page_intent, seo_title, seo_description, seo_h1, seo_slug, seo_url. Un campo omitido conserva su valor actual. Escrito en snake_case, leído de vuelta en camelCase: ver la tabla a continuación

Los campos de notas se escriben en snake_case y se leen de vuelta en camelCase. Los nombres a la izquierda son los que update_node y la operación por lotes nodes.update aceptan; los nombres a la derecha son los que get_project devuelve dentro del notes de una página:

EscritoLeído de vuelta
notenote
keywordskeywords
page_intentpageIntent
seo_titleseoTitle
seo_descriptionseoDescription
seo_h1seoH1
seo_slugseoSlug
seo_urlseoUrl

Cada par es un solo campo con dos grafías, no dos campos. Una escritura exitosa seguida de una lectura que no muestra seo_title es este mapeo y no datos perdidos: busca seoTitle. Ambas grafías permanecen como están: normalizar cualquiera de los lados rompería los clientes que ya leen la otra.

move_node

Mueve una página con todo su subárbol a otro padre.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
idstringId del nodo a mover
parent_idstringNuevo padre (pestaña, sección o nodo): no el nodo mismo ni su subárbol
after_idNostringColócalo directamente después de este hermano: nombra un vecino en lugar de contar posiciones
before_idNostringColócalo directamente antes de este hermano
indexNonumberPosición entre los hijos del nuevo padre

delete_node

Elimina una página con todo su subárbol y todos los bloques dentro.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
idstringId del nodo

create_block

Crea un bloque de contenido dentro de una página.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
node_idstringId de la página (nodo) en la que se crea el bloque
titleNostringTítulo del bloque
contentNostringContenido de texto del bloque
wireframesNostring[]Nombres de wireframe a renderizar, p. ej. ["header"], ["text"], ["footer"]
color_idNostringId de color del proyecto
indexNonumberPosición dentro de la página; omítelo para añadir al final

update_block

Actualiza campos del bloque.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
idstringId del bloque
titleNostringNuevo título
contentNostringContenido de texto del bloque
color_idNostringId de color del proyecto; default lo restablece al color predeterminado del proyecto
wireframesNostring[]Nombres de wireframe a renderizar
collapsedNobooleanContraer/expandir el bloque
completedNobooleanMarcar el bloque como hecho/no hecho

move_block

Mueve un bloque a otra página.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
idstringId del bloque a mover
node_idstringId de la página (nodo) de destino
indexNonumberPosición dentro de la página de destino

delete_block

Elimina un bloque de su página.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
idstringId del bloque

manage_comment

Añade, elimina, resuelve y reabre comentarios e hilos de lienzo. Una nota añadida de esta manera es creada por la cuenta con la que la conexión está iniciada sesión, sin ningún marcador de ningún tipo — en el editor es indistinguible de una que esa persona escribió — y no notifica a nadie, porque no se envían menciones.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
actionenumadd | delete | resolve | reopen
targetSí (add)objectadd: de qué cuelga la nota — { "type": "page" | "block" | "tab" | "thread", "id": "…" }
contentSí (add)stringadd: el cuerpo de la nota; no debe estar vacío. Envía texto plano — se envuelve en un documento de editor, un párrafo por línea, y se renderiza como esperaría una persona que lo escribe. No construyas ese documento tú mismo; uno que ya tengas se almacena sin cambios
positionNoobjectadd: la posición del pin, { "x": 0, "y": 0 } — proporcionarlo solicita un pin en lugar de una nota simple. Consulta la tabla siguiente
idSí (delete, resolve, reopen)stringEl id del comentario o del hilo sobre el que actuar

Lo que add crea depende del tipo de destino y de si se proporciona un position:

Tipo de destinopositionLo que se crea
pageomitidoUna nota en la página
pageproporcionadoUn pin de lienzo en esa página — un hilo
blockomitidoUna nota en el bloque de contenido
blockproporcionadoRechazado — un bloque nunca puede contener un pin de lienzo. Elimina position, o fija el pin a la página en su lugar
tabcualquieraUn pin de lienzo en el lienzo vacío de esa pestaña — un hilo
threadomitidoUna respuesta en ese hilo
threadproporcionadoRechazado — una respuesta no tiene posición propia

Cada id se verifica contra el proyecto antes de escribir nada — en add, en delete, y en resolve y reopen por igual — por lo que un id que el proyecto no contiene falla en lugar de crear una nota sin anclar a nada o cerrar un hilo en otro lugar. Un id del tipo incorrecto, por ejemplo un id de bloque dado como página, se rechaza nombrando el tipo real del id. Ninguno merece un reintento: la solución es volver a leer los ids.

Solo los hilos de lienzo tienen un estado resuelto, por lo que resolve y reopen toman un id de hilo — un comentario de página o bloque no se puede resolver en absoluto. delete toma un id de comentario o un id de hilo y determina cuál es, por lo que el llamador no tiene que saberlo; eliminar un hilo quita el pin pero deja sus respuestas, ya que son comentarios por derecho propio.

El idempotency_key opcional hace seguro un reintento — la misma clave enviada dos veces añade una nota, no dos. No hace que add sea idempotente: dos llamadas a add con claves diferentes añaden dos notas. En delete la clave se acepta e ignora: no hay nada que proteger, porque eliminar el mismo id dos veces quita una nota y luego informa que ya no existe.

Gestión de proyectos

create_project

Crea un nuevo proyecto en el espacio de trabajo de destino. Puede fallar cuando se alcanza el límite de proyectos de tu plan.

CampoObligatorioTipoDescripción
workspace_idstringEspacio de trabajo de destino — un UUID de espacio de trabajo de equipo, o el literal "my" para tu espacio personal. Obligatorio; un valor vacío u omitido se rechaza con un error.
folder_idNostringId de carpeta dentro del espacio de trabajo de equipo

manage_project

Acciones del ciclo de vida del proyecto: duplicar, archivar/desarchivar, mover, transferir.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
actionenumduplicate | archive | unarchive | move | transfer
workspace_idSí (move)stringmove: espacio de trabajo de destino — un UUID de espacio de trabajo de equipo, o el literal "my" para tu espacio personal. Obligatorio para move; un valor vacío se rechaza con un error.
folder_idNostringmove: id de carpeta de destino
emailNostringtransfer: correo del destinatario — debe ser un usuario registrado y sin plan gratuito

update_project_settings

Actualiza la configuración a nivel de proyecto.

CampoObligatorioTipoDescripción
project_uuidstringUUID del proyecto
titleNostringTítulo del proyecto
themeNoenumblueprint | bold | dark | light
treeNoenumDiseño de árbol: map | matrix
frameNoenumEstilo de marco de nodo: mobile | neutral | web
mobileNobooleanModo móvil
image_modeNobooleanMostrar imágenes en los nodos
legend_positionNoenumbottom | none | top
default_color_idNostringColor predeterminado para nuevas páginas

Aprende más