Por cerca de um ano, a resposta honesta para «é seguro conectar um assistente de IA às minhas notas?» era que a conexão apenas as lia. Isso valia para a maioria dos servidores MCP para notas de reunião, e tornava a questão da segurança fácil: uma ferramenta que não pode alterar nada não pode alterar a coisa errada.
A pergunta interessante já não está aí. Hoje os assistentes etiquetam gravações, renomeiam quem falou, transcrevem de novo e publicam notas em canais compartilhados — e a versão útil da pergunta é mais estreita: o que precisa ser verdade antes de você deixar um modelo alterar os seus dados? Quatro coisas, e nenhuma delas é «o fornecedor promete ter cuidado»: o cliente pergunta antes da chamada, a alteração é estreita o bastante para caber em uma frase, o que é irreversível está marcado como tal, e existe um registro que você pode ler depois.
Este artigo trata de onde essa linha passa. Se o protocolo em si for novo para você, o que é um servidor MCP cobre o básico antes.
«Acesso de escrita» é uma expressão só para três coisas bem diferentes, e é o amontoado delas que faz o assunto parecer mais assustador do que é.
Rotular. Etiquetas, títulos, nomes de quem falou. Isso adiciona ou substitui metadados ao lado de uma gravação. Se o assistente etiquetar a reunião errada, você abre o aplicativo e tira a etiqueta. O pior caso é arrumar a bagunça de um modelo entusiasmado demais.
Substituir conteúdo. Transcrever de novo uma gravação produz um texto novo e descarta o antigo — inclusive as correções que você fez à mão. Nada saiu da sua máquina, mas algo que era seu desapareceu. É nesta classe que «reversível» silenciosamente deixa de ser verdade.
Sair da máquina. Publicar uma gravação em um canal de equipe, enviar uma transcrição por e-mail, dar acesso a alguém. Aqui a alteração não é principalmente nos seus dados — é em quem já os viu. Desfazer é uma operação técnica sobre um fato social, e não funciona.
Um modelo de segurança que trate essas três como um único ajuste vai errar nas duas direções: barulhento demais para a primeira, permissivo demais para a terceira.
O MCP tem um vocabulário para isso. A definição de uma ferramenta pode carregar
anotações: readOnlyHint (a ferramenta só lê), destructiveHint (pode
sobrescrever em vez de acrescentar), idempotentHint (chamá-la duas vezes não
muda mais nada) e openWorldHint (ela alcança sistemas externos). Um servidor
que publica uma ferramenta de compartilhamento sem openWorldHint está se
descrevendo mal.
Duas frases da especificação decidem quanto vale esse vocabulário. A primeira, sobre o dever do cliente: «Por confiança, segurança e proteção, DEVERIA haver sempre um humano no circuito, com a capacidade de negar invocações de ferramentas». A segunda, sobre as próprias anotações: os clientes «DEVEM considerar as anotações de ferramentas como não confiáveis, a menos que venham de servidores confiáveis».
Lidas juntas, elas resolvem a arquitetura. As anotações são como um servidor declara risco; não são uma tranca que o servidor possa fechar. O portão fica no cliente, e a confirmação que você vê antes de uma ferramenta rodar é uma decisão do seu cliente, informada pela declaração do servidor. O Claude Code, por exemplo, deixa as ferramentas MCP perguntando por padrão, enquanto as ferramentas internas dele não perguntam.
A consequência prática é incômoda e vale dizer sem rodeios: o momento em que você decide qualquer coisa é o momento em que concede permissão permanente. Depois de «sempre permitir», a caixa de diálogo deixa de ser um controle. Conceda por ferramenta, não por servidor — buscar de hora em hora tudo bem, compartilhar de hora em hora não.
O eixo útil não é leitura contra escrita. É quanto custa um erro.
| Ação | Desfazer | Por quê |
|---|---|---|
| Adicionar ou remover uma etiqueta | Sim, no aplicativo | Metadado ao lado da gravação |
| Renomear uma gravação ou quem falou | Sim, no aplicativo | Um rótulo, não o conteúdo |
| Transcrever de novo | Não | Substitui o texto, inclusive correções manuais |
| Publicar em um canal de equipe | Não | Os colegas podem já ter lido |
| Enviar uma transcrição por e-mail | Não | Quem recebeu fica com o que recebeu |
Tudo o que está nas três últimas linhas merece uma confirmação explícita todas as vezes; o que está nas duas primeiras provavelmente não. A lista de ferramentas é onde o fornecedor declara quais delas oferece, e vale a leitura antes de conectar qualquer coisa.
Pedidos de confirmação se desgastam. Uma única tarefa de pesquisa pode gerar dezenas deles, inclusive para ferramentas que não alteram nada, e o resultado documentado é que as pessoas desligam os avisos de uma vez em vez de ler o próximo. Um controle que treina você a fechá-lo não é um controle.
Um registro não se desgasta, porque é lido depois do fato e só quando você tem uma dúvida. A própria orientação da especificação aos clientes inclui registrar o uso de ferramentas para fins de auditoria, e o mesmo raciocínio vale para o servidor: se um assistente pode alterar algo, você deve conseguir ver depois o que ele alterou, quando e em qual gravação.
O teste útil para qualquer integração MCP com acesso de escrita: se o modelo fez algo inesperado ontem à noite, onde eu leria sobre isso hoje? Se a resposta for «em lugar nenhum», a caixa de confirmação estava carregando sozinha todo o modelo de segurança.
Há duas maneiras de impedir que um assistente altere coisas, e elas não são intercambiáveis.
Por cliente, na configuração daquele cliente. Um servidor iniciado em modo
somente leitura publica apenas as suas ferramentas de leitura. A diferença em
relação a recusar chamadas não é cosmética: uma ferramenta que o modelo não vê é
uma ferramenta que ele não vai propor, então você nunca recebe «vou publicar
isso no canal da equipe agora» seguido de um erro. No Speak-Y isso é o parâmetro
--read-only em args do servidor, e deixa seis ferramentas de leitura em pé.
Globalmente, no aplicativo. Um botão que cobre todos os clientes conectados de uma vez, não importa qual deles pediu.
A distinção importa porque um parâmetro no arquivo de configuração do Cursor contém o Cursor e mais nada. O parâmetro por cliente diz «o Cursor só pode ler, o Claude Code pode tudo»; só o botão dentro do aplicativo é uma afirmação sobre todos eles.
O Speak-Y separa as duas metades de propósito, e a separação é visível de fora.
A leitura é local e não exige nada rodando. Busca, transcrições, resumos, itens de ação e etiquetas vêm da biblioteca no seu Mac, aberta somente para leitura por um processo separado; o aplicativo não precisa estar aberto. Nada é enviado para que o assistente leia — embora, como em qualquer servidor MCP, tudo o que ele lê seja mandado ao provedor do seu modelo como parte da conversa, o que é uma questão à parte de onde os dados ficam guardados.
As alterações passam pelo aplicativo aberto. Etiquetar, renomear, transcrever de novo e publicar em um canal de equipe são executados pelo mesmo código que está atrás dos botões da interface, não por uma segunda implementação com a sua própria ideia das regras. Se o aplicativo não estiver aberto, essas ferramentas dizem isso em vez de funcionar pela metade.
Toda ação é declarada e registrada. As ferramentas que alteram são
publicadas com readOnlyHint: false; transcrever de novo e publicar em canal
carregam ainda destructiveHint, e a publicação carrega openWorldHint, por
ser a única ação que sai da máquina. As últimas 50 ações aparecem em
Configurações → Integrações com hora, operação, gravação e resultado — e sem
o texto da transcrição, que de outro modo sobreviveria à gravação de onde veio.
O botão para as ações do assistente está na mesma tela, e o servidor é gratuito
em todos os planos.
Verificado em 13 de agosto de 2026, na documentação de cada fornecedor:
A lista do Fireflies é a interessante, porque «compartilhe esta transcrição com estes endereços de e-mail» é exatamente a classe de ação em que a confirmação do cliente é a única coisa entre uma instrução mal lida e um destinatário. Isso não é uma crítica ao recurso — declará-lo na lista de ferramentas é a maneira honesta de entregá-lo. É um argumento para ler essa lista antes de conceder permissão permanente a um servidor inteiro.
Nada disso exige confiar nas intenções de um fornecedor, e esse é o ponto. «É seguro deixar um assistente alterar os meus dados?» não tem resposta geral, mas se decompõe em perguntas que têm: o que muda, quem confirma, o que dá para desfazer e onde isso fica escrito.
Se você ainda não conectou um assistente, o ponto de partida prático é conectar notas de reunião via MCP, que percorre a configuração e os primeiros comandos antes que qualquer coisa disso passe a importar.
É mais seguro em um sentido estreito: uma ferramenta que não pode alterar nada não pode alterar a coisa errada. Mas somente leitura é um instrumento grosseiro, não um modelo de segurança. O que de fato protege você é saber quais alterações são reversíveis, ter um cliente que pergunta antes das irreversíveis e conseguir ler depois o que foi feito. Um servidor somente leitura entrega a primeira propriedade abrindo mão do recurso.
Isso é uma propriedade do seu cliente, não do servidor. A especificação MCP diz que deveria haver sempre um humano no circuito, com a capacidade de negar a invocação de uma ferramenta, e clientes como o Claude Code deixam as ferramentas MCP perguntando por padrão. Os servidores podem declarar uma ferramenta como alteradora ou destrutiva por meio de anotações, mas a especificação exige que os clientes tratem essas anotações como não confiáveis se o servidor não for confiável: elas informam o aviso, não o impõem.
A caixa de confirmação deixa de ser um controle para aquela ferramenta, e toda chamada seguinte roda sem perguntar. É uma troca razoável para uma ferramenta de busca e ruim para uma ferramenta que compartilha dados com outras pessoas. Conceda permissão permanente por ferramenta, não por servidor, e trate o registro de ações como a coisa que responde o que realmente aconteceu.
Sim, se o servidor tiver um modo somente leitura definido na configuração do próprio cliente. O Speak-Y tem: acrescentar --read-only aos args na configuração MCP de um cliente publica apenas as ferramentas de leitura para ele, então o Cursor pode ficar limitado à leitura enquanto o Claude Code mantém acesso completo. Já um botão dentro do aplicativo vale para todos os clientes de uma vez.
Duas classes. Transcrever de novo substitui o texto atual de uma gravação, inclusive as correções feitas à mão. Publicar uma gravação em um canal de equipe a torna visível para os colegas, e removê-la depois não faz ninguém desler. Etiquetas, títulos e nomes de quem falou são rótulos e dá para voltar atrás no aplicativo.