SeaMeet MCP
Conecte agentes de IA a gravações, transcrições, resumos, capturas de tela e controles de gravação de reuniões do SeaMeet.
Documentação
@seameet/mcp
O servidor MCP do SeaMeet — permite que agentes de IA gravem, transcrevam e explorem suas reuniões. Uma única instalação funciona com ou sem o aplicativo desktop, no Claude Code, Claude Desktop, Codex, Antigravity, Cursor, OpenCode, GitHub Copilot CLI, Windsurf e em qualquer cliente MCP.
Ele escolhe automaticamente o backend mais completo disponível e expõe a união de ambos:
- Modo desktop — quando o aplicativo desktop do SeaMeet está em execução, os agentes obtêm o conjunto completo de ferramentas de gravação (iniciar/parar gravações, capturas de tela, transcrição ao vivo, artefatos de IA, busca). Sem autenticação; nada sai da sua máquina.
- Modo nuvem — quando o aplicativo não está presente, os agentes leem sua biblioteca sincronizada (gravações, transcrições, resumos), enviam um arquivo local de áudio/vídeo para transcrição e gerenciam webhooks pela rede. Autorizado ao entrar no aplicativo web — sem copiar/colar chaves, funciona em terminal headless.
tools/list retorna o superconjunto do que estiver disponível; chame seameet_status a qualquer momento para ver o(s) modo(s) atual(is).
Usando Claude ou ChatGPT em um aplicativo de chat? Você não precisa deste pacote. Adicione o conector SeaMeet hospedado —
https://mcp.seameet.ai/mcp— e entre com sua conta SeaMeet. Sem instalação, sem chave de API. Veja Conector hospedado.
O que você pode fazer
🎙️ Gravar e capturar (modo desktop)
- Iniciar uma gravação — microfone, tela ou tela + áudio do sistema —
seameet_start_recording - Parar —
seameet_stop_recording· pausar/retomar somente áudio —seameet_pause_recording/seameet_resume_recording - Verificar o status da gravação —
seameet_recording_status· ler a transcrição ao vivo durante a gravação —seameet_get_live_transcript - Tirar uma captura de tela pelo SeaMeet —
seameet_take_screenshot
📚 Trabalhar com gravações (desktop = arquivos locais · nuvem = biblioteca sincronizada)
- Listar gravações e capturas de tela —
seameet_list_recordings· navegar pelos arquivos no diretório de salvamento —seameet_list_files· configurações do aplicativo —seameet_get_settings - Ler artefatos gerados (resumo, transcrição, SRT, capítulos, itens de ação, decisões-chave, OCR/descrição de capturas) —
seameet_get_artifact - Buscar no texto dos artefatos —
seameet_search_text - Obter o manifesto do pacote de ativos de uma gravação —
seameet_get_asset_bundle - Renomear um arquivo —
seameet_rename_file· salvar um novo artefato —seameet_save_artifact· regenerar um resumo a partir de um modelo —seameet_regenerate_summary· listar modelos —seameet_list_templates
☁️ Biblioteca na nuvem (modo nuvem)
- Listar gravações sincronizadas recentes, incluindo arquivos transcritos em app.seameet.ai —
seameet_list_recent_recordings· obter o resumo, a transcrição com identificação de falantes (paginada para gravações longas) e capítulos, além de itens de ação e decisões-chave quando o resumo os gerar; a transcrição também vem como o mesmo arquivo SRT ou VTT que o app.seameet.ai baixa —seameet_get_recording· uma seção (resumo, itens de ação, decisões, capítulos) de até 10 gravações de uma vez —seameet_get_recordings - Transcrever um arquivo deste computador — envie um arquivo local de áudio ou vídeo (mp3, m4a, mp4, mov, wav, flac, ogg, oga, opus, webm, aac, amr, spx; até 512 MB e 5 horas) e inicie uma transcrição com identificação de falantes; retorna um
assetIdimediatamente e informa ao agente quando consultarseameet_get_recording—seameet_transcribe_file(executa neste cliente local, então funciona no Claude Code, Codex, Cursor e Claude Desktop, mas não no claude.ai pela web; usa sua cota de transcrição) - Obter uma URL temporária de stream/download de mídia —
seameet_get_media_url - Buscar suas gravações e as compartilhadas com você —
seameet_search_recordings(trechos completos exigem Sync Pro) - Memória de Reuniões — encontrar pessoas, organizações e tópicos —
seameet_search_memory· ler uma página de Memória com as reuniões que ela cita —seameet_get_memory_page - Atualizar-se em 2–5 gravações relacionadas, da mais antiga para a mais recente, com citações —
seameet_whats_changed - Renomear falantes —
seameet_rename_speakers· regenerar o resumo de uma gravação —seameet_regenerate_recording_summary· renomear uma gravação —seameet_rename_recording - Mover até 20 gravações para a Lixeira (restauráveis por 30 dias) —
seameet_trash_recordings· restaurá-las —seameet_restore_recordings· listar a Lixeira —seameet_list_recent_recordingscomtrashed: true(exclusão definitiva permanece no app.seameet.ai) - Verificar o uso de armazenamento —
seameet_get_usage· como gravar com o aplicativo desktop —seameet_desktop_recording_help - Gerenciar webhooks de saída (entregas assinadas em
ai.ready/recording.synced; criar um exige Sync Pro) —seameet_create_webhook·seameet_list_webhooks·seameet_update_webhook·seameet_delete_webhook
🔌 Conexão (qualquer modo)
- Quais modos estão conectados —
seameet_status· desconectar nuvem / trocar de conta —seameet_logout
Isso dá 17 ferramentas de desktop + 19 ferramentas de nuvem (buscadas ao vivo, então novos lançamentos aparecem automaticamente), além de 3 ferramentas que rodam neste cliente (seameet_status, seameet_logout, seameet_transcribe_file). Uma ferramenta que o backend atual não pode atender retorna um erro claro e estruturado em vez de falhar silenciosamente.
Conector hospedado (sem instalação)
O SeaMeet também executa um servidor MCP hospedado em https://mcp.seameet.ai/mcp. Adicione-o ao Claude ou ChatGPT como conector e entre com sua conta SeaMeet (OAuth): sem Node.js, sem npx, sem chave de API para copiar. Qualquer conta SeaMeet verificada funciona, incluindo a Free; o Sync Pro desbloqueia trechos de busca completos, páginas completas da Memória de Reuniões e webhooks.
Qual devo usar?
| Conector hospedado | @seameet/mcp (este pacote) | |
|---|---|---|
| Instalação | nenhuma, adicione uma URL | npx -y @seameet/mcp |
| Funciona em | Claude (web, desktop, mobile), ChatGPT (web, desktop), Claude Code, qualquer cliente que fale MCP remoto com OAuth | Claude Code, Claude Desktop, Codex, Cursor, Antigravity, OpenCode, Copilot CLI, qualquer cliente MCP stdio |
| Sua biblioteca na nuvem (gravações, transcrições, busca, Memória, webhooks) | ✓ 19 ferramentas | ✓ as mesmas 19, retransmitidas |
| Gravar, capturar tela, transcrição ao vivo do aplicativo desktop | — | ✓ 17 ferramentas de desktop |
| Transcrever um arquivo deste computador | — | ✓ seameet_transcribe_file |
Em resumo: aplicativos de chat e uso somente em nuvem → o conector hospedado. Um agente de codificação na mesma máquina que o aplicativo desktop do SeaMeet, ou envio de arquivos locais → este pacote.
Como adicionar:
- Claude na web — abra claude.ai/new#customize/connectors/yours (ou Configurações → Conectores) → Adicionar conector personalizado → nome
SeaMeet, URLhttps://mcp.seameet.ai/mcp→ Adicionar → Conectar → entre em app.seameet.ai → Permitir. Um conector adicionado no claude.ai também aparece nos aplicativos desktop e mobile do Claude. - Aplicativo desktop do Claude — Configurações → Conectores → Adicionar conector personalizado, mesma URL, mesmo login.
- ChatGPT na web — abra chatgpt.com/plugins → adicione um servidor MCP com a URL acima → Autenticar → entre → Permitir.
- Aplicativo desktop do ChatGPT — Plugins → MCP → adicione um servidor, transporte Streamable HTTP, a URL acima, campos de token/cabeçalho vazios → Autenticar (sem necessidade de reiniciar). Seu navegador abre app.seameet.ai/connect → entre → Permitir. A página de consentimento informa que este aplicativo conclui o login no seu próprio computador (um endereço local
127.0.0.1); isso é esperado para aplicativos desktop. - Claude Code —
claude mcp add --transport http seameet https://mcp.seameet.ai/mcp, depois execute/mcppara entrar. (Deve funcionar; ainda não verificado de ponta a ponta.)
O Claude pede acesso de leitura; o aplicativo desktop do ChatGPT também pede escrita. Ferramentas somente leitura carregam readOnlyHint, então clientes que respeitam isso podem diferenciá-las das ferramentas de escrita.
Ferramentas hospedadas (19):
| Ferramenta | Acesso | O que faz |
|---|---|---|
seameet_list_recent_recordings | leitura | Suas gravações sincronizadas mais recentes |
seameet_get_recording | leitura | Resumo, transcrição (também como SRT ou VTT), notas, capítulos e mais de uma gravação |
seameet_get_recordings | leitura | Uma seção de até 10 gravações de uma vez, ex.: itens de ação da semana |
seameet_search_recordings | leitura | Busca em texto completo sobre suas gravações e as compartilhadas com você (trechos exigem Sync Pro) |
seameet_search_memory | leitura | Encontrar pessoas, organizações e tópicos na Memória de Reuniões |
seameet_get_memory_page | leitura | Uma página da Memória de Reuniões com as reuniões que ela cita |
seameet_whats_changed | leitura | Atualizar-se em 2–5 gravações relacionadas, da mais antiga para a mais recente, com citações |
seameet_get_media_url | leitura | Um link temporário de stream/download para uma gravação |
seameet_get_usage | leitura | Armazenamento usado versus sua cota |
seameet_desktop_recording_help | leitura | Como gravar com o aplicativo desktop do SeaMeet |
seameet_list_webhooks | leitura | Seus webhooks, saúde de entrega e segredo de assinatura |
seameet_rename_speakers | escrita | Renomear os falantes em uma transcrição |
seameet_regenerate_recording_summary | escrita | Regenerar o resumo de uma gravação |
seameet_rename_recording | escrita | Renomear uma gravação |
seameet_trash_recordings | escrita | Mover até 20 gravações para a Lixeira (restauráveis por 30 dias) |
seameet_restore_recordings | escrita | Restaurar gravações da Lixeira |
seameet_create_webhook | escrita | Criar um webhook (Sync Pro) |
seameet_update_webhook | escrita | Alterar um webhook |
seameet_delete_webhook | escrita | Excluir um webhook |
Desconectar: abra app.seameet.ai/connectors (menu de perfil → Conectar com Claude/ChatGPT), clique em Desconectar ao lado do aplicativo e remova o conector no aplicativo.
Instalação
Todo cliente executa o mesmo comando — npx -y @seameet/mcp — apenas o formato de configuração muda. Receitas completas por ferramenta: INSTALL.md (espelhado em app.seameet.ai/mcp/install.md).
Deixe seu agente fazer isso — já está dentro de um agente de codificação? Cole:
Instale o servidor MCP do SeaMeet — busque
https://raw.githubusercontent.com/seameet-ai/seameet-mcp/main/INSTALL.md, aplique a seção para a ferramenta em que você está rodando e me diga como recarregar.
Ou escolha sua ferramenta:
| Ferramenta | Instalação mais rápida |
|---|---|
| Claude Code | claude mcp add seameet -- npx -y @seameet/mcp |
| Codex CLI / IDE | codex mcp add seameet -- npx -y @seameet/mcp |
| GitHub Copilot CLI | copilot mcp add seameet -- npx -y @seameet/mcp |
| Cursor | Adicionar ao Cursor (um clique) |
| Claude Desktop | pacote .mcpb de um clique — veja abaixo |
| Antigravity · OpenCode · qualquer outro | veja INSTALL.md |
O bloco genérico, aceito pela maioria dos clientes MCP:
{
"mcpServers": {
"seameet": { "command": "npx", "args": ["-y", "@seameet/mcp"] }
}
}
Requisitos
- Node.js ≥ 18.
- Para o modo desktop: o aplicativo desktop do SeaMeet instalado e em execução —
brew install --cask seameet-ai/tap/seameet(macOS) ouwinget install seameet(Windows). Precisa de v3.2.0+; um aplicativo antigo em execução relataapp_outdated. - O modo nuvem é opcional e não precisa de aplicativo — a primeira chamada de ferramenta na nuvem inicia uma autorização única (abaixo).
Autorização na nuvem (uma única vez, sem copiar/colar chaves)
O modo nuvem nunca ativa a menos que você forneça SEAMEET_API_KEY ou conclua o fluxo de dispositivo. Na primeira chamada de ferramenta na nuvem sem chave, o agente mostra um código curto + https://app.seameet.ai/link; você o abre (já conectado), clica em Autorizar, e uma chave de leitura+escrita é gerada e armazenada em cache em ~/.seameet/credentials.json. Silencioso daí em diante; revogue a qualquer momento em Chaves de API na sua conta. Para desconectar ou trocar de conta, chame seameet_logout (ou rm ~/.seameet/credentials.json).
Transcrevendo arquivos grandes
seameet_transcribe_file envia em partes de 8 MB e envia notificações de estágio (notifications/progress: lendo o arquivo, verificando sua cota, cada parte iniciando e terminando, finalizando o envio, iniciando a transcrição), no máximo uma por segundo. Hosts que redefinem o tempo limite da ferramenta no progresso continuam esperando enquanto as partes se movem, mas uma transferência travada não envia nada, e hosts que não redefinem no progresso podem interromper um envio longo de qualquer forma: no Claude Code, aumente o tempo limite da ferramenta para arquivos grandes, ex.: MCP_TOOL_TIMEOUT=600000 claude (10 minutos). A transcrição em si roda na nuvem após a ferramenta retornar, então apenas o envio conta.
O arquivo é aberto uma vez, antes de qualquer coisa ser enviada, e cada parte é lida desse arquivo aberto. Se ele for reescrito, crescer ou for substituído em seu caminho durante o envio, o envio é interrompido com file_changed em vez de enviar uma mistura de bytes antigos e novos. Uma gravação cujo cabeçalho indica duração maior que 5 horas é recusada antes de qualquer envio.
Pacote de instalação com um clique para Claude Desktop
manifest.json é um manifesto MCPB, então o servidor é distribuído como uma extensão de um clique para Claude Desktop:
npm install && npm run build:mcpb # → dist/seameet.mcpb
Instale via Configurações → Extensões → Avançado → Instalar extensão… e escolha dist/seameet.mcpb. O Claude Desktop o executa com seu próprio Node.js — sem necessidade de terminal. (O aplicativo desktop ainda precisa estar instalado e em execução para o modo desktop.)
Plugin Claude Code (adiciona uma habilidade /seameet)
Este repositório também funciona como um marketplace de plugins Claude Code. O plugin registra o servidor MCP e uma habilidade /seameet que ensina os fluxos de trabalho principais (gravar + transcrever, capturar um relatório de bug, extrair itens de ação de reuniões):
claude plugin marketplace add seameet-ai/seameet-mcp
claude plugin install seameet@seameet
Experimente
Basta perguntar em linguagem natural — o agente escolhe a ferramenta certa (e o backend certo). Alguns exemplos para começar:
Grave minha tela por 2 minutos e depois me dê a transcrição.
Quais foram os itens de ação da minha última reunião?
Tire uma captura de tela e descreva o que aparece nela.
Transcreva ~/Downloads/interview.m4a
Modo desktop — uma sessão de gravação completa (aplicativo em execução)
- "Quais são minhas configurações do SeaMeet — onde ele salva as gravações?"
- "Liste meus modelos de resumo."
- "Liste minhas gravações locais." · "Liste os arquivos na minha pasta de salvamento do SeaMeet."
- "Qual é meu status atual de gravação?"
- "Comece a gravar meu microfone." (ou: "grave minha tela inteira")
- "Verifique o status da gravação agora."
- "Mostre-me a transcrição ao vivo até agora."
- "Pause a gravação." · "Retome."
- "Tire uma captura de tela."
- "Pare a gravação."
- "Liste minhas gravações novamente — a nova deve estar no topo."
- "Me dê o resumo e a transcrição dessa gravação."
- "Regenere o resumo usando um dos meus modelos."
- "Pesquise em minhas gravações pela palavra ''."
- "Renomeie essa gravação para 'teste de modo duplo MCP'."
- "Obtenha o pacote completo de assets para ela."
- "Salve este texto como uma nota/artefato nessa gravação: ."
Modo nuvem — sua biblioteca sincronizada (sem necessidade do aplicativo)
- "Liste minhas 5 gravações mais recentes do SeaMeet." · "O que eu gravei nos últimos 7 dias?"
- "Me dê o resumo da gravação principal."
- "Agora mostre seus itens de ação e decisões-chave."
- "Puxe a transcrição completa com rótulos de falante para ela, e seus capítulos."
- "Me dê um link de download/streaming para a mídia dessa gravação."
- "Pesquise em minhas reuniões por 'preços'." · "O que o Meeting Memory sabe sobre a Acme?"
- "O que mudou nas minhas últimas três reuniões diárias?"
- "Transcreva ~/Downloads/interview.m4a" (faz o upload e depois verifica até a transcrição ficar pronta)
- "Quanto armazenamento do SeaMeet estou usando em relação à minha cota?"
- "Crie um webhook para
https://webhook.site/<your-id>que dispare quando os resultados de IA estiverem prontos." - "Liste meus webhooks com sua saúde de entrega e segredo de assinatura."
- "Atualize esse webhook para também disparar em
recording.synced." - "Exclua esse webhook."
- "Qual é meu status de conexão com o SeaMeet?"
- "Desconecte minha conta na nuvem do SeaMeet." (esquece a chave em cache; a próxima chamada na nuvem reautoriza)
Como funciona
Um proxy fino stdio↔HTTP. O aplicativo desktop do SeaMeet hospeda uma ponte somente localhost (127.0.0.1:3741, com fallbacks 3742/3743) autenticada com um segredo aleatório por inicialização; na inicialização, ele grava as credenciais em $TMPDIR/seameet-mcp-bridge-<username>.json (modo 0600), que este servidor lê e faz proxy (tools/list → GET /mcp-bridge/tools, tools/call → POST /mcp-bridge/call-tool). Nada sai da sua máquina no modo desktop. O modo nuvem fala com o worker hospedado do SeaMeet (o mesmo servidor do conector hospedado) via HTTPS com sua chave emitida. Cada requisição à nuvem do SeaMeet carrega User-Agent: seameet-mcp/<version>.
Referência completa de ferramentas (para LLMs): seameet.ai/llms.txt — também servida localmente em http://localhost:3741/llms.txt enquanto o aplicativo estiver em execução.
Erros são legíveis por máquina
Falhas de ferramentas retornam JSON estruturado no qual seu agente pode ramificar:
{ "success": false, "error": { "code": "app_not_running", "tool": "seameet_start_recording",
"message": "The SeaMeet desktop app is not running.",
"install": { "macos": "brew install --cask seameet-ai/tap/seameet", "windows": "winget install seameet" },
"hint": "Ask the user to install and launch it, then retry." } }
| Código | Significado |
|---|---|
app_not_running | O aplicativo desktop está fechado — inicie-o (o payload carrega comandos install + downloadUrl) |
app_outdated | O aplicativo está em execução, mas muito antigo — atualize para requiredVersion (não reinstale a mesma versão) |
auth_required | A ferramenta de nuvem precisa de autorização — o payload tem um user_code + a URL /link |
insufficient_scope | A chave de API é somente leitura — autorize uma chave de leitura+escrita |
unsupported_type / too_large / empty_file | seameet_transcribe_file recusou o arquivo antes de enviar qualquer coisa (um tamanho conhecido acima de 5 horas é session_too_long, também antes do envio) |
file_changed | O arquivo mudou durante o upload; o upload foi interrompido — chame novamente quando o arquivo terminar de ser gravado |
insufficient_allowance / free_exhausted / import_cap_reached / daily_import_limit / queue_full / session_too_long | Não há cota de transcrição ou espaço suficiente agora — o hint diz o que informar ao usuário |
not_entitled | Esta conta não pode transcrever arquivos — verifique o plano em app.seameet.ai |
disabled | A transcrição está desativada para esta conta — entre em contato com o suporte |
upload_failed | O upload foi interrompido; step indica onde (upsert-asset, create, part <n>, complete) e o upload parcial é abortado (a entrada do asset pode permanecer na sua biblioteca). cleanup: "failed" significa que o abortamento em si falhou; o SeaMeet limpa uploads parciais antigos por conta própria |
upload_unknown | O upload foi enviado, mas sua conclusão não foi confirmada (queda de rede em complete) — abra webUrl para verificar antes de enviar novamente |
service_unavailable | O SeaMeet está temporariamente indisponível — tente novamente em um minuto. Durante o upload, step indica onde parou; uma vez concluído o upload, o payload carrega webUrl para iniciar a transcrição lá |
job_start_failed | O arquivo está na biblioteca (assetId, webUrl), mas a transcrição não pôde ser iniciada — abra webUrl para iniciá-la; não execute a ferramenta novamente, pois isso enviaria uma duplicata |
upload_incomplete | O SeaMeet ainda estava finalizando o upload após uma nova tentativa — abra webUrl em um minuto para iniciar a transcrição |
cancelled | O host cancelou a chamada antes de a solicitação de transcrição ser enviada; o upload parcial é abortado e nenhuma transcrição é iniciada |
outcome_unknown | A solicitação de transcrição foi enviada, mas nenhuma resposta voltou (cancelamento, timeout ou queda de rede) — ela pode ter sido iniciada, então verifique asset.transcriptionJob com seameet_get_recording antes de fazer qualquer outra coisa |
app_not_ready | O aplicativo está iniciando — tente novamente em alguns segundos |
invalid_request | Um parâmetro obrigatório está ausente/inválido — verifique novamente o esquema da ferramenta |
path_forbidden | filePath deve estar dentro do diretório de salvamento do SeaMeet |
not_found | Arquivo ou artefato não existe — descubra-o com uma ferramenta de listagem/busca primeiro |
timeout | O aplicativo não respondeu a tempo — verifique o status e tente novamente uma vez |
unknown_tool | Inclui sugestões did_you_mean |
Configuração (raramente necessária)
| Variável de ambiente | Finalidade |
|---|---|
SEAMEET_API_KEY | Chave de API da nuvem (smk_…) — ignora o fluxo de autorização do dispositivo |
SEAMEET_MCP_CREDENTIALS_FILE | Caminho explícito para o arquivo de credenciais da ponte desktop |
SEAMEET_BRIDGE_PORT + SEAMEET_BRIDGE_SECRET | Ignora completamente o arquivo de credenciais da ponte |
SEAMEET_CLOUD_CREDENTIALS_FILE | Onde a chave de nuvem emitida é armazenada em cache (padrão ~/.seameet/credentials.json) |
SEAMEET_REMOTE_URL / SEAMEET_DEVICE_URL | Substitui os endpoints da nuvem (padrão: produção) |
SEAMEET_SUPABASE_URL / SEAMEET_SUPABASE_ANON_KEY / SEAMEET_STT_PROXY_URL / SEAMEET_WEB_URL | Substitui os endpoints para os quais seameet_transcribe_file envia e vincula (padrão: produção) |
Desenvolvimento
npm install
npm test # wrapper tests (fake bridge + fake cloud) and upload tests (mocked fetch + temp files)
npm run build:mcpb # validate manifest.json + pack the Claude Desktop extension
A publicação é automatizada — veja PUBLISHING.md.
Legal
- Termos: https://seameet.ai/en/terms/
- Privacidade: https://seameet.ai/en/privacy/
Licença
MIT © SeaMeet.ai