ottoport 1.3.0 → 1.3.1
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/.claude-plugin/plugin.json +1 -1
- package/commands/setup.md +8 -3
- package/package.json +1 -1
- package/skills/ottoport/SKILL.md +53 -68
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ottoport",
|
|
3
3
|
"description": "One API for every model. Call chat, image, video, speech and music models through the OttoPort gateway — as MCP tools, slash commands, or the bundled CLI.",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "LITBOX LLC",
|
|
7
7
|
"email": "support@ottoport.ai"
|
package/commands/setup.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Check that the OttoPort plugin is wired up — key, gateway reachability, MCP tools
|
|
3
|
-
allowed-tools: Bash(node:*), Bash(printenv:*), mcp__ottoport__ottoport_list_models
|
|
3
|
+
allowed-tools: Bash(node:*), Bash(which:*), Bash(printenv:*), mcp__ottoport__ottoport_list_models
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Verify this machine can reach OttoPort, then report what is and is not working.
|
|
@@ -10,8 +10,13 @@ Verify this machine can reach OttoPort, then report what is and is not working.
|
|
|
10
10
|
2. Call `ottoport_list_models`. Success means the MCP server, the base URL and
|
|
11
11
|
the key are all good; stop and report.
|
|
12
12
|
3. If that fails, the fix depends on the error:
|
|
13
|
-
- no `ottoport` MCP tools at all → the plugin's MCP server did not start
|
|
14
|
-
|
|
13
|
+
- no `ottoport` MCP tools at all → the plugin's MCP server did not start.
|
|
14
|
+
Check `which node` before `node --version`: the usual cause is not a wrong
|
|
15
|
+
version but no `node` at all in the environment that launched the host.
|
|
16
|
+
A Node managed by nvm, volta, asdf or mise lives in a directory those tools
|
|
17
|
+
add to an interactive shell's PATH, and a client started from the Dock or a
|
|
18
|
+
desktop launcher never runs that shell. Launching the host from a terminal,
|
|
19
|
+
or installing a system-wide Node, fixes it.
|
|
15
20
|
- `401`/`invalid key` → the key is missing or wrong. Keys are created at
|
|
16
21
|
https://ottoport.ai/api-keys and look like `op-…`.
|
|
17
22
|
- connection refused → `OTTOPORT_BASE_URL` points at a gateway that is not
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ottoport",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Claude Code plugin, CLI and MCP server for OttoPort — one OpenAI-compatible API for every LLM, image, video, and speech model.",
|
|
5
5
|
"homepage": "https://ottoport.ai",
|
|
6
6
|
"license": "MIT",
|
package/skills/ottoport/SKILL.md
CHANGED
|
@@ -1,99 +1,84 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ottoport
|
|
3
|
-
description: Generate text, images, and
|
|
3
|
+
description: Generate text, images, video, speech, and music through OttoPort — one gateway for every model (GPT, Claude, Gemini, GPT Image, Nano Banana, Veo, Kling, Seedance, Suno). Use when the user wants to call an LLM or generate an image, video, or audio and has OttoPort configured, or asks to "use OttoPort".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# OttoPort
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
providers. One key, one base URL, three modalities: **chat**, **image**, **video**.
|
|
8
|
+
One gateway, five modalities: **chat**, **image**, **video**, **speech**, **music**.
|
|
10
9
|
|
|
11
|
-
##
|
|
10
|
+
## Use the tools
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
This skill ships with an MCP server. Call its tools directly — do not shell out,
|
|
13
|
+
and do not call the HTTP API, when a tool covers the job:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
| Tool | For |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| `ottoport_list_models` | The catalog, with modality, provider, and price. Filter with `modality`. |
|
|
18
|
+
| `ottoport_chat` | `prompt`, plus optional `model`, `system`, `temperature`, `max_tokens`. |
|
|
19
|
+
| `ottoport_generate_image` | `prompt`, plus optional `model`, `size`, `n`, `image_url` (edits / image-to-image). |
|
|
20
|
+
| `ottoport_generate_video` | `prompt`, plus optional `model`, `duration`, `aspect_ratio`, `image_url`. |
|
|
21
|
+
| `ottoport_generate_speech` | `prompt` (the text), plus optional `model`, `voice`, `format`. |
|
|
22
|
+
| `ottoport_generate_music` | `prompt`, plus optional `model`, `duration`, `format`. |
|
|
17
23
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
node cli/ottoport.mjs models # full catalog with pricing
|
|
22
|
-
node cli/ottoport.mjs models --modality image
|
|
23
|
-
```
|
|
24
|
+
If those tools are not present, the server is not registered in this client —
|
|
25
|
+
say so rather than reaching for a shell. `ottoport install <host>` registers it
|
|
26
|
+
(codex, claude, hermes, cursor, windsurf, claude-desktop).
|
|
24
27
|
|
|
25
28
|
## Choosing a model
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
Pass `model` only when the request calls for a specific one; every tool has a
|
|
31
|
+
sensible default.
|
|
32
|
+
|
|
33
|
+
| Modality | Default | Also available |
|
|
28
34
|
| --- | --- | --- |
|
|
29
35
|
| chat | `claude-sonnet-5` | `claude-haiku-4.5` (cheap), `gpt-5.5`, `gemini-3.5-flash` |
|
|
30
36
|
| image | `gpt-image-2` | `nano-banana-pro` (high fidelity), `nano-banana-2` (edits) |
|
|
31
37
|
| video | `kling-3.0` | `seedance-2.0-fast` (cheap), `veo-3.1` (with audio) |
|
|
32
|
-
|
|
|
38
|
+
| speech | `gpt-4o-mini-tts` | `eleven-v3` |
|
|
33
39
|
| music | `suno-v5` | `lyria-2` |
|
|
34
40
|
|
|
35
|
-
Never invent model
|
|
36
|
-
|
|
37
|
-
## CLI (preferred for one-off calls)
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# Chat (streams by default)
|
|
41
|
-
node cli/ottoport.mjs chat "explain MCP in one sentence" --model claude-haiku-4.5
|
|
42
|
-
node cli/ottoport.mjs chat "summarize this" --system "You are terse." --no-stream
|
|
43
|
-
|
|
44
|
-
# Image → prints URL(s); --out downloads the first
|
|
45
|
-
node cli/ottoport.mjs image "isometric city at dusk" --model nano-banana-pro --out city.png
|
|
46
|
-
|
|
47
|
-
# Video → blocks on the queue, prints the URL
|
|
48
|
-
node cli/ottoport.mjs video "drone shot over a canyon" --duration 5 --out clip.mp4
|
|
41
|
+
Never invent a model id. Call `ottoport_list_models` when unsure — the catalog
|
|
42
|
+
changes, and a wrong id is a failed billable call.
|
|
49
43
|
|
|
50
|
-
|
|
51
|
-
node cli/ottoport.mjs speech "Welcome to OttoPort" --voice alloy --out welcome.mp3
|
|
52
|
-
node cli/ottoport.mjs music "lo-fi focus beat" --duration 20 --out focus.mp3
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## HTTP (for scripts / other languages)
|
|
56
|
-
|
|
57
|
-
The gateway is OpenAI-compatible, so existing SDKs work by pointing `baseURL`
|
|
58
|
-
at `${OTTOPORT_BASE_URL}/api/v1` with the OttoPort key.
|
|
44
|
+
## What comes back
|
|
59
45
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
46
|
+
- Image, video and audio tools return **URLs**, not files. Provider URLs expire;
|
|
47
|
+
download anything worth keeping.
|
|
48
|
+
- Video blocks until the job is terminal, often a minute or more. Say so before
|
|
49
|
+
starting, and never retry a slow call — a retry is a second generation, billed
|
|
50
|
+
again.
|
|
51
|
+
- Errors arrive as `{error: {message, code}}`. Surface the message; it usually
|
|
52
|
+
names the fix (`401` = key, `402` = balance or spend limit).
|
|
65
53
|
|
|
66
|
-
|
|
67
|
-
Video: `POST /api/v1/videos/generations` `{model, prompt, duration?, aspect_ratio?, image_url?}` → a job with `data:[{url}]`.
|
|
54
|
+
## Terminal and CI
|
|
68
55
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
If OttoPort's MCP server is registered, prefer its tools over shelling out:
|
|
72
|
-
`ottoport_list_models`, `ottoport_chat`, `ottoport_generate_image`,
|
|
73
|
-
`ottoport_generate_video`, `ottoport_generate_speech`, `ottoport_generate_music`.
|
|
74
|
-
Register it with:
|
|
56
|
+
Outside a tool-calling client, the same account works from the CLI:
|
|
75
57
|
|
|
76
58
|
```bash
|
|
77
|
-
|
|
59
|
+
npm install -g ottoport # or: npx ottoport <command>
|
|
60
|
+
export OTTOPORT_API_KEY=op-... # keys: https://ottoport.ai/api-keys
|
|
61
|
+
|
|
62
|
+
ottoport models --modality image
|
|
63
|
+
ottoport chat "explain MCP in one sentence" --model claude-haiku-4.5
|
|
64
|
+
ottoport image "isometric city at dusk" --out city.png
|
|
65
|
+
ottoport video "drone shot over a canyon" --duration 5 --out clip.mp4
|
|
66
|
+
ottoport speech "Welcome to OttoPort" --voice alloy --out welcome.mp3
|
|
78
67
|
```
|
|
79
68
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Installing the OttoPort plugin brings the MCP server, this skill, and the
|
|
83
|
-
`/ottoport:*` slash commands in one step — no manual `claude mcp add`:
|
|
69
|
+
`--out` downloads the result; chat streams unless `--no-stream`.
|
|
84
70
|
|
|
85
|
-
|
|
86
|
-
/plugin marketplace add https://ottoport.ai/plugin/marketplace.json
|
|
87
|
-
/plugin install ottoport@ottoport
|
|
88
|
-
```
|
|
71
|
+
## Calling from code
|
|
89
72
|
|
|
90
|
-
|
|
91
|
-
|
|
73
|
+
Only when writing a program that will run without this agent: the gateway is
|
|
74
|
+
OpenAI-compatible, so any OpenAI SDK works by pointing `baseURL` at
|
|
75
|
+
`https://ottoport.ai/api/v1` with an OttoPort key. Image, video, speech and
|
|
76
|
+
music live under `/api/v1/images/generations`, `/videos/generations`,
|
|
77
|
+
`/audio/speech` and `/audio/music`. Full reference: <https://ottoport.ai/docs>.
|
|
92
78
|
|
|
93
|
-
##
|
|
79
|
+
## Configuration
|
|
94
80
|
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- Errors come back as `{error:{message, code}}`; surface the message to the user.
|
|
81
|
+
- `OTTOPORT_API_KEY` — an `op-…` key, read from the environment the client was
|
|
82
|
+
launched in. A key exported inside a running session arrives too late.
|
|
83
|
+
- `OTTOPORT_BASE_URL` — defaults to `https://ottoport.ai`; set it only to point
|
|
84
|
+
at another deployment.
|