@wiro-ai/wiro-mcp 1.5.2 → 1.5.3

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.md CHANGED
@@ -14,7 +14,7 @@ Official MCP server for Wiro AI: run image, video, audio and LLM models, build a
14
14
 
15
15
  </div>
16
16
 
17
- `@wiro-ai/wiro-mcp` is a TypeScript [Model Context Protocol](https://modelcontextprotocol.io/) server that runs locally over stdio with `npx`. Its tools are grouped in three sets:
17
+ `@wiro-ai/wiro-mcp` is a TypeScript [Model Context Protocol](https://modelcontextprotocol.io/) server that runs locally over stdio, with `npx` or [Docker](#docker). Its tools are grouped in three sets:
18
18
 
19
19
  - **Models**: search the Wiro AI model catalog, read a model's parameters and price, run it and wait for the result, upload input files and browse past tasks.
20
20
  - **Workflows**: build multi-step workflows that chain models, run them, resume failed runs, browse the public gallery, and design workflows together with the Workflow Agent.
@@ -25,7 +25,8 @@ Playbooks explain each job step by step, so the assistant knows the order of cal
25
25
  ## Quick Start
26
26
 
27
27
  Local `npx` and library usage require Node.js 20 or later. The hosted MCP
28
- endpoint does not require a local Node.js installation.
28
+ endpoint and the [Docker image](#docker) do not require a local Node.js
29
+ installation.
29
30
 
30
31
  ### 1. Get API Keys
31
32
 
@@ -159,6 +160,54 @@ Ask your AI assistant:
159
160
  - *"Deploy the Instagram manager agent on the Starter plan and tell me what it still needs"*
160
161
  - *"Tell my support agent to summarise today's tickets"*
161
162
 
163
+ ## Docker
164
+
165
+ Every release is also published on Docker Hub as
166
+ [`wiroai/wiro-mcp`](https://hub.docker.com/r/wiroai/wiro-mcp), for
167
+ `linux/amd64` and `linux/arm64`. The image runs the same stdio server, so you
168
+ need Docker but not Node.js:
169
+
170
+ ```bash
171
+ docker run -i --rm -e WIRO_API_KEY wiroai/wiro-mcp
172
+ ```
173
+
174
+ `-e WIRO_API_KEY` hands the variable from your environment to the container.
175
+ For a project with signature-based auth, add `-e WIRO_API_SECRET` as well.
176
+ `WIRO_TOOLSETS` passes through the same way. Keep `-i`, since the server reads
177
+ its requests from stdin, and leave out `-t`.
178
+
179
+ In a client config, `docker` is the command and the credentials go in `env`.
180
+ This works in Cursor, Claude Desktop and Windsurf:
181
+
182
+ ```json
183
+ {
184
+ "mcpServers": {
185
+ "wiro": {
186
+ "command": "docker",
187
+ "args": ["run", "-i", "--rm", "-e", "WIRO_API_KEY", "-e", "WIRO_API_SECRET", "wiroai/wiro-mcp"],
188
+ "env": {
189
+ "WIRO_API_KEY": "your-api-key",
190
+ "WIRO_API_SECRET": "your-api-secret"
191
+ }
192
+ }
193
+ }
194
+ }
195
+ ```
196
+
197
+ **Claude Code:**
198
+
199
+ ```bash
200
+ claude mcp add wiro -e WIRO_API_KEY=your-api-key -e WIRO_API_SECRET=your-api-secret -- docker run -i --rm -e WIRO_API_KEY -e WIRO_API_SECRET wiroai/wiro-mcp
201
+ ```
202
+
203
+ For an API Key Only project, leave out the `WIRO_API_SECRET` value. Docker only
204
+ passes variables that are set, so the `-e WIRO_API_SECRET` argument can stay.
205
+
206
+ Image tags follow the npm versions: `wiroai/wiro-mcp:<version>` pins a release
207
+ and `latest` is the newest one. A client does not fetch a newer `latest` by
208
+ itself, so run `docker pull wiroai/wiro-mcp` to update. Pulling once before the
209
+ first start also means the client does not wait for the download.
210
+
162
211
  ## Authentication
163
212
 
164
213
  Wiro AI supports two authentication types, chosen when you create a project:
package/dist/index.js CHANGED
@@ -24,6 +24,11 @@ const client = new WiroClient(apiKey, apiSecret, baseUrl, {
24
24
  });
25
25
  const server = createMcpServer(client, { toolsets });
26
26
  const transport = new StdioServerTransport();
27
+ // In a container the server is PID 1, which ignores SIGINT and SIGTERM unless
28
+ // it handles them, so `docker stop` would wait out its timeout.
29
+ for (const signal of ['SIGINT', 'SIGTERM']) {
30
+ process.on(signal, () => process.exit(0));
31
+ }
27
32
  await server.connect(transport);
28
33
  console.error(`Wiro MCP server running on stdio (auth: ${client.authType}, tools: ${(toolsets ?? ['all']).join(', ')})`);
29
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,KAAK,CACX,2DAA2D;QAC3D,uCAAuC;QACvC,cAAc;QACd,uCAAuC;QACvC,4CAA4C;QAC5C,SAAS;QACT,4DAA4D;QAC5D,8FAA8F,CAC/F,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;IACxD,iBAAiB,EAAE,0CAA0C;UACzD,6EAA6E;CAClF,CAAC,CAAC;AACH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChC,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,QAAQ,YAAY,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,KAAK,CACX,2DAA2D;QAC3D,uCAAuC;QACvC,cAAc;QACd,uCAAuC;QACvC,4CAA4C;QAC5C,SAAS;QACT,4DAA4D;QAC5D,8FAA8F,CAC/F,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;IACxD,iBAAiB,EAAE,0CAA0C;UACzD,6EAA6E;CAClF,CAAC,CAAC;AACH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE7C,8EAA8E;AAC9E,gEAAgE;AAChE,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChC,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,QAAQ,YAAY,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wiro-ai/wiro-mcp",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "mcpName": "ai.wiro/mcp",
5
5
  "description": "Official MCP server for Wiro AI. Run Wiro AI models, build and run workflows, and talk to Studio and your Wiro agents from Cursor, Claude, Windsurf and any MCP-compatible AI assistant",
6
6
  "type": "module",