@cloudizero/mcp 0.1.1 → 0.2.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 +10 -10
- package/dist/index.js +365 -33
- package/dist/index.js.map +1 -1
- package/package.json +11 -12
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @cloudizero/mcp
|
|
2
2
|
|
|
3
|
-
Official Model Context Protocol (MCP) server for **[Cloudizero](https://cloudizero.
|
|
3
|
+
Official Model Context Protocol (MCP) server for **[Cloudizero](https://www.cloudizero.com)** — High-Performance Zero-Egress Digital Asset Management & Media Delivery Platform.
|
|
4
4
|
|
|
5
|
-
Connect your AI coding assistants (Claude Desktop, Cursor, Antigravity, Windsurf, Roo Code, etc.) directly to your Cloudizero
|
|
5
|
+
Connect your AI coding assistants (Claude Desktop, Cursor, Antigravity, Windsurf, Roo Code, etc.) directly to your Cloudizero account and projects to automate media uploads, manage folders, organize assets, and integrate zero-egress CDN URLs into your apps.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -19,8 +19,8 @@ npx @cloudizero/mcp
|
|
|
19
19
|
| Variable | Required | Description | Default |
|
|
20
20
|
| :--- | :--- | :--- | :--- |
|
|
21
21
|
| `CLOUDIZERO_API_KEY` | **Yes** | Your API Key (`cz_live_...`) generated from Cloudizero Dashboard | — |
|
|
22
|
-
| `CLOUDIZERO_BASE_URL` | No | Base URL of your Cloudizero instance | `https://api
|
|
23
|
-
| `CLOUDIZERO_CDN_URL` | No | Public CDN distribution URL for assets | `https://cdn
|
|
22
|
+
| `CLOUDIZERO_BASE_URL` | No | Base URL of your Cloudizero instance | `https://api.cloudizero.com` |
|
|
23
|
+
| `CLOUDIZERO_CDN_URL` | No | Public CDN distribution URL for assets | `https://cdn.cloudizero.com` |
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -89,12 +89,12 @@ Add to your `mcp.json` or config:
|
|
|
89
89
|
| Tool | Description | Key Parameters |
|
|
90
90
|
| :--- | :--- | :--- |
|
|
91
91
|
| `cloudizero_list_projects` | Lists all projects accessible by your API key | — |
|
|
92
|
-
| `cloudizero_create_project` | Creates a new project *(requires
|
|
92
|
+
| `cloudizero_create_project` | Creates a new project *(requires All Projects / Global Access key)* | `name`, `description` |
|
|
93
93
|
| `cloudizero_list_contents` | Explores folders and files within a project | `projectId`, `folderId` (optional) |
|
|
94
94
|
| `cloudizero_create_folder` | Creates virtual folders for asset categorization | `projectId`, `name`, `parentId` |
|
|
95
|
-
| `cloudizero_upload_local_file`| Uploads a file from your local machine to
|
|
95
|
+
| `cloudizero_upload_local_file`| Uploads a file from your local machine to Cloudizero zero-egress storage | `filePath`, `projectId`, `folderId`, `fileName` |
|
|
96
96
|
| `cloudizero_get_file` | Retrieves file metadata and presigned download URL | `fileId` |
|
|
97
|
-
| `cloudizero_delete_file` | Permanently deletes a file from
|
|
97
|
+
| `cloudizero_delete_file` | Permanently deletes a file from Cloudizero storage and database | `fileId` |
|
|
98
98
|
|
|
99
99
|
---
|
|
100
100
|
|
|
@@ -102,8 +102,8 @@ Add to your `mcp.json` or config:
|
|
|
102
102
|
|
|
103
103
|
When creating an API Key in **Cloudizero Dashboard > API Keys**:
|
|
104
104
|
|
|
105
|
-
1. **All Projects (
|
|
106
|
-
- Recommended for general agents and
|
|
105
|
+
1. **All Projects (Global Access)**:
|
|
106
|
+
- Recommended for general agents and account-wide project setup.
|
|
107
107
|
- Allows creating new projects and accessing all assets.
|
|
108
108
|
2. **Select Specific Projects**:
|
|
109
109
|
- Recommended for app-specific repos.
|
|
@@ -113,4 +113,4 @@ When creating an API Key in **Cloudizero Dashboard > API Keys**:
|
|
|
113
113
|
|
|
114
114
|
## 📄 License
|
|
115
115
|
|
|
116
|
-
MIT © [
|
|
116
|
+
MIT © [Cloudizero](https://www.cloudizero.com)
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import path from "node:path";
|
|
|
10
10
|
const client = new Cloudizero();
|
|
11
11
|
const server = new McpServer({
|
|
12
12
|
name: "cloudizero",
|
|
13
|
-
version: "0.
|
|
13
|
+
version: "0.2.0",
|
|
14
14
|
});
|
|
15
15
|
// Helper for error formatting
|
|
16
16
|
function formatError(error) {
|
|
@@ -19,6 +19,49 @@ function formatError(error) {
|
|
|
19
19
|
}
|
|
20
20
|
return String(error);
|
|
21
21
|
}
|
|
22
|
+
// Blocklist of script, executable, and dangerous file extensions
|
|
23
|
+
const BLOCKED_EXTENSIONS = new Set([
|
|
24
|
+
"exe", "dll", "so", "dylib", "bin", "com", "bat", "cmd", "scr", "vbs",
|
|
25
|
+
"ps1", "apk", "app", "dmg", "pkg", "iso", "msi",
|
|
26
|
+
"sh", "bash", "zsh", "fish",
|
|
27
|
+
"py", "pyc", "js", "mjs", "cjs", "ts", "tsx", "jsx", "php", "phtml", "cgi", "pl", "rb", "lua", "go", "rs", "c", "cpp", "java", "class", "jar",
|
|
28
|
+
"html", "htm", "xhtml", "jsp", "asp", "aspx",
|
|
29
|
+
"env", "pem", "key", "crt", "sql", "db", "sqlite"
|
|
30
|
+
]);
|
|
31
|
+
function isProhibitedScriptOrExecutable(fileName) {
|
|
32
|
+
const parts = fileName.toLowerCase().split(".");
|
|
33
|
+
if (parts.length < 2)
|
|
34
|
+
return false;
|
|
35
|
+
for (let i = 1; i < parts.length; i++) {
|
|
36
|
+
if (BLOCKED_EXTENSIONS.has(parts[i])) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
// Helper to infer MIME type from file extension
|
|
43
|
+
function inferMimeType(fileName, mimeType) {
|
|
44
|
+
if (mimeType)
|
|
45
|
+
return mimeType;
|
|
46
|
+
const ext = path.extname(fileName).toLowerCase();
|
|
47
|
+
const mimeMap = {
|
|
48
|
+
".png": "image/png",
|
|
49
|
+
".jpg": "image/jpeg",
|
|
50
|
+
".jpeg": "image/jpeg",
|
|
51
|
+
".webp": "image/webp",
|
|
52
|
+
".svg": "image/svg+xml",
|
|
53
|
+
".gif": "image/gif",
|
|
54
|
+
".pdf": "application/pdf",
|
|
55
|
+
".txt": "text/plain",
|
|
56
|
+
".mp4": "video/mp4",
|
|
57
|
+
".webm": "video/webm",
|
|
58
|
+
".zip": "application/zip",
|
|
59
|
+
};
|
|
60
|
+
return mimeMap[ext] || "application/octet-stream";
|
|
61
|
+
}
|
|
62
|
+
// =============================================================
|
|
63
|
+
// PROJECT TOOLS
|
|
64
|
+
// =============================================================
|
|
22
65
|
// -------------------------------------------------------------
|
|
23
66
|
// TOOL: cloudizero_list_projects
|
|
24
67
|
// -------------------------------------------------------------
|
|
@@ -49,7 +92,7 @@ server.tool("cloudizero_list_projects", "Lists all Cloudizero projects accessibl
|
|
|
49
92
|
// -------------------------------------------------------------
|
|
50
93
|
// TOOL: cloudizero_create_project
|
|
51
94
|
// -------------------------------------------------------------
|
|
52
|
-
server.tool("cloudizero_create_project", "Creates a new project in Cloudizero. Requires an API key with
|
|
95
|
+
server.tool("cloudizero_create_project", "Creates a new project in Cloudizero. Requires an API key with All Projects (Global) Access.", {
|
|
53
96
|
name: z.string().describe("Project name (e.g. 'e-commerce-assets')"),
|
|
54
97
|
description: z
|
|
55
98
|
.string()
|
|
@@ -80,14 +123,80 @@ server.tool("cloudizero_create_project", "Creates a new project in Cloudizero. R
|
|
|
80
123
|
}
|
|
81
124
|
});
|
|
82
125
|
// -------------------------------------------------------------
|
|
126
|
+
// TOOL: cloudizero_update_project
|
|
127
|
+
// -------------------------------------------------------------
|
|
128
|
+
server.tool("cloudizero_update_project", "Updates an existing Cloudizero project's name or description.", {
|
|
129
|
+
projectId: z.string().describe("Target Cloudizero project ID (e.g. 'prj_...')"),
|
|
130
|
+
name: z.string().optional().describe("New project display name"),
|
|
131
|
+
description: z
|
|
132
|
+
.string()
|
|
133
|
+
.optional()
|
|
134
|
+
.describe("New project description"),
|
|
135
|
+
}, async ({ projectId, name, description }) => {
|
|
136
|
+
try {
|
|
137
|
+
const project = await client.projects.update(projectId, { name, description });
|
|
138
|
+
return {
|
|
139
|
+
content: [
|
|
140
|
+
{
|
|
141
|
+
type: "text",
|
|
142
|
+
text: `Project updated successfully:\n${JSON.stringify(project, null, 2)}`,
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
return {
|
|
149
|
+
isError: true,
|
|
150
|
+
content: [
|
|
151
|
+
{
|
|
152
|
+
type: "text",
|
|
153
|
+
text: `Failed to update project: ${formatError(error)}`,
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
// -------------------------------------------------------------
|
|
160
|
+
// TOOL: cloudizero_delete_project
|
|
161
|
+
// -------------------------------------------------------------
|
|
162
|
+
server.tool("cloudizero_delete_project", "Permanently deletes a Cloudizero project, including all its virtual folders and files in zero-egress storage.", {
|
|
163
|
+
projectId: z.string().describe("The ID of the project to permanently delete (e.g. 'prj_...')"),
|
|
164
|
+
}, async ({ projectId }) => {
|
|
165
|
+
try {
|
|
166
|
+
const result = await client.projects.delete(projectId);
|
|
167
|
+
return {
|
|
168
|
+
content: [
|
|
169
|
+
{
|
|
170
|
+
type: "text",
|
|
171
|
+
text: JSON.stringify(result, null, 2),
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
return {
|
|
178
|
+
isError: true,
|
|
179
|
+
content: [
|
|
180
|
+
{
|
|
181
|
+
type: "text",
|
|
182
|
+
text: `Failed to delete project: ${formatError(error)}`,
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
// =============================================================
|
|
189
|
+
// STORAGE & FOLDER TOOLS
|
|
190
|
+
// =============================================================
|
|
191
|
+
// -------------------------------------------------------------
|
|
83
192
|
// TOOL: cloudizero_list_contents
|
|
84
193
|
// -------------------------------------------------------------
|
|
85
194
|
server.tool("cloudizero_list_contents", "Lists folders and files inside a project or folder in Cloudizero.", {
|
|
86
|
-
projectId: z.string().describe("Target Cloudizero project ID"),
|
|
195
|
+
projectId: z.string().describe("Target Cloudizero project ID (e.g. 'prj_...')"),
|
|
87
196
|
folderId: z
|
|
88
197
|
.string()
|
|
89
198
|
.optional()
|
|
90
|
-
.describe("Folder ID to explore. Leave empty or pass 'root' for project root directory."),
|
|
199
|
+
.describe("Folder ID to explore (e.g. 'fld_...'). Leave empty or pass 'root' for project root directory."),
|
|
91
200
|
}, async ({ projectId, folderId }) => {
|
|
92
201
|
try {
|
|
93
202
|
const contents = await client.storage.listContents({
|
|
@@ -119,12 +228,12 @@ server.tool("cloudizero_list_contents", "Lists folders and files inside a projec
|
|
|
119
228
|
// TOOL: cloudizero_create_folder
|
|
120
229
|
// -------------------------------------------------------------
|
|
121
230
|
server.tool("cloudizero_create_folder", "Creates a new virtual folder inside a project.", {
|
|
122
|
-
projectId: z.string().describe("Target project ID"),
|
|
231
|
+
projectId: z.string().describe("Target project ID (e.g. 'prj_...')"),
|
|
123
232
|
name: z.string().describe("Folder name (e.g. 'thumbnails', 'documents')"),
|
|
124
233
|
parentId: z
|
|
125
234
|
.string()
|
|
126
235
|
.optional()
|
|
127
|
-
.describe("Parent folder ID if creating a nested subfolder. Leave empty for root."),
|
|
236
|
+
.describe("Parent folder ID (e.g. 'fld_...') if creating a nested subfolder. Leave empty for root."),
|
|
128
237
|
}, async ({ projectId, name, parentId }) => {
|
|
129
238
|
try {
|
|
130
239
|
const folder = await client.storage.createFolder({
|
|
@@ -154,10 +263,80 @@ server.tool("cloudizero_create_folder", "Creates a new virtual folder inside a p
|
|
|
154
263
|
}
|
|
155
264
|
});
|
|
156
265
|
// -------------------------------------------------------------
|
|
266
|
+
// TOOL: cloudizero_update_folder
|
|
267
|
+
// -------------------------------------------------------------
|
|
268
|
+
server.tool("cloudizero_update_folder", "Renames or moves a virtual folder in Cloudizero. Automatically updates paths and storage keys for all nested files.", {
|
|
269
|
+
folderId: z.string().describe("The ID of the folder to update (e.g. 'fld_...')"),
|
|
270
|
+
name: z.string().optional().describe("New folder display name"),
|
|
271
|
+
parentId: z
|
|
272
|
+
.string()
|
|
273
|
+
.optional()
|
|
274
|
+
.describe("New parent folder ID (e.g. 'fld_...', pass 'root' or leave null to move to project root)"),
|
|
275
|
+
}, async ({ folderId, name, parentId }) => {
|
|
276
|
+
try {
|
|
277
|
+
const folder = await client.storage.updateFolder({
|
|
278
|
+
folderId,
|
|
279
|
+
name,
|
|
280
|
+
parentId: parentId || undefined,
|
|
281
|
+
});
|
|
282
|
+
return {
|
|
283
|
+
content: [
|
|
284
|
+
{
|
|
285
|
+
type: "text",
|
|
286
|
+
text: `Folder updated successfully:\n${JSON.stringify(folder, null, 2)}`,
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
return {
|
|
293
|
+
isError: true,
|
|
294
|
+
content: [
|
|
295
|
+
{
|
|
296
|
+
type: "text",
|
|
297
|
+
text: `Failed to update folder: ${formatError(error)}`,
|
|
298
|
+
},
|
|
299
|
+
],
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
// -------------------------------------------------------------
|
|
304
|
+
// TOOL: cloudizero_delete_folder
|
|
305
|
+
// -------------------------------------------------------------
|
|
306
|
+
server.tool("cloudizero_delete_folder", "Permanently deletes a folder and recursively deletes all nested subfolders and files in Cloudizero.", {
|
|
307
|
+
folderId: z.string().describe("The ID of the folder to delete (e.g. 'fld_...')"),
|
|
308
|
+
}, async ({ folderId }) => {
|
|
309
|
+
try {
|
|
310
|
+
const result = await client.storage.deleteFolder(folderId);
|
|
311
|
+
return {
|
|
312
|
+
content: [
|
|
313
|
+
{
|
|
314
|
+
type: "text",
|
|
315
|
+
text: JSON.stringify(result, null, 2),
|
|
316
|
+
},
|
|
317
|
+
],
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
return {
|
|
322
|
+
isError: true,
|
|
323
|
+
content: [
|
|
324
|
+
{
|
|
325
|
+
type: "text",
|
|
326
|
+
text: `Failed to delete folder: ${formatError(error)}`,
|
|
327
|
+
},
|
|
328
|
+
],
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
// =============================================================
|
|
333
|
+
// FILE CRUD & MUTATION TOOLS
|
|
334
|
+
// =============================================================
|
|
335
|
+
// -------------------------------------------------------------
|
|
157
336
|
// TOOL: cloudizero_get_file
|
|
158
337
|
// -------------------------------------------------------------
|
|
159
|
-
server.tool("cloudizero_get_file", "Gets details and presigned download URL for a file in Cloudizero.", {
|
|
160
|
-
fileId: z.string().describe("The ID of the file to retrieve"),
|
|
338
|
+
server.tool("cloudizero_get_file", "Gets details, metadata, and presigned download URL for a file in Cloudizero.", {
|
|
339
|
+
fileId: z.string().describe("The ID of the file to retrieve (e.g. 'fil_...')"),
|
|
161
340
|
}, async ({ fileId }) => {
|
|
162
341
|
try {
|
|
163
342
|
const result = await client.storage.getFile(fileId);
|
|
@@ -185,15 +364,15 @@ server.tool("cloudizero_get_file", "Gets details and presigned download URL for
|
|
|
185
364
|
// -------------------------------------------------------------
|
|
186
365
|
// TOOL: cloudizero_upload_local_file
|
|
187
366
|
// -------------------------------------------------------------
|
|
188
|
-
server.tool("cloudizero_upload_local_file", "Uploads a
|
|
367
|
+
server.tool("cloudizero_upload_local_file", "Uploads a media or digital asset (images, videos, audios, documents, archives) from the local filesystem directly to Cloudizero DAM storage. Scripts and executables are prohibited.", {
|
|
189
368
|
filePath: z
|
|
190
369
|
.string()
|
|
191
370
|
.describe("Absolute or relative path to the local file to upload"),
|
|
192
|
-
projectId: z.string().describe("Target Cloudizero project ID"),
|
|
371
|
+
projectId: z.string().describe("Target Cloudizero project ID (e.g. 'prj_...')"),
|
|
193
372
|
folderId: z
|
|
194
373
|
.string()
|
|
195
374
|
.optional()
|
|
196
|
-
.describe("Optional target folder ID. Leave empty for project root."),
|
|
375
|
+
.describe("Optional target folder ID (e.g. 'fld_...'). Leave empty for project root."),
|
|
197
376
|
fileName: z
|
|
198
377
|
.string()
|
|
199
378
|
.optional()
|
|
@@ -205,29 +384,20 @@ server.tool("cloudizero_upload_local_file", "Uploads a file from the local files
|
|
|
205
384
|
}, async ({ filePath, projectId, folderId, fileName, mimeType }) => {
|
|
206
385
|
try {
|
|
207
386
|
const resolvedPath = path.resolve(filePath);
|
|
208
|
-
const buffer = await fs.readFile(resolvedPath);
|
|
209
387
|
const inferredName = fileName || path.basename(resolvedPath);
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
".svg": "image/svg+xml",
|
|
220
|
-
".gif": "image/gif",
|
|
221
|
-
".pdf": "application/pdf",
|
|
222
|
-
".json": "application/json",
|
|
223
|
-
".txt": "text/plain",
|
|
224
|
-
".mp4": "video/mp4",
|
|
225
|
-
".webm": "video/webm",
|
|
388
|
+
if (isProhibitedScriptOrExecutable(inferredName)) {
|
|
389
|
+
return {
|
|
390
|
+
isError: true,
|
|
391
|
+
content: [
|
|
392
|
+
{
|
|
393
|
+
type: "text",
|
|
394
|
+
text: `Upload rejected: '${inferredName}' is an executable or script. Cloudizero is a Digital Asset Management (DAM) platform and only accepts media and document assets.`,
|
|
395
|
+
},
|
|
396
|
+
],
|
|
226
397
|
};
|
|
227
|
-
if (mimeMap[ext]) {
|
|
228
|
-
resolvedMime = mimeMap[ext];
|
|
229
|
-
}
|
|
230
398
|
}
|
|
399
|
+
const buffer = await fs.readFile(resolvedPath);
|
|
400
|
+
const resolvedMime = inferMimeType(inferredName, mimeType);
|
|
231
401
|
const uploaded = await client.storage.upload({
|
|
232
402
|
projectId,
|
|
233
403
|
folderId: folderId || null,
|
|
@@ -257,10 +427,111 @@ server.tool("cloudizero_upload_local_file", "Uploads a file from the local files
|
|
|
257
427
|
}
|
|
258
428
|
});
|
|
259
429
|
// -------------------------------------------------------------
|
|
430
|
+
// TOOL: cloudizero_update_file
|
|
431
|
+
// -------------------------------------------------------------
|
|
432
|
+
server.tool("cloudizero_update_file", "Updates file metadata (renames file, moves to another folder, or soft-deletes/restores trash) in Cloudizero.", {
|
|
433
|
+
fileId: z.string().describe("The ID of the file to update (e.g. 'fil_...')"),
|
|
434
|
+
name: z.string().optional().describe("New file name (e.g. 'hero-banner.webp')"),
|
|
435
|
+
folderId: z
|
|
436
|
+
.string()
|
|
437
|
+
.optional()
|
|
438
|
+
.describe("New target folder ID (e.g. 'fld_...', pass 'root' to move to project root)"),
|
|
439
|
+
isTrash: z
|
|
440
|
+
.boolean()
|
|
441
|
+
.optional()
|
|
442
|
+
.describe("Set true to move file to trash, false to restore"),
|
|
443
|
+
}, async ({ fileId, name, folderId, isTrash }) => {
|
|
444
|
+
try {
|
|
445
|
+
const file = await client.storage.updateFile({
|
|
446
|
+
fileId,
|
|
447
|
+
name,
|
|
448
|
+
folderId,
|
|
449
|
+
isTrash,
|
|
450
|
+
});
|
|
451
|
+
return {
|
|
452
|
+
content: [
|
|
453
|
+
{
|
|
454
|
+
type: "text",
|
|
455
|
+
text: `File updated successfully:\n${JSON.stringify(file, null, 2)}`,
|
|
456
|
+
},
|
|
457
|
+
],
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
catch (error) {
|
|
461
|
+
return {
|
|
462
|
+
isError: true,
|
|
463
|
+
content: [
|
|
464
|
+
{
|
|
465
|
+
type: "text",
|
|
466
|
+
text: `Failed to update file: ${formatError(error)}`,
|
|
467
|
+
},
|
|
468
|
+
],
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
});
|
|
472
|
+
// -------------------------------------------------------------
|
|
473
|
+
// TOOL: cloudizero_replace_local_file
|
|
474
|
+
// -------------------------------------------------------------
|
|
475
|
+
server.tool("cloudizero_replace_local_file", "Replaces the binary content of an existing file in Cloudizero with a local file while maintaining the exact same fileId.", {
|
|
476
|
+
fileId: z.string().describe("The ID of the existing file to replace (e.g. 'fil_...')"),
|
|
477
|
+
filePath: z.string().describe("Path to the local replacement file on disk"),
|
|
478
|
+
fileName: z
|
|
479
|
+
.string()
|
|
480
|
+
.optional()
|
|
481
|
+
.describe("Optional new file name. If omitted, retains existing file name."),
|
|
482
|
+
mimeType: z
|
|
483
|
+
.string()
|
|
484
|
+
.optional()
|
|
485
|
+
.describe("Optional MIME type. Inferred from extension if not provided."),
|
|
486
|
+
}, async ({ fileId, filePath, fileName, mimeType }) => {
|
|
487
|
+
try {
|
|
488
|
+
const resolvedPath = path.resolve(filePath);
|
|
489
|
+
const inferredName = fileName || path.basename(resolvedPath);
|
|
490
|
+
if (isProhibitedScriptOrExecutable(inferredName)) {
|
|
491
|
+
return {
|
|
492
|
+
isError: true,
|
|
493
|
+
content: [
|
|
494
|
+
{
|
|
495
|
+
type: "text",
|
|
496
|
+
text: `Replacement rejected: '${inferredName}' is an executable or script. Cloudizero DAM only accepts media and document assets.`,
|
|
497
|
+
},
|
|
498
|
+
],
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
const buffer = await fs.readFile(resolvedPath);
|
|
502
|
+
const resolvedMime = inferMimeType(inferredName, mimeType);
|
|
503
|
+
const replaced = await client.storage.replaceFile({
|
|
504
|
+
fileId,
|
|
505
|
+
file: buffer,
|
|
506
|
+
fileName,
|
|
507
|
+
mimeType: resolvedMime,
|
|
508
|
+
});
|
|
509
|
+
return {
|
|
510
|
+
content: [
|
|
511
|
+
{
|
|
512
|
+
type: "text",
|
|
513
|
+
text: `File replaced successfully in Cloudizero!\n${JSON.stringify(replaced, null, 2)}`,
|
|
514
|
+
},
|
|
515
|
+
],
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
catch (error) {
|
|
519
|
+
return {
|
|
520
|
+
isError: true,
|
|
521
|
+
content: [
|
|
522
|
+
{
|
|
523
|
+
type: "text",
|
|
524
|
+
text: `Failed to replace local file: ${formatError(error)}`,
|
|
525
|
+
},
|
|
526
|
+
],
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
// -------------------------------------------------------------
|
|
260
531
|
// TOOL: cloudizero_delete_file
|
|
261
532
|
// -------------------------------------------------------------
|
|
262
|
-
server.tool("cloudizero_delete_file", "Permanently deletes a file from Cloudizero and
|
|
263
|
-
fileId: z.string().describe("The ID of the file to delete"),
|
|
533
|
+
server.tool("cloudizero_delete_file", "Permanently deletes a file from Cloudizero storage and database.", {
|
|
534
|
+
fileId: z.string().describe("The ID of the file to delete (e.g. 'fil_...')"),
|
|
264
535
|
}, async ({ fileId }) => {
|
|
265
536
|
try {
|
|
266
537
|
const result = await client.storage.deleteFile(fileId);
|
|
@@ -285,6 +556,67 @@ server.tool("cloudizero_delete_file", "Permanently deletes a file from Cloudizer
|
|
|
285
556
|
};
|
|
286
557
|
}
|
|
287
558
|
});
|
|
559
|
+
// =============================================================
|
|
560
|
+
// DOCUMENT INTELLIGENCE & PDF TOOLS
|
|
561
|
+
// =============================================================
|
|
562
|
+
// -------------------------------------------------------------
|
|
563
|
+
// TOOL: cloudizero_get_file_pages
|
|
564
|
+
// -------------------------------------------------------------
|
|
565
|
+
server.tool("cloudizero_get_file_pages", "Retrieves extracted page images, dimensions, thumbnail URL, and document chapters for a multi-page document (such as PDF) in Cloudizero.", {
|
|
566
|
+
fileId: z.string().describe("The ID of the document file (e.g. 'fil_...')"),
|
|
567
|
+
}, async ({ fileId }) => {
|
|
568
|
+
try {
|
|
569
|
+
const result = await client.storage.getFilePages(fileId);
|
|
570
|
+
return {
|
|
571
|
+
content: [
|
|
572
|
+
{
|
|
573
|
+
type: "text",
|
|
574
|
+
text: JSON.stringify(result, null, 2),
|
|
575
|
+
},
|
|
576
|
+
],
|
|
577
|
+
};
|
|
578
|
+
}
|
|
579
|
+
catch (error) {
|
|
580
|
+
return {
|
|
581
|
+
isError: true,
|
|
582
|
+
content: [
|
|
583
|
+
{
|
|
584
|
+
type: "text",
|
|
585
|
+
text: `Failed to get document pages: ${formatError(error)}`,
|
|
586
|
+
},
|
|
587
|
+
],
|
|
588
|
+
};
|
|
589
|
+
}
|
|
590
|
+
});
|
|
591
|
+
// -------------------------------------------------------------
|
|
592
|
+
// TOOL: cloudizero_extract_pdf
|
|
593
|
+
// -------------------------------------------------------------
|
|
594
|
+
server.tool("cloudizero_extract_pdf", "Dispatches asynchronous PDF page extraction and thumbnail generation for a PDF document in Cloudizero.", {
|
|
595
|
+
fileId: z.string().describe("The ID of the PDF file to extract (e.g. 'fil_...')"),
|
|
596
|
+
}, async ({ fileId }) => {
|
|
597
|
+
try {
|
|
598
|
+
const result = await client.storage.extractPdfPages(fileId);
|
|
599
|
+
return {
|
|
600
|
+
content: [
|
|
601
|
+
{
|
|
602
|
+
type: "text",
|
|
603
|
+
text: `PDF extraction job dispatched:\n${JSON.stringify(result, null, 2)}`,
|
|
604
|
+
},
|
|
605
|
+
],
|
|
606
|
+
};
|
|
607
|
+
}
|
|
608
|
+
catch (error) {
|
|
609
|
+
return {
|
|
610
|
+
isError: true,
|
|
611
|
+
content: [
|
|
612
|
+
{
|
|
613
|
+
type: "text",
|
|
614
|
+
text: `Failed to dispatch PDF extraction: ${formatError(error)}`,
|
|
615
|
+
},
|
|
616
|
+
],
|
|
617
|
+
};
|
|
618
|
+
}
|
|
619
|
+
});
|
|
288
620
|
// Start server on stdio transport
|
|
289
621
|
async function main() {
|
|
290
622
|
const transport = new StdioServerTransport();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudizero/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Official Model Context Protocol (MCP) Server for Cloudizero DAM Platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -11,35 +11,34 @@
|
|
|
11
11
|
"dist",
|
|
12
12
|
"README.md"
|
|
13
13
|
],
|
|
14
|
-
"scripts": {
|
|
15
|
-
"build": "tsc && chmod +x dist/index.js",
|
|
16
|
-
"typecheck": "tsc --noEmit",
|
|
17
|
-
"start": "node ./dist/index.js",
|
|
18
|
-
"prepublishOnly": "pnpm run build"
|
|
19
|
-
},
|
|
20
14
|
"publishConfig": {
|
|
21
15
|
"access": "public"
|
|
22
16
|
},
|
|
23
|
-
"homepage": "https://cloudizero.
|
|
17
|
+
"homepage": "https://www.cloudizero.com/docs/mcp",
|
|
24
18
|
"keywords": [
|
|
25
|
-
|
|
26
19
|
"cloudizero",
|
|
27
20
|
"mcp",
|
|
28
21
|
"model-context-protocol",
|
|
29
22
|
"ai",
|
|
30
23
|
"dam",
|
|
31
|
-
"
|
|
24
|
+
"zero-egress",
|
|
25
|
+
"media-storage",
|
|
32
26
|
"agentic-tools"
|
|
33
27
|
],
|
|
34
28
|
"author": "Wisman Nur",
|
|
35
29
|
"license": "MIT",
|
|
36
30
|
"dependencies": {
|
|
37
|
-
"@cloudizero/sdk": "
|
|
31
|
+
"@cloudizero/sdk": "0.3.0",
|
|
38
32
|
"@modelcontextprotocol/sdk": "^1.11.0",
|
|
39
33
|
"zod": "^3.24.2"
|
|
40
34
|
},
|
|
41
35
|
"devDependencies": {
|
|
42
36
|
"@types/node": "^20.17.0",
|
|
43
37
|
"typescript": "^5.0.0"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"build": "tsc && chmod +x dist/index.js",
|
|
41
|
+
"typecheck": "tsc --noEmit",
|
|
42
|
+
"start": "node ./dist/index.js"
|
|
44
43
|
}
|
|
45
|
-
}
|
|
44
|
+
}
|