@talqing/mcp 0.14.0 → 0.16.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/SKILL.md +31 -11
  2. package/package.json +1 -1
  3. package/tools.json +22 -1
package/SKILL.md CHANGED
@@ -89,9 +89,10 @@ An agent is a single object, `config`, plus what you attach to it:
89
89
  the request that starts a session supplies values that override the declared
90
90
  defaults. See **`vars`** below.
91
91
  - **`llm`, `stt`, `tts`** — `{provider, model}` from the provider catalog. Text
92
- agents have only `llm`; voice and video need all three.
92
+ agents have `llm`, plus an optional `stt` that transcribes voice notes (see
93
+ **Images and files**); voice and video need all three.
93
94
  - **`language`** — the one language the caller and the agent speak, shared by
94
- every model. `null` is Auto. Voice and video only.
95
+ every model. `null` is Auto. On a text agent, only with `stt` set.
95
96
  - **`timezone`** — an IANA name such as `Asia/Kolkata`. What the three
96
97
  `{{system_vars.…}}` clock variables resolve against, on every channel. `null`
97
98
  until one of them is used, and then required. Set it whenever the agent has to
@@ -362,8 +363,9 @@ support the channel, a language the model does not offer, a speed outside the
362
363
  model's range, an unpublished tool — all are refused with an explanation. Read
363
364
  the error and correct it; that is faster than guessing.
364
365
 
365
- Some fields are normalized for you. Switching to `text` clears `stt`, `tts`,
366
- `greeting`, `turn_handling` and `avatar`. Switching to `video` fills in an
366
+ Some fields are normalized for you. Switching to `text` clears `tts`,
367
+ `greeting`, `turn_handling` and `avatar`, and keeps `stt` (voice notes on) —
368
+ set it to `null` in the same write unless the user wants voice notes. Switching to `video` fills in an
367
369
  `avatar`, and the call ignores `resume_false_interruption` — the avatar cannot
368
370
  resume a sentence it has already stopped rendering. Keypad input is voice-only
369
371
  and a text agent cannot watch a screen share, so enabling either off its channel
@@ -380,9 +382,14 @@ voice. Read it before choosing; do not assume a model exists.
380
382
 
381
383
  People can send files on WhatsApp (Twilio senders) and in a web chat, and a photo
382
384
  on a web voice or video call. Every file is stored on the conversation; photos,
383
- PDFs and Word (`.docx`) files are also read by the agent, and anything else
384
- (voice notes, videos, spreadsheets) is named to it as something it cannot open.
385
- **There is no setting for this.** Whether the agent sees a photo or a scanned
385
+ PDFs and Word (`.docx`) files are also read by the agent, a shared contact card
386
+ is read as its name, numbers and emails, and anything else (videos,
387
+ spreadsheets) is named to it as something it cannot open.
388
+ **Voice notes** are heard only by a text agent with `stt` set (off by default):
389
+ each note is transcribed in one request on that model, so only entries with
390
+ `file_transcription` set qualify. Turn it on when the user's customers send voice
391
+ notes — on WhatsApp in India, nearly always. A call never transcribes one.
392
+ **There is no setting for images.** Whether the agent sees a photo or a scanned
386
393
  PDF page is decided by the model it runs: `vision` on its catalog entry. Most
387
394
  entries read images; `gemini-3.8-flash`, `gemini-3.7-flash`, `openai/gpt-live-1`
388
395
  and the two `grok-voice-*` realtime entries do not — such an agent is told it
@@ -1291,9 +1298,22 @@ recordings and cost.
1291
1298
 
1292
1299
  ## Email outbound
1293
1300
 
1294
- To email a *list* rather than one person, create an **email batch**: a CSV, an
1295
- agent task that drafts each row, a connected Resend account, and a mapping that
1296
- says which column carries the address, the subject and the body.
1301
+ To email a *list* rather than one person, create an **email batch**: a CSV, a
1302
+ connected Resend account, and one of two writers for the emails:
1303
+
1304
+ - **A template** — `template: {to, subject, body}`, the same email for every
1305
+ row. `to` names the address column; `{{column}}` in the subject or body takes
1306
+ that row's cell (bare column names, no `vars.` prefix), HTML-escaped when
1307
+ `body_format` is `html`. No task, no drafting, no cost: the batch is created
1308
+ `drafted` and every row is ready to review at once. A row whose placeholder
1309
+ cell is blank is `draft_failed` ("first_name is empty") until the cell is
1310
+ filled with `patch_email_batch_recipient`. Before creating one, offer
1311
+ `send_test_email` — it mails the filled template to the signed-in user only.
1312
+ - **An agent task** — `task_id` + `field_map`, when each email should be
1313
+ written for its row (research, personalization). The rest of this section
1314
+ is mostly about this kind.
1315
+
1316
+ Pick the template when the wording is fixed and only names/fields change.
1297
1317
 
1298
1318
  **Four things to say before creating one.** A user who discovers any of them
1299
1319
  afterwards will not forgive us:
@@ -1303,7 +1323,7 @@ afterwards will not forgive us:
1303
1323
  opted in. This runs on *their* Resend account under *their* agreement.
1304
1324
  - **Creating a batch only drafts.** Nothing is sent until someone creates a
1305
1325
  send — and a send of every row mails drafts nobody reviewed.
1306
- - **Every row runs the task's CURRENT PUBLISHED version**, re-read as drafting
1326
+ - **In a task batch, every row runs the task's CURRENT PUBLISHED version**, re-read as drafting
1307
1327
  goes, so publishing mid-batch changes every row drafted after that moment. Which version
1308
1328
  wrote which rows is on the batch as `drafted_versions`, and
1309
1329
  `redraft_email_batch_recipients` with `selection: "stale_version"` is how the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talqing/mcp",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "description": "MCP server for building Talqing AI voice, video and text agents from Claude Code, Codex, or any MCP client.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://talqing.com",
package/tools.json CHANGED
@@ -1998,7 +1998,28 @@
1998
1998
  "role": "read"
1999
1999
  },
2000
2000
  {
2001
- "description": "Create an email batch: a list, an agent task that drafts each row, and a connected Resend account to send from.",
2001
+ "description": "Fill a template from `vars` and email it to yourself (the signed-in user) only.",
2002
+ "method": "POST",
2003
+ "name": "send_test_email",
2004
+ "parameters": {
2005
+ "additionalProperties": false,
2006
+ "description": "Arguments not inlined: call describe_function('send_test_email').",
2007
+ "properties": {
2008
+ "body": {
2009
+ "type": "object"
2010
+ }
2011
+ },
2012
+ "required": [
2013
+ "body"
2014
+ ],
2015
+ "type": "object"
2016
+ },
2017
+ "path": "/v1/email/test-sends",
2018
+ "read_only": false,
2019
+ "role": "write"
2020
+ },
2021
+ {
2022
+ "description": "Create an email batch: a list, what writes each email, and a connected Resend account to send from.",
2002
2023
  "method": "POST",
2003
2024
  "name": "create_email_batch",
2004
2025
  "parameters": {