@spekoai/mcp-calls 0.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 ADDED
@@ -0,0 +1,62 @@
1
+ # @spekoai/mcp-calls
2
+
3
+ **Place real, _disclosed_ phone calls to businesses — straight from your coding agent.**
4
+
5
+ > _"call Sakura Sushi and ask if they have a table for 4 at 8pm — my name is Amirlan"_
6
+ > → the agent dials, opens with _"Hi, this is an AI assistant calling on behalf of Amirlan…"_,
7
+ > and the `OUTCOME:` (booked / not available) lands back in your terminal.
8
+
9
+ A [Model Context Protocol](https://modelcontextprotocol.io) server for Claude Code, Claude
10
+ Desktop, and any MCP client. Powered by [Speko](https://speko.ai).
11
+
12
+ ## Setup — one command
13
+
14
+ ```bash
15
+ npx @spekoai/mcp-calls@latest init
16
+ ```
17
+
18
+ The wizard opens the Speko dashboard for an API key, verifies it, writes the MCP into your
19
+ client config (Claude Code or Claude Desktop), and installs a companion skill. Then just ask
20
+ your agent to call a business.
21
+
22
+ It runs **single-process**: give it your `SPEKO_API_KEY` and it calls `api.speko.dev`
23
+ directly — no separate server to run.
24
+
25
+ <details><summary>Manual / CI setup</summary>
26
+
27
+ ```bash
28
+ # Claude Code
29
+ claude mcp add speko-calls --scope user --env SPEKO_API_KEY=sk_... -- npx -y @spekoai/mcp-calls
30
+ ```
31
+ ```jsonc
32
+ // Claude Desktop — claude_desktop_config.json
33
+ { "mcpServers": { "speko-calls": {
34
+ "command": "npx", "args": ["-y", "@spekoai/mcp-calls"], "env": { "SPEKO_API_KEY": "sk_..." }
35
+ } } }
36
+ ```
37
+ Get a key at [platform.speko.dev](https://platform.speko.dev). To route through a hosted
38
+ backing server instead of running in-process, set `SPEKO_MCP_SERVER_URL`.
39
+ </details>
40
+
41
+ ## Tools
42
+
43
+ | Tool | What it does |
44
+ | --- | --- |
45
+ | `lookup_business(name, location?)` | Resolve a business → dialable candidates + a signed `dial_token` per callable one. The only path that can authorize a call. |
46
+ | `make_call(dial_token, objective, caller_name, context?)` | Place the disclosed, objective-scoped call; wait for it to finish; return the `OUTCOME` + transcript. Honest `connected`/`answered`/`not_connected`. |
47
+ | `check_call_readiness()` | Read-only preflight: auth, credit balance, outbound caller-ID. Never dials. |
48
+
49
+ ## Safety
50
+
51
+ Every call opens with a **non-removable AI disclosure**. **Business lines only** (carrier
52
+ line-type check). **Transactional objectives only** — selling, promotion, surveys,
53
+ fundraising, and campaigning are refused. **Quiet hours** 08:00–21:00 in the destination's
54
+ local time. `make_call` is authorized only by a fresh, single-use, signed `dial_token` from
55
+ `lookup_business` — a raw phone number can never dial.
56
+
57
+ ## Links
58
+
59
+ - Dashboard / API keys — [platform.speko.dev](https://platform.speko.dev)
60
+ - Source & issues — [github.com/SpekoAI/mcp-dev-calls](https://github.com/SpekoAI/mcp-dev-calls)
61
+
62
+ MIT © SpekoAI