@talqing/mcp 0.7.0 → 0.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.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Talqing
3
+ Copyright (c) 2026 Oggnai Technologies Private Limited
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -10,9 +10,8 @@ the CoPilot can build, your coding agent can build.
10
10
  ## What you get
11
11
 
12
12
  One operation for everything a workspace is built out of. Agents and agent
13
- tasks, tools and their operation trees, integrations and triggers, knowledge
14
- bases from crawl to ready, carrier accounts and phone numbers, secrets, provider
15
- keys and webhooks; then placing outbound calls, running call and email batches,
13
+ tasks, tools and their operation trees, integrations and triggers, carrier
14
+ accounts and phone numbers, secrets, provider keys and webhooks; then placing outbound calls, running call and email batches,
16
15
  talking to text agents, and reading back transcripts, cost and latency. Each one
17
16
  maps to a Talqing API endpoint, and its arguments mirror that HTTP call: path and
18
17
  query parameters at the top level, request body under `body`.
@@ -34,19 +33,11 @@ ready-to-paste command for each client — the snippets below are what it shows.
34
33
  The token authenticates as you, acts with your current role, and reaches only
35
34
  your workspace.
36
35
 
37
- **`TALQING_BASE_URL` names a region** — `https://api.in.talqing.com`,
38
- `https://api.us.talqing.com` — and everything this server can reach belongs to
39
- that one: an agent, its calls, its phone numbers and its credit balance are all
40
- the region's. One token reaches every region — it names your workspace, not a
41
- place — so working in another region is the same token and a different base URL.
42
- The dashboard's snippet always carries the region you are currently looking at;
43
- switch region there and copy it again.
44
-
45
36
  **Claude Code**
46
37
 
47
38
  ```bash
48
39
  claude mcp add talqing \
49
- -e TALQING_BASE_URL=https://api.in.talqing.com \
40
+ -e TALQING_BASE_URL=https://api.talqing.com \
50
41
  -e TALQING_API_KEY=tq_your_token \
51
42
  -- npx -y @talqing/mcp
52
43
  ```
@@ -55,7 +46,7 @@ claude mcp add talqing \
55
46
 
56
47
  ```bash
57
48
  codex mcp add talqing \
58
- --env TALQING_BASE_URL=https://api.in.talqing.com \
49
+ --env TALQING_BASE_URL=https://api.talqing.com \
59
50
  --env TALQING_API_KEY=tq_your_token \
60
51
  -- npx -y @talqing/mcp
61
52
  ```
@@ -67,7 +58,7 @@ codex mcp add talqing \
67
58
  [mcp_servers.talqing]
68
59
  command = "npx"
69
60
  args = ["-y", "@talqing/mcp"]
70
- env = { TALQING_BASE_URL = "https://api.in.talqing.com", TALQING_API_KEY = "tq_your_token" }
61
+ env = { TALQING_BASE_URL = "https://api.talqing.com", TALQING_API_KEY = "tq_your_token" }
71
62
  ```
72
63
 
73
64
  **Any other MCP client** — a stdio server, configured the usual way:
@@ -79,7 +70,7 @@ env = { TALQING_BASE_URL = "https://api.in.talqing.com", TALQING_API_KEY = "tq_y
79
70
  "command": "npx",
80
71
  "args": ["-y", "@talqing/mcp"],
81
72
  "env": {
82
- "TALQING_BASE_URL": "https://api.in.talqing.com",
73
+ "TALQING_BASE_URL": "https://api.talqing.com",
83
74
  "TALQING_API_KEY": "tq_your_token"
84
75
  }
85
76
  }
@@ -107,9 +98,9 @@ Four things are deliberately out of reach:
107
98
  where a human is in the loop.
108
99
  - **Buying credits.** Reading the balance would be harmless; starting a payment
109
100
  spends the workspace's money, and neither belongs on a coding agent's surface.
110
- - **Streaming endpoints**, which are not tool-shaped. Every one has a polling
111
- equivalent here — `list_conversation_items` for a conversation, `get_kb` for a
112
- knowledge build — so nothing is unreachable.
101
+ - **Streaming endpoints**, which are not tool-shaped. Each has a polling
102
+ equivalent here — `list_conversation_items` for a conversation — so nothing is
103
+ unreachable.
113
104
  - **Deleting a call or its recording.** Every other `delete_*` removes
114
105
  configuration you could write again; this one destroys the record of something
115
106
  that happened, and can take a contact's memory of past calls with it.
@@ -135,7 +126,7 @@ cd mcp && npm install && npm run build
135
126
  "command": "node",
136
127
  "args": ["/absolute/path/to/talqing/mcp/dist/index.js"],
137
128
  "env": {
138
- "TALQING_BASE_URL": "https://api.in.talqing.com",
129
+ "TALQING_BASE_URL": "https://api.talqing.com",
139
130
  "TALQING_API_KEY": "tq_your_token"
140
131
  }
141
132
  }
package/SKILL.md CHANGED
@@ -3,9 +3,9 @@ name: talqing
3
3
  description: >-
4
4
  Build, publish and operate Talqing AI voice, video and text agents — agent
5
5
  config and model stack, custom tools and their operation trees, MCP and
6
- messaging integrations, knowledge bases, phone numbers, secrets and webhooks,
7
- plus placing calls and reading back transcripts, cost and latency. Use
8
- whenever working against a Talqing workspace through the talqing MCP server.
6
+ messaging integrations, phone numbers, secrets and webhooks, plus placing
7
+ calls and reading back transcripts, cost and latency. Use whenever working
8
+ against a Talqing workspace through the talqing MCP server.
9
9
  ---
10
10
 
11
11
  <!-- Generated by openapi/export.py from backend/services/copilot/skill.md. Edit that file, then re-run the export. -->
@@ -14,7 +14,7 @@ description: >-
14
14
 
15
15
  Talqing is a no-code builder for AI voice, video and text agents. Everything you
16
16
  can build here you could otherwise have written as a LiveKit agent by hand: a
17
- model stack, a system prompt, callable tools, knowledge, and lifecycle hooks.
17
+ model stack, a system prompt, callable tools, and lifecycle hooks.
18
18
  The same machinery also runs **agent tasks** — an agent nobody talks to, which
19
19
  takes named inputs and returns a typed result.
20
20
 
@@ -27,12 +27,6 @@ request body under `body`. Every operation acts as the signed-in user, inside
27
27
  their workspace only, with their role's permissions. Managing who is in the
28
28
  workspace is the one thing that stays in the dashboard.
29
29
 
30
- **Everything here belongs to one region.** A workspace exists in every region and
31
- its resources do not: an agent, its calls, its phone numbers and its credit
32
- balance all live in the region whose API you are pointed at. One token reaches
33
- every region — it names the workspace, not a place — so working in another one is
34
- the same token and a different base URL.
35
-
36
30
  ## What an agent is
37
31
 
38
32
  An agent is a single object, `config`, plus what you attach to it:
@@ -156,13 +150,17 @@ An agent is a single object, `config`, plus what you attach to it:
156
150
  create it, publish v1 and store `{"tool_id": "..."}` in its place, so the
157
151
  agent and its tools can be built in one request. Use it for exactly that.
158
152
  Attaching an existing tool is still `tool_id`.
159
- - **`kb_ids`** — ready knowledge bases for grounded answers.
160
153
  - **`mcps`** — external MCP servers whose tools the agent may call, each
161
154
  `{"integration_id": "..."}` naming an active, MCP-capable integration. Which
162
155
  of a server's tools may be called is the integration's own `allowed_tools`,
163
156
  not this list. As with `tools`, an entry may instead carry `{"mcp": {name,
164
157
  url, headers, allowed_tools, tools_namespace}}`, which is created as a
165
158
  `custom_mcp` integration and replaced by its id.
159
+ - **`faqs`** — FAQs the agent answers from, each `{"faq_id": "..."}`, up to ten
160
+ (see FAQs below). As with `tools`, an entry may instead carry `{"faq": {name,
161
+ entries: [{question, answer}]}}`, which `create_agent` and `update_agent`
162
+ create as a stored FAQ and replace by its id — so an agent and its FAQ can be
163
+ built in one request.
166
164
  - **`tasks`** — jobs this agent can enter and come back from, each
167
165
  `{"name": "collect_shipping_address", "task_id": "...", "description": "...",
168
166
  "message": "..."}`. Each becomes one ordinary tool the model can call: the
@@ -337,9 +335,8 @@ starts that object over, so send its `voice` and settings with it. Unknown field
337
335
 
338
336
  The config is validated on every write. Unknown models, a model that does not
339
337
  support the channel, a language the model does not offer, a speed outside the
340
- model's range, an unpublished tool, a knowledge base that is not ready — all are
341
- refused with an explanation. Read the error and correct it; that is faster than
342
- guessing.
338
+ model's range, an unpublished tool — all are refused with an explanation. Read
339
+ the error and correct it; that is faster than guessing.
343
340
 
344
341
  Some fields are normalized for you. Switching to `text` clears `stt`, `tts`,
345
342
  `greeting`, `turn_handling` and `avatar`. Switching to `video` fills in an
@@ -579,7 +576,7 @@ of whatever the models cost.
579
576
  A tool is one capability the agent's LLM can call mid-conversation. It has:
580
577
 
581
578
  - **`name`** — the function name the LLM sees. A valid identifier, snake_case,
582
- describing the capability. `knowledge_fetch` is reserved.
579
+ describing the capability.
583
580
  - **`description`** — tells the LLM *when* to call it. This matters as much as
584
581
  the implementation.
585
582
  - **`json_schema`** — the arguments the LLM supplies. Declare only values the
@@ -871,9 +868,9 @@ Each hook points at a **published tool id**, or null.
871
868
  ## Agent tasks
872
869
 
873
870
  An **agent task** takes named inputs, does some work, and returns a **typed
874
- structured output**. Same prompt, same model, same tools, same MCP servers, same
875
- knowledge and same lifecycle hooks as an agent — minus everything that belongs
876
- to a *session*, because a task never owns one.
871
+ structured output**. Same prompt, same model, same tools, same MCP servers and
872
+ same lifecycle hooks as an agent — minus everything that belongs to a
873
+ *session*, because a task never owns one.
877
874
 
878
875
  **It runs two ways, and declares nothing that ties it to either.** On its own —
879
876
  `POST /v1/tasks/{task_id}/runs`, or an email batch drafting a row — it is an LLM
@@ -901,7 +898,7 @@ message, draft an opening line, take a shipping address mid-call.
901
898
  a step rather than as one, so it costs no steps and real seconds. It is the
902
899
  one media slot a task keeps, because an LLM is stateless per request and
903
900
  swapping one in rebuilds nothing.
904
- - **`kb_ids`**, **`on_enter`**, **`on_exit`**, **`on_user_turn_completed`** —
901
+ - **`on_enter`**, **`on_exit`**, **`on_user_turn_completed`** —
905
902
  exactly an agent's. `on_user_turn_completed` only ever fires when an agent
906
903
  entered the task; a standalone run has nobody to take a turn.
907
904
  - There is no `stt`, `tts`, `realtime`, `language`, `turn_handling`, `channel`,
@@ -913,6 +910,7 @@ message, draft an opening line, take a shipping address mid-call.
913
910
  - **`tools`** / **`mcps`** — exactly an agent's, attached by id or defined
914
911
  inline, and pinned by publish exactly as an agent's are: republishing a tool
915
912
  does not change a published task until that task is published again.
913
+ - **`faqs`** — exactly an agent's.
916
914
  - **`vars`** — the task's **inputs**, declared exactly as an agent's variables
917
915
  are: a `name`, a `description`, an optional `default` and `required`. A run
918
916
  supplies values by name; one it omits falls back to the `default`, and a
@@ -1048,14 +1046,42 @@ tell apart.
1048
1046
  Task runs are **not** in the Observability charts, which are built on calls and
1049
1047
  conversations. `list_task_runs` is where a task's own history lives.
1050
1048
 
1049
+ ## FAQs
1050
+
1051
+ An FAQ is a named list of question/answer pairs the business wrote. Attached
1052
+ through `faqs`, its **questions** are added to the agent's prompt and the agent
1053
+ gets one generated tool, `get_faq_answers`, that returns the written **answers**
1054
+ for the questions it picks — so what the agent says is the business's own text.
1055
+ Do not create a tool with that name; it is reserved.
1056
+
1057
+ - **Use one for stable facts people ask often and the business wants answered
1058
+ exactly**: opening hours, refund policy, delivery areas, pricing. Behaviour,
1059
+ tone and what to do next belong in the prompt; anything that changes per
1060
+ caller or needs a live lookup belongs in a tool.
1061
+ - **Edits are live.** Changing a question or an answer reaches every agent using
1062
+ the FAQ from its next session, with no republish. Attaching or detaching an
1063
+ FAQ is a config change and does take a publish.
1064
+ - **Phrase each question the way a caller would ask it** — "Do you deliver on
1065
+ Sundays?", not "Sunday delivery policy". The model matches what was asked
1066
+ against the question text, so paraphrases need no extra entries.
1067
+ - **Keep answers short and speakable on a voice agent**: one or two sentences,
1068
+ no lists, links or markdown, since the agent will say it aloud.
1069
+ - **Add many at once with `create_faq_entries`** (up to 500 per FAQ, all or
1070
+ nothing), and fix one with `update_faq_entry` rather than recreating the FAQ.
1071
+ A question may appear only once per FAQ.
1072
+ - Do not also paste the answers into the prompt, and do not tell the agent to
1073
+ refuse what the FAQ lacks unless the user asks for that.
1074
+
1075
+ `delete_faq` is refused with 409 while an agent or task attaches it; detach it
1076
+ there first.
1077
+
1051
1078
  ## Integrations
1052
1079
 
1053
1080
  Integrations are external services, and they come in two shapes.
1054
1081
 
1055
1082
  **MCP integrations** give an agent tools from an external server. Attach them
1056
- in the agent's own config, as `mcps` — the same place as `tools` and
1057
- `kb_ids`, written by `create_agent` or `update_agent`, and frozen at publish
1058
- like the rest of it. So attaching one **takes a publish** before a call sees it.
1083
+ in the agent's own config, as `mcps` — the same place as `tools`, written by
1084
+ `create_agent` or `update_agent`, and frozen at publish like the rest of it. So attaching one **takes a publish** before a call sees it.
1059
1085
  `list_integration_mcp_tools` connects to the server and lists everything it
1060
1086
  offers, which also proves the connection works.
1061
1087
 
@@ -1357,33 +1383,6 @@ Replies are answered by the agent on the sender's
1357
1383
  `{{userdata.<column>}}` and the whole template, buttons included, as its own
1358
1384
  first message — so write that agent's prompt against the CSV's column names.
1359
1385
 
1360
- ## Knowledge bases
1361
-
1362
- A knowledge base gives an agent grounded answers over crawled content. Attach
1363
- it through the agent's `kb_ids`. A call reads only `ready` ones, so one still
1364
- building can be attached now and is used once it finishes.
1365
-
1366
- Building one runs in three stages and takes minutes, not seconds:
1367
-
1368
- 1. `create_kb` with the site URLs starts the crawl. It returns immediately at
1369
- `discovering` — poll `get_kb` until `status` is `review`.
1370
- 2. At `review`, `discovered` holds every URL the crawl found. Choose the ones
1371
- worth indexing and pass them to `build_kb`. This choice decides the quality
1372
- of the whole knowledge base: prefer pages that answer real questions over
1373
- everything the crawl happened to reach.
1374
- 3. The KB moves through `transcribing` and `generating` to `ready`. Keep
1375
- polling `get_kb`; `progress` says what stage it is in and `error` says if it
1376
- stopped.
1377
-
1378
- Once ready, `get_kb_prompt` is the table of contents exactly as the agent
1379
- receives it — read it to judge what the agent will actually be able to find,
1380
- since a vague entry is one it will never fetch. `list_pages` shows which URLs
1381
- failed to transcribe, `patch_node` corrects an entry by hand, and
1382
- `regenerate_toc` rebuilds the structure without crawling again.
1383
-
1384
- Tell the user a build is running rather than waiting silently through it, and
1385
- never poll a build in a tight loop.
1386
-
1387
1386
  ## Secrets, keys and webhooks
1388
1387
 
1389
1388
  **Secrets** are workspace values referenced as `{{secrets.NAME}}` from tool
@@ -1496,8 +1495,8 @@ and the final `userdata` usually name the cause.
1496
1495
  connected channel is a message they receive. Both are irreversible. Test
1497
1496
  against a number or thread the user has named, never one you picked.
1498
1497
  - **Delete only on an explicit request naming the target.** Agents, tools,
1499
- knowledge bases, carrier accounts, integrations, triggers, secrets, webhooks
1500
- and tokens are all permanent. Taking a phone number out of service stops real
1498
+ carrier accounts, integrations, triggers, secrets, webhooks and tokens are
1499
+ all permanent. Taking a phone number out of service stops real
1501
1500
  callers from reaching anyone — treat it the same way.
1502
1501
  - **Never echo a secret back.** Personal access tokens, webhook signing secrets
1503
1502
  and provider keys are shown once; repeating one puts it in the conversation
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ function required(name, hint) {
28
28
  throw new Error(`${name} is not set — ${hint}`);
29
29
  return value;
30
30
  }
31
- const BASE_URL = required("TALQING_BASE_URL", "set it to your region's Talqing API URL, e.g. https://api.in.talqing.com").replace(/\/+$/, "");
31
+ const BASE_URL = required("TALQING_BASE_URL", "set it to the Talqing API URL, e.g. https://api.talqing.com").replace(/\/+$/, "");
32
32
  const API_KEY = required("TALQING_API_KEY", "create a personal access token in the dashboard under Organization → API Tokens");
33
33
  const { tools: functions } = JSON.parse(readPackageFile("tools.json"));
34
34
  const byName = new Map(functions.map((fn) => [fn.name, fn]));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,oCAAoC,CAAC;AAc5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEzE,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,kFAAkF;AAClF,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,QAAQ,GAAG,QAAQ,CACvB,kBAAkB,EAClB,0EAA0E,CAC3E,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtB,MAAM,OAAO,GAAG,QAAQ,CACtB,iBAAiB,EACjB,iFAAiF,CAClF,CAAC;AAEF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAc,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;AAClF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7D;;kBAEkB;AAClB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAwB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;AAE9F,sFAAsF;AACtF,SAAS,YAAY;IACnB,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,QAAQ,CAAC,EAAe;IAC/B,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,WAAW,EAAE;QAC3D,WAAW,EAAE,EAAE,CAAC,UAAiC;QACjD,WAAW,EAAE;YACX,YAAY,EAAE,EAAE,CAAC,SAAS;YAC1B,eAAe,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ;YACvC,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;YAC5D,aAAa,EAAE,KAAK;SACrB;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,EAAe,EAAE,IAA6B;IAChE,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAE9B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;QAClF,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC5B,OAAO,SAAS,CAAC,IAAI,CAAC;IAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;IAC/E,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IAErE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;QACtB,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,OAAO;QACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC5D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,SAAmB,EAAE;IACrD,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAClF,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAY,EAAE,IAA6B;IAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAErD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2EAA2E;QAC3E,2EAA2E;QAC3E,OAAO,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,0EAA0E;QAC1E,+DAA+D;QAC/D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3F,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EACrC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,CAC9D,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;CAC/B,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAChE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC,CACvF,CAAC;AAEF,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talqing/mcp",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
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
@@ -591,156 +591,114 @@
591
591
  "role": "write"
592
592
  },
593
593
  {
594
- "description": "List the workspace's knowledge bases with their build status.",
594
+ "description": "List the workspace's FAQs by name, with how many questions each holds.",
595
595
  "method": "GET",
596
- "name": "list_kbs",
596
+ "name": "list_faqs",
597
597
  "parameters": {
598
598
  "additionalProperties": true,
599
- "description": "Arguments not inlined: call describe_function('list_kbs').",
599
+ "description": "Arguments not inlined: call describe_function('list_faqs').",
600
600
  "properties": {},
601
601
  "type": "object"
602
602
  },
603
- "path": "/v1/knowledge",
603
+ "path": "/v1/faqs",
604
604
  "read_only": true,
605
605
  "role": "read"
606
606
  },
607
607
  {
608
- "description": "Start a knowledge base by crawling one or more websites.",
608
+ "description": "Create an FAQ, optionally with its first question/answer entries.",
609
609
  "method": "POST",
610
- "name": "create_kb",
610
+ "name": "create_faq",
611
611
  "parameters": {
612
612
  "additionalProperties": true,
613
- "description": "Arguments not inlined: call describe_function('create_kb').",
613
+ "description": "Arguments not inlined: call describe_function('create_faq').",
614
614
  "properties": {},
615
615
  "type": "object"
616
616
  },
617
- "path": "/v1/knowledge",
617
+ "path": "/v1/faqs",
618
618
  "read_only": false,
619
619
  "role": "write"
620
620
  },
621
621
  {
622
- "description": "Read one knowledge base: build status, progress and content tree.",
622
+ "description": "Get one FAQ with every entry, in the order they were added.",
623
623
  "method": "GET",
624
- "name": "get_kb",
624
+ "name": "get_faq",
625
625
  "parameters": {
626
626
  "additionalProperties": true,
627
- "description": "Arguments not inlined: call describe_function('get_kb').",
627
+ "description": "Arguments not inlined: call describe_function('get_faq').",
628
628
  "properties": {},
629
629
  "type": "object"
630
630
  },
631
- "path": "/v1/knowledge/{kb_id}",
631
+ "path": "/v1/faqs/{faq_id}",
632
632
  "read_only": true,
633
633
  "role": "read"
634
634
  },
635
635
  {
636
- "description": "Index the chosen pages, then write the table of contents.",
637
- "method": "POST",
638
- "name": "build_kb",
636
+ "description": "Rename an FAQ.",
637
+ "method": "PATCH",
638
+ "name": "update_faq",
639
639
  "parameters": {
640
640
  "additionalProperties": true,
641
- "description": "Arguments not inlined: call describe_function('build_kb').",
641
+ "description": "Arguments not inlined: call describe_function('update_faq').",
642
642
  "properties": {},
643
643
  "type": "object"
644
644
  },
645
- "path": "/v1/knowledge/{kb_id}/build",
645
+ "path": "/v1/faqs/{faq_id}",
646
646
  "read_only": false,
647
647
  "role": "write"
648
648
  },
649
649
  {
650
- "description": "Rewrite the table of contents from the pages already indexed.",
651
- "method": "POST",
652
- "name": "regenerate_toc",
650
+ "description": "Delete an FAQ and its entries. Refused with 409 while an agent or task still attaches it.",
651
+ "method": "DELETE",
652
+ "name": "delete_faq",
653
653
  "parameters": {
654
654
  "additionalProperties": true,
655
- "description": "Arguments not inlined: call describe_function('regenerate_toc').",
655
+ "description": "Arguments not inlined: call describe_function('delete_faq').",
656
656
  "properties": {},
657
657
  "type": "object"
658
658
  },
659
- "path": "/v1/knowledge/{kb_id}/toc",
659
+ "path": "/v1/faqs/{faq_id}",
660
660
  "read_only": false,
661
661
  "role": "write"
662
662
  },
663
663
  {
664
- "description": "List the crawled pages and how each one transcribed.",
665
- "method": "GET",
666
- "name": "list_pages",
667
- "parameters": {
668
- "additionalProperties": true,
669
- "description": "Arguments not inlined: call describe_function('list_pages').",
670
- "properties": {},
671
- "type": "object"
672
- },
673
- "path": "/v1/knowledge/{kb_id}/pages",
674
- "read_only": true,
675
- "role": "read"
676
- },
677
- {
678
- "description": "The table of contents exactly as an agent using this KB is given it.",
679
- "method": "GET",
680
- "name": "get_kb_prompt",
681
- "parameters": {
682
- "additionalProperties": true,
683
- "description": "Arguments not inlined: call describe_function('get_kb_prompt').",
684
- "properties": {},
685
- "type": "object"
686
- },
687
- "path": "/v1/knowledge/{kb_id}/prompt",
688
- "read_only": true,
689
- "role": "read"
690
- },
691
- {
692
- "description": "Read one entry of the table of contents, with its full content.",
693
- "method": "GET",
694
- "name": "get_node",
695
- "parameters": {
696
- "additionalProperties": true,
697
- "description": "Arguments not inlined: call describe_function('get_node').",
698
- "properties": {},
699
- "type": "object"
700
- },
701
- "path": "/v1/knowledge/{kb_id}/nodes/{node_id}",
702
- "read_only": true,
703
- "role": "read"
704
- },
705
- {
706
- "description": "Correct one entry's title, summary or content by hand \u2014 the way to fix a fact the crawl got wrong without rebuilding.",
707
- "method": "PATCH",
708
- "name": "patch_node",
664
+ "description": "Append question/answer entries to an FAQ, all or nothing. Live at once: agents using the FAQ read them from their next session.",
665
+ "method": "POST",
666
+ "name": "create_faq_entries",
709
667
  "parameters": {
710
668
  "additionalProperties": true,
711
- "description": "Arguments not inlined: call describe_function('patch_node').",
669
+ "description": "Arguments not inlined: call describe_function('create_faq_entries').",
712
670
  "properties": {},
713
671
  "type": "object"
714
672
  },
715
- "path": "/v1/knowledge/{kb_id}/nodes/{node_id}",
673
+ "path": "/v1/faqs/{faq_id}/entries",
716
674
  "read_only": false,
717
675
  "role": "write"
718
676
  },
719
677
  {
720
- "description": "Drop one entry from the table of contents, permanently.",
721
- "method": "DELETE",
722
- "name": "delete_node",
678
+ "description": "Change one entry's question, answer or both. Live from the next session.",
679
+ "method": "PATCH",
680
+ "name": "update_faq_entry",
723
681
  "parameters": {
724
682
  "additionalProperties": true,
725
- "description": "Arguments not inlined: call describe_function('delete_node').",
683
+ "description": "Arguments not inlined: call describe_function('update_faq_entry').",
726
684
  "properties": {},
727
685
  "type": "object"
728
686
  },
729
- "path": "/v1/knowledge/{kb_id}/nodes/{node_id}",
687
+ "path": "/v1/faqs/{faq_id}/entries/{entry_id}",
730
688
  "read_only": false,
731
689
  "role": "write"
732
690
  },
733
691
  {
734
- "description": "Delete a knowledge base and everything crawled into it, permanently.",
692
+ "description": "Delete one entry from an FAQ.",
735
693
  "method": "DELETE",
736
- "name": "delete_kb",
694
+ "name": "delete_faq_entry",
737
695
  "parameters": {
738
696
  "additionalProperties": true,
739
- "description": "Arguments not inlined: call describe_function('delete_kb').",
697
+ "description": "Arguments not inlined: call describe_function('delete_faq_entry').",
740
698
  "properties": {},
741
699
  "type": "object"
742
700
  },
743
- "path": "/v1/knowledge/{kb_id}",
701
+ "path": "/v1/faqs/{faq_id}/entries/{entry_id}",
744
702
  "read_only": false,
745
703
  "role": "write"
746
704
  },
@@ -1122,6 +1080,20 @@
1122
1080
  "read_only": false,
1123
1081
  "role": "write"
1124
1082
  },
1083
+ {
1084
+ "description": "Remove rows that were never dialled. Not reversible; a dialled row is refused in `rejected`.",
1085
+ "method": "POST",
1086
+ "name": "delete_call_batch_recipients",
1087
+ "parameters": {
1088
+ "additionalProperties": true,
1089
+ "description": "Arguments not inlined: call describe_function('delete_call_batch_recipients').",
1090
+ "properties": {},
1091
+ "type": "object"
1092
+ },
1093
+ "path": "/v1/calls/batches/{batch_id}/recipients/delete",
1094
+ "read_only": false,
1095
+ "role": "write"
1096
+ },
1125
1097
  {
1126
1098
  "description": "Stop placing new calls; calls in progress run to their end.",
1127
1099
  "method": "POST",
@@ -1319,30 +1291,16 @@
1319
1291
  "role": "write"
1320
1292
  },
1321
1293
  {
1322
- "description": "Take rows out of consideration. Reversible with `restore`.",
1323
- "method": "POST",
1324
- "name": "skip_email_batch_recipients",
1325
- "parameters": {
1326
- "additionalProperties": true,
1327
- "description": "Arguments not inlined: call describe_function('skip_email_batch_recipients').",
1328
- "properties": {},
1329
- "type": "object"
1330
- },
1331
- "path": "/v1/email/batches/{batch_id}/skip",
1332
- "read_only": false,
1333
- "role": "write"
1334
- },
1335
- {
1336
- "description": "Put skipped rows back. `selection: \"all_eligible\"` means every row a person skipped; an `unfillable` row is restored by filling in its cell instead.",
1294
+ "description": "Remove rows that were never sent. Not reversible; a sent row is refused in `rejected`.",
1337
1295
  "method": "POST",
1338
- "name": "restore_email_batch_recipients",
1296
+ "name": "delete_email_batch_recipients",
1339
1297
  "parameters": {
1340
1298
  "additionalProperties": true,
1341
- "description": "Arguments not inlined: call describe_function('restore_email_batch_recipients').",
1299
+ "description": "Arguments not inlined: call describe_function('delete_email_batch_recipients').",
1342
1300
  "properties": {},
1343
1301
  "type": "object"
1344
1302
  },
1345
- "path": "/v1/email/batches/{batch_id}/restore",
1303
+ "path": "/v1/email/batches/{batch_id}/recipients/delete",
1346
1304
  "read_only": false,
1347
1305
  "role": "write"
1348
1306
  },
@@ -1599,30 +1557,16 @@
1599
1557
  "role": "write"
1600
1558
  },
1601
1559
  {
1602
- "description": "Take ready rows out of the send. Reversible with restore.",
1603
- "method": "POST",
1604
- "name": "skip_whatsapp_batch_recipients",
1605
- "parameters": {
1606
- "additionalProperties": true,
1607
- "description": "Arguments not inlined: call describe_function('skip_whatsapp_batch_recipients').",
1608
- "properties": {},
1609
- "type": "object"
1610
- },
1611
- "path": "/v1/whatsapp/batches/{batch_id}/recipients/skip",
1612
- "read_only": false,
1613
- "role": "write"
1614
- },
1615
- {
1616
- "description": "Put rows a person skipped back. A row skipped for its cells returns when they are fixed.",
1560
+ "description": "Remove rows that were never sent. Not reversible; a sent row is refused in `rejected`.",
1617
1561
  "method": "POST",
1618
- "name": "restore_whatsapp_batch_recipients",
1562
+ "name": "delete_whatsapp_batch_recipients",
1619
1563
  "parameters": {
1620
1564
  "additionalProperties": true,
1621
- "description": "Arguments not inlined: call describe_function('restore_whatsapp_batch_recipients').",
1565
+ "description": "Arguments not inlined: call describe_function('delete_whatsapp_batch_recipients').",
1622
1566
  "properties": {},
1623
1567
  "type": "object"
1624
1568
  },
1625
- "path": "/v1/whatsapp/batches/{batch_id}/recipients/restore",
1569
+ "path": "/v1/whatsapp/batches/{batch_id}/recipients/delete",
1626
1570
  "read_only": false,
1627
1571
  "role": "write"
1628
1572
  },