@okostream/mcp 0.16.0 → 0.18.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.
Files changed (3) hide show
  1. package/README.md +52 -7
  2. package/dist/server.js +1575 -496
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -6,9 +6,8 @@ analytics, and integrations around a video player supplied by the organizer.
6
6
 
7
7
  ## Before You Connect
8
8
 
9
- Webinar data and actions require an active OKO organizer account. Organizer
10
- an active organizer account is required before an API key can be created
11
- signup.
9
+ Webinar data and actions require an active OKO organizer account. An active
10
+ organizer account is required before an API key can be created.
12
11
 
13
12
  - Already invited: [sign in or register](https://okostream.app/auth?redirect=/app/mcp).
14
13
  - Already an organizer: create a scoped key in the
@@ -86,6 +85,27 @@ is behind, with the exact update step. Global installs update with
86
85
  now (the extension bundle is discontinued; the Desktop path returns when the
87
86
  package ships through a directory).
88
87
 
88
+ ## Publishing and lumens
89
+
90
+ A new page is a draft: viewers of its public URL see "not published".
91
+ `oko_publish_event` publishes it and, like a few other operations, spends
92
+ **lumens**, the unit of the OKO wallet. Money is handled in one direction:
93
+
94
+ - **Spending is previewed.** `oko_publish_event`, `oko_unpublish_event`,
95
+ `oko_start_session`, `oko_extend_session` and `oko_publish_telegram_post`
96
+ state the charge (or the refund) when called without `confirm`, name the
97
+ wallet that pays, and take nothing until the organizer confirms. The amount in
98
+ the preview is the amount charged; the public price list is at
99
+ [okostream.app/pricing](https://okostream.app/pricing) and is not copied here.
100
+ - **`oko_wallet` reads the wallet.** It returns the lumen balance, the grants and
101
+ the ledger of the organizer behind the key (scope `wallet:read`, included in
102
+ the `operator` and `full` presets, not in `readOnly`). Keys created before that scope existed get `SCOPE_REQUIRED` and
103
+ need a new key. A page in a shared workspace is paid from the workspace
104
+ owner's wallet, which is theirs to read.
105
+ - **Payment and terms are web-only.** Plans and lumens are bought, and terms
106
+ accepted, only in the OKO web cabinet, and no MCP tool collects a password,
107
+ card or bank details, or agreement to terms on anyone's behalf.
108
+
89
109
  ## When a tool refuses
90
110
 
91
111
  Refusals are explicit and never require guessing:
@@ -96,10 +116,28 @@ Refusals are explicit and never require guessing:
96
116
  or rephrasing does not help; the result carries a ready-made report for the
97
117
  OKO team.
98
118
  - `PLATFORM_REJECTED_READ` — no access to that resource, or it does not exist.
99
- - `CHAT_PAUSED` — the event's chat is paused and accepts no messages from anyone,
100
- the owner included; it is the chat's state, not a missing permission.
119
+ - `ENTITLEMENT_REQUIRED` / `INSUFFICIENT_TOKENS` — the plan that pays lacks the
120
+ feature, or the wallet that pays is short of lumens. `oko_publish_telegram_post`
121
+ costs 5 lumens per post, charged when Telegram confirms delivery; the plan and the
122
+ balance are checked before the send, and the refusal names the `postId` left
123
+ behind as `failed` (create a new post after fixing the cause, then delete the
124
+ failed one with `oko_cancel_telegram_post`).
125
+ - `CHAT_PAUSED` — the event's chat is paused, which closes it for viewers (the
126
+ event owner and moderators still write into a paused chat); it is the chat's
127
+ state, not a missing permission.
101
128
  `CHAT_MESSAGE_REFUSED` — the chat refused a message and the cause could not be
102
129
  established; the result lists what was ruled out and what remains possible.
130
+ - `EVENT_DATE_LOCKED` — the date of a published page moves only inside the show
131
+ window it bought (the result carries `windowStart`, `windowEnd` and the next
132
+ steps); a date outside the window, a cleared date, or any date on a page whose
133
+ show is over is refused. `oko_update_event` may also return `warnings` (advice,
134
+ never a refusal).
135
+ - `WORKSPACE_LIMIT`, `SEATS_FULL`, `ENTITLEMENT_REQUIRED` — the plan of the
136
+ workspace owner does not hold another shared workspace, another member, or
137
+ the capability at all. A refused invitation stays valid. Plans are bought only
138
+ in the OKO cabinet, never through MCP.
139
+ - `WORKSPACE_INACTIVE` — `oko_publish_event` in a shared workspace the plan no
140
+ longer publishes into (Pro: only the workspace its owner chose as active).
103
141
 
104
142
  **One install path.** Every supported client — Claude Code, Codex, and any
105
143
  MCP client that takes a command with arguments and env — runs the package
@@ -122,10 +160,17 @@ always works. The result's `sourceVia` says who fetched the image.
122
160
  ## Capabilities
123
161
 
124
162
  - Create, duplicate, move, restore, and delete webinars.
125
- - Configure video, forms, calls to action, cards, banners, and images.
163
+ - Configure video, forms, calls to action, cards, banners, and images. On an
164
+ already published page, turning on a banner, CTA, cards or forms costs 10
165
+ lumens each for that show: the tool answers with the quote first and writes
166
+ only after `confirm=true`; unpublishing later does not return these top-ups.
167
+ The live control room is a paid option of a published page (50 lumens, Pro
168
+ and above) bought in the analytics screen, not through MCP.
126
169
  - Operate live audience controls, chat, moderation, and analytics sessions.
127
170
  - Read analytics, session reports, geography, engagement, and form submissions.
128
- - Manage workspaces, invitations, notifications, and Telegram publishing.
171
+ - Manage workspaces, invitations, notifications, and Telegram publishing
172
+ (5 lumens per post, shown in the confirmation preview).
173
+ - Read the lumen balance and ledger of your own wallet (`oko_wallet`).
129
174
 
130
175
  OKO MCP acts as the organizer represented by the selected access key. It does
131
176
  not inherit platform-owner privileges. Keys are scoped and revocable, and