@rymi/mcp 2.7.0 → 2.8.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.
Files changed (3) hide show
  1. package/README.md +8 -3
  2. package/dist/index.js +7379 -337
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -65,7 +65,7 @@ Run the server on your own machine — it speaks **stdio** by default and talks
65
65
 
66
66
  > **Options:** `RYMI_MCP_READONLY=1` hides every mutating tool (including `create_call`, `batch_call`, `publish_agent`). `RYMI_WORKSPACE` makes the local server act in that workspace (sent as the `Rymi-Workspace` header). On the hosted endpoint, send the `Rymi-Workspace` header on the HTTP request instead. Every tool also takes an optional `workspace` argument, so one connection can act in any workspace it can reach, such as an agency's client workspaces.
67
67
  >
68
- > This package speaks **stdio** only. `--transport http` was removed in 2.0.0 — use the hosted endpoint above, which the local server could never match on auth (it has no OAuth, and no per-key tool gating).
68
+ > This package speaks **stdio** only. `--transport http` was removed in 2.0.0. Use the hosted endpoint above. The local server has no OAuth. It does filter tools by the key's scopes.
69
69
 
70
70
  ## 🧰 Tools
71
71
 
@@ -136,6 +136,10 @@ Run the server on your own machine — it speaks **stdio** by default and talks
136
136
  <td><code>estimate_call_cost</code> · <code>set_auto_recharge</code> · <code>set_spend_alerts</code></td>
137
137
  </tr>
138
138
  <tr>
139
+ <td><b>Accounts</b></td>
140
+ <td><code>list_accounts</code> · <code>list_account_members</code> · <code>add_account_member</code> · <code>remove_account_member</code></td>
141
+ </tr>
142
+ <tr>
139
143
  <td><b>Workspaces</b></td>
140
144
  <td><code>list_workspaces</code> · <code>create_workspace</code> · <code>update_workspace</code> · <code>delete_workspace</code> · <code>get_workspace_usage</code> · <code>list_workspace_members</code> · <code>add_workspace_member</code> · <code>remove_workspace_member</code></td>
141
145
  </tr>
@@ -151,8 +155,9 @@ Run the server on your own machine — it speaks **stdio** by default and talks
151
155
 
152
156
  What restrains them depends on which server you're talking to.
153
157
 
154
- - **Hosted** `mcp.rymi.live` — tools are filtered by your **tenant role**, on both OAuth and API keys. An `owner`/`admin` sees everything; a `member` gets agent-scoped tools only, with account-scoped writes (billing, keys, numbers, DNC) never registered. `RYMI_MCP_READONLY` does not apply there.
155
- - **Local** `@rymi/mcp` — no role filtering. Full write surface unless you start it with `RYMI_MCP_READONLY=1`, which hides every mutating tool at once. That flag is set by whoever *starts* the server, so it guards a local run you configure, not a key you hand out.
158
+ - **Hosted** `mcp.rymi.live` over OAuth: tools are filtered by role. Account Owner is `owner`. Account Admin and workspace Admin are `admin`. Anyone else is `member`. An `owner`/`admin` sees every tool. A `member` gets agent-scoped tools only, with account-scoped writes (billing, keys, numbers, DNC) left out. `RYMI_MCP_READONLY` does not apply there.
159
+ - **A secret key**, hosted or local: the server calls `GET /v1/keys/self` once and lists tools whose scope the key holds. A legacy key lists every tool. A billing write from that list still returns `scope_missing`.
160
+ - **Local** `@rymi/mcp`: no OAuth role filter. `RYMI_MCP_READONLY=1` hides every mutating tool on top of the key's scopes. That flag is set by whoever starts the server.
156
161
 
157
162
  Either way, role filtering bounds the **tool surface**, not the credential: a key or token stays valid against the REST API directly. Treat MCP access as equivalent to handing over your own account access.
158
163