@dypai-ai/mcp 1.0.7 → 1.0.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dypai-ai/mcp",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "DYPAI MCP Server — AI agent toolkit for building and deploying full-stack apps",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -17,8 +17,7 @@
17
17
  "deploy",
18
18
  "backend",
19
19
  "database",
20
- "api",
21
- "cloudflare-pages"
20
+ "api"
22
21
  ],
23
22
  "license": "MIT",
24
23
  "repository": {
package/src/index.js CHANGED
@@ -65,7 +65,8 @@ const FALLBACK_REMOTE_TOOLS = [
65
65
  { name: "get_auth_users", description: "List users.", inputSchema: { type: "object", properties: { project_id: { type: "string" } }, required: [] } },
66
66
  { name: "list_buckets", description: "List storage buckets.", inputSchema: { type: "object", properties: { project_id: { type: "string" } }, required: [] } },
67
67
  { name: "search_docs", description: "Search documentation.", inputSchema: { type: "object", properties: { query: { type: "string" } }, required: ["query"] } },
68
- { name: "search_templates", description: "Search workflow templates.", inputSchema: { type: "object", properties: { query: { type: "string" } }, required: ["query"] } },
68
+ { name: "search_workflow_templates", description: "Search workflow templates.", inputSchema: { type: "object", properties: { query: { type: "string" } }, required: ["query"] } },
69
+ { name: "search_project_templates", description: "Search project starter templates.", inputSchema: { type: "object", properties: { query: { type: "string" } }, required: ["query"] } },
69
70
  { name: "search_nodes", description: "Search workflow nodes.", inputSchema: { type: "object", properties: { query: { type: "string" } }, required: ["query"] } },
70
71
  ]
71
72
 
@@ -74,7 +75,7 @@ const REMOTE_TOOLS = [
74
75
  // ── Project ───────────────────────────────────────────────────────────────
75
76
  { name: "list_projects", description: "Lists all projects you have access to across your organizations. Returns project id, name, description, organization, subscription plan, and status. Use this as the first step to discover which projects are available, then pass project_id to other tools.", inputSchema: { type: "object", properties: { organization_id: { type: "string", description: "Optional. Filter projects by organization UUID." } }, required: [] } },
76
77
  { name: "get_project", description: "Gets detailed information about a specific project. Returns project name, description, organization, plan, status, engine URL, frontend slug, and timestamps.", inputSchema: { type: "object", properties: { project_id: { type: "string" } }, required: ["project_id"] } },
77
- { name: "create_project", description: "Create a new DYPAI project (free plan). Creates a full project with database, API engine, GitHub repo, and frontend hosting. Provisioning takes ~1 minute.", inputSchema: { type: "object", properties: { name: { type: "string", description: "Project name (e.g. 'My Veterinary App')" }, organization_id: { type: "string", description: "Optional. Uses default org if omitted." }, description: { type: "string" }, template_slug: { type: "string", description: "Optional. Start from a template (e.g. 'clinic', 'gym'). Use search_templates to browse." } }, required: ["name"] } },
78
+ { name: "create_project", description: "Create a new DYPAI project (free plan). Creates a full project with database, API engine, GitHub repo, and frontend hosting. Provisioning takes ~1 minute.", inputSchema: { type: "object", properties: { name: { type: "string", description: "Project name (e.g. 'My Veterinary App')" }, organization_id: { type: "string", description: "Optional. Uses default org if omitted." }, description: { type: "string" }, template_slug: { type: "string", description: "Optional. Start from a project template (e.g. 'clinic', 'gym', 'blank'). Use search_project_templates to browse." } }, required: ["name"] } },
78
79
  { name: "get_app_credentials", description: "Lists available credentials in the current application. Returns API keys, anon key, service role key, and engine URL needed for SDK configuration.", inputSchema: { type: "object", properties: { project_id: { type: "string" } }, required: [] } },
79
80
 
80
81
  // ── Database ──────────────────────────────────────────────────────────────
@@ -105,7 +106,8 @@ const REMOTE_TOOLS = [
105
106
 
106
107
  // ── Knowledge ─────────────────────────────────────────────────────────────
107
108
  { name: "search_docs", description: "Search DYPAI documentation. Use this when unsure about SDK usage, auth patterns, workflow nodes, or platform features. Returns relevant documentation chunks.", inputSchema: { type: "object", properties: { query: { type: "string", description: "What you want to learn about" } }, required: ["query"] } },
108
- { name: "search_templates", description: "Search workflow templates by description. Returns ready-to-use workflow code for common patterns: CRUD operations, payment gateways, email sending, AI chatbots, data pipelines, etc.", inputSchema: { type: "object", properties: { query: { type: "string", description: "What the workflow should do (e.g. 'send email', 'stripe payment')" }, category: { type: "string", description: "Optional: AI, Database, Payments, Communication, Logic, Storage" } }, required: ["query"] } },
109
+ { name: "search_workflow_templates", description: "Search workflow templates by description. Returns ready-to-use workflow code for common patterns: CRUD operations, payment gateways, email sending, AI chatbots, data pipelines, etc.", inputSchema: { type: "object", properties: { query: { type: "string", description: "What the workflow should do (e.g. 'send email', 'stripe payment')" }, category: { type: "string", description: "Optional: AI, Database, Payments, Communication, Logic, Storage" } }, required: ["query"] } },
110
+ { name: "search_project_templates", description: "Search project starter templates by description. Returns template metadata and slugs for starters like clinic, gym, waitlist, blank, auth, or landing.", inputSchema: { type: "object", properties: { query: { type: "string", description: "What kind of project starter you need (e.g. 'gym app', 'landing page', 'auth starter')" }, category: { type: "string", description: "Optional category filter" } }, required: ["query"] } },
109
111
  ]
110
112
 
111
113
  // ── Server Instructions ──────────────────────────────────────────────────────
@@ -122,9 +124,10 @@ const SERVER_INSTRUCTIONS = `You are building full-stack applications on the DYP
122
124
  1. Create tables with execute_sql (check get_app_tables first to avoid duplicates)
123
125
  2. Create endpoints with create_endpoint using workflow_code
124
126
  3. Test with test_workflow immediately after creating/updating
125
- 4. Use search_templates to find ready-made workflow patterns
126
- 5. Use search_nodes to discover available node types
127
- 6. Use search_docs when unsure about patterns
127
+ 4. Use search_workflow_templates to find ready-made workflow patterns
128
+ 5. Use search_project_templates when the user wants a starter app or template-based project
129
+ 6. Use search_nodes to discover available node types
130
+ 7. Use search_docs when unsure about patterns
128
131
 
129
132
  ## Build Frontend
130
133
  - SDK client is already configured at src/lib/dypai.ts — just import it:
@@ -133,13 +133,13 @@ export const deployTool = {
133
133
  name: "deploy_frontend",
134
134
  description: `Deploy frontend source code from a local directory.
135
135
 
136
- Reads all source files from the specified directory, uploads them to DYPAI,
137
- and Cloudflare Pages automatically builds and deploys the project.
138
-
139
- Supports: React, Vite, Next.js, Astro, SvelteKit, Nuxt, CRA, and more.
136
+ Reads all source files from the specified directory and uploads them to DYPAI.
140
137
  The build runs in the cloud — no local Node.js or npm required.
141
138
 
142
- After deploying, the site is live at https://{slug}.dypai.app within ~1 minute.`,
139
+ Supports: React, Vite, Next.js, Astro, SvelteKit, Nuxt, Vue, CRA, and more.
140
+ DYPAI auto-detects the framework and routes to the optimal backend.
141
+
142
+ After deploying, the site is live at https://{slug}.dypai.app within ~30s.`,
143
143
 
144
144
  inputSchema: {
145
145
  type: "object",
@@ -227,7 +227,6 @@ After deploying, the site is live at https://{slug}.dypai.app within ~1 minute.`
227
227
  files_pushed: files.length,
228
228
  size_bytes: total,
229
229
  framework: label,
230
- build: "cloudflare_pages",
231
230
  build_status: "building",
232
231
  message: `Deployed ${files.length} files (${Math.round(total / 1024)} KB). ${label} build still in progress at ${result.url} — use get_build_status to check progress.`,
233
232
  }
@@ -239,7 +238,6 @@ After deploying, the site is live at https://{slug}.dypai.app within ~1 minute.`
239
238
  url: result.url,
240
239
  files_pushed: files.length,
241
240
  framework: label,
242
- build: "cloudflare_pages",
243
241
  build_status: "failure",
244
242
  build_error: buildResult.error,
245
243
  message: `Deploy pushed ${files.length} files but the ${label} build FAILED. Build error:\n${buildResult.error}`,
@@ -258,7 +256,6 @@ After deploying, the site is live at https://{slug}.dypai.app within ~1 minute.`
258
256
  skipped_files: skipped.length > 0 ? skipped : undefined,
259
257
  size_bytes: total,
260
258
  framework: label,
261
- build: "cloudflare_pages",
262
259
  build_status: "success",
263
260
  build_duration: buildResult.duration,
264
261
  message: `Deployed ${files.length} files (${Math.round(total / 1024)} KB). ${label} build succeeded${buildResult.duration ? ` in ${buildResult.duration}s` : ""}. Live at ${result.url}${skippedMsg}`,
@@ -19,7 +19,7 @@ Scaffolds a project directory with:
19
19
  - MCP config for your IDE
20
20
  - .env with engine URL
21
21
 
22
- Use search_templates first to find available templates, then pass the template slug here.
22
+ Use search_project_templates first to find available templates, then pass the template slug here.
23
23
  Or use "blank" for an empty starter project.`,
24
24
 
25
25
  inputSchema: {
@@ -35,7 +35,7 @@ Or use "blank" for an empty starter project.`,
35
35
  },
36
36
  template: {
37
37
  type: "string",
38
- description: 'Template slug (e.g. "clinic", "gym", "blank"). Use search_templates to find available templates.',
38
+ description: 'Template slug (e.g. "clinic", "gym", "blank"). Use search_project_templates to find available templates.',
39
39
  default: "blank",
40
40
  },
41
41
  },