@ductape/mcp 0.1.8 → 0.1.10
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/dist/index.js +44 -4
- package/package.json +1 -1
- package/src/index.ts +44 -4
package/dist/index.js
CHANGED
|
@@ -636,7 +636,8 @@ ALL params are passed as a JSON array in positional order matching the SDK signa
|
|
|
636
636
|
"graphs.create", "graphs.update", "vectors.create", "vectors.update",
|
|
637
637
|
"sessions.create", "sessions.update", "healthchecks.create",
|
|
638
638
|
"quotas.create", "quotas.update", "functions.create", "functions.update",
|
|
639
|
-
"agents.create", "agents.update", "models.create", "models.update"
|
|
639
|
+
"agents.create", "agents.update", "models.create", "models.update",
|
|
640
|
+
"storage.create", "storage.update"
|
|
640
641
|
|
|
641
642
|
When to use this tool:
|
|
642
643
|
- Before calling ductape_execute to create or update any asset — use this to discover required fields
|
|
@@ -1112,7 +1113,14 @@ async function main() {
|
|
|
1112
1113
|
description: 'Returns the full field manifest for Ductape asset creation/update methods, ' +
|
|
1113
1114
|
'derived live from the SDK Joi validators. Includes field types, required flags, ' +
|
|
1114
1115
|
'enum values, nested structures, and all enum constants. ' +
|
|
1115
|
-
'Pass module="app" or module="product" to scope the result
|
|
1116
|
+
'Pass module="app" or module="product" to scope the result.\n\n' +
|
|
1117
|
+
'ALWAYS call this before constructing a file for "resources <type> create" or any cloud ' +
|
|
1118
|
+
'import/provision operation — field shapes are not guessable from context.\n\n' +
|
|
1119
|
+
'Conditional fields: some fields are returned as oneOf (an array of variant shapes). ' +
|
|
1120
|
+
'For example, storage.create envs[].config is oneOf [awsConfig, gcpConfig, azureConfig] — ' +
|
|
1121
|
+
'pick the variant whose fields match the envs[].type value (aws/gcp/azure). ' +
|
|
1122
|
+
'Fields inside oneOf variants are context-dependent and should all be treated as optional ' +
|
|
1123
|
+
'unless the chosen variant explicitly marks them required.',
|
|
1116
1124
|
inputSchema: schemaInputSchema,
|
|
1117
1125
|
}, schemaHandler);
|
|
1118
1126
|
server.registerTool('ductape_cli', {
|
|
@@ -1122,9 +1130,41 @@ async function main() {
|
|
|
1122
1130
|
' - Creating or updating products (products create/update) and apps (apps create/update)\n' +
|
|
1123
1131
|
' - Importing an app from a Postman v2.1 or OpenAPI 3.0 file: "apps import <file> -t postman|openapi"\n' +
|
|
1124
1132
|
' - Managing resources via "resources <type> <verb>" (databases, storage, caches…)\n' +
|
|
1133
|
+
' ALWAYS call ductape_schema(module="product") first to get the exact field shape before\n' +
|
|
1134
|
+
' constructing a file. Storage envs[].config is conditional on envs[].type (aws/gcp/azure)\n' +
|
|
1135
|
+
' and returned as oneOf — pick the variant matching the type.\n' +
|
|
1136
|
+
' - Three distinct storage registration flows — choose the right one:\n' +
|
|
1137
|
+
' 1. Manual credentials (bucket already exists, you supply keys directly):\n' +
|
|
1138
|
+
' resources storage create -f storage.json\n' +
|
|
1139
|
+
' File shape: { name, tag, envs: [{ slug, type: "aws"|"gcp"|"azure", config: { bucketName, ...creds } }] }\n' +
|
|
1140
|
+
' For cloud-linked envs set config.cloud to the connection tag and omit raw credentials.\n' +
|
|
1141
|
+
' 2. Import an existing cloud bucket via a cloud connection (no provisioning):\n' +
|
|
1142
|
+
' cloud resources import-persist -f import.json --json\n' +
|
|
1143
|
+
' File requires: cloud (connection tag), service (e.g. "gcs","s3"), type ("storage"),\n' +
|
|
1144
|
+
' product, component (new tag), env, and the existing bucket identifier (e.g. bucketName).\n' +
|
|
1145
|
+
' Example: {"cloud":"gcp-conn","service":"gcs","type":"storage","product":"my-product",\n' +
|
|
1146
|
+
' "component":"assets","env":"snd","bucketName":"my-existing-bucket"}.\n' +
|
|
1147
|
+
' If import-persist fails, the error message now reports both the create failure and the\n' +
|
|
1148
|
+
' update fallback failure — read both to diagnose. Do not retry blindly.\n' +
|
|
1149
|
+
' 3. Provision a brand-new bucket AND register it (see provision-persist docs below).\n' +
|
|
1125
1150
|
' - Managing cloud connections and cloud-linked resources\n' +
|
|
1126
|
-
' -
|
|
1127
|
-
'
|
|
1151
|
+
' - Discovering cloud tiers: "cloud tiers --provider <provider> --type <database|storage> [--db-type <type>] --json"\n' +
|
|
1152
|
+
' IMPORTANT: `cloud tiers` has no `list` verb. Use only a tier returned for the selected provider/type.\n' +
|
|
1153
|
+
' - Provisioning and persisting a cloud resource: "cloud resources provision-persist -f file.json --tier <tier_name> --json"\n' +
|
|
1154
|
+
' The JSON file requires: cloud (connection tag), service (provider service), type (Ductape component type),\n' +
|
|
1155
|
+
' product (product tag), component (new component tag), and env (existing environment slug).\n' +
|
|
1156
|
+
' Provider parameters such as region, location, bucketName, dbName, and waitForReady may be supplied in the file.\n' +
|
|
1157
|
+
' Example GCS Standard file: {"cloud":"gcp-tag","service":"gcs","type":"storage",' +
|
|
1158
|
+
'"product":"product-tag","component":"assets","env":"snd","location":"us-central1"}.\n' +
|
|
1159
|
+
' Use `provision-persist` when the result must be registered as a Ductape asset; `provision` alone only returns\n' +
|
|
1160
|
+
' the provider resource and component draft. Tier discovery does not by itself prove that a connection supports\n' +
|
|
1161
|
+
' provisioning that service: if provisioning reports an unsupported provider/service pair, stop and report it.\n' +
|
|
1162
|
+
' Never infer an environment, provider service, region, tier, or cost. List/verify each before provisioning.\n' +
|
|
1163
|
+
' - Known provisioning limitations: MongoDB Atlas (M0 free tier) and Neo4j Aura cannot be provisioned via\n' +
|
|
1164
|
+
' Ductape — they are import-only. Only AWS, GCP, and Azure managed services support provision-persist.\n' +
|
|
1165
|
+
' Supported service/component pairs include: rds→database, aurora→database, gcs→storage, s3→storage,\n' +
|
|
1166
|
+
' azure-blob→storage, cloud-sql→database, neptune→graph, opensearch→vector. Attempting an unsupported pair\n' +
|
|
1167
|
+
' will return an error; do not retry with a different tier — report the limitation to the user.\n' +
|
|
1128
1168
|
' - Listing workspaces, products, secrets\n' +
|
|
1129
1169
|
' - Linking a project folder: "link --product <tag> --env <slug>"\n' +
|
|
1130
1170
|
' - Syncing sessions/notifications/events: "apply" or "apply sessions" etc.\n' +
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -647,7 +647,8 @@ ALL params are passed as a JSON array in positional order matching the SDK signa
|
|
|
647
647
|
"graphs.create", "graphs.update", "vectors.create", "vectors.update",
|
|
648
648
|
"sessions.create", "sessions.update", "healthchecks.create",
|
|
649
649
|
"quotas.create", "quotas.update", "functions.create", "functions.update",
|
|
650
|
-
"agents.create", "agents.update", "models.create", "models.update"
|
|
650
|
+
"agents.create", "agents.update", "models.create", "models.update",
|
|
651
|
+
"storage.create", "storage.update"
|
|
651
652
|
|
|
652
653
|
When to use this tool:
|
|
653
654
|
- Before calling ductape_execute to create or update any asset — use this to discover required fields
|
|
@@ -1201,7 +1202,14 @@ async function main() {
|
|
|
1201
1202
|
'Returns the full field manifest for Ductape asset creation/update methods, ' +
|
|
1202
1203
|
'derived live from the SDK Joi validators. Includes field types, required flags, ' +
|
|
1203
1204
|
'enum values, nested structures, and all enum constants. ' +
|
|
1204
|
-
'Pass module="app" or module="product" to scope the result
|
|
1205
|
+
'Pass module="app" or module="product" to scope the result.\n\n' +
|
|
1206
|
+
'ALWAYS call this before constructing a file for "resources <type> create" or any cloud ' +
|
|
1207
|
+
'import/provision operation — field shapes are not guessable from context.\n\n' +
|
|
1208
|
+
'Conditional fields: some fields are returned as oneOf (an array of variant shapes). ' +
|
|
1209
|
+
'For example, storage.create envs[].config is oneOf [awsConfig, gcpConfig, azureConfig] — ' +
|
|
1210
|
+
'pick the variant whose fields match the envs[].type value (aws/gcp/azure). ' +
|
|
1211
|
+
'Fields inside oneOf variants are context-dependent and should all be treated as optional ' +
|
|
1212
|
+
'unless the chosen variant explicitly marks them required.',
|
|
1205
1213
|
inputSchema: schemaInputSchema,
|
|
1206
1214
|
},
|
|
1207
1215
|
schemaHandler,
|
|
@@ -1216,9 +1224,41 @@ async function main() {
|
|
|
1216
1224
|
' - Creating or updating products (products create/update) and apps (apps create/update)\n' +
|
|
1217
1225
|
' - Importing an app from a Postman v2.1 or OpenAPI 3.0 file: "apps import <file> -t postman|openapi"\n' +
|
|
1218
1226
|
' - Managing resources via "resources <type> <verb>" (databases, storage, caches…)\n' +
|
|
1227
|
+
' ALWAYS call ductape_schema(module="product") first to get the exact field shape before\n' +
|
|
1228
|
+
' constructing a file. Storage envs[].config is conditional on envs[].type (aws/gcp/azure)\n' +
|
|
1229
|
+
' and returned as oneOf — pick the variant matching the type.\n' +
|
|
1230
|
+
' - Three distinct storage registration flows — choose the right one:\n' +
|
|
1231
|
+
' 1. Manual credentials (bucket already exists, you supply keys directly):\n' +
|
|
1232
|
+
' resources storage create -f storage.json\n' +
|
|
1233
|
+
' File shape: { name, tag, envs: [{ slug, type: "aws"|"gcp"|"azure", config: { bucketName, ...creds } }] }\n' +
|
|
1234
|
+
' For cloud-linked envs set config.cloud to the connection tag and omit raw credentials.\n' +
|
|
1235
|
+
' 2. Import an existing cloud bucket via a cloud connection (no provisioning):\n' +
|
|
1236
|
+
' cloud resources import-persist -f import.json --json\n' +
|
|
1237
|
+
' File requires: cloud (connection tag), service (e.g. "gcs","s3"), type ("storage"),\n' +
|
|
1238
|
+
' product, component (new tag), env, and the existing bucket identifier (e.g. bucketName).\n' +
|
|
1239
|
+
' Example: {"cloud":"gcp-conn","service":"gcs","type":"storage","product":"my-product",\n' +
|
|
1240
|
+
' "component":"assets","env":"snd","bucketName":"my-existing-bucket"}.\n' +
|
|
1241
|
+
' If import-persist fails, the error message now reports both the create failure and the\n' +
|
|
1242
|
+
' update fallback failure — read both to diagnose. Do not retry blindly.\n' +
|
|
1243
|
+
' 3. Provision a brand-new bucket AND register it (see provision-persist docs below).\n' +
|
|
1219
1244
|
' - Managing cloud connections and cloud-linked resources\n' +
|
|
1220
|
-
' -
|
|
1221
|
-
'
|
|
1245
|
+
' - Discovering cloud tiers: "cloud tiers --provider <provider> --type <database|storage> [--db-type <type>] --json"\n' +
|
|
1246
|
+
' IMPORTANT: `cloud tiers` has no `list` verb. Use only a tier returned for the selected provider/type.\n' +
|
|
1247
|
+
' - Provisioning and persisting a cloud resource: "cloud resources provision-persist -f file.json --tier <tier_name> --json"\n' +
|
|
1248
|
+
' The JSON file requires: cloud (connection tag), service (provider service), type (Ductape component type),\n' +
|
|
1249
|
+
' product (product tag), component (new component tag), and env (existing environment slug).\n' +
|
|
1250
|
+
' Provider parameters such as region, location, bucketName, dbName, and waitForReady may be supplied in the file.\n' +
|
|
1251
|
+
' Example GCS Standard file: {"cloud":"gcp-tag","service":"gcs","type":"storage",' +
|
|
1252
|
+
'"product":"product-tag","component":"assets","env":"snd","location":"us-central1"}.\n' +
|
|
1253
|
+
' Use `provision-persist` when the result must be registered as a Ductape asset; `provision` alone only returns\n' +
|
|
1254
|
+
' the provider resource and component draft. Tier discovery does not by itself prove that a connection supports\n' +
|
|
1255
|
+
' provisioning that service: if provisioning reports an unsupported provider/service pair, stop and report it.\n' +
|
|
1256
|
+
' Never infer an environment, provider service, region, tier, or cost. List/verify each before provisioning.\n' +
|
|
1257
|
+
' - Known provisioning limitations: MongoDB Atlas (M0 free tier) and Neo4j Aura cannot be provisioned via\n' +
|
|
1258
|
+
' Ductape — they are import-only. Only AWS, GCP, and Azure managed services support provision-persist.\n' +
|
|
1259
|
+
' Supported service/component pairs include: rds→database, aurora→database, gcs→storage, s3→storage,\n' +
|
|
1260
|
+
' azure-blob→storage, cloud-sql→database, neptune→graph, opensearch→vector. Attempting an unsupported pair\n' +
|
|
1261
|
+
' will return an error; do not retry with a different tier — report the limitation to the user.\n' +
|
|
1222
1262
|
' - Listing workspaces, products, secrets\n' +
|
|
1223
1263
|
' - Linking a project folder: "link --product <tag> --env <slug>"\n' +
|
|
1224
1264
|
' - Syncing sessions/notifications/events: "apply" or "apply sessions" etc.\n' +
|