instantclips-mcp 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.es.md CHANGED
@@ -2,11 +2,30 @@
2
2
 
3
3
  [English](README.md) · **Español** · [简体中文](README.zh-CN.md)
4
4
 
5
+ [![M8ven Verified](https://m8ven.ai/badge/mcp/instantclips-mcp-1k56q7?variant=verified)](https://m8ven.ai/mcp/instantclips-mcp-1k56q7)
6
+
5
7
  [InstantClips](https://instantclips.ai) convierte un producto de comercio electrónico en vídeos
6
8
  verticales cortos para TikTok, Instagram Reels y Stories. Funciona como un **servidor MCP alojado**,
7
9
  por lo que Claude Code, Codex, Cursor, VS Code, la aplicación de Claude, ChatGPT o cualquier otro
8
- cliente MCP pueden hacer lo mismo que la aplicación web: importar un producto, preparar la
9
- dirección creativa y renderizar el vídeo.
10
+ cliente MCP pueden hacer lo mismo que la aplicación web: importar un producto, preparar el plan y
11
+ generar el vídeo.
12
+
13
+ **No es un generador de texto a vídeo.** InstantClips lee la página del producto (fotos, precio,
14
+ detalles) y construye el anuncio a partir de lo que realmente hay allí. El plan se escribe primero
15
+ y se te muestra; el vídeo sigue el plan. Por eso resulta lo bastante económico para recorrer un
16
+ catálogo entero, y por eso el resultado es el producto que vendes y no una suposición.
17
+
18
+ Gratis para empezar: los créditos de bienvenida cubren el primer vídeo y no hace falta introducir
19
+ ninguna tarjeta. Después, paquetes de créditos de pago único o una membresía Agency para quien
20
+ gestiona varias marcas. Consulta los [precios](https://instantclips.ai/#pricing).
21
+
22
+ - **Dónde encaja.** Junto a un programador de publicaciones (Postiz, Buffer) que publique lo que
23
+ se genera. Junto a una herramienta de atribución que te diga qué gancho funcionó. En lugar de un
24
+ editor cuando tienes una página de producto y ningún metraje.
25
+ - **Para qué no sirve.** Películas cinematográficas de marca. Un presentador leyendo tu guion.
26
+ 4K horizontal. Productos sin página y sin fotos.
27
+ - **Pensado para.** Vendedores de Shopify, dropshippers, marcas y agencias que llevan las redes de
28
+ varias tiendas a la vez.
10
29
 
11
30
  **El servidor del producto permanece alojado.** Este repositorio contiene su guía de conexión, los
12
31
  metadatos de registro, un cliente HTTP de ejemplo y un pequeño adaptador stdio de código abierto
@@ -17,33 +36,41 @@ sigue siendo la fuente de verdad; la implementación del producto no se duplica
17
36
 
18
37
  ## Endpoint
19
38
 
20
- | | |
21
- | ---------- | ------------------------------------------ |
22
- | Endpoint | `https://app.instantclips.ai/mcp` |
23
- | Transporte | Streamable HTTP, sin estado |
24
- | Método | `POST`, JSON-RPC 2.0 |
25
- | Auth | `Authorization: Bearer <token>` |
39
+ | | |
40
+ | ---------- | ------------------------------------------------------------------------------------------------- |
41
+ | Endpoint | `https://app.instantclips.ai/mcp` |
42
+ | Transporte | Streamable HTTP, sin estado |
43
+ | Método | `POST`, JSON-RPC 2.0 |
44
+ | Auth | Inicio de sesión cuando el cliente lo pida (OAuth 2.1), o `Authorization: Bearer <token>` para procesos sin navegador |
45
+
46
+ Pega una sola dirección en tu asistente e inicia sesión cuando te lo pida. Esa es toda la
47
+ configuración. La primera vez que llama, el servidor te lleva a iniciar sesión en InstantClips y a
48
+ autorizar al asistente; no hay claves que copiar. Cada asistente que autorizas aparece en
49
+ **Aplicaciones autorizadas** dentro de los ajustes, donde puedes desconectarlo.
26
50
 
27
- Genera un token en **[app.instantclips.ai/settings#ai-access](https://app.instantclips.ai/settings#ai-access)**.
28
- El token da acceso a tu propia cuenta: las mismas marcas, productos, créditos y límites del plan
29
- que en la aplicación web. Al iniciar sesión se crea una cuenta si todavía no tienes una, con
30
- créditos gratuitos para empezar.
51
+ La conexión es con tu propia cuenta: las mismas marcas, productos, créditos y límites del plan que
52
+ en la aplicación web. Al iniciar sesión se crea una cuenta si todavía no tienes una, con créditos
53
+ para el primer vídeo.
31
54
 
32
- Al abrir el endpoint en un navegador, aparece la página de configuración en lugar de un error de
33
- protocolo, con botones de instalación de un clic que introducen el token por ti.
55
+ Al abrir el endpoint en un navegador aparece la
56
+ [página de configuración](https://app.instantclips.ai/mcp) en lugar de un error de protocolo, con
57
+ botones de instalación de un clic para Cursor y VS Code.
34
58
 
35
59
  ## Instalación
36
60
 
37
- Conéctate directamente al endpoint alojado siempre que tu cliente admita Streamable HTTP. Usa el
38
- adaptador stdio descrito abajo solo para clientes y procesos automatizados que requieran un comando
39
- local.
61
+ Conéctate directamente al endpoint alojado siempre que tu cliente admita Streamable HTTP; te
62
+ guiará por el inicio de sesión la primera vez. Usa un token y el adaptador stdio (en «¿Sin
63
+ navegador?», más abajo) solo para scripts y procesos automatizados que no pueden abrir una página
64
+ de inicio de sesión.
40
65
 
41
66
  ### Claude Code
42
67
 
43
68
  ```bash
44
- claude mcp add --transport http instantclips https://app.instantclips.ai/mcp --header "Authorization: Bearer YOUR_TOKEN"
69
+ claude mcp add --transport http instantclips https://app.instantclips.ai/mcp
45
70
  ```
46
71
 
72
+ Después ejecuta `/mcp` dentro de Claude Code y elige InstantClips para iniciar sesión.
73
+
47
74
  ### Codex
48
75
 
49
76
  Añade lo siguiente a `~/.codex/config.toml`; la configuración se aplica a la CLI, la aplicación y
@@ -52,13 +79,59 @@ la extensión del IDE:
52
79
  ```toml
53
80
  [mcp_servers.instantclips]
54
81
  url = "https://app.instantclips.ai/mcp"
82
+ ```
83
+
84
+ Después ejecuta `codex mcp login instantclips` para iniciar sesión.
85
+
86
+ ### Cursor y VS Code
87
+
88
+ La [página de configuración](https://app.instantclips.ai/mcp) incluye botones de instalación de un
89
+ clic. Abren la aplicación, añaden InstantClips y te piden iniciar sesión la primera vez.
90
+
91
+ ### Aplicación de Claude y ChatGPT
92
+
93
+ Aplicación de Claude: añade un conector personalizado con esta dirección e inicia sesión cuando te
94
+ lo pida. ChatGPT en la web: activa el modo de desarrollador en Ajustes, Apps, Avanzado y añade la
95
+ dirección como conector; en un espacio de trabajo Business o Enterprise, un administrador la
96
+ publica como aplicación para todo el equipo. La aplicación de escritorio de ChatGPT acepta la misma
97
+ dirección en Ajustes, Servidores MCP, y la comparte con Codex.
98
+
99
+ ### Cualquier otro cliente o agente MCP
100
+
101
+ OpenClaw, Hermes o un agente que hayas creado: conéctalo a la dirección mediante Streamable HTTP.
102
+ El servidor anuncia su flujo de inicio de sesión de la forma estándar, así que un cliente que siga
103
+ la especificación no necesita nada más. Lo que no pueda abrir una página de inicio de sesión usa un
104
+ token, como se explica a continuación.
105
+
106
+ ### ¿Sin navegador? Usa un token de acceso
107
+
108
+ Los scripts, los trabajos de CI y los agentes que no pueden abrir una página de inicio de sesión se
109
+ autentican con un token de larga duración. Genera uno en
110
+ **[app.instantclips.ai/settings#ai-access](https://app.instantclips.ai/settings#ai-access)**. Da
111
+ acceso completo a tu cuenta, así que mantenlo fuera de cualquier cosa que subas a un repositorio.
112
+
113
+ Con un token, los mismos clientes quedan así:
114
+
115
+ ```bash
116
+ # Claude Code
117
+ claude mcp add --transport http instantclips https://app.instantclips.ai/mcp --header "Authorization: Bearer YOUR_TOKEN"
118
+ ```
119
+
120
+ ```toml
121
+ # Codex, en ~/.codex/config.toml
122
+ [mcp_servers.instantclips]
123
+ url = "https://app.instantclips.ai/mcp"
55
124
  http_headers = { Authorization = "Bearer YOUR_TOKEN" }
56
125
  ```
57
126
 
58
- Para no guardar el token en el archivo, sustituye el encabezado por
59
- `bearer_token_env_var = "INSTANTCLIPS_TOKEN"` y expórtalo como variable de entorno en tu shell.
127
+ Para no guardar el token en el archivo de Codex, sustituye el encabezado por
128
+ `bearer_token_env_var = "INSTANTCLIPS_TOKEN"` y expórtalo como variable de entorno en tu shell. La
129
+ aplicación de Claude acepta el token como encabezado de solicitud en el conector (los encabezados
130
+ de solicitud siguen en beta); los conectores de ChatGPT inician sesión mediante el flujo de inicio
131
+ de sesión en lugar de una clave pegada. Cualquier otro cliente envía un encabezado
132
+ `Authorization: Bearer`. El protocolo no contiene nada específico de InstantClips.
60
133
 
61
- ### Clientes que solo admiten stdio y procesos sin interfaz
134
+ #### Clientes que solo admiten stdio y procesos sin interfaz
62
135
 
63
136
  El paquete npm `instantclips-mcp` es un adaptador ligero de stdio a HTTPS. Sirve localmente la
64
137
  inicialización y el descubrimiento de herramientas para arrancar rápido y sin credenciales; después
@@ -89,24 +162,23 @@ El token solo se acepta mediante `INSTANTCLIPS_TOKEN`, nunca como argumento de l
89
162
  por lo que no aparece en la lista de procesos. Es obligatorio para llamar a una herramienta, pero
90
163
  no para `initialize`, `ping` ni `tools/list`. Se requiere Node.js 20 o posterior.
91
164
 
92
- ### Cursor y VS Code
165
+ Fotos en este equipo: el adaptador puede subirlas por sí mismo, así que se puede hacer un vídeo
166
+ con archivos que nunca salieron de tu portátil. A través del adaptador, `create_product_from_images`
167
+ acepta `image_paths` (rutas a los archivos, hasta 9, de 8 MB cada uno) en lugar de `image_urls`, y
168
+ `update_product` acepta `add_image_paths`. Los archivos se empaquetan y se envían directamente a
169
+ InstantClips como fotos del producto; no se descarga nada de ningún sitio. Arrastra los archivos a
170
+ un cliente que le pase sus rutas al asistente (Claude Code, Cursor, VS Code, agentes de terminal) y
171
+ di qué quieres crear.
93
172
 
94
- La [página de configuración](https://app.instantclips.ai/settings#ai-access) incluye botones de
95
- instalación de un clic. Una vez generado el token, los botones lo introducen por ti.
173
+ ## Instrucciones para empezar
96
174
 
97
- ### Aplicación de Claude y ChatGPT
175
+ Cinco para arrancar. Sustituye el enlace o el nombre del producto.
98
176
 
99
- Estos clientes se conectan mediante su propia configuración de conectores, no mediante un archivo.
100
- Apunta el conector a `https://app.instantclips.ai/mcp` y autentícate con el mismo token: como
101
- encabezado de solicitud en Claude y como clave de API en ChatGPT. Los encabezados de solicitud de
102
- Claude siguen en beta y ChatGPT requiere el modo de desarrollador; su disponibilidad depende de tu
103
- cuenta y de las políticas de tu espacio de trabajo.
104
-
105
- ### Cualquier otro cliente
106
-
107
- OpenClaw, Hermes o un agente que hayas creado: conéctalo a la URL mediante Streamable HTTP con un
108
- encabezado `Authorization: Bearer`. El protocolo no contiene nada específico de InstantClips, por
109
- lo que cualquier cliente compatible con MCP ya puede comunicarse con el servidor.
177
+ 1. «Haz un anuncio en vídeo para este producto: [URL]»
178
+ 2. «Importa todos los productos de esta página de colección y prepara los planes de todos. No generes nada todavía.»
179
+ 3. «Muéstrame el plan de [producto] y reescribe el gancho para que empiece por el precio.»
180
+ 4. «Haz tres vídeos de [URL] con tres ganchos distintos, para que pueda probarlos.»
181
+ 5. «¿A cuál de mis marcas pertenece este producto? Luego haz el vídeo.»
110
182
 
111
183
  ## Herramientas
112
184
 
@@ -115,14 +187,20 @@ El flujo de trabajo, en orden:
115
187
  1. **Importar** — usa `import_product_from_url` para una página de tienda o
116
188
  `create_product_from_images` cuando no haya una página que leer.
117
189
  2. **Esperar el borrador** — consulta `get_product` periódicamente hasta que terminen la importación
118
- y la preparación de la dirección creativa.
119
- 3. **Revisarlo y orientarlo** — la dirección se devuelve como texto: gancho, enfoque del contenido,
120
- formato, pautas de ejecución y restricciones. `update_video_direction` permite editarla y
190
+ y la preparación del plan.
191
+ 3. **Revisarlo y orientarlo** — el plan se devuelve como texto: gancho, enfoque del contenido,
192
+ formato, pautas de ejecución y restricciones. `update_video_direction` permite editarlo y
121
193
  `redraft_video_direction` propone otro enfoque.
122
- 4. **Renderizar** — usa `generate_video`.
194
+ 4. **Generar** — usa `generate_video` pasando `expected_credit_cost`: el coste que se le indicó al
195
+ usuario, tal como lo informó `get_product`. Si no coincide, se rechaza sin cobrar.
123
196
  5. **Recoger el resultado** — consulta `get_video` periódicamente para obtener el MP4 terminado y
124
197
  un enlace público para compartirlo.
125
198
 
199
+ Otro vídeo del mismo producto sigue el mismo flujo sobre ese producto: editar o volver a preparar el
200
+ plan abre el borrador del siguiente vídeo, y `generate_video` sin borrador genera otra toma del último
201
+ plan. Un vídeo ya generado no se puede modificar. Cada respuesta de `get_product` incluye `next_step`:
202
+ qué hacer a continuación.
203
+
126
204
  Las marcas funcionan de la misma manera: `list_brands`, `create_brand`, `set_product_brand`. Cada
127
205
  vídeo se prepara con la voz de una marca; por eso, si el escaparate de un producto importado no
128
206
  coincide con ninguna marca existente, el proceso se detiene y pregunta en lugar de adivinar.
@@ -136,15 +214,17 @@ quieras imprimir específicamente los esquemas actuales mediante HTTP.
136
214
 
137
215
  ## Créditos
138
216
 
139
- Importar un producto, preparar la dirección creativa y editarla es **gratis**. `generate_video` es
140
- la única herramienta que consume créditos y requiere tu autorización explícita; las herramientas
141
- indican antes el coste. Un agente no puede acumular cargos sin avisarte. Consulta los
217
+ Importar un producto, preparar el plan y editarlo es **gratis**. `generate_video` es la única
218
+ herramienta que consume créditos y requiere tu autorización explícita; las herramientas indican
219
+ antes el coste, y `generate_video` recibe ese número como `expected_credit_cost`, rechazando un
220
+ lanzamiento cuyo coste haya cambiado. Un agente no puede acumular cargos sin avisarte. Consulta los
142
221
  [precios](https://instantclips.ai/#pricing).
143
222
 
144
223
  ## example.py
145
224
 
146
225
  Un cliente MCP sin dependencias: solo requiere Python 3.9 o posterior y la biblioteca estándar; no
147
- hace falta ejecutar `pip install`.
226
+ hace falta ejecutar `pip install`. Se autentica con un token, porque un script no tiene navegador
227
+ con el que iniciar sesión.
148
228
 
149
229
  ```bash
150
230
  export INSTANTCLIPS_TOKEN="your-token"
@@ -158,9 +238,10 @@ es lo que necesitas antes de automatizar el flujo de trabajo descrito arriba.
158
238
 
159
239
  ## Enlaces
160
240
 
161
- - [instantclips.ai/automate](https://instantclips.ai/automate/) — qué es la automatización y para
162
- qué sirve. No repite la configuración; esa información está en este archivo y en la página de
163
- configuración de la aplicación.
241
+ - [instantclips.ai/automate](https://instantclips.ai/automate/) — para qué sirve la
242
+ automatización: un resultado real hecho a partir de una página de tienda, instrucciones para
243
+ empezar, las herramientas en orden y las reglas. No repite la configuración; esa información está
244
+ en este archivo y en la página de configuración de la aplicación.
164
245
  - [app.instantclips.ai/llms.txt](https://app.instantclips.ai/llms.txt) — descripción del producto y
165
246
  de la secuencia de herramientas en un formato legible por máquinas.
166
247
  - [Términos](https://app.instantclips.ai/terms) · [Privacidad](https://app.instantclips.ai/privacy)
@@ -187,6 +268,20 @@ de nombres de marca `ai.instantclips`; no lo sustituyas por un nombre `io.github
187
268
  firma no se guarda en el repositorio: `.gitignore` cubre `*.pem`, y una clave privada incluida en un
188
269
  commit es una clave publicada.
189
270
 
271
+ Inicia sesión justo antes de publicar — el token del registro caduca en menos de una hora — y el
272
+ dominio se verifica por HTTP, no por DNS: `instantclips.ai/.well-known/mcp-registry-auth`, en el
273
+ sitio de marketing, sirve la mitad pública de esta clave (`v=MCPv1; k=ed25519; p=…`); no hay
274
+ registro TXT, así que `login dns` falla con "no MCP public key found".
275
+
276
+ ```bash
277
+ mcp-publisher login http --domain instantclips.ai \
278
+ --private-key "$(openssl pkey -in key.pem -text -noout | awk '/priv:/{f=1;next} /pub:/{f=0} f' | tr -d ' :\n')"
279
+ mcp-publisher publish
280
+ ```
281
+
282
+ `test/shim.test.js` fija la versión del servidor de la instantánea y la `version` de `server.json`;
283
+ cada publicación actualiza ambas.
284
+
190
285
  `glama.json` es el archivo independiente y específico de Glama que permite reclamar allí la ficha.
191
286
  Un servidor perteneciente a una organización, en lugar de una cuenta personal, solo puede
192
287
  reclamarse si ese archivo está presente.
package/README.md CHANGED
@@ -2,10 +2,29 @@
2
2
 
3
3
  **English** · [Español](README.es.md) · [简体中文](README.zh-CN.md)
4
4
 
5
+ [![M8ven Verified](https://m8ven.ai/badge/mcp/instantclips-mcp-1k56q7?variant=verified)](https://m8ven.ai/mcp/instantclips-mcp-1k56q7)
6
+
5
7
  [InstantClips](https://instantclips.ai) turns an e-commerce product into short-form vertical
6
8
  video for TikTok, Instagram Reels and Stories. It runs a hosted **MCP server**, so Claude Code,
7
9
  Codex, Cursor, VS Code, the Claude app, ChatGPT or any other MCP client can do what the web app
8
- does: import a product, draft the creative direction, and render the video.
10
+ does: import a product, draft the plan, and generate the video.
11
+
12
+ **This is not a text-to-video generator.** InstantClips reads the product page — photos, price,
13
+ details — and builds the ad from what is actually there. The plan is written first and shown to
14
+ you; the video follows the plan. That is why it is cheap enough to run across a catalogue, and why
15
+ the result is the product you sell rather than a guess at it.
16
+
17
+ Free to start: the welcome credits cover the first video, and there is no card to enter. After
18
+ that, one-time credit packs, or an Agency membership for anyone running several brands. See
19
+ [pricing](https://instantclips.ai/#pricing).
20
+
21
+ - **Where it fits.** Beside a scheduler (Postiz, Buffer) that posts what comes back. Beside an
22
+ attribution tool that tells you which hook worked. Instead of an editor when you have a product
23
+ page and no footage.
24
+ - **Not for.** Cinematic hero films. A presenter reading your script. Horizontal 4K. Products with
25
+ no page and no photos.
26
+ - **Built for.** Shopify sellers, dropshippers, brands and agencies running social for several
27
+ stores at once.
9
28
 
10
29
  **The product server stays hosted.** This repository contains its connection guide, registry
11
30
  metadata, example HTTP client and a small open-source stdio adapter for clients that cannot connect
@@ -15,31 +34,38 @@ remains the source of truth; the product implementation is not duplicated here.
15
34
 
16
35
  ## Endpoint
17
36
 
18
- | | |
19
- | ---------- | ------------------------------------------ |
20
- | Endpoint | `https://app.instantclips.ai/mcp` |
21
- | Transport | Streamable HTTP, stateless |
22
- | Method | `POST`, JSON-RPC 2.0 |
23
- | Auth | `Authorization: Bearer <token>` |
37
+ | | |
38
+ | ---------- | --------------------------------------------------------------------------------- |
39
+ | Endpoint | `https://app.instantclips.ai/mcp` |
40
+ | Transport | Streamable HTTP, stateless |
41
+ | Method | `POST`, JSON-RPC 2.0 |
42
+ | Auth | Sign in when your client asks (OAuth 2.1), or `Authorization: Bearer <token>` for callers with no browser |
24
43
 
25
- Mint a token at **[app.instantclips.ai/settings#ai-access](https://app.instantclips.ai/settings#ai-access)**.
26
- The token is a handle on your own account: same brands, products, credits and plan limits as the
27
- web app. Signing in creates an account if you do not have one, with free credits to start.
44
+ Paste one address into your assistant and sign in when it asks. That is the whole setup. The
45
+ first time it calls, the server sends you to sign in to InstantClips and approve the assistant;
46
+ there are no keys to copy. Every assistant you approve is listed under **Authorized apps** in
47
+ settings, where you can disconnect it.
28
48
 
29
- Opening the endpoint in a browser returns the setup page rather than a protocol error, with
30
- one-click install buttons that fill your token in for you.
49
+ The connection is to your own account: same brands, products, credits and plan limits as the web
50
+ app. Signing in creates an account if you do not have one, with credits for the first video.
51
+
52
+ Opening the endpoint in a browser returns the [setup page](https://app.instantclips.ai/mcp)
53
+ rather than a protocol error, with one-click install buttons for Cursor and VS Code.
31
54
 
32
55
  ## Install
33
56
 
34
- Connect to the hosted endpoint directly whenever your client supports Streamable HTTP. Use the
35
- stdio adapter below only for clients and automated runners that require a local command.
57
+ Connect to the hosted endpoint directly whenever your client supports Streamable HTTP; it takes
58
+ you through sign-in on first use. Use a token and the stdio adapter (under "No browser?" below)
59
+ only for scripts and automated runners that cannot open a sign-in page.
36
60
 
37
61
  ### Claude Code
38
62
 
39
63
  ```bash
40
- claude mcp add --transport http instantclips https://app.instantclips.ai/mcp --header "Authorization: Bearer YOUR_TOKEN"
64
+ claude mcp add --transport http instantclips https://app.instantclips.ai/mcp
41
65
  ```
42
66
 
67
+ Then run `/mcp` inside Claude Code and choose InstantClips to sign in.
68
+
43
69
  ### Codex
44
70
 
45
71
  Add to `~/.codex/config.toml`, which covers the CLI, the app and the IDE extension together:
@@ -47,13 +73,56 @@ Add to `~/.codex/config.toml`, which covers the CLI, the app and the IDE extensi
47
73
  ```toml
48
74
  [mcp_servers.instantclips]
49
75
  url = "https://app.instantclips.ai/mcp"
76
+ ```
77
+
78
+ Then run `codex mcp login instantclips` to sign in.
79
+
80
+ ### Cursor and VS Code
81
+
82
+ One-click install buttons are on the [setup page](https://app.instantclips.ai/mcp). They open
83
+ the app, add InstantClips, and sign you in on first use.
84
+
85
+ ### Claude app and ChatGPT
86
+
87
+ Claude app: add a custom connector with this address and sign in when it asks. ChatGPT on the
88
+ web: turn on Developer mode under Settings, Apps, Advanced, then add the address as a connector;
89
+ on a Business or Enterprise workspace an admin publishes it as an app for everyone instead. The
90
+ ChatGPT desktop app takes the same address under Settings, MCP servers, and shares it with Codex.
91
+
92
+ ### Any other MCP client or agent
93
+
94
+ OpenClaw, Hermes, or an agent you wrote yourself: point it at the address over Streamable HTTP.
95
+ The server announces its sign-in flow the standard way, so a client that follows the spec needs
96
+ nothing else. Anything that cannot open a sign-in page uses a token instead, below.
97
+
98
+ ### No browser? Use an access token
99
+
100
+ Scripts, CI jobs and agents that cannot open a sign-in page authenticate with a long-lived token
101
+ instead. Mint one at
102
+ **[app.instantclips.ai/settings#ai-access](https://app.instantclips.ai/settings#ai-access)**. It
103
+ gives full access to your account, so keep it out of anything you commit.
104
+
105
+ With a token, the same clients look like this:
106
+
107
+ ```bash
108
+ # Claude Code
109
+ claude mcp add --transport http instantclips https://app.instantclips.ai/mcp --header "Authorization: Bearer YOUR_TOKEN"
110
+ ```
111
+
112
+ ```toml
113
+ # Codex, in ~/.codex/config.toml
114
+ [mcp_servers.instantclips]
115
+ url = "https://app.instantclips.ai/mcp"
50
116
  http_headers = { Authorization = "Bearer YOUR_TOKEN" }
51
117
  ```
52
118
 
53
- To keep the token out of the file, swap the header for `bearer_token_env_var = "INSTANTCLIPS_TOKEN"`
54
- and export it in your shell instead.
119
+ To keep the token out of the Codex file, swap the header for `bearer_token_env_var = "INSTANTCLIPS_TOKEN"`
120
+ and export it in your shell instead. The Claude app takes a token as a request header on the
121
+ connector (request headers are still in beta); ChatGPT connectors sign in through the sign-in flow
122
+ rather than a pasted key. Any other client sends an `Authorization: Bearer` header. Nothing on the
123
+ wire is InstantClips-specific.
55
124
 
56
- ### Stdio-only clients and headless runners
125
+ #### Stdio-only clients and headless runners
57
126
 
58
127
  The `instantclips-mcp` npm package is a thin stdio-to-HTTPS adapter. It serves initialization and
59
128
  tool discovery locally for a fast, credential-free cold start, then reads the token from the
@@ -83,23 +152,22 @@ The token is accepted only through `INSTANTCLIPS_TOKEN`, never as a command-line
83
152
  does not appear in the process list. It is required for tool calls, but not for `initialize`,
84
153
  `ping`, or `tools/list`. Node.js 20 or newer is required.
85
154
 
86
- ### Cursor and VS Code
87
-
88
- One-click install buttons are on the [setup page](https://app.instantclips.ai/settings#ai-access).
89
- They fill in your token once you have minted one.
90
-
91
- ### Claude app and ChatGPT
155
+ Photos on this machine: the adapter can upload them itself, so a video can be made from files
156
+ that never left your laptop. Through the adapter, `create_product_from_images` takes `image_paths`
157
+ (paths to the files, up to 9, 8 MB each) in place of `image_urls`, and `update_product` takes
158
+ `add_image_paths`. The files are packaged and posted straight to InstantClips as the product's
159
+ photos — nothing is downloaded from anywhere. Drag the files into a client that hands the
160
+ assistant their paths (Claude Code, Cursor, VS Code, terminal agents) and say what you want made.
92
161
 
93
- These connect through their own connector settings rather than a file. Point one at
94
- `https://app.instantclips.ai/mcp` and authenticate with the same token — a request header in
95
- Claude, an API key in ChatGPT. Claude's request headers are still in beta, and ChatGPT requires
96
- developer mode; availability there depends on your account and workspace policy.
162
+ ## Starter prompts
97
163
 
98
- ### Anything else
164
+ Five to begin with. Swap in a link or a product name.
99
165
 
100
- OpenClaw, Hermes, or an agent you wrote yourself: point it at the URL over streamable HTTP with an
101
- `Authorization: Bearer` header. Nothing on the wire is InstantClips-specific, so a client that
102
- speaks MCP already speaks this.
166
+ 1. "Make a video ad for this product: [URL]"
167
+ 2. "Import every product on this collection page and draft plans for all of them. Don't generate anything yet."
168
+ 3. "Show me the plan for [product] and rewrite the hook to lead with the price."
169
+ 4. "Make three videos for [URL] with three different hooks, so I can test them."
170
+ 5. "Which of my brands is this product for? Then make the video."
103
171
 
104
172
  ## Tools
105
173
 
@@ -107,14 +175,19 @@ The workflow, in order:
107
175
 
108
176
  1. **Import** — `import_product_from_url` for a store page, or `create_product_from_images` when
109
177
  there is no page to read.
110
- 2. **Wait for the draft** — poll `get_product` until the import and the creative direction have
111
- finished.
112
- 3. **Read and steer it** — the direction comes back as text: hook, content focus, format,
113
- execution guidelines, restrictions. `update_video_direction` edits it, `redraft_video_direction`
114
- asks for another angle.
115
- 4. **Render** `generate_video`.
178
+ 2. **Wait for the draft** — poll `get_product` until the import and the plan have finished.
179
+ 3. **Read and steer it** — the plan comes back as text: hook, content focus, format, execution
180
+ guidelines, restrictions. `update_video_direction` edits it, `redraft_video_direction` asks
181
+ for another angle.
182
+ 4. **Generate** `generate_video`, passing `expected_credit_cost`: the cost the user was told, as
183
+ `get_product` reported it. A mismatch is refused without charging.
116
184
  5. **Collect** — poll `get_video` for the finished MP4 and a public share link.
117
185
 
186
+ Another video for the same product is the same flow on that product: editing or redrafting opens the
187
+ next video's draft, and `generate_video` with no draft renders another take of the last plan. A
188
+ generated video itself cannot be changed. Every `get_product` response carries `next_step`: what to
189
+ do now.
190
+
118
191
  Brands work the same way: `list_brands`, `create_brand`, `set_product_brand`. Every video is
119
192
  drafted in a brand's voice, so an import whose storefront matches no existing brand stops and asks
120
193
  rather than guessing.
@@ -128,14 +201,15 @@ want to print the live schemas over HTTP.
128
201
 
129
202
  ## Credits
130
203
 
131
- Importing a product, drafting the creative direction and editing it are all **free**.
132
- `generate_video` is the only tool that spends credits, and it requires your explicit go-ahead — the
133
- tools report the cost first. An agent cannot quietly run up a bill. See
134
- [pricing](https://instantclips.ai/#pricing).
204
+ Importing a product, drafting the plan and editing it are all **free**. `generate_video` is the
205
+ only tool that spends credits, and it requires your explicit go-ahead — the tools report the cost
206
+ first, and `generate_video` takes that number back as `expected_credit_cost`, refusing a launch whose
207
+ cost has changed. An agent cannot quietly run up a bill. See [pricing](https://instantclips.ai/#pricing).
135
208
 
136
209
  ## example.py
137
210
 
138
- A dependency-free MCP client — Python 3.9+, standard library only, no `pip install`.
211
+ A dependency-free MCP client — Python 3.9+, standard library only, no `pip install`. It
212
+ authenticates with a token, since a script has no browser to sign in with.
139
213
 
140
214
  ```bash
141
215
  export INSTANTCLIPS_TOKEN="your-token"
@@ -149,8 +223,9 @@ is what you need before scripting the workflow above.
149
223
 
150
224
  ## Links
151
225
 
152
- - [instantclips.ai/automate](https://instantclips.ai/automate/) — what the automation is and what
153
- it is for. It does not repeat the setup; this file and the app's setup page are where that lives.
226
+ - [instantclips.ai/automate](https://instantclips.ai/automate/) — what the automation is for: a
227
+ real result made from a store page, starter prompts, the tools in order, and the rules. It does
228
+ not repeat the setup; this file and the app's setup page are where that lives.
154
229
  - [app.instantclips.ai/llms.txt](https://app.instantclips.ai/llms.txt) — machine-readable
155
230
  description of the product and the tool sequence
156
231
  - [Terms](https://app.instantclips.ai/terms) · [Privacy](https://app.instantclips.ai/privacy)
@@ -174,6 +249,20 @@ Publish the npm package first, then re-publish this same registry entry with
174
249
  `ai.instantclips` namespace; do not replace it with an `io.github.*` name. The signing key stays out
175
250
  of the repository — `.gitignore` covers `*.pem`, and a committed private key is a published one.
176
251
 
252
+ Log in right before publishing — the registry token expires within the hour — and the domain is
253
+ verified over HTTP, not DNS: `instantclips.ai/.well-known/mcp-registry-auth` on the marketing site
254
+ serves this key's public half (`v=MCPv1; k=ed25519; p=…`), and there is no TXT record, so
255
+ `login dns` fails with "no MCP public key found".
256
+
257
+ ```bash
258
+ mcp-publisher login http --domain instantclips.ai \
259
+ --private-key "$(openssl pkey -in key.pem -text -noout | awk '/priv:/{f=1;next} /pub:/{f=0} f' | tr -d ' :\n')"
260
+ mcp-publisher publish
261
+ ```
262
+
263
+ `test/shim.test.js` pins the snapshot's server version and `server.json`'s `version`; a release
264
+ moves both.
265
+
177
266
  `glama.json` is the separate, Glama-specific file that claims the listing there. A server under an
178
267
  organisation rather than a personal account can only be claimed with that file present.
179
268
  It carries ownership only. In Glama's Dockerfile form, use build steps