@oneshot-agent/mcp-server 0.2.0 → 0.3.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
@@ -76,7 +76,7 @@ Add to `~/.claude/settings.json`:
76
76
  | Tool | Description | Cost |
77
77
  |------|-------------|------|
78
78
  | `oneshot_email` | Send emails with attachments | ~$0.01 |
79
- | `oneshot_voice` | AI-powered phone calls | ~$0.25/min |
79
+ | `oneshot_voice` | Make phone calls | ~$0.25/min |
80
80
  | `oneshot_sms` | Send SMS messages | ~$0.035/segment |
81
81
 
82
82
  ### Inbox
@@ -105,6 +105,12 @@ Add to `~/.claude/settings.json`:
105
105
  | `oneshot_commerce_search` | Search for products | Free |
106
106
  | `oneshot_commerce_buy` | Purchase products | Product price + fee |
107
107
 
108
+ ### Build
109
+
110
+ | Tool | Description | Cost |
111
+ |------|-------------|------|
112
+ | `oneshot_build` | Build a website | ~$149+ |
113
+
108
114
  ### Account
109
115
 
110
116
  | Tool | Description | Cost |
@@ -174,6 +180,22 @@ Use oneshot_find_email:
174
180
  Use oneshot_get_balance (no parameters needed)
175
181
  ```
176
182
 
183
+ ### Build a Website
184
+
185
+ ```
186
+ Use oneshot_build:
187
+ - type: "saas"
188
+ - product:
189
+ name: "Acme Analytics"
190
+ description: "Real-time analytics dashboard for modern teams. Track metrics, visualize data, and make better decisions."
191
+ industry: "Software"
192
+ - lead_capture:
193
+ enabled: true
194
+ - brand:
195
+ primary_color: "#4F46E5"
196
+ tone: "professional"
197
+ ```
198
+
177
199
  ### Read Inbox
178
200
 
179
201
  ```
@@ -0,0 +1,4 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import { OneShot } from "@oneshot-agent/sdk";
3
+ export declare const buildTool: Tool;
4
+ export declare function handleBuild(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").BuildResult>;
@@ -0,0 +1,117 @@
1
+ export const buildTool = {
2
+ name: "oneshot_build",
3
+ description: "Build a website. Base price ~$149 includes 3 sections. Additional fees for extra sections, AI images, lead capture, custom domain, etc.",
4
+ inputSchema: {
5
+ type: "object",
6
+ properties: {
7
+ type: {
8
+ type: "string",
9
+ enum: ["saas", "portfolio", "agency", "personal", "product", "funnel", "restaurant", "event"],
10
+ description: "Website type (default: saas)",
11
+ },
12
+ product: {
13
+ type: "object",
14
+ properties: {
15
+ name: {
16
+ type: "string",
17
+ description: "Product or business name",
18
+ },
19
+ description: {
20
+ type: "string",
21
+ description: "Description of the product/service (min 10 chars)",
22
+ },
23
+ industry: {
24
+ type: "string",
25
+ description: "Industry category",
26
+ },
27
+ pricing: {
28
+ type: "string",
29
+ description: "Pricing information to display",
30
+ },
31
+ },
32
+ required: ["name", "description"],
33
+ },
34
+ source_url: {
35
+ type: "string",
36
+ description: "URL to analyze for content/inspiration (+$10)",
37
+ },
38
+ sections: {
39
+ type: "array",
40
+ items: { type: "string" },
41
+ description: "Specific sections to include (e.g., ['hero', 'features', 'pricing', 'testimonials'])",
42
+ },
43
+ lead_capture: {
44
+ type: "object",
45
+ properties: {
46
+ enabled: {
47
+ type: "boolean",
48
+ description: "Enable lead capture form (+$15)",
49
+ },
50
+ inbox_email: {
51
+ type: "string",
52
+ description: "Email to receive leads (defaults to agent inbox)",
53
+ },
54
+ },
55
+ },
56
+ brand: {
57
+ type: "object",
58
+ properties: {
59
+ primary_color: {
60
+ type: "string",
61
+ description: "Primary brand color (hex format, e.g., #FF5733)",
62
+ },
63
+ font: {
64
+ type: "string",
65
+ description: "Font family preference",
66
+ },
67
+ tone: {
68
+ type: "string",
69
+ enum: ["professional", "playful", "bold", "minimal"],
70
+ description: "Brand tone",
71
+ },
72
+ },
73
+ },
74
+ images: {
75
+ type: "object",
76
+ properties: {
77
+ hero: {
78
+ type: "string",
79
+ description: "Hero image URL",
80
+ },
81
+ logo: {
82
+ type: "string",
83
+ description: "Logo image URL",
84
+ },
85
+ },
86
+ },
87
+ domain: {
88
+ type: "string",
89
+ description: "Custom domain (e.g., mysite.com) (+$20)",
90
+ },
91
+ build_id: {
92
+ type: "string",
93
+ description: "Existing build ID to update (for iterations)",
94
+ },
95
+ },
96
+ required: ["product"],
97
+ },
98
+ };
99
+ export async function handleBuild(agent, args) {
100
+ const product = args.product;
101
+ return agent.build({
102
+ type: args.type,
103
+ product: {
104
+ name: product.name,
105
+ description: product.description,
106
+ industry: product.industry,
107
+ pricing: product.pricing,
108
+ },
109
+ source_url: args.source_url,
110
+ sections: args.sections,
111
+ lead_capture: args.lead_capture,
112
+ brand: args.brand,
113
+ images: args.images,
114
+ domain: args.domain,
115
+ build_id: args.build_id,
116
+ });
117
+ }
@@ -9,6 +9,7 @@ import { inboxListTool, inboxGetTool, handleInboxList, handleInboxGet } from "./
9
9
  import { smsInboxListTool, smsInboxGetTool, handleSmsInboxList, handleSmsInboxGet } from "./sms-inbox.js";
10
10
  import { notificationsTool, markReadTool, handleNotifications, handleMarkRead } from "./notifications.js";
11
11
  import { getBalanceTool, handleGetBalance } from "./wallet.js";
12
+ import { buildTool, handleBuild } from "./build.js";
12
13
  // All available tools
13
14
  export const tools = [
14
15
  // Communication
@@ -29,6 +30,8 @@ export const tools = [
29
30
  // Commerce
30
31
  commerceSearchTool,
31
32
  commerceBuyTool,
33
+ // Build
34
+ buildTool,
32
35
  // Account
33
36
  notificationsTool,
34
37
  markReadTool,
@@ -54,6 +57,8 @@ const handlers = {
54
57
  // Commerce
55
58
  "oneshot_commerce_search": handleCommerceSearch,
56
59
  "oneshot_commerce_buy": handleCommerceBuy,
60
+ // Build
61
+ "oneshot_build": handleBuild,
57
62
  // Account
58
63
  "oneshot_notifications": handleNotifications,
59
64
  "oneshot_mark_notification_read": handleMarkRead,
@@ -1,6 +1,6 @@
1
1
  export const voiceTool = {
2
2
  name: "oneshot_voice",
3
- description: "Make an AI-powered phone call. Costs ~$0.25/minute. The AI will follow the provided objective.",
3
+ description: "Make a phone call. Costs ~$0.25/minute. The call will follow the provided objective.",
4
4
  inputSchema: {
5
5
  type: "object",
6
6
  properties: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneshot-agent/mcp-server",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "MCP server for OneShot - commercial actions for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,7 +24,7 @@
24
24
  "license": "MIT",
25
25
  "dependencies": {
26
26
  "@modelcontextprotocol/sdk": "^1.0.0",
27
- "@oneshot-agent/sdk": "^0.5.1",
27
+ "@oneshot-agent/sdk": "^0.6.0",
28
28
  "zod": "^3.23.0"
29
29
  },
30
30
  "devDependencies": {