Dokitscript expone un servidor Model Context Protocol remoto. Conéctalo una vez y tu asistente podrá transcribir un vídeo, recuperar el texto y buscar en todo lo que ya has transcrito, sin que salgas de la conversación.
MCP es el protocolo abierto con el que los clientes de IA hablan con herramientas externas. Nuestro servidor vive en https://dokitscript.com/mcp. Una vez declarado, escribes «transcribe este TikTok y sácame las tres afirmaciones que conviene verificar» y el asistente encadena solo: llama a la herramienta de transcripción, espera el texto y trabaja sobre él.
Enviar una URL para transcribir, recuperar una transcripción, listar tu historial, buscar dentro de él y hacer una pregunta sobre una transcripción concreta. Cada herramienta se limita a tu propia cuenta: la clave te identifica, y una transcripción de otra cuenta sencillamente no aparece.
El acceso programático se abre con una clave API, y hay dos formas de crear una: un plan de pago (Starter, Pro o Business), o saldo de tokens API comprados sueltos, sin ninguna suscripción.
| Lo que haces | Lo que cuesta |
|---|---|
Leerget_transcript, list_transcripts, search_transcripts |
Nada más allá del límite diario de peticiones. Basta con una clave válida. |
Transcribirtranscribe_url |
Se descuenta de tus tokens API: 1 token por cada bloque de 15 minutos empezado, así que un vídeo de 40 minutos gasta 3. En Business el uso programático va incluido en la suscripción, sin descontar tokens. |
Preguntarask_question |
Se descuenta de tu cuota mensual de IA y requiere plan Pro o Business, igual que en la aplicación web. |
Elige tu cliente abajo, pega el bloque en el archivo que lee, sustituye dks_live_TU_CLAVE por tu clave y reinicia la aplicación. La dirección del servidor no cambia nunca: https://dokitscript.com/mcp.
Lo más rápido es la línea de comandos, desde la carpeta en la que trabajas:
claude mcp add --transport http dokitscript https://dokitscript.com/mcp \ --header "Authorization: Bearer dks_live_TU_CLAVE"
Crea un .mcp.json en la raíz del proyecto: así todo el equipo comparte la misma declaración.
{
"mcpServers": {
"dokitscript": {
"type": "http",
"url": "https://dokitscript.com/mcp",
"headers": {
"Authorization": "Bearer dks_live_TU_CLAVE"
}
}
}
}Compruébalo con /mcp dentro de una sesión: el servidor debe salir como conectado, con sus cinco herramientas.
Crea .cursor/mcp.json en el proyecto para un proyecto suelto, o ~/.cursor/mcp.json para tener el servidor disponible en todas partes.
{
"mcpServers": {
"dokitscript": {
"url": "https://dokitscript.com/mcp",
"headers": {
"Authorization": "Bearer dks_live_TU_CLAVE"
}
}
}
}Abre Settings y luego MCP para confirmar que el servidor aparece. Si el interruptor está apagado, actívalo ahí.
VS Code usa la clave servers y no mcpServers. Además sabe pedirte la clave al arrancar en lugar de guardarla en el archivo, que es lo que quieres en un repositorio que se va a subir.
{
"inputs": [
{
"type": "promptString",
"id": "dokitscript-key",
"description": "Clave API de Dokitscript",
"password": true
}
],
"servers": {
"dokitscript": {
"type": "http",
"url": "https://dokitscript.com/mcp",
"headers": {
"Authorization": "Bearer ${input:dokitscript-key}"
}
}
}
}VS Code pide la clave la primera vez que arranca el servidor y luego la recuerda. Las herramientas aparecen después en modo agente, en el selector de herramientas.
Claude Desktop tiene dos puertas, y ninguna admite una clave Bearer tal cual. El panel Connectors sí acepta la dirección de un servidor remoto, pero se identifica por OAuth y no ofrece ningún campo para una clave fija. El archivo de configuración, claude_desktop_config.json, lanza comandos locales en lugar de llamar a una URL. Por eso el camino que funciona hoy pasa por un pequeño relé instalado en tu máquina: Claude Desktop lo arranca como un comando y él reenvía cada intercambio a https://dokitscript.com/mcp por HTTPS, con tu clave en la cabecera.
mcp-remote es un paquete de código abierto con licencia MIT, publicado en npm por sus propios mantenedores; npx lo descarga la primera vez y lo guarda en caché. Sus autores lo presentan como un puente provisional para los clientes que todavía no saben llegar solos a un servidor remoto autenticado: el día en que Claude Desktop sepa hacerlo, borras el bloque y apuntas directamente a nuestra dirección. Los otros tres clientes de esta página no instalan nada.
Node.js 18 o posterior, que es lo que trae npx. Compruébalo en una terminal:
node -vEn Windows, npm además tiene que estar instalado de forma global, o npx se niega a arrancar. Con un comando basta: 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, en las versiones de la comunidad; la aplicación oficial cubre macOS y Windows. |
La vía rápida: Settings, luego Developer, luego Edit Config. Abre el archivo, y lo crea si aún no existía.
{
"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_TU_CLAVE"
}
}
}
}Si el archivo ya tiene un objeto mcpServers, añade "dokitscript" dentro en vez de reemplazar el archivo entero.
La clave viaja por env. En Windows, Claude Desktop pasa los args a npx sin proteger los espacios. Escrito en el propio argumento, "Authorization: Bearer dks_live_…" se parte en el espacio: el relé lee entonces una cabecera vacía, el resto de la clave queda suelto como argumento huérfano y el servidor responde 401 aunque la clave sea perfectamente válida. Dejar el espacio dentro de la variable lo pone fuera del alcance de lo que corta. El argumento nombra la cabecera antes de los dos puntos, y la variable lleva Bearer, un espacio y tu clave.
--transport http-only quita una adivinanza. Nuestro servidor responde por POST y devuelve 405 a todo lo demás, a propósito. Si se le deja elegir el transporte por su cuenta, el relé toma un 405 como señal para replegarse a un modo de flujo enviado por el servidor que no implementamos: un callejón sin salida que nada tiene que ver con tu clave. Nombrar el transporte descarta esa rama.
Cmd + Q en macOS, salir desde el área de notificación en Windows. La configuración solo se lee al arrancar.dokitscript debería aparecer ahí con sus cinco herramientas.list_transcripts por su cuenta, sin que nombres la herramienta.El relé se interpone entre tú y nosotros: el cliente avisa de un servidor que no arranca y nunca enseña nuestro código HTTP. Dos comandos señalan cuál de las dos mitades falla. Este nos habla sin relé de por medio, y una clave buena responde con las cinco definiciones de herramientas:
curl -X POST https://dokitscript.com/mcp \ -H "Authorization: Bearer dks_live_TU_CLAVE" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Y este arranca el relé a mano, donde su error real se imprime en vez de perderse. Aquí los espacios no molestan, porque no es la terminal la que los partía:
npx -y mcp-remote https://dokitscript.com/mcp \ --transport http-only --debug \ --header "Authorization: Bearer dks_live_TU_CLAVE"
| Lo que ves | Qué hacer |
|---|---|
| Nada en la lista, y ningún error por ninguna parte | O el archivo no es JSON válido, y la aplicación lo ignora en silencio, o nunca se cerró del todo. Pasa el archivo por un validador de JSON, luego cierra y vuelve a abrir. |
npx no encontrado, o ENOENT |
Falta Node, o falta en el PATH que hereda la aplicación. Instala Node 18+, añade npm install -g npm en Windows y cierra y abre la sesión para que la aplicación vea el PATH nuevo. |
Conecta y luego 401 en la primera llamada |
Clave equivocada, cortada o revocada. El curl de arriba lo aclara en un segundo: si curl pasa y el relé no, la clave se cortó por el camino, así que revisa que AUTH_HEADER sea Bearer, un espacio y la clave. |
429 API_DAILY_CAP_EXCEEDED |
La clave llegó a su tope diario. Cuenta cada llamada, también el listado de herramientas, y un asistente metido en un bucle llega enseguida. Retry-After da la espera en segundos y el contador vuelve a cero a medianoche, hora de París. |
503 Public API is unavailable |
El acceso por programa está apagado de nuestro lado. No hay nada que cambiar en tu equipo. La página de estado dice cuándo vuelve. |
| Una clave antigua reaparece una y otra vez | El relé guarda datos de conexión en caché en ~/.mcp-auth. Borra esa carpeta y reinicia el cliente. |
El relé escribe sus propios errores en el registro del cliente: ~/Library/Logs/Claude/mcp-server-dokitscript.log en macOS, %APPDATA%\Claude\logs\mcp-server-dokitscript.log en Windows. Para los códigos que devuelve el servidor, mira la tabla de más abajo.
Sirve cualquier cliente que hable MCP por HTTP y permita poner una cabecera. El servidor acepta peticiones POST con JSON-RPC 2.0 y responde en application/json. No hay sesiones ni flujo iniciado por el servidor: GET y DELETE devuelven 405, y es intencionado. Para probar tu clave a mano:
curl -X POST https://dokitscript.com/mcp \ -H "Authorization: Bearer dks_live_TU_CLAVE" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Una clave válida devuelve la definición de las cinco herramientas. Una llamada se ve así:
curl -X POST https://dokitscript.com/mcp \ -H "Authorization: Bearer dks_live_TU_CLAVE" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call", "params":{"name":"list_transcripts","arguments":{"limit":5}}}'
Tu asistente las elige solo, a partir de las descripciones de abajo. Nunca tienes que nombrar una herramienta: basta con pedirlo en lenguaje normal.
| Herramienta | Qué hace | Parámetros |
|---|---|---|
transcribe_url |
Envía una URL de vídeo o audio de TikTok, Instagram, YouTube, Facebook, X o LinkedIn. Devuelve un identificador al momento y transcribe en segundo plano. | url (obligatorio) · language, una pista o auto · format: timestamps, plain, srt o vtt |
get_transcript |
Recupera una transcripción por su identificador, el que acaba de devolver transcribe_url o el de una del historial. Mientras el trabajo sigue en curso devuelve el progreso en lugar del texto. |
transcriptId (obligatorio) · format |
list_transcripts |
Lista las transcripciones de la cuenta, de la más reciente a la más antigua, con una vista previa corta de cada una. | page, desde 1 · limit, hasta 50 · filtro platform |
search_transcripts |
Búsqueda de texto completo en todo lo que has transcrito. Útil para «qué dije sobre los precios en esa entrevista». | query (obligatorio, 200 caracteres como máximo) · page · limit |
ask_question |
Hace una pregunta libre sobre una transcripción y devuelve una respuesta documentada, con sus fuentes. | transcriptId (obligatorio) · question (obligatorio, 500 caracteres como máximo) |
transcribe_url devuelve un identificador enseguida; el asistente vuelve a llamar a get_transcript con ese mismo identificador hasta que el texto está listo. Un único identificador acompaña todo el trabajo, así que no tienes que apuntar nada.
Que un agente de IA se quede en bucle es un fallo corriente, no necesariamente un ataque. Por eso el servidor limita cuántas peticiones puede hacer una misma clave en un día.
| Límite | Valor |
|---|---|
| Peticiones por clave | 1.000 al día por defecto, contando cualquier llamada, incluso el simple listado de herramientas. Se reinicia a medianoche, hora de París. |
| Claves activas | Hasta 10 por cuenta, revocables en cualquier momento. |
| Duración del vídeo | 45 minutos por elemento con tokens API, hasta 5 horas en Business. |
| Consulta de búsqueda | 200 caracteres como máximo. |
| Longitud de la pregunta | 500 caracteres como máximo. |
| Lo que ves | Qué significa |
|---|---|
| Ninguna herramienta en el cliente | El cliente no ha releído el archivo. Ciérralo por completo y vuelve a abrirlo. Después comprueba que la dirección es https://dokitscript.com/mcp, sin nada detrás. |
401 clave API ausente o inválida |
La cabecera debe decir exactamente Authorization: Bearer dks_live_…. Un espacio de menos, un pegado incompleto o una clave revocada acaban todos aquí. |
403 se requiere plan Business o tokens API |
La cuenta detrás de la clave no tiene plan de pago ni saldo de tokens. Compra un pack o cambia de plan desde tu cuenta. Una cuenta suspendida también devuelve 403. |
402 API_CREDITS_INSUFFICIENT |
No hay tokens API suficientes para un vídeo de esa duración. Recuerda que un token cubre 15 minutos empezados: un archivo largo gasta varios de golpe. |
429 API_DAILY_CAP_EXCEEDED |
La clave ha llegado a su tope diario. La cabecera Retry-After indica la espera en segundos; el contador se reinicia a medianoche, hora de París. |
503 API pública no disponible |
El acceso programático está apagado temporalmente. No hay nada que cambiar por tu parte. Consulta la página de estado. |
405 en una petición GET |
Es lo esperado, no una avería. El servidor solo responde a POST y nunca abre un flujo por su cuenta. |
| «Transcript not found» | El identificador es incorrecto o pertenece a otra cuenta. Una clave solo ve las transcripciones de su propia cuenta. |
| «Still processing» | Normal en un vídeo largo. El asistente debe volver a llamar a get_transcript con el mismo identificador poco después. |
¿Hace falta una clave aparte para MCP?
No. El servidor MCP y la API REST comparten claves, condiciones de acceso y saldo. Una sola clave cubre ambos.
¿Hay que instalar algo para Claude Desktop?
Sí, y es el único de los cuatro. Claude Desktop todavía no sabe enviar una clave fija a un servidor remoto, así que pasa por mcp-remote, un relé de código abierto publicado en npm por mantenedores ajenos a nosotros y que npx descarga la primera vez. Hace falta Node.js 18 o posterior. Claude Code, Cursor y VS Code llaman a nuestra dirección directamente, sin instalar nada.
¿Puede mi asistente ver transcripciones de otras cuentas?
No. Cada herramienta filtra por la cuenta dueña de la clave, y un identificador de fuera vuelve simplemente como no encontrado.
¿Conectar el servidor cuesta algo por sí solo?
No. Listar las herramientas y leer tu propio historial son gratis. Solo transcribir y preguntar consumen algo.
¿Puedo usarlo en varios equipos?
Sí. Crea una clave por equipo, hasta diez, y revoca solo una si pierdes un portátil, sin tocar las demás.
¿Qué idiomas admite?
Los mismos 90+ idiomas que la aplicación web. Deja language en auto y la detección se hace sola.
Crea una clave, pega un bloque, reinicia tu cliente. Tu asistente gana una herramienta de transcripción que sabe usar por su cuenta.