O Dokitscript expõe um servidor Model Context Protocol remoto. Conecte uma vez e o seu assistente passa a transcrever um vídeo, buscar o texto de volta e pesquisar tudo o que você já transcreveu, sem que você saia da conversa.
MCP é o protocolo aberto pelo qual os clientes de IA conversam com ferramentas de fora. O nosso servidor fica em https://dokitscript.com/mcp. Depois de declarado, basta escrever «transcreve esse TikTok e me traz as três afirmações que valem checagem»: o assistente encadeia sozinho, chama a ferramenta de transcrição, espera o texto e trabalha em cima dele.
Enviar uma URL para transcrição, buscar uma transcrição, listar o seu histórico, pesquisar dentro dele e fazer uma pergunta sobre uma transcrição específica. Cada ferramenta fica restrita à sua própria conta: a chave identifica você, e uma transcrição de outra conta simplesmente não aparece.
O acesso programático abre com uma chave de API, e há dois caminhos para criar uma: um plano pago (Starter, Pro ou Business), ou saldo de tokens de API comprados avulsos, sem assinatura alguma.
| O que você faz | Quanto custa |
|---|---|
Lerget_transcript, list_transcripts, search_transcripts |
Nada além do limite diário de requisições. Uma chave válida já basta. |
Transcrevertranscribe_url |
Descontado dos seus tokens de API: 1 token por bloco de 15 minutos iniciado, ou seja, 3 tokens num vídeo de 40 minutos. No Business, o uso programático já vem na assinatura, sem desconto de tokens. |
Perguntarask_question |
Descontado da sua cota mensal de IA e restrito aos planos Pro e Business, exatamente como no aplicativo web. |
Escolha o seu cliente abaixo, cole o bloco no arquivo que ele lê, troque dks_live_SUA_CHAVE pela sua chave e reinicie o aplicativo. O endereço do servidor nunca muda: https://dokitscript.com/mcp.
O caminho mais rápido é a linha de comando, dentro da pasta em que você trabalha:
claude mcp add --transport http dokitscript https://dokitscript.com/mcp \ --header "Authorization: Bearer dks_live_SUA_CHAVE"
Crie um .mcp.json na raiz do projeto: assim o time inteiro compartilha a mesma declaração.
{
"mcpServers": {
"dokitscript": {
"type": "http",
"url": "https://dokitscript.com/mcp",
"headers": {
"Authorization": "Bearer dks_live_SUA_CHAVE"
}
}
}
}Confira com /mcp dentro de uma sessão: o servidor deve aparecer como conectado, com as cinco ferramentas.
Crie .cursor/mcp.json no projeto para um projeto só, ou ~/.cursor/mcp.json para deixar o servidor disponível em todos.
{
"mcpServers": {
"dokitscript": {
"url": "https://dokitscript.com/mcp",
"headers": {
"Authorization": "Bearer dks_live_SUA_CHAVE"
}
}
}
}Abra Settings e depois MCP para confirmar que o servidor aparece. Se a chave estiver desligada, ligue por ali.
O VS Code usa a chave servers, não mcpServers. Ele também sabe pedir a chave ao iniciar em vez de guardá-la no arquivo, que é o que você quer num repositório que vai para o commit.
{
"inputs": [
{
"type": "promptString",
"id": "dokitscript-key",
"description": "Chave de API do Dokitscript",
"password": true
}
],
"servers": {
"dokitscript": {
"type": "http",
"url": "https://dokitscript.com/mcp",
"headers": {
"Authorization": "Bearer ${input:dokitscript-key}"
}
}
}
}O VS Code pede a chave na primeira vez que o servidor sobe e guarda depois. As ferramentas aparecem então no modo agente, no seletor de ferramentas.
O Claude Desktop tem duas portas, e nenhuma aceita uma chave Bearer do jeito que ela é. O painel Connectors até recebe o endereço de um servidor remoto, mas se identifica por OAuth e não oferece campo nenhum para uma chave fixa. Já o arquivo de configuração, claude_desktop_config.json, dispara comandos locais em vez de chamar uma URL. Por isso o caminho que funciona hoje passa por um pequeno retransmissor na sua máquina: o Claude Desktop o inicia como um comando, e ele repassa cada troca para https://dokitscript.com/mcp por HTTPS, com a sua chave no cabeçalho.
mcp-remote é um pacote de código aberto sob licença MIT, publicado no npm pelos próprios mantenedores; o npx baixa na primeira vez e guarda em cache. Os autores o apresentam como uma ponte provisória, para clientes que ainda não sabem alcançar sozinhos um servidor remoto autenticado: no dia em que o Claude Desktop souber, você apaga o bloco e aponta direto para o nosso endereço. Os outros três clientes desta página não instalam nada.
Node.js 18 ou mais novo, que é o que traz o npx junto. Confira num terminal:
node -vNo Windows, o npm também precisa estar instalado globalmente, senão o npx se recusa a subir. Um comando resolve: npm install -g npm.
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json, nas versões da comunidade; o aplicativo oficial cobre macOS e Windows. |
Caminho mais curto: Settings, depois Developer, depois Edit Config. Abre o arquivo e cria, se ele ainda não existia.
{
"mcpServers": {
"dokitscript": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://dokitscript.com/mcp",
"--transport",
"http-only",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer dks_live_SUA_CHAVE"
}
}
}
}Se o arquivo já tiver um objeto mcpServers, acrescente "dokitscript" dentro dele em vez de substituir o arquivo inteiro.
A chave viaja pelo env. No Windows, o Claude Desktop entrega os args ao npx sem proteger os espaços. Escrito direto no argumento, "Authorization: Bearer dks_live_…" quebra no espaço: o retransmissor lê um cabeçalho vazio, o resto da chave fica solto como argumento órfão, e o servidor devolve 401 mesmo com a chave perfeitamente válida. Manter o espaço dentro da variável o coloca fora do alcance de quem corta. O argumento nomeia o cabeçalho antes dos dois-pontos, e a variável carrega Bearer, um espaço e a sua chave.
--transport http-only tira um palpite do caminho. O nosso servidor responde em POST e devolve 405 a todo o resto, de propósito. Deixado para escolher o transporte sozinho, o retransmissor lê um 405 como sinal para recuar até um modo de fluxo empurrado pelo servidor que não implementamos: um beco sem saída que nada tem a ver com a sua chave. Nomear o transporte descarta esse caminho.
Cmd + Q no macOS, sair pela bandeja do sistema no Windows. A configuração só é lida ao iniciar.dokitscript deve estar lá, com as cinco ferramentas.list_transcripts por conta própria, sem você nomear a ferramenta.O retransmissor fica entre você e nós: o cliente avisa que um servidor não sobe e nunca mostra o nosso código HTTP. Dois comandos apontam qual metade falhou. Este fala conosco sem retransmissor no meio, e uma chave boa responde com as cinco definições de ferramentas:
curl -X POST https://dokitscript.com/mcp \ -H "Authorization: Bearer dks_live_SUA_CHAVE" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
E este sobe o retransmissor na mão, onde o erro de verdade aparece em vez de sumir. Aqui os espaços não atrapalham, porque não é o terminal que os quebrava:
npx -y mcp-remote https://dokitscript.com/mcp \ --transport http-only --debug \ --header "Authorization: Bearer dks_live_SUA_CHAVE"
| O que você vê | O que fazer |
|---|---|
| Nada na lista, e nenhum erro em lugar nenhum | Ou o arquivo não é JSON válido, e o aplicativo o ignora calado, ou ele nunca foi fechado de verdade. Passe o arquivo por um validador de JSON, depois feche e abra de novo. |
npx não encontrado, ou ENOENT |
Falta o Node, ou ele falta no PATH que o aplicativo herda. Instale o Node 18+, acrescente npm install -g npm no Windows, depois saia e entre de novo na sessão para o aplicativo enxergar o PATH novo. |
Conecta e devolve 401 na primeira chamada |
Chave errada, cortada ou revogada. O curl acima resolve em um segundo: se o curl passa e o retransmissor não, a chave foi cortada no caminho, então confira se AUTH_HEADER traz Bearer, um espaço e a chave. |
429 API_DAILY_CAP_EXCEEDED |
A chave bateu no teto do dia. Cada chamada conta, inclusive a lista de ferramentas, e um assistente preso num laço chega lá rápido. O Retry-After dá a espera em segundos e a contagem zera à meia-noite, hora de Paris. |
503 Public API is unavailable |
O acesso por programa está desligado do nosso lado. Não há o que mexer aí. A página de status diz quando volta. |
| Uma chave antiga insiste em voltar | O retransmissor guarda dados de conexão em cache em ~/.mcp-auth. Apague essa pasta e reinicie o cliente. |
O retransmissor grava os próprios erros no log do cliente: ~/Library/Logs/Claude/mcp-server-dokitscript.log no macOS, %APPDATA%\Claude\logs\mcp-server-dokitscript.log no Windows. Para os códigos que o servidor devolve, veja a tabela mais abaixo.
Serve qualquer cliente que fale MCP por HTTP e permita colocar um cabeçalho. O servidor aceita requisições POST com JSON-RPC 2.0 e responde em application/json. Não há sessão nem fluxo puxado pelo servidor: GET e DELETE devolvem 405, e isso é intencional. Para testar a sua chave na mão:
curl -X POST https://dokitscript.com/mcp \ -H "Authorization: Bearer dks_live_SUA_CHAVE" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Uma chave válida devolve a definição das cinco ferramentas. Uma chamada fica assim:
curl -X POST https://dokitscript.com/mcp \ -H "Authorization: Bearer dks_live_SUA_CHAVE" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call", "params":{"name":"list_transcripts","arguments":{"limit":5}}}'
O seu assistente escolhe sozinho, a partir das descrições abaixo. Você nunca precisa nomear uma ferramenta: pedir em linguagem comum já resolve.
| Ferramenta | O que faz | Parâmetros |
|---|---|---|
transcribe_url |
Envia uma URL de vídeo ou áudio do TikTok, Instagram, YouTube, Facebook, X ou LinkedIn. Devolve um identificador na hora e transcreve em segundo plano. | url (obrigatório) · language, uma pista ou auto · format: timestamps, plain, srt ou vtt |
get_transcript |
Busca uma transcrição pelo identificador, o que transcribe_url acabou de devolver ou o de uma do histórico. Enquanto o trabalho corre, devolve o progresso em vez do texto. |
transcriptId (obrigatório) · format |
list_transcripts |
Lista as transcrições da conta, da mais recente para a mais antiga, com uma prévia curta de cada uma. | page, a partir de 1 · limit, até 50 · filtro platform |
search_transcripts |
Busca em texto completo por tudo o que você já transcreveu. Útil para «o que eu falei sobre preços naquela entrevista». | query (obrigatório, até 200 caracteres) · page · limit |
ask_question |
Faz uma pergunta livre sobre uma transcrição e devolve uma resposta pesquisada, com as fontes. | transcriptId (obrigatório) · question (obrigatório, até 500 caracteres) |
transcribe_url devolve um identificador na hora; o assistente chama depois o get_transcript com esse mesmo identificador até o texto ficar pronto. Um identificador só acompanha o trabalho inteiro, então não há nada para você anotar.
Um agente de IA travado em laço é uma falha comum, não necessariamente um ataque. Por isso o servidor limita quantas requisições uma mesma chave pode fazer num dia.
| Limite | Valor |
|---|---|
| Requisições por chave | 1.000 por dia por padrão, contando qualquer chamada, inclusive a simples listagem de ferramentas. Zera à meia-noite, no horário de Paris. |
| Chaves ativas | Até 10 por conta, revogáveis a qualquer momento. |
| Duração do vídeo | 45 minutos por item com tokens de API, até 5 horas no Business. |
| Consulta de busca | Até 200 caracteres. |
| Tamanho da pergunta | Até 500 caracteres. |
| O que você vê | O que significa |
|---|---|
| Nenhuma ferramenta no cliente | O cliente não releu o arquivo. Feche por completo e abra de novo. Depois confira se o endereço é https://dokitscript.com/mcp, sem nada depois. |
401 chave de API ausente ou inválida |
O cabeçalho tem de dizer exatamente Authorization: Bearer dks_live_…. Um espaço a menos, uma colagem pela metade ou uma chave revogada caem todos aqui. |
403 exige plano Business ou tokens de API |
A conta por trás da chave não tem plano pago nem saldo de tokens. Compre um pacote ou mude de plano em minha conta. Uma conta suspensa também devolve 403. |
402 API_CREDITS_INSUFFICIENT |
Tokens de API insuficientes para um vídeo dessa duração. Lembre que um token cobre 15 minutos iniciados: um arquivo longo consome vários de uma vez. |
429 API_DAILY_CAP_EXCEEDED |
A chave bateu o teto diário. O cabeçalho Retry-After traz a espera em segundos; o contador zera à meia-noite, no horário de Paris. |
503 API pública indisponível |
O acesso programático está desligado por ora. Nada a mudar do seu lado. Veja a página de status. |
405 numa requisição GET |
É o esperado, não é defeito. O servidor só responde a POST e nunca abre um fluxo por conta própria. |
| «Transcript not found» | O identificador está errado ou pertence a outra conta. Uma chave só enxerga as transcrições da própria conta. |
| «Still processing» | Normal num vídeo longo. O assistente deve chamar get_transcript de novo com o mesmo identificador logo depois. |
Preciso de uma chave separada para MCP?
Não. O servidor MCP e a API REST dividem as mesmas chaves, as mesmas condições de acesso e o mesmo saldo. Uma chave cobre os dois.
Precisa instalar alguma coisa para o Claude Desktop?
Precisa, e é o único dos quatro. O Claude Desktop ainda não sabe mandar uma chave fixa para um servidor remoto, então passa pelo mcp-remote, um retransmissor de código aberto publicado no npm por mantenedores de fora, que o npx baixa na primeira vez. É preciso Node.js 18 ou mais novo. Claude Code, Cursor e VS Code chamam o nosso endereço direto, sem instalar nada.
O meu assistente pode ver transcrições de outras contas?
Não. Cada ferramenta filtra pela conta dona da chave, e um identificador de fora volta simplesmente como não encontrado.
Só conectar o servidor já custa alguma coisa?
Não. Listar as ferramentas e ler o seu próprio histórico são gratuitos. Só transcrever e perguntar consomem algo.
Dá para usar em várias máquinas?
Dá. Crie uma chave por máquina, até dez, e revogue só uma se perder um notebook, sem mexer nas outras.
Quais idiomas ele aceita?
Os mesmos 90+ idiomas do aplicativo web. Deixe language em auto e a detecção acontece sozinha.
Crie uma chave, cole um bloco, reinicie o seu cliente. O seu assistente ganha uma ferramenta de transcrição que ele sabe usar sozinho.