@oneshot-agent/mcp-server 0.43.0 → 0.44.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 CHANGED
@@ -1,81 +1,40 @@
1
1
  # @oneshot-agent/mcp-server
2
2
 
3
- MCP (Model Context Protocol) server for [OneShot](https://oneshotagent.com). It gives any MCP client (Claude Desktop, Cursor, Claude Code) OneShot's tools: email, calls, SMS, research, enrichment, commerce, website builds. Paid calls are charged one at a time and show up in your receipts. An optional daily budget caps the spend.
3
+ Your agent can think. This lets it act from Claude Desktop, Cursor or Claude
4
+ Code: send email, make calls, research, buy, build sites. It pays per call,
5
+ gets a signed receipt, and spends nothing you did not allow.
4
6
 
5
- Quick start:
6
-
7
- 1. Install the server (below).
8
- 2. Add it to your client's MCP config with CDP credentials ([Configuration](#configuration)).
9
- 3. Send USDC on Base to the agent's wallet ([Funding Your Agent](#funding-your-agent)).
10
-
11
- ## Installation
7
+ ## Install
12
8
 
13
9
  ```bash
14
10
  npm install -g @oneshot-agent/mcp-server
15
11
  ```
16
12
 
17
- ## Configuration
18
-
19
- Pick one of three auth methods: **CDP Wallet** (recommended, no private keys in config), a raw private key, or an **access token** (credits-only session with no key; see Remote below).
20
-
21
- ### Environment Variables
22
-
23
- | Variable | Required | Description |
24
- |----------|----------|-------------|
25
- | `CDP_API_KEY_ID` | Option A | Coinbase CDP API key ID |
26
- | `CDP_API_KEY_SECRET` | Option A | Coinbase CDP API key secret |
27
- | `CDP_WALLET_SECRET` | Option A | Coinbase CDP wallet secret |
28
- | `ONESHOT_WALLET_PRIVATE_KEY` | Option B | Raw private key for signing payments |
29
- | `ONESHOT_ACCESS_TOKEN` | Option C | Agent access token (`oneshot_…`): credits-only session, cannot be combined with `ONESHOT_BUDGET_*` |
30
- | `ONESHOT_BUDGET_DAILY` | No | Max USDC the agent may spend per UTC day (spend budget, enforced server-side) |
31
- | `ONESHOT_BUDGET_PER_TRANSACTION` | No | Max USDC for any single call |
32
- | `ONESHOT_BUDGET_ALERT_AT` | No | Fraction of the daily budget that triggers a warning (default 0.8) |
33
- | `ONESHOT_BUDGET_PAUSE_AT` | No | Fraction at which paid calls stop (default 1.0) |
34
- | `ONESHOT_BUDGET_ALERT_EMAIL` | No | Email for budget alerts |
35
-
36
- ### Claude Desktop
37
-
38
- Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
39
-
40
- ```json
41
- {
42
- "mcpServers": {
43
- "oneshot": {
44
- "command": "npx",
45
- "args": ["-y", "@oneshot-agent/mcp-server"],
46
- "env": {
47
- "CDP_API_KEY_ID": "your-api-key-id",
48
- "CDP_API_KEY_SECRET": "your-api-key-secret",
49
- "CDP_WALLET_SECRET": "your-wallet-secret"
50
- }
51
- }
52
- }
53
- }
54
- ```
13
+ Or skip the install and let your client run `npx -y @oneshot-agent/mcp-server`.
55
14
 
56
- ### Cursor
15
+ ## Start
57
16
 
58
- Add to `.cursor/mcp.json` in your project:
17
+ Pick one way to pay. Set its env vars in your client's config, below.
59
18
 
60
- ```json
61
- {
62
- "mcpServers": {
63
- "oneshot": {
64
- "command": "npx",
65
- "args": ["-y", "@oneshot-agent/mcp-server"],
66
- "env": {
67
- "CDP_API_KEY_ID": "your-api-key-id",
68
- "CDP_API_KEY_SECRET": "your-api-key-secret",
69
- "CDP_WALLET_SECRET": "your-wallet-secret"
70
- }
71
- }
72
- }
73
- }
74
- ```
19
+ | Variable | Use | What it is |
20
+ |----------|-----|------------|
21
+ | `CDP_API_KEY_ID` | A (recommended) | CDP API key ID. No private key in your config. |
22
+ | `CDP_API_KEY_SECRET` | A | CDP API key secret |
23
+ | `CDP_WALLET_SECRET` | A | CDP wallet secret |
24
+ | `ONESHOT_WALLET_PRIVATE_KEY` | B | Raw private key that signs payments |
25
+ | `ONESHOT_ACCESS_TOKEN` | C | Access token (`oneshot_…`). Credits only, no key. |
26
+ | `ONESHOT_BUDGET_DAILY` | optional | Max USDC per UTC day |
27
+ | `ONESHOT_BUDGET_PER_TRANSACTION` | optional | Max USDC for one call |
28
+ | `ONESHOT_BUDGET_ALERT_AT` | optional | Fraction of the daily budget that warns (default 0.8) |
29
+ | `ONESHOT_BUDGET_PAUSE_AT` | optional | Fraction at which paid calls stop (default 1.0) |
30
+ | `ONESHOT_BUDGET_ALERT_EMAIL` | optional | Where budget alerts go |
75
31
 
76
- ### Claude Code
32
+ Set more than one and the token wins, then CDP, then the raw key.
33
+ Get CDP credentials [here](https://docs.cdp.coinbase.com/agentic-wallet/welcome).
77
34
 
78
- Add to `~/.claude/settings.json`:
35
+ One block, three places:
36
+ Claude Desktop reads `~/Library/Application Support/Claude/claude_desktop_config.json`,
37
+ Cursor reads `.cursor/mcp.json` in your project, Claude Code reads user-scoped servers from `~/.claude.json`.
79
38
 
80
39
  ```json
81
40
  {
@@ -93,18 +52,9 @@ Add to `~/.claude/settings.json`:
93
52
  }
94
53
  ```
95
54
 
96
- Get CDP credentials at [Coinbase Agentic Wallet](https://docs.cdp.coinbase.com/agentic-wallet/welcome), or use `ONESHOT_WALLET_PRIVATE_KEY` instead of the CDP env vars for raw key auth.
97
-
98
- ### Read authentication
99
-
100
- Read tools (inbox, SMS inbox, notifications, balance, browser profiles) return private, per-agent data. The server wraps the OneShot TypeScript SDK, which signs a short-lived **EIP-712 read proof** (`x-agent-proof`) on each read so the API can verify you control the `X-Agent-ID` wallet. This needs no configuration; it ships in `@oneshot-agent/sdk >= 0.25.0` (the bundled dependency). The API enforces this proof by default — a request with no proof (or a mismatched one) and no valid access token is rejected.
101
-
102
- ## Remote (hosted)
103
-
104
- Clients that run in someone else's cloud (Grok Bot, hosted runners) cannot spawn this
105
- server and must not hold a wallet key. For them, OneShot hosts the same tool registry over
106
- Streamable HTTP at **`https://win.oneshotagent.com/mcp`**, authenticated with an
107
- **agent access token** and billed to the agent's credit balance:
55
+ **Hosted.** A client in someone else's cloud cannot run this server and must not
56
+ hold a wallet key. Point it at `https://win.oneshotagent.com/mcp` with an access
57
+ token. Same tools, billed to the agent's credits.
108
58
 
109
59
  ```json
110
60
  {
@@ -117,261 +67,69 @@ Streamable HTTP at **`https://win.oneshotagent.com/mcp`**, authenticated with an
117
67
  }
118
68
  ```
119
69
 
120
- Mint a token from a wallet session with `agent.createAccessToken()` (`@oneshot-agent/sdk`
121
- ≥ 0.33.0). Setup and billing details: https://docs.oneshotagent.com/sdk/remote-mcp
122
-
123
- The same token also works with this local server (≥ 0.20.0): set `ONESHOT_ACCESS_TOKEN`
124
- instead of the wallet variables for a credits-only session on your own machine.
125
-
126
- ## Available Tools
127
-
128
- ### Soul Hunt
129
-
130
- | Tool | Description |
131
- |------|-------------|
132
- | `oneshot_hunt_list` | List active or collected Soul Hunts. Free. |
133
- | `oneshot_hunt_status` | Detailed status, rounds and timeline for a specific hunt. Free. |
134
- | `oneshot_hunt_predict` | Submit a prediction for a hunt. Debits a stake from your balance. Paid, and requires a wallet session — Soul Hunt enforces a wallet-signed write proof that an access-token/OAuth session cannot produce. |
135
- | `oneshot_hunt_collection` | View the souls you have captured. Free. |
136
- | `oneshot_hunt_leaderboard` | Public predictor leaderboard. Free. |
137
-
138
- Soul Hunt is a separate service (`api.soulhunt.ai`) from the main OneShot API; the wallet session's `X-Agent-ID`/`x-agent-proof` carry over, but the OneShot bearer token never does.
139
-
140
- ### Communication
141
-
142
- | Tool | Description |
143
- |------|-------------|
144
- | `oneshot_email` | Send emails with attachments |
145
- | `oneshot_voice` | Make phone calls |
146
- | `oneshot_sms` | Send SMS messages |
147
-
148
- ### Inbox
149
-
150
- | Tool | Description |
151
- |------|-------------|
152
- | `oneshot_inbox_list` | List received emails |
153
- | `oneshot_inbox_get` | Get a specific email |
154
- | `oneshot_sms_inbox_list` | List received SMS messages |
155
- | `oneshot_sms_inbox_get` | Get a specific SMS message |
156
-
157
- ### Inbound voice
158
-
159
- | Tool | Description |
160
- |------|-------------|
161
- | `oneshot_voice_number_provision` | Get the agent a phone number (existing one free; new one charges the registration fee from credits) |
162
- | `oneshot_voice_numbers` | List the agent's phone numbers |
163
- | `oneshot_voice_inbound_set` | Make a number answer its own calls (wallet session only) |
164
- | `oneshot_voice_inbound_disable` | Stop answering calls to a number (wallet session only) |
165
- | `oneshot_voice_inbound_calls` | List inbound calls, or one call with transcript |
166
-
167
- ### Research & Enrichment
168
-
169
- | Tool | Description |
170
- |------|-------------|
171
- | `oneshot_research` | Deep web research with sources |
172
- | `oneshot_solve` | Plan vehicle routes with constraint checks and conflicts |
173
- | `oneshot_person_find` | Search for people by title, company, etc. |
174
- | `oneshot_person_profile` | Enrich person profile from LinkedIn URL, email, or name + company |
175
- | `oneshot_person_email` | Find someone's email address |
176
- | `oneshot_person_email_status` | Verify email deliverability |
177
- | `oneshot_company_find` | Search for companies by industry, size, location, etc. |
178
- | `oneshot_company_profile` | Enrich a company from domain, name, LinkedIn, or ticker |
179
- | `oneshot_business_find` | Discover local businesses (restaurants, contractors, practices) by category × location |
180
- | `oneshot_business_resolve` | Business name + address → website domain, phone, status, confidence |
181
- | `oneshot_record_solicitations_find` | Federal Sources Sought / Presolicitation notices by NAICS with the contracting officer's contact |
182
-
183
- ### Person Intelligence
184
-
185
- | Tool | Description |
186
- |------|-------------|
187
- | `oneshot_person_dossier` | A person’s profile, known social accounts, articles, posts and written summary |
188
- | `oneshot_person_social_accounts` | Find all social accounts for a person |
189
- | `oneshot_person_articles` | Find articles about a person |
190
- | `oneshot_person_posts` | Recent social posts with engagement |
191
- | `oneshot_person_interests` | Analyze interests across categories |
192
- | `oneshot_person_followers` | Map followers, following, replies |
193
-
194
- ### Web
195
-
196
- | Tool | Description |
197
- |------|-------------|
198
- | `oneshot_web_search` | Search the web |
199
- | `oneshot_web_read` | Read any URL as markdown + screenshot |
200
- | `oneshot_browser` | Autonomous browser: navigate, click, extract |
201
-
202
- ### Commerce
203
-
204
- | Tool | Description |
205
- |------|-------------|
206
- | `oneshot_product_find` | Search for products |
207
- | `oneshot_commerce_buy` | Purchase products |
208
-
209
- ### Physical Mail
210
-
211
- Quote-to-pay with an explicit approval in between. Prices are on the [Pricing](https://docs.oneshotagent.com/pricing) page; the quote carries the price of each piece.
212
-
213
- | Tool | Description |
214
- |------|-------------|
215
- | `oneshot_physical_mail_upload` | Upload print-ready artwork (PDF, PNG or JPEG as base64, 20 MB max) and get its asset id |
216
- | `oneshot_physical_mail_validate_address` | Check that a U.S. address is deliverable |
217
- | `oneshot_physical_mail_preview` | Quote a letter or postcard and render an uncharged proof |
218
- | `oneshot_physical_mail_quote` | Read a quote |
219
- | `oneshot_physical_mail_approve` | Approve the exact piece and price of a quote |
220
- | `oneshot_physical_mail_send` | Print and post an approved piece (quote id, approval id and an idempotency key you keep) |
221
- | `oneshot_physical_mail_recover` | Find the order a send created, by its idempotency key |
222
- | `oneshot_physical_mail_order` | Read an order and its status |
223
- | `oneshot_physical_mail_cancel` | Ask to cancel an order (not guaranteed once submitted) |
224
-
225
- ### Build
226
-
227
- | Tool | Description |
228
- |------|-------------|
229
- | `oneshot_build` | Build and deploy production websites |
230
- | `oneshot_update_build` | Update an existing website |
231
-
232
- ### Compute Orchestration
233
-
234
- | Tool | Description |
235
- |------|-------------|
236
- | `oneshot_compute` | Create an autonomous goal (objective + budget); OneShot plans and runs the steps |
237
- | `oneshot_compute_status` | Get a compute goal's status and budget |
238
- | `oneshot_compute_tasks` | List tasks planned/executed under a goal |
239
- | `oneshot_compute_cancel` | Cancel a goal and refund remaining budget |
240
- | `oneshot_compute_respond` | Respond to a human-in-the-loop task |
241
- | `oneshot_compute_pause` | Pause a recurring goal; plan and progress are kept |
242
- | `oneshot_compute_resume` | Resume a paused recurring goal |
243
- | `oneshot_compute_fund` | Top up a recurring goal's USDC budget |
244
-
245
- ### Domains
246
-
247
- | Tool | Description |
248
- |------|-------------|
249
- | `oneshot_list_domains` | List sending domains with warmup/limits |
250
- | `oneshot_pause_domain` | Pause a sending domain |
251
- | `oneshot_resume_domain` | Resume a paused sending domain |
252
-
253
- ### Analytics
254
-
255
- | Tool | Description |
256
- |------|-------------|
257
- | `oneshot_spend_breakdown` | Spend by tool/category over a period |
258
- | `oneshot_return_on_spend` | Return on spend: cost vs. value produced |
259
- | `oneshot_receipts_list` | List spend receipts |
260
- | `oneshot_tag_receipt_value` | Tag a receipt with the value it generated |
261
-
262
- ### Account
263
-
264
- | Tool | Description |
265
- |------|-------------|
266
- | `oneshot_notifications` | List agent notifications |
267
- | `oneshot_mark_notification_read` | Mark notification as read |
268
- | `oneshot_get_balance` | Get USDC wallet balance |
269
- | `oneshot_budget_status` | Today's spend vs the configured budget (read-only) |
270
-
271
- Paid tools are priced in USDC via the x402 protocol. Current rates are on the [Pricing](https://docs.oneshotagent.com/pricing) page.
272
-
273
- ## Tool Examples
274
-
275
- ### Send an Email
276
-
277
- ```
278
- Use oneshot_email:
279
- - to: "user@example.com"
280
- - subject: "Hello from AI"
281
- - body: "<h1>Hello!</h1><p>This email was sent by an AI agent.</p>"
282
- - from_name: "Jane Doe" (optional display name → "Jane Doe <jane@domain>")
283
- - from_mailbox: "jane" (optional local-part, defaults to "agent"; requires from_domain)
284
- - from_domain: "acme.com" (optional, must be a domain you own; omit both from_domain and
285
- from_mailbox to rotate across your warmed domains)
286
- - mailbox_mode: "mailbox" (optional, 'relay' (default) | 'mailbox' — dedicated per-address
287
- mailbox; only when first provisioning a new from_domain)
288
- ```
289
-
290
- ### Make a Phone Call
291
-
292
- ```
293
- Use oneshot_voice:
294
- - target_number: "+14155551234"
295
- - objective: "Call the restaurant and make a reservation for 2 people at 7pm tonight"
296
- - caller_persona: "A polite assistant calling on behalf of John"
297
- ```
298
-
299
- ### Send an SMS
300
-
301
- ```
302
- Use oneshot_sms:
303
- - to_number: "+14155551234"
304
- - message: "Your order has shipped! Track it at: https://example.com/track/123"
305
- ```
306
-
307
- ### Research a Topic
308
-
309
- ```
310
- Use oneshot_research:
311
- - topic: "What are the latest developments in quantum computing?"
312
- - depth: "deep"
313
- ```
314
-
315
- ### Search for People
316
-
317
- ```
318
- Use oneshot_person_find:
319
- - job_titles: ["CTO", "VP Engineering"]
320
- - companies: ["Stripe", "Square"]
321
- - location: ["San Francisco"]
322
- - limit: 10
323
- ```
324
-
325
- ### Find Someone's Email
326
-
327
- ```
328
- Use oneshot_person_email:
329
- - name: "John Smith"
330
- - company: "Example" (a name or a domain)
331
- ```
332
-
333
- ### Check Wallet Balance
334
-
335
- ```
336
- Use oneshot_get_balance (no parameters needed)
337
- ```
338
-
339
- ### Build a Website
340
-
341
- ```
342
- Use oneshot_build:
343
- - type: "saas"
344
- - product:
345
- name: "Acme Analytics"
346
- description: "Real-time analytics dashboard for modern teams. Track metrics, visualize data, and make better decisions."
347
- industry: "Software"
348
- - lead_capture:
349
- enabled: true
350
- - brand:
351
- primary_color: "#4F46E5"
352
- tone: "professional"
353
- ```
354
-
355
- ### Read Inbox
356
-
357
- ```
358
- Use oneshot_inbox_list:
359
- - limit: 10
360
- - include_body: true
361
- ```
362
-
363
- ## Funding Your Agent
364
-
365
- Send USDC to your agent's wallet address on Base. The server runs on Base Mainnet (chain 8453).
366
-
367
- ## LinkedIn connection recovery
368
-
369
- If the active account list is empty or an account is `connection_deleted` or
370
- `revoked`, ask the human to use `oneshot_linkedin_connect` and authorize fresh
371
- grants. An existing account with `reconnect_required` must be reconnected through
372
- the owning application. Reconnect and revoke are deliberately not agent tools.
373
- Do not create a new connection automatically after authentication failures or
374
- timeouts.
70
+ Mint the token from a wallet session with `agent.createAccessToken()` in
71
+ `@oneshot-agent/sdk`. [Setup and billing](https://docs.oneshotagent.com/sdk/remote-mcp).
72
+
73
+ ## What it does
74
+
75
+ Every tool is named `oneshot_<name>`. Below are the names.
76
+
77
+ | Area | Tools |
78
+ |------|-------|
79
+ | [Talk](https://docs.oneshotagent.com/api-reference/email/send) | `email` `voice` `sms` `inbox_list` `inbox_get` `sms_inbox_list` `sms_inbox_get` `notifications` `mark_notification_read` |
80
+ | [Inbound calls](https://docs.oneshotagent.com/api-reference/voice/inbound) | `voice_number_provision` `voice_numbers` `voice_inbound_set` `voice_inbound_disable` `voice_inbound_calls` |
81
+ | [Send from your domains](https://docs.oneshotagent.com/api-reference/email/domains) | `list_domains` `pause_domain` `resume_domain` |
82
+ | [Find people and companies](https://docs.oneshotagent.com/api-reference/research/person-find) | `person_find` `person_profile` `person_email` `person_email_status` `person_dossier` `person_social_accounts` `person_articles` `person_posts` `person_interests` `person_followers` `company_find` `company_profile` `business_find` `business_resolve` `record_solicitations_find` |
83
+ | [Lookups](https://docs.oneshotagent.com/tools-and-goals#lookups) | public records, places, products, vehicles, genes, proteins and more, one tool each |
84
+ | [Think](https://docs.oneshotagent.com/api-reference/research) | `research` `predict` `solve` |
85
+ | [Web and buying](https://docs.oneshotagent.com/api-reference/web-search) | `web_search` `web_read` `browser` `product_find` `commerce_buy` |
86
+ | [Physical mail](https://docs.oneshotagent.com/api-reference/physical-mail/overview) | `physical_mail_upload` `physical_mail_validate_address` `physical_mail_preview` `physical_mail_quote` `physical_mail_approve` `physical_mail_send` `physical_mail_recover` `physical_mail_order` `physical_mail_cancel` |
87
+ | [LinkedIn](https://docs.oneshotagent.com/api-reference/linkedin/overview) | `linkedin_connect` `linkedin_accounts` `linkedin_invite` `linkedin_message` `linkedin_reply` and more |
88
+ | [Build](https://docs.oneshotagent.com/api-reference/build/create) | `build` `update_build` |
89
+ | [Goals](https://docs.oneshotagent.com/api-reference/compute/create) | `compute` `compute_status` `compute_tasks` `compute_respond` `compute_pause` `compute_resume` `compute_fund` `compute_cancel` |
90
+ | [Money and receipts](https://docs.oneshotagent.com/api-reference/analytics/overview) | `get_balance` `budget_status` `spend_breakdown` `return_on_spend` `receipts_list` `tag_receipt_value` |
91
+ | Soul Hunt | `hunt_list` `hunt_status` `hunt_predict` `hunt_collection` `hunt_leaderboard` |
92
+
93
+ ## Money
94
+
95
+ - It pays in USDC on Base mainnet (chain 8453). Send USDC to the agent's wallet first.
96
+ - A paid call costs what the quote says, or it does not run. [Prices](https://docs.oneshotagent.com/pricing).
97
+ - Budgets live on the server. You set them in env vars; the model cannot.
98
+ `budget_status` only reads them.
99
+ - A budget value that does not parse stops the server at startup. It never runs unguarded.
100
+ - An access token spends prepaid credits only. It never signs a payment, and it
101
+ cannot be combined with `ONESHOT_BUDGET_*`: the server refuses to start.
102
+
103
+ ## Trust
104
+
105
+ Every paid call returns a signed receipt. Reads of private data (inbox, SMS inbox,
106
+ notifications, balance, browser profiles) carry a signed proof that you hold the
107
+ wallet. The server signs it for you. A read with no proof and no valid token is refused.
108
+
109
+ ## Tool notes
110
+
111
+ - **Email.** Omit `from_domain` and `from_mailbox` and the send rotates across
112
+ your warmed domains. `from_mailbox` needs `from_domain`. A new `from_domain`
113
+ only quotes; nothing is charged until you confirm. `mailbox_mode` applies only
114
+ when a domain is first set up. [Details](https://docs.oneshotagent.com/api-reference/email/send).
115
+ - **Phone lookup** is off by default on `person_find`, `person_profile` and
116
+ `person_dossier`. `include_phone: true` is charged for each person you ask for
117
+ (the search limit, default 100), or once for a profile or dossier, found or not.
118
+ A failed job is refunded. Numbers the source already has come back without it.
119
+ [Price](https://docs.oneshotagent.com/pricing).
120
+ - **Physical mail.** Preview, look at the proof and the price, then approve the
121
+ quote yourself. Keep the idempotency key you pass to `physical_mail_send`;
122
+ `physical_mail_recover` finds the order by it. Cancel is not guaranteed once submitted.
123
+ - **LinkedIn.** No active account, or one that is `connection_deleted` or `revoked`:
124
+ ask the human to run `linkedin_connect` and grant again. `reconnect_required`
125
+ is fixed by the owning application. Reconnect and revoke are not agent tools.
126
+ Never open a new connection on your own after an auth failure or a timeout.
127
+ - **Predict.** Pass `model: "simulation"` with a `simulation` block, or
128
+ `model: "forecast"` with a `forecast` block. You get ranges and consistency
129
+ checks back. [Inputs and limits](https://docs.oneshotagent.com/api-reference/predict).
130
+ - **Wallet session only.** `voice_inbound_set`, `voice_inbound_disable` and
131
+ `hunt_predict`, which stakes from your balance. Soul Hunt is a separate
132
+ service: your wallet proof carries over, your access token never does.
375
133
 
376
134
  ## Links
377
135
 
@@ -382,12 +140,6 @@ timeouts.
382
140
  - [Python SDK (Core)](https://pypi.org/project/oneshot-python/)
383
141
  - [GitHub](https://github.com/oneshot-agent/sdk)
384
142
 
385
- ## Optional phone lookup
386
-
387
- `person_find`, `person_profile`, and `person_dossier` accept `include_phone`, off by default. It adds the per-person add-on listed on the pricing page × the requested search limit (default 100) for a search, or once for profile/dossier, for up to that many people with no promised hit. Existing source numbers and published business or record numbers remain available without opting in. Fallbacks and callbacks cost nothing extra; a completed no-match is charged and a failed job is refunded. Use a boolean `true` / `false`. The full quote is checked before payment.
388
-
389
- ## Predict
390
-
391
- Use `oneshot_predict` with the matching model block. Supports `model: "simulation"` with a `simulation` block of named distributions and arithmetic outputs, or `model: "forecast"` with a `forecast` block containing a time series and horizon. Returns uncertainty ranges and consistency checks.
143
+ ## License
392
144
 
393
- See [Predict](https://docs.oneshotagent.com/api-reference/predict) for inputs, results and limits.
145
+ MIT
package/dist/index.js CHANGED
@@ -50,7 +50,7 @@ async function main() {
50
50
  const agent = await initAgent();
51
51
  const server = new Server({
52
52
  name: "oneshot-mcp",
53
- version: "0.43.0", // keep in sync with package.json; guarded by version.test.ts
53
+ version: "0.44.0", // keep in sync with package.json; guarded by version.test.ts
54
54
  }, {
55
55
  capabilities: {
56
56
  tools: {},
@@ -2336,7 +2336,7 @@ export const ROUTE_MANIFEST = [
2336
2336
  "paid": false,
2337
2337
  "readOnly": false,
2338
2338
  "title": "Watch",
2339
- "description": "Be told when one attribute of one entity changes. Creating the watch is free; each change delivered is charged from prepaid credits, up to `max_spend` dollars. Only attributes we ingest on a schedule can be watched; a refusal names them. `key` is the entity's own identifier, as Changes takes it. Give `webhook_url` (HTTPS) to have each change sent, signed with a secret returned once.",
2339
+ "description": "Be told when one attribute of one entity changes. Creating the watch is free; each change delivered is charged from prepaid credits, up to `max_spend` dollars. Only attributes covered by a validated scheduled dataset can be watched; a refusal names them. `key` is the entity's own identifier, as Changes takes it. Give `webhook_url` (HTTPS) to have each change sent, signed with a secret returned once.",
2340
2340
  "inputSchema": {
2341
2341
  "type": "object",
2342
2342
  "properties": {
@@ -1,12 +1,20 @@
1
1
  export const voiceTool = {
2
2
  name: "oneshot_voice",
3
- description: "Make a phone call. The call will follow the provided objective. Paid tool — quote provided before payment.",
3
+ description: "Make a phone call. The call will follow the provided objective. Pass up to 5 numbers to set up a conference call. Paid; the price is quoted before payment.",
4
4
  inputSchema: {
5
5
  type: "object",
6
6
  properties: {
7
7
  target_number: {
8
- type: "string",
9
- description: "Phone number to call (E.164 format, e.g., +14155551234)",
8
+ anyOf: [
9
+ { type: "string", description: "Phone number to call (E.164 format, e.g., +14155551234)" },
10
+ {
11
+ type: "array",
12
+ items: { type: "string" },
13
+ minItems: 1,
14
+ maxItems: 5,
15
+ description: "1 to 5 phone numbers (E.164) to join in a conference call",
16
+ },
17
+ ],
10
18
  },
11
19
  objective: {
12
20
  type: "string",
@@ -20,6 +28,10 @@ export const voiceTool = {
20
28
  type: "string",
21
29
  description: "Persona for the AI caller (optional)",
22
30
  },
31
+ caller_name: {
32
+ type: "string",
33
+ description: "Name the call speaks as: the person or agent it is made for (optional, max 100 characters)",
34
+ },
23
35
  max_duration_minutes: {
24
36
  type: "number",
25
37
  description: "Maximum call duration in minutes (1-30, optional)",
@@ -38,6 +50,7 @@ export async function handleVoice(agent, args) {
38
50
  objective: args.objective,
39
51
  context: args.context,
40
52
  caller_persona: args.caller_persona,
53
+ caller_name: args.caller_name,
41
54
  max_duration_minutes: args.max_duration_minutes,
42
55
  approvalId: args.approval_id,
43
56
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneshot-agent/mcp-server",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "description": "MCP server for OneShot - 154 tools for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -26,7 +26,7 @@
26
26
  "dependencies": {
27
27
  "@coinbase/cdp-sdk": "1.45.0",
28
28
  "@modelcontextprotocol/sdk": "1.27.1",
29
- "@oneshot-agent/sdk": "^0.56.0",
29
+ "@oneshot-agent/sdk": "^0.57.0",
30
30
  "zod": "3.25.76"
31
31
  },
32
32
  "devDependencies": {