@oneshot-agent/mcp-server 0.3.0 → 0.3.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 CHANGED
@@ -110,6 +110,7 @@ Add to `~/.claude/settings.json`:
110
110
  | Tool | Description | Cost |
111
111
  |------|-------------|------|
112
112
  | `oneshot_build` | Build a website | ~$149+ |
113
+ | `oneshot_update_build` | Update an existing website | Discounted |
113
114
 
114
115
  ### Account
115
116
 
@@ -1,4 +1,6 @@
1
1
  import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
2
  import { OneShot } from "@oneshot-agent/sdk";
3
3
  export declare const buildTool: Tool;
4
+ export declare const updateBuildTool: Tool;
4
5
  export declare function handleBuild(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").BuildResult>;
6
+ export declare function handleUpdateBuild(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").BuildResult>;
@@ -96,6 +96,82 @@ export const buildTool = {
96
96
  required: ["product"],
97
97
  },
98
98
  };
99
+ export const updateBuildTool = {
100
+ name: "oneshot_update_build",
101
+ description: "Update an existing website. Requires the build_id from a previous build. Updates use the same GitHub repo and Vercel project, often at a discounted rate.",
102
+ inputSchema: {
103
+ type: "object",
104
+ properties: {
105
+ build_id: {
106
+ type: "string",
107
+ description: "Existing build ID to update (from previous build result)",
108
+ },
109
+ product: {
110
+ type: "object",
111
+ properties: {
112
+ name: {
113
+ type: "string",
114
+ description: "Product or business name",
115
+ },
116
+ description: {
117
+ type: "string",
118
+ description: "Description of the product/service (min 10 chars)",
119
+ },
120
+ industry: {
121
+ type: "string",
122
+ description: "Industry category",
123
+ },
124
+ pricing: {
125
+ type: "string",
126
+ description: "Pricing information to display",
127
+ },
128
+ },
129
+ required: ["name", "description"],
130
+ },
131
+ type: {
132
+ type: "string",
133
+ enum: ["saas", "portfolio", "agency", "personal", "product", "funnel", "restaurant", "event"],
134
+ description: "Website type (optional, keeps existing if not specified)",
135
+ },
136
+ source_url: {
137
+ type: "string",
138
+ description: "URL to analyze for content/inspiration",
139
+ },
140
+ sections: {
141
+ type: "array",
142
+ items: { type: "string" },
143
+ description: "Specific sections to include",
144
+ },
145
+ lead_capture: {
146
+ type: "object",
147
+ properties: {
148
+ enabled: { type: "boolean" },
149
+ inbox_email: { type: "string" },
150
+ },
151
+ },
152
+ brand: {
153
+ type: "object",
154
+ properties: {
155
+ primary_color: { type: "string" },
156
+ font: { type: "string" },
157
+ tone: { type: "string", enum: ["professional", "playful", "bold", "minimal"] },
158
+ },
159
+ },
160
+ images: {
161
+ type: "object",
162
+ properties: {
163
+ hero: { type: "string" },
164
+ logo: { type: "string" },
165
+ },
166
+ },
167
+ domain: {
168
+ type: "string",
169
+ description: "Custom domain",
170
+ },
171
+ },
172
+ required: ["build_id", "product"],
173
+ },
174
+ };
99
175
  export async function handleBuild(agent, args) {
100
176
  const product = args.product;
101
177
  return agent.build({
@@ -115,3 +191,22 @@ export async function handleBuild(agent, args) {
115
191
  build_id: args.build_id,
116
192
  });
117
193
  }
194
+ export async function handleUpdateBuild(agent, args) {
195
+ const product = args.product;
196
+ return agent.updateBuild({
197
+ build_id: args.build_id,
198
+ product: {
199
+ name: product.name,
200
+ description: product.description,
201
+ industry: product.industry,
202
+ pricing: product.pricing,
203
+ },
204
+ type: args.type,
205
+ source_url: args.source_url,
206
+ sections: args.sections,
207
+ lead_capture: args.lead_capture,
208
+ brand: args.brand,
209
+ images: args.images,
210
+ domain: args.domain,
211
+ });
212
+ }
@@ -9,7 +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
+ import { buildTool, updateBuildTool, handleBuild, handleUpdateBuild } from "./build.js";
13
13
  // All available tools
14
14
  export const tools = [
15
15
  // Communication
@@ -32,6 +32,7 @@ export const tools = [
32
32
  commerceBuyTool,
33
33
  // Build
34
34
  buildTool,
35
+ updateBuildTool,
35
36
  // Account
36
37
  notificationsTool,
37
38
  markReadTool,
@@ -59,6 +60,7 @@ const handlers = {
59
60
  "oneshot_commerce_buy": handleCommerceBuy,
60
61
  // Build
61
62
  "oneshot_build": handleBuild,
63
+ "oneshot_update_build": handleUpdateBuild,
62
64
  // Account
63
65
  "oneshot_notifications": handleNotifications,
64
66
  "oneshot_mark_notification_read": handleMarkRead,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneshot-agent/mcp-server",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
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.6.0",
27
+ "@oneshot-agent/sdk": "^0.6.1",
28
28
  "zod": "^3.23.0"
29
29
  },
30
30
  "devDependencies": {