@rymi/mcp 2.3.0 → 2.5.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.md CHANGED
@@ -63,7 +63,7 @@ Run the server on your own machine — it speaks **stdio** by default and talks
63
63
  }
64
64
  ```
65
65
 
66
- > **Options:** `RYMI_MCP_READONLY=1` hides every mutating tool (including `create_call`, `batch_call`, `publish_agent`).
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.
67
67
  >
68
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).
69
69
 
@@ -135,6 +135,10 @@ Run the server on your own machine — it speaks **stdio** by default and talks
135
135
  <td><b>Billing & cost</b></td>
136
136
  <td><code>estimate_call_cost</code> · <code>set_auto_recharge</code> · <code>set_spend_alerts</code></td>
137
137
  </tr>
138
+ <tr>
139
+ <td><b>Workspaces</b></td>
140
+ <td><code>list_workspaces</code> · <code>create_workspace</code> · <code>get_workspace_usage</code></td>
141
+ </tr>
138
142
  </table>
139
143
 
140
144
  ### ⚠️ Gated tools
package/dist/index.js CHANGED
@@ -1637,6 +1637,40 @@ var require_dist = __commonJS({
1637
1637
  run: (client, { agent_id }) => client.agents.regenerateShareLink(agent_id)
1638
1638
  })
1639
1639
  ];
1640
+ var import_zod13 = require("zod");
1641
+ var workspaceTools = [
1642
+ defineTool({
1643
+ name: "list_workspaces",
1644
+ description: "List the workspaces this credential can act in, marking the current one. Client workspaces show their agency in parent_id. Act in another by setting RYMI_WORKSPACE (local MCP) or the Rymi-Workspace header.",
1645
+ scope: "account",
1646
+ risk: "read",
1647
+ input: {},
1648
+ run: (client) => client.workspaces.list()
1649
+ }),
1650
+ defineTool({
1651
+ name: "create_workspace",
1652
+ description: "Create a standalone workspace you own, or, with parent, a client workspace of an agency workspace you run. The agency pays for a client workspace's calls. Neither gets the free monthly credit.",
1653
+ scope: "account",
1654
+ risk: "write",
1655
+ input: {
1656
+ name: import_zod13.z.string().min(1).max(80).describe("Workspace name"),
1657
+ operating_country: import_zod13.z.string().length(2).optional().describe('ISO-3166 alpha-2 country, e.g. "IN"'),
1658
+ parent: import_zod13.z.string().optional().describe("Agency workspace id. Makes this a client workspace the agency pays for.")
1659
+ },
1660
+ run: (client, params) => client.workspaces.create(params)
1661
+ }),
1662
+ defineTool({
1663
+ name: "get_workspace_usage",
1664
+ description: "Calls, minutes and credits for one workspace in a calendar month (UTC). Use it to invoice a client workspace. Credits are left out for client-role users.",
1665
+ scope: "account",
1666
+ risk: "read",
1667
+ input: {
1668
+ workspace_id: import_zod13.z.string().describe("Workspace id from list_workspaces"),
1669
+ month: import_zod13.z.string().regex(/^\d{4}-\d{2}$/).optional().describe("YYYY-MM; default this month")
1670
+ },
1671
+ run: (client, params) => client.workspaces.usage(params.workspace_id, { month: params.month })
1672
+ })
1673
+ ];
1640
1674
  var import_agentTools2 = (init_agentTools(), __toCommonJS(agentTools_exports));
1641
1675
  var REDACTED = "[redacted]";
1642
1676
  function redactToolSecrets(value) {
@@ -1670,7 +1704,8 @@ var require_dist = __commonJS({
1670
1704
  ...webhookTools,
1671
1705
  ...billingTools,
1672
1706
  ...campaignTools,
1673
- ...shareLinkTools
1707
+ ...shareLinkTools,
1708
+ ...workspaceTools
1674
1709
  ].map((t) => ({ ...t, run: async (client, params) => redactToolSecrets(await t.run(client, params)) }));
1675
1710
  var names = /* @__PURE__ */ new Set();
1676
1711
  for (const tool of opsToolCatalog2) {
@@ -1706,7 +1741,7 @@ function withToolErrors(handler) {
1706
1741
  // package.json
1707
1742
  var package_default = {
1708
1743
  name: "@rymi/mcp",
1709
- version: "2.3.0",
1744
+ version: "2.5.0",
1710
1745
  description: "Rymi MCP server \u2014 manage AI voice agents via Model Context Protocol",
1711
1746
  license: "MIT",
1712
1747
  author: "Rymi AI <engineering@rymi.live>",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rymi/mcp",
3
- "version": "2.3.0",
3
+ "version": "2.5.0",
4
4
  "description": "Rymi MCP server — manage AI voice agents via Model Context Protocol",
5
5
  "license": "MIT",
6
6
  "author": "Rymi AI <engineering@rymi.live>",
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@modelcontextprotocol/sdk": "^1.11.1",
47
- "@rymi/node": "^2.2.0",
47
+ "@rymi/node": "^2.4.0",
48
48
  "zod": "^3.23.0"
49
49
  },
50
50
  "devDependencies": {