yungle-mcp 0.1.0 → 0.1.2
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/server.mjs +11 -11
- package/package.json +10 -6
package/dist/server.mjs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
6
|
|
|
7
|
-
// ../api-client/
|
|
7
|
+
// ../api-client/dist/index.mjs
|
|
8
8
|
var YungleApiError = class extends Error {
|
|
9
9
|
constructor(status, code, message, details) {
|
|
10
10
|
super(message);
|
|
@@ -222,7 +222,7 @@ function createServer(client) {
|
|
|
222
222
|
"get_account",
|
|
223
223
|
{
|
|
224
224
|
title: "Account and storage",
|
|
225
|
-
description: "
|
|
225
|
+
description: "Answers: how much storage am I using? how much is left? what plan am I on? what can this connection do? Returns the workspace, its plan and quota, and the key's permissions.",
|
|
226
226
|
inputSchema: {},
|
|
227
227
|
annotations: { readOnlyHint: true }
|
|
228
228
|
},
|
|
@@ -232,7 +232,7 @@ function createServer(client) {
|
|
|
232
232
|
"list_transfers",
|
|
233
233
|
{
|
|
234
234
|
title: "List transfers",
|
|
235
|
-
description: "
|
|
235
|
+
description: "Answers: what have I sent recently? what is expiring soon? which deliveries has nobody picked up? who did I send that to? Returns recent transfers with size, recipients, download count, expiry date and share link. Start here for any question about sent files.",
|
|
236
236
|
inputSchema: {},
|
|
237
237
|
annotations: { readOnlyHint: true }
|
|
238
238
|
},
|
|
@@ -245,7 +245,7 @@ function createServer(client) {
|
|
|
245
245
|
"get_transfer",
|
|
246
246
|
{
|
|
247
247
|
title: "Transfer detail",
|
|
248
|
-
description: "
|
|
248
|
+
description: "Answers: what is in this transfer? was it delivered? has a specific recipient opened it? is it safe to share? Returns the files with their malware-scan verdicts, plus per-recipient delivery and download status. Needs an id from list_transfers.",
|
|
249
249
|
inputSchema: { id: z.string().describe("Transfer id from list_transfers.") },
|
|
250
250
|
annotations: { readOnlyHint: true }
|
|
251
251
|
},
|
|
@@ -255,7 +255,7 @@ function createServer(client) {
|
|
|
255
255
|
"get_transfer_downloads",
|
|
256
256
|
{
|
|
257
257
|
title: "Download receipts",
|
|
258
|
-
description: "
|
|
258
|
+
description: "Answers: did the client download it? when? how many times? Returns download events with timestamps and per-recipient status. IMPORTANT when counting: one page visit is one download, not one per file \u2014 events sharing a sessionId are a single visit, so count distinct sessions or a single visitor looks like eight.",
|
|
259
259
|
inputSchema: { id: z.string() },
|
|
260
260
|
annotations: { readOnlyHint: true }
|
|
261
261
|
},
|
|
@@ -265,7 +265,7 @@ function createServer(client) {
|
|
|
265
265
|
"list_collections",
|
|
266
266
|
{
|
|
267
267
|
title: "List collections",
|
|
268
|
-
description: "
|
|
268
|
+
description: "Answers: what collections do I have? which are empty? how big is each one? Returns collections with file counts, sizes and when each was last touched. A collection is a durable space clients are invited into, as opposed to a one-off transfer. Never includes the vault, which is unreadable to this server by design.",
|
|
269
269
|
inputSchema: {},
|
|
270
270
|
annotations: { readOnlyHint: true }
|
|
271
271
|
},
|
|
@@ -275,7 +275,7 @@ function createServer(client) {
|
|
|
275
275
|
"get_collection",
|
|
276
276
|
{
|
|
277
277
|
title: "Collection detail",
|
|
278
|
-
description: "
|
|
278
|
+
description: "Answers: what is the link for this collection? how much is in it? when does it expire? Returns one collection with its secret share link, file count, total size and expiry. Needs an id from list_collections.",
|
|
279
279
|
inputSchema: { id: z.string() },
|
|
280
280
|
annotations: { readOnlyHint: true }
|
|
281
281
|
},
|
|
@@ -285,7 +285,7 @@ function createServer(client) {
|
|
|
285
285
|
"list_collection_files",
|
|
286
286
|
{
|
|
287
287
|
title: "Files in a collection",
|
|
288
|
-
description: '
|
|
288
|
+
description: 'Answers: what files are in this collection? what is in this folder? are the raws uploaded yet? Returns filenames, sizes and types. Omit folderId for every file; pass "root" for the top level only, or a folder id from list_folders. Filenames only \u2014 never file contents.',
|
|
289
289
|
inputSchema: { id: z.string(), folderId: z.string().optional() },
|
|
290
290
|
annotations: { readOnlyHint: true }
|
|
291
291
|
},
|
|
@@ -295,7 +295,7 @@ function createServer(client) {
|
|
|
295
295
|
"list_folders",
|
|
296
296
|
{
|
|
297
297
|
title: "Folders in a collection",
|
|
298
|
-
description: "
|
|
298
|
+
description: "Answers: how is this collection organised? what folders exist? Returns the folder tree. Ordered by depth then path, which is NOT a pre-order traversal \u2014 build the tree from parentId rather than trusting the order. Each folder also carries its full materialised path.",
|
|
299
299
|
inputSchema: { id: z.string() },
|
|
300
300
|
annotations: { readOnlyHint: true }
|
|
301
301
|
},
|
|
@@ -305,7 +305,7 @@ function createServer(client) {
|
|
|
305
305
|
"list_guests",
|
|
306
306
|
{
|
|
307
307
|
title: "Guests on a collection",
|
|
308
|
-
description: "
|
|
308
|
+
description: "Answers: who has access to this collection? who did I invite? has someone accepted? Returns the invited guests and their status. Guests are not workspace members \u2014 they can view and download this one collection and nothing else.",
|
|
309
309
|
inputSchema: { id: z.string() },
|
|
310
310
|
annotations: { readOnlyHint: true }
|
|
311
311
|
},
|
|
@@ -315,7 +315,7 @@ function createServer(client) {
|
|
|
315
315
|
"list_contacts",
|
|
316
316
|
{
|
|
317
317
|
title: "Address book",
|
|
318
|
-
description: "
|
|
318
|
+
description: "Answers: what is this client's email address? who do I have saved? Returns the workspace address book. A contact grants no access on its own \u2014 it is a convenience, not a permission.",
|
|
319
319
|
inputSchema: {},
|
|
320
320
|
annotations: { readOnlyHint: true }
|
|
321
321
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yungle-mcp",
|
|
3
|
-
"
|
|
3
|
+
"mcpName": "co.yungle/yungle",
|
|
4
|
+
"version": "0.1.2",
|
|
4
5
|
"type": "module",
|
|
5
6
|
"description": "Model Context Protocol server for Yungle.",
|
|
6
7
|
"bin": {
|
|
@@ -27,23 +28,26 @@
|
|
|
27
28
|
"esbuild": "^0.25.0",
|
|
28
29
|
"tsx": "^4.19.2",
|
|
29
30
|
"typescript": "^5.7.3",
|
|
30
|
-
"
|
|
31
|
+
"yungle-client": "workspace:*"
|
|
31
32
|
},
|
|
32
33
|
"keywords": [
|
|
33
|
-
"
|
|
34
|
+
"eu",
|
|
35
|
+
"file-transfer",
|
|
36
|
+
"gdpr",
|
|
34
37
|
"mcp",
|
|
35
38
|
"model-context-protocol",
|
|
36
|
-
"
|
|
39
|
+
"wetransfer-alternative",
|
|
40
|
+
"yungle"
|
|
37
41
|
],
|
|
38
42
|
"license": "MIT",
|
|
39
43
|
"author": "Hein de Wilde",
|
|
40
44
|
"repository": {
|
|
41
45
|
"type": "git",
|
|
42
|
-
"url": "git+https://github.com/heindewilde/yungle.git"
|
|
46
|
+
"url": "git+https://github.com/heindewilde/yungle-clients.git"
|
|
43
47
|
},
|
|
44
48
|
"homepage": "https://yungle.co/developers",
|
|
45
49
|
"bugs": {
|
|
46
|
-
"url": "https://github.com/heindewilde/yungle/issues"
|
|
50
|
+
"url": "https://github.com/heindewilde/yungle-clients/issues"
|
|
47
51
|
},
|
|
48
52
|
"engines": {
|
|
49
53
|
"node": ">=22"
|