@papermark/mcp-server 0.7.0 → 0.8.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/dist/{chunk-YMSDUZ2I.js → chunk-IKMPOGEB.js} +288 -2
- package/dist/chunk-IKMPOGEB.js.map +1 -0
- package/dist/index.js +254 -1
- package/dist/index.js.map +1 -1
- package/dist/tools-contract.d.ts +493 -1
- package/dist/tools-contract.js +47 -1
- package/package.json +1 -1
- package/dist/chunk-YMSDUZ2I.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
SHARED_TOOL_OUTPUT_SCHEMAS,
|
|
4
|
+
addDataroomGroupMembersContract,
|
|
4
5
|
addDocumentVersionContract,
|
|
5
6
|
attachDataroomDocumentContract,
|
|
6
7
|
createDataroomContract,
|
|
7
8
|
createDataroomFolderContract,
|
|
9
|
+
createDataroomGroupContract,
|
|
8
10
|
createFolderContract,
|
|
9
11
|
createLinkContract,
|
|
10
12
|
deleteDataroomContract,
|
|
11
13
|
deleteDataroomFolderContract,
|
|
14
|
+
deleteDataroomGroupContract,
|
|
12
15
|
deleteDocumentContract,
|
|
13
16
|
deleteFolderContract,
|
|
14
17
|
deleteLinkContract,
|
|
@@ -17,16 +20,21 @@ import {
|
|
|
17
20
|
getDataroomAnalyticsContract,
|
|
18
21
|
getDataroomContract,
|
|
19
22
|
getDataroomFolderContract,
|
|
23
|
+
getDataroomGroupContract,
|
|
24
|
+
getDataroomGroupPermissionsContract,
|
|
20
25
|
getDocumentAnalyticsContract,
|
|
21
26
|
getDocumentContract,
|
|
22
27
|
getDocumentVersionContract,
|
|
23
28
|
getFolderContract,
|
|
24
29
|
getLinkAnalyticsContract,
|
|
25
30
|
getLinkContract,
|
|
31
|
+
getLinkPermissionsContract,
|
|
26
32
|
getViewAnalyticsContract,
|
|
27
33
|
getVisitorContract,
|
|
28
34
|
listDataroomDocumentsContract,
|
|
29
35
|
listDataroomFoldersContract,
|
|
36
|
+
listDataroomGroupMembersContract,
|
|
37
|
+
listDataroomGroupsContract,
|
|
30
38
|
listDataroomsContract,
|
|
31
39
|
listDocumentVersionsContract,
|
|
32
40
|
listDocumentsContract,
|
|
@@ -39,14 +47,18 @@ import {
|
|
|
39
47
|
moveDataroomFolderContract,
|
|
40
48
|
moveFolderContract,
|
|
41
49
|
promoteDocumentVersionContract,
|
|
50
|
+
removeDataroomGroupMemberContract,
|
|
42
51
|
searchDataroomsContract,
|
|
43
52
|
searchDocumentsContract,
|
|
53
|
+
setDataroomGroupPermissionsContract,
|
|
54
|
+
setLinkPermissionsContract,
|
|
44
55
|
updateDataroomContract,
|
|
45
56
|
updateDataroomFolderContract,
|
|
57
|
+
updateDataroomGroupContract,
|
|
46
58
|
updateDocumentContract,
|
|
47
59
|
updateFolderContract,
|
|
48
60
|
updateLinkContract
|
|
49
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-IKMPOGEB.js";
|
|
50
62
|
|
|
51
63
|
// src/index.ts
|
|
52
64
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -249,6 +261,14 @@ var api = {
|
|
|
249
261
|
createLink: (body, token) => request("/v1/links", { method: "POST", body, token }),
|
|
250
262
|
updateLink: (id, body, token) => request(`/v1/links/${id}`, { method: "PATCH", body, token }),
|
|
251
263
|
deleteLink: (id, token) => request(`/v1/links/${id}`, { method: "DELETE", token }),
|
|
264
|
+
getLinkPermissions: (id, token) => request(`/v1/links/${id}/permissions`, { token }),
|
|
265
|
+
// Full-replace semantics: the payload is the complete desired state;
|
|
266
|
+
// items not listed lose their override.
|
|
267
|
+
setLinkPermissions: (id, body, token) => request(`/v1/links/${id}/permissions`, {
|
|
268
|
+
method: "PUT",
|
|
269
|
+
body,
|
|
270
|
+
token
|
|
271
|
+
}),
|
|
252
272
|
listViews: (linkId, query, token) => request(`/v1/links/${linkId}/views`, { query, token }),
|
|
253
273
|
// Datarooms
|
|
254
274
|
listDatarooms: (query, token) => request("/v1/datarooms", { query, token }),
|
|
@@ -299,6 +319,47 @@ var api = {
|
|
|
299
319
|
body,
|
|
300
320
|
token
|
|
301
321
|
}),
|
|
322
|
+
// Dataroom groups
|
|
323
|
+
listDataroomGroups: (id, query, token) => request(`/v1/datarooms/${id}/groups`, { query, token }),
|
|
324
|
+
createDataroomGroup: (id, body, token) => request(`/v1/datarooms/${id}/groups`, {
|
|
325
|
+
method: "POST",
|
|
326
|
+
body,
|
|
327
|
+
token
|
|
328
|
+
}),
|
|
329
|
+
getDataroomGroup: (id, gid, token) => request(`/v1/datarooms/${id}/groups/${gid}`, { token }),
|
|
330
|
+
updateDataroomGroup: (id, gid, body, token) => request(`/v1/datarooms/${id}/groups/${gid}`, {
|
|
331
|
+
method: "PATCH",
|
|
332
|
+
body,
|
|
333
|
+
token
|
|
334
|
+
}),
|
|
335
|
+
// Also deletes every share link pointing at the group (matching the
|
|
336
|
+
// dashboard).
|
|
337
|
+
deleteDataroomGroup: (id, gid, token) => request(`/v1/datarooms/${id}/groups/${gid}`, {
|
|
338
|
+
method: "DELETE",
|
|
339
|
+
token
|
|
340
|
+
}),
|
|
341
|
+
listDataroomGroupMembers: (id, gid, query, token) => request(
|
|
342
|
+
`/v1/datarooms/${id}/groups/${gid}/members`,
|
|
343
|
+
{ query, token }
|
|
344
|
+
),
|
|
345
|
+
addDataroomGroupMembers: (id, gid, body, token) => request(
|
|
346
|
+
`/v1/datarooms/${id}/groups/${gid}/members`,
|
|
347
|
+
{ method: "POST", body, token }
|
|
348
|
+
),
|
|
349
|
+
removeDataroomGroupMember: (id, gid, mid, token) => request(
|
|
350
|
+
`/v1/datarooms/${id}/groups/${gid}/members/${mid}`,
|
|
351
|
+
{ method: "DELETE", token }
|
|
352
|
+
),
|
|
353
|
+
listDataroomGroupPermissions: (id, gid, query, token) => request(
|
|
354
|
+
`/v1/datarooms/${id}/groups/${gid}/permissions`,
|
|
355
|
+
{ query, token }
|
|
356
|
+
),
|
|
357
|
+
// Upsert-delta semantics: entries sent are upserted, entries omitted keep
|
|
358
|
+
// their current state; ancestor folders of visible items are auto-shown.
|
|
359
|
+
setDataroomGroupPermissions: (id, gid, body, token) => request(
|
|
360
|
+
`/v1/datarooms/${id}/groups/${gid}/permissions`,
|
|
361
|
+
{ method: "PUT", body, token }
|
|
362
|
+
),
|
|
302
363
|
// Visitors
|
|
303
364
|
listVisitors: (query, token) => request("/v1/visitors", { query, token }),
|
|
304
365
|
getVisitor: (id, token) => request(`/v1/visitors/${id}`, { token }),
|
|
@@ -359,6 +420,18 @@ var TOOL_ANNOTATIONS = {
|
|
|
359
420
|
update_dataroom_folder: destructiveTool(),
|
|
360
421
|
delete_dataroom_folder: destructiveTool(),
|
|
361
422
|
move_dataroom_folder: destructiveTool(),
|
|
423
|
+
list_dataroom_groups: readTool(),
|
|
424
|
+
get_dataroom_group: readTool(),
|
|
425
|
+
create_dataroom_group: writeTool(),
|
|
426
|
+
update_dataroom_group: destructiveTool(),
|
|
427
|
+
delete_dataroom_group: destructiveTool(),
|
|
428
|
+
list_dataroom_group_members: readTool(),
|
|
429
|
+
add_dataroom_group_members: writeTool(),
|
|
430
|
+
remove_dataroom_group_member: destructiveTool(),
|
|
431
|
+
get_dataroom_group_permissions: readTool(),
|
|
432
|
+
set_dataroom_group_permissions: destructiveTool(),
|
|
433
|
+
get_link_permissions: readTool(),
|
|
434
|
+
set_link_permissions: destructiveTool(),
|
|
362
435
|
get_visitor: readTool()
|
|
363
436
|
};
|
|
364
437
|
var TOOL_OUTPUT_SCHEMAS = {
|
|
@@ -1195,6 +1268,186 @@ Don't add any source the user didn't explicitly point at. Requires scope \`docum
|
|
|
1195
1268
|
return { folder: f };
|
|
1196
1269
|
}, "move_dataroom_folder")
|
|
1197
1270
|
);
|
|
1271
|
+
server.registerTool(
|
|
1272
|
+
listDataroomGroupsContract.name,
|
|
1273
|
+
{
|
|
1274
|
+
title: listDataroomGroupsContract.title,
|
|
1275
|
+
description: listDataroomGroupsContract.description,
|
|
1276
|
+
inputSchema: listDataroomGroupsContract.inputSchema
|
|
1277
|
+
},
|
|
1278
|
+
async (args) => run(async () => {
|
|
1279
|
+
const list = await api.listDataroomGroups(args.dataroom_id, {
|
|
1280
|
+
limit: args.limit,
|
|
1281
|
+
cursor: args.cursor
|
|
1282
|
+
});
|
|
1283
|
+
return { groups: list.data, next_cursor: list.next_cursor };
|
|
1284
|
+
}, "list_dataroom_groups")
|
|
1285
|
+
);
|
|
1286
|
+
server.registerTool(
|
|
1287
|
+
getDataroomGroupContract.name,
|
|
1288
|
+
{
|
|
1289
|
+
title: getDataroomGroupContract.title,
|
|
1290
|
+
description: getDataroomGroupContract.description,
|
|
1291
|
+
inputSchema: getDataroomGroupContract.inputSchema
|
|
1292
|
+
},
|
|
1293
|
+
async (args) => run(
|
|
1294
|
+
() => api.getDataroomGroup(args.dataroom_id, args.group_id),
|
|
1295
|
+
"get_dataroom_group"
|
|
1296
|
+
)
|
|
1297
|
+
);
|
|
1298
|
+
server.registerTool(
|
|
1299
|
+
createDataroomGroupContract.name,
|
|
1300
|
+
{
|
|
1301
|
+
title: createDataroomGroupContract.title,
|
|
1302
|
+
description: createDataroomGroupContract.description,
|
|
1303
|
+
inputSchema: createDataroomGroupContract.inputSchema
|
|
1304
|
+
},
|
|
1305
|
+
async (args) => run(async () => {
|
|
1306
|
+
const { dataroom_id, ...body } = args;
|
|
1307
|
+
const group = await api.createDataroomGroup(dataroom_id, body);
|
|
1308
|
+
return { group };
|
|
1309
|
+
}, "create_dataroom_group")
|
|
1310
|
+
);
|
|
1311
|
+
server.registerTool(
|
|
1312
|
+
updateDataroomGroupContract.name,
|
|
1313
|
+
{
|
|
1314
|
+
title: updateDataroomGroupContract.title,
|
|
1315
|
+
description: updateDataroomGroupContract.description,
|
|
1316
|
+
inputSchema: updateDataroomGroupContract.inputSchema
|
|
1317
|
+
},
|
|
1318
|
+
async (args) => run(async () => {
|
|
1319
|
+
const { dataroom_id, group_id, ...body } = args;
|
|
1320
|
+
if (Object.keys(body).length === 0) {
|
|
1321
|
+
throw new Error(
|
|
1322
|
+
"Provide at least one of `name`, `allow_all`, `domains`."
|
|
1323
|
+
);
|
|
1324
|
+
}
|
|
1325
|
+
const group = await api.updateDataroomGroup(
|
|
1326
|
+
dataroom_id,
|
|
1327
|
+
group_id,
|
|
1328
|
+
body
|
|
1329
|
+
);
|
|
1330
|
+
return { group };
|
|
1331
|
+
}, "update_dataroom_group")
|
|
1332
|
+
);
|
|
1333
|
+
server.registerTool(
|
|
1334
|
+
deleteDataroomGroupContract.name,
|
|
1335
|
+
{
|
|
1336
|
+
title: deleteDataroomGroupContract.title,
|
|
1337
|
+
description: deleteDataroomGroupContract.description,
|
|
1338
|
+
inputSchema: deleteDataroomGroupContract.inputSchema
|
|
1339
|
+
},
|
|
1340
|
+
async (args) => run(
|
|
1341
|
+
() => api.deleteDataroomGroup(args.dataroom_id, args.group_id),
|
|
1342
|
+
"delete_dataroom_group"
|
|
1343
|
+
)
|
|
1344
|
+
);
|
|
1345
|
+
server.registerTool(
|
|
1346
|
+
listDataroomGroupMembersContract.name,
|
|
1347
|
+
{
|
|
1348
|
+
title: listDataroomGroupMembersContract.title,
|
|
1349
|
+
description: listDataroomGroupMembersContract.description,
|
|
1350
|
+
inputSchema: listDataroomGroupMembersContract.inputSchema
|
|
1351
|
+
},
|
|
1352
|
+
async (args) => run(async () => {
|
|
1353
|
+
const list = await api.listDataroomGroupMembers(
|
|
1354
|
+
args.dataroom_id,
|
|
1355
|
+
args.group_id,
|
|
1356
|
+
{ limit: args.limit, cursor: args.cursor }
|
|
1357
|
+
);
|
|
1358
|
+
return { members: list.data, next_cursor: list.next_cursor };
|
|
1359
|
+
}, "list_dataroom_group_members")
|
|
1360
|
+
);
|
|
1361
|
+
server.registerTool(
|
|
1362
|
+
addDataroomGroupMembersContract.name,
|
|
1363
|
+
{
|
|
1364
|
+
title: addDataroomGroupMembersContract.title,
|
|
1365
|
+
description: addDataroomGroupMembersContract.description,
|
|
1366
|
+
inputSchema: addDataroomGroupMembersContract.inputSchema
|
|
1367
|
+
},
|
|
1368
|
+
async (args) => run(async () => {
|
|
1369
|
+
const list = await api.addDataroomGroupMembers(
|
|
1370
|
+
args.dataroom_id,
|
|
1371
|
+
args.group_id,
|
|
1372
|
+
{ emails: args.emails }
|
|
1373
|
+
);
|
|
1374
|
+
return { members: list.data, next_cursor: list.next_cursor };
|
|
1375
|
+
}, "add_dataroom_group_members")
|
|
1376
|
+
);
|
|
1377
|
+
server.registerTool(
|
|
1378
|
+
removeDataroomGroupMemberContract.name,
|
|
1379
|
+
{
|
|
1380
|
+
title: removeDataroomGroupMemberContract.title,
|
|
1381
|
+
description: removeDataroomGroupMemberContract.description,
|
|
1382
|
+
inputSchema: removeDataroomGroupMemberContract.inputSchema
|
|
1383
|
+
},
|
|
1384
|
+
async (args) => run(
|
|
1385
|
+
() => api.removeDataroomGroupMember(
|
|
1386
|
+
args.dataroom_id,
|
|
1387
|
+
args.group_id,
|
|
1388
|
+
args.member_id
|
|
1389
|
+
),
|
|
1390
|
+
"remove_dataroom_group_member"
|
|
1391
|
+
)
|
|
1392
|
+
);
|
|
1393
|
+
server.registerTool(
|
|
1394
|
+
getDataroomGroupPermissionsContract.name,
|
|
1395
|
+
{
|
|
1396
|
+
title: getDataroomGroupPermissionsContract.title,
|
|
1397
|
+
description: getDataroomGroupPermissionsContract.description,
|
|
1398
|
+
inputSchema: getDataroomGroupPermissionsContract.inputSchema
|
|
1399
|
+
},
|
|
1400
|
+
async (args) => run(async () => {
|
|
1401
|
+
const list = await api.listDataroomGroupPermissions(
|
|
1402
|
+
args.dataroom_id,
|
|
1403
|
+
args.group_id,
|
|
1404
|
+
{ limit: args.limit, cursor: args.cursor }
|
|
1405
|
+
);
|
|
1406
|
+
return { permissions: list.data, next_cursor: list.next_cursor };
|
|
1407
|
+
}, "get_dataroom_group_permissions")
|
|
1408
|
+
);
|
|
1409
|
+
server.registerTool(
|
|
1410
|
+
setDataroomGroupPermissionsContract.name,
|
|
1411
|
+
{
|
|
1412
|
+
title: setDataroomGroupPermissionsContract.title,
|
|
1413
|
+
description: setDataroomGroupPermissionsContract.description,
|
|
1414
|
+
inputSchema: setDataroomGroupPermissionsContract.inputSchema
|
|
1415
|
+
},
|
|
1416
|
+
async (args) => run(async () => {
|
|
1417
|
+
const res = await api.setDataroomGroupPermissions(
|
|
1418
|
+
args.dataroom_id,
|
|
1419
|
+
args.group_id,
|
|
1420
|
+
{ permissions: args.permissions }
|
|
1421
|
+
);
|
|
1422
|
+
return { permissions: res.data };
|
|
1423
|
+
}, "set_dataroom_group_permissions")
|
|
1424
|
+
);
|
|
1425
|
+
server.registerTool(
|
|
1426
|
+
getLinkPermissionsContract.name,
|
|
1427
|
+
{
|
|
1428
|
+
title: getLinkPermissionsContract.title,
|
|
1429
|
+
description: getLinkPermissionsContract.description,
|
|
1430
|
+
inputSchema: getLinkPermissionsContract.inputSchema
|
|
1431
|
+
},
|
|
1432
|
+
async (args) => run(async () => {
|
|
1433
|
+
const res = await api.getLinkPermissions(args.link_id);
|
|
1434
|
+
return { permissions: res.data };
|
|
1435
|
+
}, "get_link_permissions")
|
|
1436
|
+
);
|
|
1437
|
+
server.registerTool(
|
|
1438
|
+
setLinkPermissionsContract.name,
|
|
1439
|
+
{
|
|
1440
|
+
title: setLinkPermissionsContract.title,
|
|
1441
|
+
description: setLinkPermissionsContract.description,
|
|
1442
|
+
inputSchema: setLinkPermissionsContract.inputSchema
|
|
1443
|
+
},
|
|
1444
|
+
async (args) => run(async () => {
|
|
1445
|
+
const res = await api.setLinkPermissions(args.link_id, {
|
|
1446
|
+
permissions: args.permissions
|
|
1447
|
+
});
|
|
1448
|
+
return { permissions: res.data };
|
|
1449
|
+
}, "set_link_permissions")
|
|
1450
|
+
);
|
|
1198
1451
|
server.registerTool(
|
|
1199
1452
|
getVisitorContract.name,
|
|
1200
1453
|
{
|