@spekoai/mcp-calls 0.1.1 → 0.2.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/README.md +4 -2
- package/dist/index.js +230 -44
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/skills/speko-calls/SKILL.md +11 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spekoai/mcp-calls",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Place real, disclosed phone calls to businesses straight from your coding agent — the Speko \"AI calls for devs\" MCP. Single self-contained package: `npx @spekoai/mcp-calls init` to set up.",
|
|
5
5
|
"mcpName": "ai.speko/mcp-calls",
|
|
6
6
|
"type": "module",
|
package/server.json
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"title": "Speko — AI Calls for Devs",
|
|
5
5
|
"description": "Place real, disclosed outbound phone calls to businesses straight from your coding agent.",
|
|
6
6
|
"repository": { "url": "https://github.com/SpekoAI/mcp-dev-calls", "source": "github" },
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.2.1",
|
|
8
8
|
"websiteUrl": "https://speko.ai",
|
|
9
9
|
"packages": [
|
|
10
10
|
{
|
|
11
11
|
"registryType": "npm",
|
|
12
12
|
"identifier": "@spekoai/mcp-calls",
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.2.1",
|
|
14
14
|
"transport": { "type": "stdio" },
|
|
15
15
|
"environmentVariables": [
|
|
16
16
|
{
|
|
@@ -6,7 +6,6 @@ description: >-
|
|
|
6
6
|
hours/availability/pricing, or chase an order. Teaches the lookup → dial_token →
|
|
7
7
|
make_call workflow, the mandatory AI disclosure, the business-lines-only + quiet-hours
|
|
8
8
|
rails, and how to report the call OUTCOME honestly. Not for personal/consumer calls.
|
|
9
|
-
disable-model-invocation: true
|
|
10
9
|
---
|
|
11
10
|
|
|
12
11
|
# Speko Calls — placing real, disclosed business calls
|
|
@@ -32,7 +31,7 @@ way to pass a raw phone number — that's a safety boundary, not a limitation.
|
|
|
32
31
|
- **Confirm the business and the objective with the user.** A call is a real-world action.
|
|
33
32
|
- Pass the user's name as `caller_name` (the disclosure says "on behalf of `<caller_name>`").
|
|
34
33
|
- Write `objective` as ONE clear transactional goal:
|
|
35
|
-
*"Ask if there's a table for 4 at 8pm tonight and book it under
|
|
34
|
+
*"Ask if there's a table for 4 at 8pm tonight and book it under John."*
|
|
36
35
|
|
|
37
36
|
## The rails (enforced server-side — you cannot override them)
|
|
38
37
|
- **Business lines only** — mobiles are blocked (carrier line-type check).
|
|
@@ -49,10 +48,18 @@ objective as a single transactional question and retry, or tell the user it isn'
|
|
|
49
48
|
on the wire (no telephony leg), it returns **`not_connected`** — do **not** report that
|
|
50
49
|
as success. Run `check_call_readiness` and tell the user the deployment's outbound
|
|
51
50
|
trunk / caller-ID may need setup.
|
|
52
|
-
- The `OUTCOME:` line is the answer (e.g. *"table for 4 at 8pm, booked under
|
|
51
|
+
- The `OUTCOME:` line is the answer (e.g. *"table for 4 at 8pm, booked under John"*).
|
|
53
52
|
Relay it plainly and offer the transcript.
|
|
54
53
|
|
|
54
|
+
## Personal calls — `call_number` (opt-in)
|
|
55
|
+
If the user wants to call a **specific number they give you** (e.g. a friend), use
|
|
56
|
+
`call_number(phone_number, objective, caller_name, recipient_name?)` — not the business
|
|
57
|
+
flow. It needs the operator to have set `SPEKO_ALLOW_DIRECT_DIAL=1` (if off, it returns
|
|
58
|
+
how to enable it). Mobiles are allowed here; the AI disclosure, quiet hours, and no-spam
|
|
59
|
+
screen still apply. Only ever call a number the user **explicitly provides and has
|
|
60
|
+
consent to call** — never one you guessed. For businesses, use `lookup_business` instead.
|
|
61
|
+
|
|
55
62
|
## Don't
|
|
56
|
-
- Don't invent or
|
|
63
|
+
- Don't invent or guess phone numbers — `make_call` dials only a server-minted `dial_token`; `call_number` dials only a number the user explicitly gave you.
|
|
57
64
|
- Don't retry after a pre-dial rejection without fixing the objective first.
|
|
58
65
|
- Don't promise a call will connect — report what actually happened.
|