@talqing/mcp 0.13.2 → 0.15.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 +36 -19
  2. package/package.json +1 -1
  3. package/tools.json +47 -1
package/SKILL.md CHANGED
@@ -376,18 +376,20 @@ states what each entry supports: which channels, its language codes and default
376
376
  language, whether it accepts a speed and within what range, and its default
377
377
  voice. Read it before choosing; do not assume a model exists.
378
378
 
379
- ### Images
379
+ ### Images and files
380
380
 
381
- People can attach a photo to a web chat, a web voice call or a web video call,
382
- and the agent sees it. **There is no setting for this** — whether an agent can
383
- read images is decided by the model it runs, and `vision` on that model's catalog
384
- entry is where it says so. Most entries read images; `gemini-3.8-flash`,
385
- `gemini-3.7-flash`, `openai/gpt-live-1` and the two `grok-voice-*` realtime
386
- entries do not, and an agent on one of them cannot be sent a photo at all. If a
387
- user wants image input, check `vision` before picking the model rather than
388
- changing anything on the agent.
381
+ People can send files on WhatsApp (Twilio senders) and in a web chat, and a photo
382
+ 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
386
+ PDF page is decided by the model it runs: `vision` on its catalog entry. Most
387
+ entries read images; `gemini-3.8-flash`, `gemini-3.7-flash`, `openai/gpt-live-1`
388
+ and the two `grok-voice-*` realtime entries do not — such an agent is told it
389
+ cannot view the image. Text PDFs and Word files are read on any model. If a user
390
+ wants image input, check `vision` before picking the model.
389
391
 
390
- A phone call carries no files, so this is web only.
392
+ A phone call carries no files.
391
393
 
392
394
  ### Vision input (screen share)
393
395
 
@@ -613,6 +615,9 @@ A tool is one capability the agent's LLM can call mid-conversation. It has:
613
615
  to get it out of the conversation, and a bare `{"type": "string"}` is how a
614
616
  tool ends up called with the wrong value. Mark the ones the tool cannot run
615
617
  without as `required`, and use an `enum` wherever the set of values is closed.
618
+ A **File** parameter is `{"type": "string", "format": "attachment"}`: the agent
619
+ passes the id of a file the person sent, and the operation reads
620
+ `{{args.<name>.url}}` (a link that lives an hour) and `.filename`, `.mime_type`.
616
621
  - **`long_running_task`** — voice and video agents keep talking while it runs and
617
622
  share the result when it lands; a run finishing within a second answers inline
618
623
  instead. Text agents wait either way. There is no fixed line — steer it from
@@ -1286,9 +1291,22 @@ recordings and cost.
1286
1291
 
1287
1292
  ## Email outbound
1288
1293
 
1289
- To email a *list* rather than one person, create an **email batch**: a CSV, an
1290
- agent task that drafts each row, a connected Resend account, and a mapping that
1291
- says which column carries the address, the subject and the body.
1294
+ To email a *list* rather than one person, create an **email batch**: a CSV, a
1295
+ connected Resend account, and one of two writers for the emails:
1296
+
1297
+ - **A template** — `template: {to, subject, body}`, the same email for every
1298
+ row. `to` names the address column; `{{column}}` in the subject or body takes
1299
+ that row's cell (bare column names, no `vars.` prefix), HTML-escaped when
1300
+ `body_format` is `html`. No task, no drafting, no cost: the batch is created
1301
+ `drafted` and every row is ready to review at once. A row whose placeholder
1302
+ cell is blank is `draft_failed` ("first_name is empty") until the cell is
1303
+ filled with `patch_email_batch_recipient`. Before creating one, offer
1304
+ `send_test_email` — it mails the filled template to the signed-in user only.
1305
+ - **An agent task** — `task_id` + `field_map`, when each email should be
1306
+ written for its row (research, personalization). The rest of this section
1307
+ is mostly about this kind.
1308
+
1309
+ Pick the template when the wording is fixed and only names/fields change.
1292
1310
 
1293
1311
  **Four things to say before creating one.** A user who discovers any of them
1294
1312
  afterwards will not forgive us:
@@ -1298,7 +1316,7 @@ afterwards will not forgive us:
1298
1316
  opted in. This runs on *their* Resend account under *their* agreement.
1299
1317
  - **Creating a batch only drafts.** Nothing is sent until someone creates a
1300
1318
  send — and a send of every row mails drafts nobody reviewed.
1301
- - **Every row runs the task's CURRENT PUBLISHED version**, re-read as drafting
1319
+ - **In a task batch, every row runs the task's CURRENT PUBLISHED version**, re-read as drafting
1302
1320
  goes, so publishing mid-batch changes every row drafted after that moment. Which version
1303
1321
  wrote which rows is on the batch as `drafted_versions`, and
1304
1322
  `redraft_email_batch_recipients` with `selection: "stale_version"` is how the
@@ -1620,11 +1638,10 @@ then is it analysed and its `session.completed` sent, so end the chats you start
1620
1638
  On Telegram and WhatsApp a person's messages join one chat until it ends; the
1621
1639
  next starts a new one.
1622
1640
 
1623
- A message can carry `images`: up to four `{data_url, filename}` entries beside
1624
- `message`, each a base64 `data:image/...` URL of a JPEG, PNG or WebP under 10 MB.
1625
- The caption and the photo arrive as one turn and one item, so send them together
1626
- rather than as two messages. The agent's model must have `vision` (see *Images*
1627
- above) or the call is refused naming the model.
1641
+ A message can carry `files`: up to four `{data_url, filename}` entries beside
1642
+ `message`, each a base64 `data:` URL of any type up to 20 MB. The caption and the
1643
+ file arrive as one turn and one item, so send them together rather than as two
1644
+ messages. See *Images and files* above for what the agent reads.
1628
1645
 
1629
1646
  **Reading it back.** A *conversation* is the thread with a person, on any
1630
1647
  surface; a *call* is one voice or video session. A person is one **contact**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talqing/mcp",
3
- "version": "0.13.2",
3
+ "version": "0.15.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": {
@@ -3505,6 +3526,31 @@
3505
3526
  "read_only": true,
3506
3527
  "role": "read"
3507
3528
  },
3529
+ {
3530
+ "description": "One file a person sent in this conversation, with a fresh link (it lives 1 hour).",
3531
+ "method": "GET",
3532
+ "name": "get_conversation_attachment",
3533
+ "parameters": {
3534
+ "additionalProperties": false,
3535
+ "description": "Arguments not inlined: call describe_function('get_conversation_attachment').",
3536
+ "properties": {
3537
+ "attachment_id": {
3538
+ "type": "string"
3539
+ },
3540
+ "conversation_id": {
3541
+ "type": "string"
3542
+ }
3543
+ },
3544
+ "required": [
3545
+ "conversation_id",
3546
+ "attachment_id"
3547
+ ],
3548
+ "type": "object"
3549
+ },
3550
+ "path": "/v1/conversations/{conversation_id}/attachments/{attachment_id}",
3551
+ "read_only": true,
3552
+ "role": "read"
3553
+ },
3508
3554
  {
3509
3555
  "description": "The agent sessions behind a conversation, newest first.",
3510
3556
  "method": "GET",