@rymi/mcp 0.6.2 → 2.1.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 +106 -35
- package/dist/index.js +1522 -876
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,12 +1,35 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# @rymi/mcp
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
### The [**Rymi**](https://rymi.live) MCP server — create and manage AI voice agents from any MCP-capable client.
|
|
6
|
+
|
|
7
|
+
Point Claude Desktop, Claude Code, Cursor, or a Rymi voice agent at this server and manage your entire voice-agent fleet — agents, calls, numbers, knowledge, and usage — without writing a line of HTTP code.
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@rymi/mcp)
|
|
10
|
+
[](https://www.npmjs.com/package/@rymi/mcp)
|
|
11
|
+
[](https://modelcontextprotocol.io)
|
|
12
|
+
[](./LICENSE)
|
|
13
|
+
|
|
14
|
+
[**Documentation**](https://docs.rymi.live/api/mcp) · [**Dashboard**](https://rymi.live) · [**Node SDK**](https://www.npmjs.com/package/@rymi/node) · [**Python SDK**](https://pypi.org/project/rymi/)
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
---
|
|
4
19
|
|
|
5
|
-
## Two ways to run it
|
|
20
|
+
## 🚀 Two ways to run it
|
|
6
21
|
|
|
7
|
-
### Hosted
|
|
22
|
+
### ☁️ Hosted — no install, no API key
|
|
8
23
|
|
|
9
|
-
|
|
24
|
+
Add `https://mcp.rymi.live/mcp` as a custom connector and sign in. In Claude:
|
|
25
|
+
**Settings → Connectors → Add custom connector**. Paste the URL exactly — no
|
|
26
|
+
trailing slash, since OAuth identifies the server by that string.
|
|
27
|
+
|
|
28
|
+
Signing in grants the connector everything **you** can do in Rymi, acting as
|
|
29
|
+
you. Revoke any time from Settings.
|
|
30
|
+
|
|
31
|
+
Clients without OAuth (and CI) can pass a secret key against the same host
|
|
32
|
+
instead:
|
|
10
33
|
|
|
11
34
|
```json
|
|
12
35
|
{
|
|
@@ -22,9 +45,9 @@ Point your client at `https://mcp.rymi.live` and pass your API key as a Bearer t
|
|
|
22
45
|
}
|
|
23
46
|
```
|
|
24
47
|
|
|
25
|
-
### Local
|
|
48
|
+
### 💻 Local — via npx
|
|
26
49
|
|
|
27
|
-
Run the server on your own machine
|
|
50
|
+
Run the server on your own machine — it speaks **stdio** by default and talks to the Rymi REST API directly. The key is read from the `RYMI_API_KEY` environment variable.
|
|
28
51
|
|
|
29
52
|
```json
|
|
30
53
|
{
|
|
@@ -40,46 +63,94 @@ Run the server on your own machine with `npx` — it speaks **stdio** by default
|
|
|
40
63
|
}
|
|
41
64
|
```
|
|
42
65
|
|
|
43
|
-
**Options:** `RYMI_MCP_READONLY=1` hides every mutating tool (including `create_call`, `batch_call`, `publish_agent`)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
66
|
+
> **Options:** `RYMI_MCP_READONLY=1` hides every mutating tool (including `create_call`, `batch_call`, `publish_agent`).
|
|
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).
|
|
69
|
+
|
|
70
|
+
## 🧰 Tools
|
|
71
|
+
|
|
72
|
+
<table>
|
|
73
|
+
<tr><th>Group</th><th>Tools</th></tr>
|
|
74
|
+
<tr>
|
|
75
|
+
<td><b>Agents</b></td>
|
|
76
|
+
<td><code>list_agents</code> · <code>get_agent</code> · <code>create_agent</code> · <code>update_agent</code> · <code>delete_agent</code> · <code>clone_agent</code> · <code>apply_agent_changes</code> · <code>generate_agent_draft</code> · <code>enrich_company</code> · <code>validate_agent_publish</code> · <code>preview_stack</code></td>
|
|
77
|
+
</tr>
|
|
78
|
+
<tr>
|
|
79
|
+
<td><b>API tools & secrets</b></td>
|
|
80
|
+
<td><code>list_agent_tools</code> · <code>add_agent_tool</code> · <code>update_agent_tool</code> · <code>remove_agent_tool</code> · <code>list_tool_secrets</code> · <code>set_tool_secret</code></td>
|
|
81
|
+
</tr>
|
|
82
|
+
<tr>
|
|
83
|
+
<td><b>Share link</b></td>
|
|
84
|
+
<td><code>get_share_link</code> · <code>set_share_link</code> · <code>regenerate_share_link</code></td>
|
|
85
|
+
</tr>
|
|
86
|
+
<tr>
|
|
87
|
+
<td><b>Discovery</b></td>
|
|
88
|
+
<td><code>list_llm_options</code> · <code>list_voices</code></td>
|
|
89
|
+
</tr>
|
|
90
|
+
<tr>
|
|
91
|
+
<td><b>Knowledge & history</b></td>
|
|
92
|
+
<td><code>list_knowledge_sources</code> · <code>add_knowledge_source</code> · <code>delete_knowledge_source</code> · <code>list_agent_changes</code> · <code>undo_agent_change</code></td>
|
|
93
|
+
</tr>
|
|
94
|
+
<tr>
|
|
95
|
+
<td><b>Insight</b></td>
|
|
96
|
+
<td><code>get_usage_summary</code> (minutes-based) · <code>list_agent_templates</code> · <code>run_evals</code> · <code>list_eval_runs</code> · <code>get_eval_run</code></td>
|
|
97
|
+
</tr>
|
|
98
|
+
<tr>
|
|
99
|
+
<td><b>Calls</b> <sub>(read-only)</sub></td>
|
|
100
|
+
<td><code>list_calls</code> · <code>list_active_calls</code> · <code>get_call</code> · <code>get_call_summary</code> · <code>get_call_transcript</code> · <code>get_call_recording</code> · <code>get_call_queue_stats</code> · <code>reprocess_call</code> · <code>list_calls_for_agent</code></td>
|
|
101
|
+
</tr>
|
|
102
|
+
<tr>
|
|
103
|
+
<td><b>Numbers</b></td>
|
|
104
|
+
<td><code>list_numbers</code> · <code>register_number</code> · <code>attach_number</code> · <code>remove_number</code></td>
|
|
105
|
+
</tr>
|
|
106
|
+
<tr>
|
|
107
|
+
<td><b>Telephony</b> <sub>(read-only)</sub></td>
|
|
108
|
+
<td><code>telephony_status</code> · <code>list_telephony_numbers</code></td>
|
|
109
|
+
</tr>
|
|
110
|
+
<tr>
|
|
111
|
+
<td><b>Keys</b> <sub>(read-only)</sub></td>
|
|
112
|
+
<td><code>list_publishable_keys</code></td>
|
|
113
|
+
</tr>
|
|
114
|
+
</table>
|
|
115
|
+
|
|
116
|
+
### ⚠️ Gated tools
|
|
117
|
+
|
|
118
|
+
`create_call` and `batch_call` place **real, billable** outbound calls; `publish_agent` flips an agent **live** to end users.
|
|
119
|
+
|
|
120
|
+
What restrains them depends on which server you're talking to.
|
|
121
|
+
|
|
122
|
+
- **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.
|
|
123
|
+
- **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.
|
|
124
|
+
|
|
125
|
+
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.
|
|
52
126
|
|
|
53
|
-
**
|
|
54
|
-
|
|
55
|
-
**Calls (read-only):** `list_calls` · `list_active_calls` · `get_call` · `get_call_summary` · `get_call_transcript` · `get_call_recording` · `get_call_queue_stats` · `reprocess_call` · `list_calls_for_agent`
|
|
56
|
-
|
|
57
|
-
**Numbers:** `list_numbers` · `register_number` · `attach_number` · `remove_number`
|
|
58
|
-
|
|
59
|
-
**Telephony (read-only):** `telephony_status` · `list_telephony_numbers`
|
|
127
|
+
> Carrier connect/disconnect and publishable-key creation/revocation are intentionally **not** exposed over MCP (they enter credentials and change standing configuration) — do those from the dashboard.
|
|
60
128
|
|
|
61
|
-
|
|
129
|
+
## ⚙️ Configuring an agent
|
|
62
130
|
|
|
63
|
-
|
|
131
|
+
`create_agent` and `update_agent` accept the full agent configuration surface. Always call `list_llm_options` first to get valid model and voice IDs.
|
|
64
132
|
|
|
65
|
-
|
|
66
|
-
|
|
133
|
+
<details>
|
|
134
|
+
<summary><b>Configuration reference</b></summary>
|
|
67
135
|
|
|
68
|
-
>
|
|
136
|
+
<br>
|
|
69
137
|
|
|
70
|
-
|
|
138
|
+
Agents created over MCP are **custom** agents — you choose the model stack and they're billed at component cost + a flat $0.02/min platform fee. (Managed "Rymi-Curated" SKUs are picked from the dashboard.)
|
|
71
139
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
- **Multi-language / bilingual** — set `supported_languages` to every BCP-47 tag the agent should handle, e.g. `["hi-IN","en-US"]`. The primary `language` is merged in automatically. The server resolves the per-language model stack for you; some languages may require a higher `agent_role`.
|
|
140
|
+
- **Multi-language / bilingual** — set `supported_languages` to every BCP-47 tag the agent should handle, e.g. `["hi-IN","en-US"]`. The primary `language` is merged in automatically. The server resolves the per-language model stack for you; some languages may fall back to a different provider.
|
|
75
141
|
- **Model stack** — pin `llm_provider` + `llm_model`, and optionally `stt_provider`/`stt_model` and `tts_provider`/`tts_model`. Realtime LLMs (and Deepgram TTS) carry their own voice, so leave `voice` empty for those.
|
|
76
142
|
- **Fallbacks** — `llm_fallback_*`, `stt_fallback_*`, `tts_fallback_*` set a secondary provider/model per channel. Pass `null` to clear.
|
|
77
143
|
- **Self-hosted endpoints** (Enterprise) — `custom_llm_url`, `custom_voice_url` (+ `custom_voice_mode`), `custom_transcriber_url`. `https://` or `wss://` only; `null` clears.
|
|
78
|
-
- **`agent_role`** — the cost/capability tier (`operator` → `concierge`). `concierge` unlocks realtime models. The chosen LLM model must fit the role's cost ceiling.
|
|
79
144
|
- **`persona`** — note that `callerPersonas` entries are objects of shape `{ type, approach, detectedWhen }`, not plain strings.
|
|
80
145
|
|
|
81
|
-
`provider_config` is server-derived (recomputed from
|
|
146
|
+
`provider_config` is server-derived (recomputed from the resolved stack + supported languages on every write) and is not accepted as an input.
|
|
147
|
+
|
|
148
|
+
</details>
|
|
149
|
+
|
|
150
|
+
## 📖 Documentation
|
|
151
|
+
|
|
152
|
+
Full reference and guides: [**docs.rymi.live/api/mcp**](https://docs.rymi.live/api/mcp)
|
|
82
153
|
|
|
83
|
-
##
|
|
154
|
+
## 📄 License
|
|
84
155
|
|
|
85
|
-
[
|
|
156
|
+
[MIT](./LICENSE) © Rymi
|