Siglata

Software para tu IA: archivos de empresa, hojas de cálculo y reglas, con acceso por persona e historial.

Servidor MCP alojado

npx add-mcp 'https://www.siglata.com/v1/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

O Model Context Protocol (MCP) permite que agentes de IA e ferramentas de desenvolvimento acessem suas organizações e arquivos na Siglata. O servidor usa Streamable HTTP e OAuth 2.0. Os escopos de permissão e a verificação de vínculo com a organização determinam o que cada conexão pode acessar.

O endpoint de produção do MCP é:

https://www.siglata.com/v1/mcp

Identidade do servidor [#server-identity]

Este servidor publica strings de identidade distintas em cada camada.

CamadaString atualQuem lê
Product / titleSiglata (serverInfo.title)Clientes MCP que exibem um título de produto
Protocol server namesiglata (MCP initialize / serverInfo.name)Clientes MCP durante initialize
Registry package idcom.siglata/mcpRegistros MCP
Setup skill namesiglata (/SKILL.md)Agentes que configuram a conexão

Superfície de Capacidades [#capability-surface]

  • Nome do servidor: siglata.
  • Ferramentas: uma por operação, cada uma com título. Leituras declaram readOnlyHint: true. Uma escrita declara destructiveHint: true apenas quando é irreversível ou difícil de reverter: purge, member_remove, team_delete, credential_delete, organization_deactivate, message_send, portal_act, portal_run_write. As demais escritas criam uma nova edição ou podem ser revertidas (destructiveHint: false). Clientes ainda podem pedir confirmação antes de mudanças. Leituras da web e de redes sociais também declaram openWorldHint: true. tools/list mostra só as ferramentas que esta concessão pode chamar.
  • Contexto de organização: Uma chamada a principal_get retorna o usuário, a organização vinculada a esta concessão (id, nome, slug e se está ativa), a função, os escopos concedidos, os limites, os arquivos da organização em bytes (storage) e, em storage.processed, o que as planilhas que o agente consulta ocupam e o limite delas. Cada concessão é de uma organização; outro espaço de trabalho exige uma nova conexão OAuth autorizada com essa organização ativa no consentimento.
  • Recursos: nenhum; file_read retorna o conteúdo e os links de um arquivo.
  • Prompts: nenhum.
  • DPoP: opcional. A prova é validada e o token vinculado à sua chave quando o cliente apresenta uma, e tokens bearer simples continuam funcionando.

Fluxo de Autorização e Conexão [#authorization-flow]

O cliente se identifica por um Client ID Metadata Document (uma URL https como client_id, anunciado por client_id_metadata_document_supported) ou pelo registro dinâmico OAuth, anunciado por registration_endpoint nos metadados do servidor.

A conexão de um cliente MCP utiliza um fluxo padrão de código de autorização OAuth 2.0 em conformidade com as RFCs:

  1. Adicionar Endpoint: Configure seu cliente com a URL do servidor https://www.siglata.com/v1/mcp.
  2. Iniciar OAuth: O cliente abre uma janela do navegador apontando para o endpoint de autorização da Siglata.
  3. Autenticar: Entre com o link mágico recebido por e-mail, caso ainda não esteja autenticado.
  4. Selecionar Organização: Escolha a organização específica que esta conexão poderá acessar. Cada concessão é estritamente vinculada a um único ID de organização.
  5. Aprovar Escopos: Revise os escopos de capacidade solicitados (por exemplo, files:read, files:write, organizations:read) e aprove o acesso.
  6. Entrega do Token: O cliente recebe um token de acesso delimitado exclusivamente à organização escolhida.

Cada aprovação cria uma conexão OAuth nativa independente, mesmo quando o usuário, o cliente e a organização são os mesmos. A conexão fica vinculada ao usuário que aprovou e à organização escolhida, e continua ativa enquanto o agente a usa. Ela vence após 30 dias sem nenhuma chamada MCP; cada chamada renova esse prazo. Sair do navegador não encerra a conexão; trocar a organização ativa não altera seu vínculo. A renovação de tokens sozinha não conta como uso: após o vencimento, uma nova aprovação é necessária. Tokens de acesso vencem antes e são renovados enquanto a conexão estiver ativa.

┌────────────────┐        1. Fluxo OAuth       ┌──────────────────┐
│   Cliente MCP  │ ──────────────────────────> │  Autenticação    │
│ (Codex/Claude) │ <────────────────────────── │  (Siglata Auth)  │
└────────────────┘      2. Token Delimitado    └──────────────────┘
        │
        │ 3. JSON-RPC (POST /v1/mcp)
        ▼
┌─────────────────────────────────────────────────────────────────┐
│                     Servidor MCP Siglata                        │
│  - Verificação de Origem e Validação de Sessão                  │
│  - Checagem Dinâmica de Associação e Políticas de Escopo        │
│  - Isolamento Estrito de Limite Organizacional                  │
└─────────────────────────────────────────────────────────────────┘
        │                                 │
        ▼                                 ▼
┌──────────────────┐              ┌──────────────────┐
│   Arquivos       │              │  Organização     │
│ (Blocos de 8MiB) │              │ (RBAC / Convites)│
└──────────────────┘              └──────────────────┘

Escopos OAuth [#oauth-scopes]

A Siglata aplica escopos de capacidade fundamentados no princípio do menor privilégio:

EscopoDescriçãoFunção Mínima
files:readInspecionar arquivos ativos, listar lixeira, consultar métricas de armazenamento e obter links de download de uso único.member
files:writeReservar uploads, cancelar uploads, renomear arquivos, mover para lixeira e restaurar arquivos.member
organizations:readLer perfil e metadados da organização concedida.member
organizations:writeRenomear a organização ou alterar seu slug.admin
members:readListar membros da organização e visualizar convites pendentes.member
members:writeConvidar novos membros, cancelar convites pendentes, atualizar funções ou remover membros.admin

Além dos escopos OAuth, a Siglata verifica a validade da conexão, e o vínculo e a função atuais do usuário no início de cada requisição MCP e de cada transferência autenticada de arquivos. Uma chamada de ferramenta usa o principal resolvido para aquela requisição, mantendo os escopos e claims originais do token. As operações verificam seus escopos e as permissões de arquivo, origem e destino aplicáveis.

Referência de Ferramentas e Operações [#tools-reference]

tools/list anuncia uma ferramenta por operação que esta concessão pode chamar, com o nome da operação. Cada descrição termina com os códigos de erro que a ferramenta pode retornar. O schema de entrada de cada ferramenta lista seus argumentos.

Uma chamada que dá certo retorna o resultado da operação como texto JSON. Um resultado de leitura acima de 24.000 caracteres vem em partes: o primeiro texto é {"part","parts","next"} e o segundo, o trecho daquela parte do JSON; chamar de novo com os mesmos argumentos e part traz a próxima, e os trechos juntos em ordem formam o resultado inteiro. move, rename, trash, file_read e document_read aceitam uma entrada, ou só items com 1 a 50 entradas: as escritas rodam uma depois da outra e as leituras em paralelo, e a chamada devolve results na ordem das entradas, cada um com o resultado daquela entrada (numa escrita, só id e kind) ou o seu error. Uma chamada que falha retorna um resultado de ferramenta com isError: true e o texto {"error":{"code","message"}}. Argumentos inválidos falham com INVALID_ARGUMENTS, indicando cada campo inválido. Uma escrita só retorna depois que a Siglata a registra na atividade da organização; quando esse registro não pode ser salvo, a chamada falha com activity_unavailable.

Uma ferramenta ausente de tools/list é uma que esta concessão não pode chamar: falta o escopo ou a função de membro exigidos. Chamá-la retorna um erro JSON-RPC com error.code -32602 e error.data.code UNKNOWN_TOOL (forbidden para uma operação que só a equipe da Siglata chama), cuja mensagem indica a função, o escopo com que reconectar ou as ferramentas mais próximas que esta concessão pode chamar.

Uma empresa nova começa inativa: entrar, consentir e conectar um agente funcionam, e principal_get informa organization.active: false. Toda outra ferramenta falha com organization_inactive, cuja mensagem traz o WhatsApp da Siglata, e não guarda nada até a Siglata ativar a empresa. A equipe da Siglata (suporte@siglata.com) é membro de toda empresa com a função staff: pode o que um proprietário pode, menos excluir a empresa ou remover ou mudar o proprietário, e proprietários e administradores não podem removê-la nem mudá-la.

Arquivos

HerramientaTipoDescripción
listlecturaLista carpetas y archivos, carpetas primero: bajo folderId (null para la raíz) o en toda la organización sin él; los activos o, con state: "trash", los recuperables de la papelera, y luego, sin folderId ni query, las tablas en la papelera, después de los archivos; con query, solo los nombres que la contienen. cursor trae la siguiente página. fields devuelve solo esas claves de cada archivo y carpeta, más el id.
getlecturaLee los metadatos y el estado de ciclo de vida de un archivo o carpeta; pase fileId o folderId. Un archivo trae su status: en ready, sql lee las celdas de una hoja de cálculo; fuera de ready y processing, statusMessage dice qué hacer, como dividir la hoja de cálculo en archivos más pequeños. fields devuelve solo esas claves, más el id.
file_readlecturaLee un archivo: hasta 128 KiB el contenido vuelve en la respuesta (text para medios textuales, blob en base64 en los demás); linkOnly: true prescinde del contenido. Todo resultado trae link, una descarga que una persona con sesión abre en el navegador, y transfer, un enlace de uso único con un curl listo que guarda el archivo en la carpeta de trabajo del agente.
sheet_writeescrituraAplica uno o más parches (patches[]) a un workbook existente, preserva celdas y pestañas fuera de ellos y devuelve el id de archivo de una nueva edición, llamada name o, sin él, por el nombre de la fuente con los 8 primeros caracteres del requestId (vendas-1a2b3c4d.xlsx). Un parche de celdas { sheet, range, cells } escribe un rango A1; un parche de consulta { sheet, anchor, query } (también exige files:read) ejecuta un SELECT del sql y escribe todas las filas desde la celda anchor, manteniendo el formato del modelo, sin que los datos pasen por el agente. Los parches no pueden superponerse.
document_searchlecturaBusca el texto indexado de archivos activos que esta concesión puede leer. Cada palabra es exigida y buscada literalmente; frases van entre comillas dobles, y OR en mayúsculas entre dos palabras o frases acepta cualquiera. limit limita los candidatos (predeterminado 20, máximo 100); resultados inaccesibles se omiten. Fallos de base de datos o autorización devuelven error, no una lista vacía.
document_readlecturaLee el texto de un PDF, Word, PowerPoint o Excel página por página, en el servidor, desde fromPage (predeterminado 1), hasta limit páginas (predeterminado 20, máximo 50) y 23.000 caracteres de texto; nextPage continúa. Los números de página son los que document_search cita.
sqllecturaEjecuta un SELECT (sintaxis de Postgres) sobre las celdas de las hojas de cálculo que esta concesión puede leer. Devuelve hasta 23.000 bytes de filas en JSON (el SELECT elige las columnas), con truncated: true y next cuando algo queda fuera, y se ejecuta por un máximo de 10 s.
sql_writeescrituraExige files:write. CREATE VIEW crea una vista que cada miembro lee con su propio acceso, CREATE TABLE AS crea un snapshot que solo tú lees, sobre sources (los ids de los archivos que puede leer; todos los que tú lees, si se omite), oculto mientras una fuente esté en la papelera y eliminado cuando ella se borra definitivamente, y DROP VIEW o DROP TABLE elimina un objeto tuyo.
sql_schemalecturaLista las tablas de hechos y sus columnas, las funciones auxiliares, las vistas de la organización y tus snapshots.
file_writeescrituraCrea un archivo pequeño inline.
upload_beginescrituraReserva cuota de almacenamiento y devuelve un enlace de envío de uso único; un PUT del archivo por el terminal completa el envío.
upload_cancelescrituraCancela una subida inacabada y libera el espacio que reservó.
folder_createescrituraCrea una carpeta, opcionalmente anidada bajo una carpeta padre.
renameescrituraRenombra un archivo o carpeta; pase fileId o folderId.
moveescrituraMueve un archivo o carpeta a la carpeta to, o a la raíz con to: null.
trashescrituraMueve un archivo, una carpeta, una tabla o registros de una tabla a la papelera, recuperables por 30 días. Recibe fileId, folderId, tableId, o tableId con recordIds (de 1 a 50; o van todos, o ninguno).
restoreescrituraRestaura de la papelera un archivo, una carpeta, una tabla o registros antes del plazo de recuperación (recoverUntil). Recibe los mismos objetivos de trash.
purgeescrituraElimina definitivamente de la papelera un archivo, una carpeta, una tabla o registros y libera el espacio; exige confirm: true y el creador del elemento (en una tabla o en sus registros, el creador de la tabla), un propietario o un administrador.

Empresa

El espacio de la empresa guarda el perfil, los productos, la marca y las skills de la organización, fuera del drive (vea Empresa). Las operaciones de archivo que listan o crean (list, folder_create, file_write, upload_begin) reciben space: "company" para trabajar en él; las demás actúan sobre el id de cualquier elemento suyo.

HerramientaTipoDescripción
company_getlecturaLee el espacio de la empresa: el id de la carpeta raíz, el perfil de empresa.md (campos principales y texto, o los problemas a corregir), los productos (produtos/), la marca (marca/) y los demás archivos, incluidos los de las skills, cada uno con id y ruta. Las skills vienen de skill_find.
skill_findlecturaEncuentra las skills para una tarea: las de la empresa que esta concesión puede leer, incluidas las personales, y el catálogo de Siglata, cada skill de Siglata con installed (si la persona la tiene), si es de pago (sus operaciones gastan créditos) y las instalaciones que ve. Con query, busca el nombre y la descripción y devuelve las mejores; con name, devuelve esa skill con el texto en content cuando la persona puede usarla; sin ninguno de los dos, lista todas. Una skill de la empresa trae en credentials los accesos que declara en el frontmatter.
skill_installescrituraInstala una skill del catálogo, vinculada a la versión más reciente de Siglata: para la persona (visibility: "restricted", el predeterminado, compartible con grant_set y el installId) o para toda la empresa ("org", que exige quien puede editar los datos de la empresa). Con copy: true, graba el texto actual como una skill de la empresa editable.
skill_uninstallescrituraCon name, oculta la skill solo para la persona; con installId, elimina esa instalación para todos, lo que solo quien la instaló, un propietario o un administrador hace.

Tablas, registros y exportaciones

El alcance OAuth no sustituye los permisos actuales de la tabla, de los archivos de origen o de la carpeta de destino. Los miembros leen sus propios registros; concesiones de lectura restringida de la tabla permiten al equipo autorizado leer los de otros miembros. Guardar registros y generar una exportación son operaciones independientes.

Para autorizar al equipo de oficina a leer todos los registros sin permitir cambios, use grant_set con tableId, el miembro o el equipo destinatario y level: "read". Consulte las concesiones con grants_list y tableId; revoque con grant_set y level: null. Cada llamada recibe un único objetivo, sin combinar tableId con identificadores de archivos, carpetas o portales.

En los cambios, requestId es cualquier clave que elijas; repite la misma clave para repetir la misma solicitud. Una repetición idéntica devuelve la revisión o el resultado originalmente aceptado; reutilizar el identificador con otro contenido o usuario causa conflicto. Use las revisiones esperadas para evitar sobrescribir cambios concurrentes.

OperaciónAlcance OAuthDescripción
table_setfiles:writeCrea o activa una definición JSON Schema con $schema del draft 2020-12 y type: "object" en la raíz. Para crear, elige un nuevo UUID en tableId y usa expectedVersion: 0; para cambiar, usa la versión actual. Una definición incompatible con los registros actuales se rechaza sin activación. Exige permiso de escritura en la tabla.
table_getfiles:readLee la definición activa, su versión, los permisos efectivos readsAll y writesAll y la revisión más reciente de cada formato de exportación (formatId, nombre, versión, schemaVersion y tipo). Consulte antes de enviar registros o exportar.
table_listfiles:readLista las tablas legibles de la organización, con identificador, nombre y versión activa. Pase next como after para continuar, incluso cuando la página no traiga tablas legibles.
record_writefiles:writeGuarda o corrige registros en un lote atómico, validado contra schemaVersion sin coerción ni descarte de propiedades. Un elemento inválido, sin permiso o en conflicto rechaza todo el lote. Nuevos registros usan expectedVersion: 0; correcciones reciben recordId y la revisión esperada. Corregir registros de otros miembros exige escritura en la tabla. sourceFileId exige un archivo activo y legible del espacio de la empresa, así como cada archivo en citedFileIds (hasta 10), los otros archivos que el registro cita; mientras algún registro cite un archivo, no puede ir a la papelera ni ser borrado.
record_readfiles:readLee los valores actuales de los registros permitidos al usuario. Pase next como after. Una fuente que el usuario ya no puede leer tiene su sourceFileId ocultado. Con state: "trash", lee los registros en la papelera, cada uno con trashedAt, recoverUntil y trashedBy.
record_historyfiles:readLee revisiones inmutables de un registro, con sus valores y definiciones de esquema originales. Aplica los mismos permisos de record_read. Pase nextVersion como afterVersion para continuar.
format_setfiles:writeCrea, revisa o retira un formato de exportación JSON, CSV o XLSX, vinculado a schemaVersion. Use expectedVersion: 0 para crear. CSV declara el orden y la proyección de los campos, con punteros como /data/<campo> o /metadata/createdAt; XLSX usa como modelo un archivo legible del espacio de la empresa y mapeos declarados. Retirar impide nuevas exportaciones sin borrar definiciones o resultados anteriores. Exige escritura en la tabla.
format_getfiles:readLee la definición, la versión y el schemaVersion de un formato retenido. Sin version, devuelve la revisión más reciente; con ella, una revisión anterior. Identificadores de modelos XLSX exigen permiso actual de lectura del archivo.
table_exportfiles:writeGenera un nuevo archivo restringido en la carpeta de destino grabable, usando un formato retenido y solo registros legibles. Una selección explícita con registros no disponibles se rechaza, no se reduce silenciosamente. Repeticiones reutilizan las revisiones capturadas y el archivo completado, verificando nuevamente los permisos actuales. La respuesta contiene el archivo, las referencias de las revisiones exportadas y, con files:read, transfer: el enlace de uso único que guarda el archivo en la carpeta de trabajo del agente.

Papelera de tablas y registros

trash con tableId envía la tabla a la papelera con sus registros y formatos; con tableId y recordIds, solo esos registros. Un registro va a la papelera por quien lo escribió o por quien tiene escritura en la tabla; una tabla, por quien tiene escritura en ella. En la papelera, la tabla y los registros desaparecen de table_list, table_get, record_read, record_history, table_export y sql, y escribir en ellos falla con trashed. Otra tabla puede usar el nombre de una tabla en la papelera.

restore trae de vuelta la tabla, con registros y formatos, o los registros, exactamente como estaban, sin crear revisión. Después de recoverUntil (30 días), falla con restore_expired, y Siglata elimina el elemento definitivamente.

purge con confirm: true elimina definitivamente lo que está en la papelera: todas las revisiones del registro, o la tabla completa con esquemas, registros, formatos y exportaciones. El espacio que ocupaban se libera, y los archivos de origen y plantilla dejan de estar vinculados a la tabla. Los archivos exportados siguen donde están: exportFileIds lista los que aún guardan los datos eliminados, para generar una nueva exportación y enviar los antiguos a la papelera.

Compartir

Cada una recibe fileId o folderId; grants_list y grant_set también reciben credentialId, el installId de una skill instalada, el connectionId de una conexión con portal de la empresa o tableId.

HerramientaTipoDescripción
grants_listlecturaLista quién tiene acceso explícito a un archivo, carpeta o acceso a portal.
grant_setescrituraDa a un miembro (granteeType: "user") o a un equipo (granteeType: "team") acceso read o write, o lo revoca con level: null.
set_visibilityescrituraHace un archivo o carpeta visible para toda la organización (org) o solo para quien lo creó y los beneficiarios (restricted).

La eliminación definitiva usa purge con confirm: true; las subidas no finalizadas expiran solas.

Accesos a portales

El agente usa inicios de sesión de portales sin ver los valores (Accesos a portales).

HerramientaTipoDescripción
credential_requestescrituraCrea o reemplaza el acceso personal de quien lo pide (o, con visibility: "org", el de la empresa) y devuelve un enlace de uso único para que la persona escriba los valores. Nunca recibe los valores.
credential_listlecturaLista los accesos que la persona ve: nombres, campos, visibilidad, propietaria, si tienen valores y qué credential_use usa para ella.
credential_useescrituraDevuelve una dirección de uso único, válida por unos 60 segundos, que un script local lee para recibir los valores del acceso propio de la persona o, sin él, del acceso de la empresa. Cada uso queda registrado.
credential_deleteescrituraElimina un acceso con sus valores cifrados, enlaces abiertos y concesiones.

Organización y Equipo

HerramientaTipoDescripción
principal_getlecturaLee, en una llamada, el usuario, la organización (y si está activa), la función, los alcances, los límites (células por hoja de cálculo y bytes por hoja de cálculo), el almacenamiento y los créditos de la organización (los del mes, los usados y los que quedan) vinculados a esta concesión. El equipo de Siglata define los créditos y límites acordados con la empresa.
organization_updateescrituraRenombra la organización, cambia su slug o ambos. Solo para propietarios y administradores con organizations:write; un slug que otra organización ya usa falla con ORGANIZATION_SLUG_ALREADY_TAKEN.
organization_activateescrituraActiva la empresa después de que se firma el contrato. Solo para el equipo de Siglata.
organization_deactivateescrituraDesactiva la empresa; sus datos quedan. Solo para el equipo de Siglata.
organization_limits_setescrituraDefine los créditos por mes de la empresa, los bytes de archivos y de datos procesados, que solo suben por encima del estándar, y las conexiones de entrenamiento por mes. Solo para el equipo de Siglata.
HerramientaTipoDescripción
members_listlecturaLista los miembros de la organización, con paginación, y sus invitaciones pendientes.
member_update_roleescrituraCambia la función de un miembro en el equipo.
member_removeescrituraElimina un miembro de la organización.
invitation_createescrituraInvita a alguien por correo electrónico; resend: true reenvía una invitación pendiente.
invitation_cancelescrituraCancela una invitación aún no aceptada.
teams_listlecturaLista los equipos de la organización con los ids de usuario de sus miembros.
team_setescrituraSin teamId, crea un equipo llamado name; con teamId, renombra el equipo cuando recibe name. userIds define los miembros como exactamente esa lista.
team_deleteescrituraElimina un equipo; sus miembros pierden el acceso de sus concesiones en la próxima solicitud.

Crear, eliminar o salir de una organización, aceptar invitaciones, desconectar agentes y pagar ocurren en la app Siglata.

Escucha social

Estas operaciones leen datos públicos de redes sociales, noticias y reseñas de Google Maps. Cada una recibe la red en network y descuenta de los créditos de la organización (una llamada cuesta una fracción de un crédito); la respuesta trae en credits cuánto cobró y cuánto queda. Cada llamada reserva 10 créditos antes de consultar la red y cobra solo el costo efectivo al terminar, liberando el resto. Una falla al registrar el cobro hace que la operación falle. Sin saldo suficiente para la reserva, la operación rechaza con CREDITS_EXHAUSTED antes de llamar a cualquier red, diciendo cuándo se reinician los créditos y, si la empresa tiene créditos por mes, cuántos. El equipo de Siglata define los créditos por mes acordados con la empresa. Siglata no guarda lo que las redes responden.

HerramientaTipoDescripción
social_profilelecturaLee un perfil público (Instagram, TikTok, YouTube, LinkedIn o Facebook): nombre, seguidores, publicaciones, verificación y bio.
social_postslecturaLista las publicaciones recientes de una cuenta (las mismas redes, más un subreddit de Reddit), con texto, fecha, enlace y participación.
social_commentslecturaLista los comentarios de una publicación o video (Instagram, TikTok, YouTube) o las reseñas de un lugar en Google Maps.
social_searchlecturaBusca publicaciones que citan una marca o tema en Instagram (incluyendo #hashtags), TikTok, YouTube, LinkedIn, X y Reddit, noticias en Google Noticias y lugares en Google Maps.

Búsqueda en la web

Estas operaciones buscan y leen la web pública en cualquier conexión y no gastan créditos. La búsqueda sigue el idioma y el país de la organización, a menos que el agente pida otros. Cuando la cuota gratuita de Siglata se agota, la operación rechaza con WEB_QUOTA_REACHED y le dice al agente que use sus propias herramientas web. Siglata no guarda lo que la web responde.

HerramientaTipoDescripción
web_searchlecturaBusca en la web y devuelve resultados en orden, con posición, título, enlace, fragmento, sitio y, cuando haya, fecha.
web_fetchlecturaLee hasta 10 páginas en Markdown, con título, descripción y fecha de publicación; las que no pudo leer vuelven en failed. Para guardar lo que leyó, el agente guarda con file_write un Markdown con el enlace de cada fuente y cuándo se leyó.

Transcripción de audio

audio_transcribe transforma una grabación guardada en Siglata, como un audio de WhatsApp (.ogg/opus), MP3, M4A, WAV, FLAC o WebM, en texto con las intervenciones de cada persona y los horarios. ElevenLabs, proveedora de transcripción de Siglata, hace la transcripción. Envía antes un archivo local con upload_begin. Cada minuto iniciado se cobra de los créditos de la organización (US$ 0,22 por hora a precio de costo del proveedor, o US$ 0,27 con términos). Siglata reserva el costo antes de llamar a ElevenLabs. Sin créditos suficientes, la operación rechaza con CREDITS_EXHAUSTED antes de enviar cualquier cosa. Si la proveedora no puede transcribir, la reserva se libera. Una falla al registrar el cobro también devuelve TRANSCRIPTION_UNAVAILABLE, sin entregar éxito. El límite es de 30 minutos y 25 MiB por grabación (AUDIO_TOO_LONG, AUDIO_TOO_LARGE). Un archivo cuya duración Siglata no puede leer falla con AUDIO_UNSUPPORTED.

HerramientaTipoDescripción
audio_transcribeescrituraTranscribe fileId y guarda la transcripción como un archivo Markdown en la carpeta del audio, con la misma visibilidad. speakers dice cuántas personas hablan. keyterms recibe hasta 100 nombres de productos, marcas o personas, cada uno con menos de 50 caracteres y hasta 5 palabras, que vuelven escritos exactamente así. language (ISO 639) sigue el idioma de la organización. Devuelve text, transcriptFileId, la duración y los créditos gastados; pasa transcriptFileId como sourceFileId para record_write, lo que exige el audio, y por lo tanto la transcripción, en el espacio de la empresa.

WhatsApp

El número de WhatsApp de una empresa entrega los mensajes de sus contactos en una bandeja de entrada que el agente trata. Siglata vincula el número; la tabla de contactos de la empresa decide quién es contacto, y los mensajes de otros teléfonos quedan retenidos, sin confirmación ni transcripción, y se borran después de 30 días. Los audios se transcriben al llegar con los 100 primeros términos de la tabla de vocabulario y se cobran como en audio_transcribe.

HerramientaTipoDescripción
message_readlecturaLee la bandeja de entrada de la más antigua a la más nueva: los mensajes new por defecto, o processed o held, de todos los contactos o de un contactRecordId, con el registro del contacto, el texto, los archivos y hasta 4.000 caracteres de la transcripción de cada mensaje. Exige lectura de todos los registros de la tabla de contactos.
message_markescrituraMarca hasta 100 messageIds como processed, o de vuelta como new; o todos cambian, o ninguno. Exige lectura de todos los registros de la tabla de contactos.
message_sendescrituraEnvía un texto a un contacto de la tabla de contactos, por contactRecordId o phone, citando replyTo si quiere. WhatsApp solo permite texto libre hasta 24 horas después del último mensaje del contacto (window_closed después de eso). Exige escritura en todos los registros de la tabla de contactos.
channel_getlecturaLee el número y las configuraciones del canal: las tablas de contactos y de vocabulario, la confirmación, la respuesta a teléfonos desconocidos, la carpeta de medios y la transcripción al llegar.
channel_setescrituraCambia las configuraciones del canal, manteniendo las que no se informen. Solo propietarios y administradores.

Llamadas de entrenamiento

Un vendedor entrena una llamada de venta por voz con un cliente simulado por IA. El escenario es un registro de una Tabla, fijado en la versión del momento de la invitación: editar el registro después no cambia las invitaciones ya enviadas. El enlace lleva el código después de #, por lo que no aparece en los registros del servidor, y Siglata guarda solo el hash del código. Cada empresa tiene un número de llamadas de entrenamiento por mes, definido por el equipo de Siglata. Al final de cada llamada, la grabación y la transcripción en Markdown quedan como archivos restringidos en la carpeta Llamadas de entrenamiento de la empresa, y, minutos después, el análisis graba la línea de tiempo, los hechos, las evaluaciones y el coaching como un registro en la Tabla Resultados, en nombre de quien creó el enlace, que cita los dos archivos: mientras el registro exista, no se pueden borrar.

FerramentaTipoDescrição
rehearsal_inviteescritaCria um link de treino para o registro de cenário em scenario (tableId e recordId), fixado na versão atual do registro. contact recebe um e-mail ou um registro que a pessoa pode ler. calls (1 a 10, padrão 1) diz quantas ligações o link permite e expiresInDays (1 a 30, padrão 7) quando ele vence. Devolve o link, o vencimento, as ligações, o cenário fixado e o contato. Um cenário incompleto ou incoerente volta com o problema descrito.
rehearsal_revokeescritaCancela um link pelo inviteId: ele não começa novas ligações, e uma ligação em andamento termina e recebe seu resultado. Quem criou o link ou um administrador pode cancelar.

Conexões com portais

Um agente trabalha nas páginas de um portal que a empresa usa, como um ERP. A pessoa entra no portal numa página da Siglata com a própria senha e os próprios códigos, que o agente nunca vê; a Kernel, fornecedora de navegadores da Siglata, guarda a sessão e entra de novo sozinha. Bancos, redes sociais e o login gov.br são recusados.

FerramentaTipoDescrição
portal_connectescritaCria ou reaproveita a conexão de quem chama com um portal (ou, com visibility: "org", a da empresa) e devolve o link onde a pessoa entra.
portal_listleituraLista as conexões que a pessoa vê, com o status atual (authenticated, connecting ou needs_auth) e o link para entrar de novo.
portal_disconnectescritaExclui a sessão que a Kernel guarda para uma conexão, o login guardado e as concessões da conexão.
portal_openescritaAbre um navegador no portal, já logado como a pessoa, e lê a página: a árvore de acessibilidade (papéis e nomes) e as tabelas visíveis. A sessão dura 15 minutos.
portal_readleituraLê de novo a página de uma sessão aberta, ou vai antes a outra página do mesmo portal.
portal_actescritaClica, preenche ou escolhe um elemento pelo papel e nome que a página mostra. Nunca digita em campo de senha nem sai do domínio do portal.
portal_closeescritaFecha a sessão e devolve os passos que funcionaram como um roteiro, para guardar numa skill da empresa.
portal_runleituraRoda um roteiro só de navegação numa chamada e lê a última página.
portal_run_writeescritaRoda numa chamada um roteiro com ações (cliques, preenchimentos, escolhas). Pede escrita na conexão.

O tempo de navegador é cobrado dos créditos da organização, inclusive quando a execução falha. Antes de abrir o navegador, a Siglata reserva o limite de tempo da chamada ou sessão; ao fechar, libera o saldo não usado. Chamadas na mesma sessão são atendidas em sequência, e a cobrança e o histórico são gravados juntos. Quando o portal sai da conta, a ferramenta entra de novo com o login guardado; só se isso falhar ou pedir algo à pessoa ela falha com PORTAL_NEEDS_LOGIN e o link para a pessoa entrar.

Instalación [#install]

Conéctese vía OAuth a https://www.siglata.com/v1/mcp. Los pasos de instalación por cliente están en páginas dedicadas (comandos para copiar y pegar para personas y agentes). Comience en Conectar.

Esta página documenta solo la superficie MCP (herramientas, alcances). No duplica esas guías de instalación.

Seguridad y Revocación [#security]

  • Aislamiento Multiinquilino: Cada conexión MCP permite acceso a exactamente una organización, elegida en la aprobación e inmutable en esa conexión. Para acceder a otro espacio de trabajo, autorice una conexión adicional.
  • Validación de Estado Activo: La conexión, el vínculo y la función actuales del usuario y la política de acceso de la organización se verifican en cada solicitud MCP y transferencia autenticada. La eliminación del miembro, la revocación o el vencimiento de la conexión bloquean la siguiente solicitud.
  • Plazo y Sesión del Navegador: Cada aprobación vence después de 30 días sin llamadas MCP, y cada llamada renueva ese plazo. Renovar tokens sin hacer llamadas no lo extiende, y salir del navegador o dejar que la sesión del navegador venza no revoca la conexión. La revocación y la pérdida del vínculo con la organización terminan la conexión en cualquier momento.
  • Revocación de una Conexión: Use Desconectar en el Inicio de la consola (/app). La revocación invalida solo esa conexión y sus tokens de acceso y renovación, incluidos los tokens de renovación rotados. Otras aprobaciones continúan independientes, incluso para el mismo cliente y organización; la sesión del navegador también permanece activa.

Cambiando alcances después de la autorización [#changing-scopes]

Los alcances se eligen en la aprobación y están limitados por la política de la organización en la emisión del token. La aprobación guarda solo los alcances que el rol de quien aprueba permite, que son los listados en la página de consentimiento; después de una promoción a administrador, la siguiente autorización muestra la página de consentimiento de nuevo antes de conceder cualquier alcance de administración, y una degradación quita las operaciones de administración en la siguiente llamada. No existe API de mutación de alcances después de la concesión (scopes_update o similar), porque ampliar alcances sin nuevo consentimiento eludiría ese límite de confianza. Para autorizar otro conjunto, ejecute el OAuth nuevamente y apruebe los alcances deseados; esto crea una conexión independiente. Si quiere reemplazar la conexión anterior, revóquela en el Inicio de la consola (/app). Salir del navegador no la revoca.

MCP Registry [#mcp-registry]

El servidor está listado en el MCP Registry oficial como com.siglata/mcp.

Información legal y soporte [#legal-and-support]

Política de privacidad, términos de uso y contacto y soporte.