@tickernelz/paperclip-pro-mcp-server 2026.1004.11 → 2026.1004.13

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.
@@ -38,7 +38,7 @@ describe("Paperclip MCP toolsets", () => {
38
38
  const calls = [];
39
39
  const openwaTools = { call: async (input) => { calls.push(input); return { ok: true }; } };
40
40
  const names = (toolsets, options = {}) => paperclipToolCatalog(makeClient(), toolsets, false, options).listing.tools.map((tool) => tool.name);
41
- const openwaNames = ["openwa_send", "openwa_read_chat", "openwa_get_media", "openwa_find", "openwa_stay_silent", "openwa_handoff", "openwa_catalog", "openwa_endpoint_config", "openwa_describe", "openwa_call"];
41
+ const openwaNames = ["openwa_send", "openwa_read_chat", "openwa_get_media", "openwa_find", "openwa_stay_silent", "openwa_handoff", "openwa_catalog", "openwa_endpoint_config", "openwa_linked_list", "openwa_linked_read", "openwa_describe", "openwa_call"];
42
42
  expect(names(["core", "openwa"], { openwaTools })).toEqual(expect.arrayContaining(openwaNames));
43
43
  expect(names(["core", "openwa"]).some((name) => name.startsWith("openwa_"))).toBe(false);
44
44
  expect(names(parseToolsets(FULL_TOOLSET), { openwaTools }).some((name) => name.startsWith("openwa_"))).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"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"}
@@ -4128,7 +4128,7 @@
4128
4128
  "operationId": "POST /api/chat-endpoints/{endpointId}/openwa/owners",
4129
4129
  "method": "POST",
4130
4130
  "path": "/chat-endpoints/{endpointId}/openwa/owners",
4131
- "description": "Add an OpenWA owner. Requires connection-management access. Registers an E.164 WhatsApp number as an owner and, unless that number is already linked, returns a short-lived identity-link confirmation URL. The owner gains authority only after a Paperclip user with active, non-viewer membership confirms the link. Returns 201 when a new owner row is created and 200 when it already existed. Records openwa.owner_added.",
4131
+ "description": "Add an OpenWA owner. Registers an E.164 WhatsApp number as an owner and, unless that number is already linked, returns a short-lived identity-link confirmation URL. The owner gains authority only after a Paperclip user with active, non-viewer membership confirms the link. Returns 201 when a new owner row is created and 200 when it already existed. Records openwa.owner_added.",
4132
4132
  "toolset": "extended",
4133
4133
  "authority": "board",
4134
4134
  "authoritySource": "registry",
@@ -4181,7 +4181,7 @@
4181
4181
  "operationId": "POST /api/chat-endpoints/{endpointId}/openwa/sender-rules",
4182
4182
  "method": "POST",
4183
4183
  "path": "/chat-endpoints/{endpointId}/openwa/sender-rules",
4184
- "description": "Add an OpenWA sender rule. Requires connection-management access. Adds an E.164 number to the allowlist or denylist; re-adding an existing entry updates its label. Owners are never blocked by the denylist. Records openwa.sender_rule_changed with a masked number.",
4184
+ "description": "Add an OpenWA sender rule. Adds an E.164 number to the allowlist or denylist; re-adding an existing entry updates its label. Owners are never blocked by the denylist. Records openwa.sender_rule_changed with a masked number.",
4185
4185
  "toolset": "extended",
4186
4186
  "authority": "board",
4187
4187
  "authoritySource": "registry",
@@ -4237,6 +4237,60 @@
4237
4237
  }
4238
4238
  }
4239
4239
  },
4240
+ {
4241
+ "name": "paperclipCreateChatEndpointOpenwaSession",
4242
+ "operationId": "POST /api/chat-endpoints/{endpointId}/openwa/linked-sessions",
4243
+ "method": "POST",
4244
+ "path": "/chat-endpoints/{endpointId}/openwa/linked-sessions",
4245
+ "description": "Link a read-only OpenWA number. Creates a viewer OpenWA API key scoped to the session with the endpoint's admin key, stores it as a Paperclip-managed secret, and links the session with no allowed chats. Fails 422 openwa_admin_key_required without an admin key and 422 openwa_linked_is_agent_session for the agent's own session. Records openwa.linked_session_added.",
4246
+ "toolset": "extended",
4247
+ "authority": "board",
4248
+ "authoritySource": "registry",
4249
+ "tags": [
4250
+ "chat-channels"
4251
+ ],
4252
+ "annotations": {
4253
+ "readOnlyHint": false,
4254
+ "destructiveHint": false,
4255
+ "idempotentHint": false
4256
+ },
4257
+ "guards": [
4258
+ "assertEndpointManagementAccess"
4259
+ ],
4260
+ "permissions": [],
4261
+ "boardGuard": null,
4262
+ "authorityCapability": null,
4263
+ "parameters": [
4264
+ {
4265
+ "name": "endpointId",
4266
+ "in": "path",
4267
+ "required": true,
4268
+ "schema": {
4269
+ "type": "string"
4270
+ }
4271
+ }
4272
+ ],
4273
+ "body": {
4274
+ "required": true,
4275
+ "documented": true,
4276
+ "mode": "merge",
4277
+ "schema": {
4278
+ "type": "object",
4279
+ "properties": {
4280
+ "label": {
4281
+ "type": "string"
4282
+ },
4283
+ "sessionId": {
4284
+ "type": "string"
4285
+ }
4286
+ },
4287
+ "required": [
4288
+ "label",
4289
+ "sessionId"
4290
+ ]
4291
+ }
4292
+ }
4293
+ },
4240
4294
  {
4241
4295
  "name": "paperclipCreateChatEndpointPublication",
4242
4296
  "operationId": "POST /api/chat-endpoints/{endpointId}/conversations/{conversationId}/publications",
@@ -12317,7 +12371,7 @@
12317
12371
  "operationId": "DELETE /api/chat-endpoints/{endpointId}/openwa/owners/{ownerId}",
12318
12372
  "method": "DELETE",
12319
12373
  "path": "/chat-endpoints/{endpointId}/openwa/owners/{ownerId}",
12320
- "description": "Remove an OpenWA owner. Requires connection-management access. Removes the owner role; the identity link itself is kept. Records openwa.owner_removed.",
12374
+ "description": "Remove an OpenWA owner. Removes the owner role; the identity link itself is kept. Records openwa.owner_removed.",
12321
12375
  "toolset": "extended",
12322
12376
  "authority": "board",
12323
12377
  "authoritySource": "registry",
@@ -12359,7 +12413,7 @@
12359
12413
  "operationId": "DELETE /api/chat-endpoints/{endpointId}/openwa/sender-rules/{ruleId}",
12360
12414
  "method": "DELETE",
12361
12415
  "path": "/chat-endpoints/{endpointId}/openwa/sender-rules/{ruleId}",
12362
- "description": "Remove an OpenWA sender rule. Requires connection-management access. Records openwa.sender_rule_changed.",
12416
+ "description": "Remove an OpenWA sender rule. Records openwa.sender_rule_changed.",
12363
12417
  "toolset": "extended",
12364
12418
  "authority": "board",
12365
12419
  "authoritySource": "registry",
@@ -12396,6 +12450,48 @@
12396
12450
  }
12397
12451
  ]
12398
12452
  },
12453
+ {
12454
+ "name": "paperclipDeleteChatEndpointOpenwaSession",
12455
+ "operationId": "DELETE /api/chat-endpoints/{endpointId}/openwa/linked-sessions/{linkedId}",
12456
+ "method": "DELETE",
12457
+ "path": "/chat-endpoints/{endpointId}/openwa/linked-sessions/{linkedId}",
12458
+ "description": "Unlink a read-only OpenWA number. Removes the link, deletes the stored secret, and records openwa.linked_session_removed. Revoking the viewer key on the gateway is best-effort: when the admin key is missing or rejected or the gateway is unreachable, the link is still removed and the response has revoked=false with a warning naming the key to revoke in the OpenWA dashboard.",
12459
+ "toolset": "extended",
12460
+ "authority": "board",
12461
+ "authoritySource": "registry",
12462
+ "tags": [
12463
+ "chat-channels"
12464
+ ],
12465
+ "annotations": {
12466
+ "readOnlyHint": false,
12467
+ "destructiveHint": true,
12468
+ "idempotentHint": true
12469
+ },
12470
+ "guards": [
12471
+ "assertEndpointManagementAccess"
12472
+ ],
12473
+ "permissions": [],
12474
+ "boardGuard": null,
12475
+ "authorityCapability": null,
12476
+ "parameters": [
12477
+ {
12478
+ "name": "endpointId",
12479
+ "in": "path",
12480
+ "required": true,
12481
+ "schema": {
12482
+ "type": "string"
12483
+ }
12484
+ },
12485
+ {
12486
+ "name": "linkedId",
12487
+ "in": "path",
12488
+ "required": true,
12489
+ "schema": {
12490
+ "type": "string"
12491
+ }
12492
+ }
12493
+ ]
12494
+ },
12399
12495
  {
12400
12496
  "name": "paperclipDeleteChatEndpointPrincipalLink",
12401
12497
  "operationId": "DELETE /api/chat-endpoints/{endpointId}/principals/{principalId}/link",
@@ -16567,7 +16663,7 @@
16567
16663
  "operationId": "GET /api/chat-endpoints/{endpointId}/github/configuration",
16568
16664
  "method": "GET",
16569
16665
  "path": "/chat-endpoints/{endpointId}/github/configuration",
16570
- "description": "Read GitHub bot review configuration. Returns saved company-scoped configuration and its revision, or disabled defaults for an existing chat connection. Requires connection-management access.",
16666
+ "description": "Read GitHub bot review configuration. Returns saved company-scoped configuration and its revision, or disabled defaults for an existing chat connection.",
16571
16667
  "toolset": "extended",
16572
16668
  "authority": "board",
16573
16669
  "authoritySource": "registry",
@@ -17956,7 +18052,7 @@
17956
18052
  "assertBoard"
17957
18053
  ],
17958
18054
  "permissions": [],
17959
- "boardGuard": "assertBoard@chat-channels.ts:630",
18055
+ "boardGuard": "assertBoard@chat-channels.ts:674",
17960
18056
  "authorityCapability": null,
17961
18057
  "parameters": [
17962
18058
  {
@@ -23813,12 +23909,70 @@
23813
23909
  }
23814
23910
  ]
23815
23911
  },
23912
+ {
23913
+ "name": "paperclipListChatChats",
23914
+ "operationId": "GET /api/chat-endpoints/{endpointId}/openwa/linked-sessions/{linkedId}/gateway-chats",
23915
+ "method": "GET",
23916
+ "path": "/chat-endpoints/{endpointId}/openwa/linked-sessions/{linkedId}/gateway-chats",
23917
+ "description": "List a linked number's chats for the allowlist picker. Reads the linked session's chats with its viewer key: names and ids only, never message bodies. Direct-chat names are masked. Responses are not cached.",
23918
+ "toolset": "extended",
23919
+ "authority": "board",
23920
+ "authoritySource": "registry",
23921
+ "tags": [
23922
+ "chat-channels"
23923
+ ],
23924
+ "annotations": {
23925
+ "readOnlyHint": true,
23926
+ "destructiveHint": false,
23927
+ "idempotentHint": true
23928
+ },
23929
+ "guards": [
23930
+ "assertEndpointManagementAccess"
23931
+ ],
23932
+ "permissions": [],
23933
+ "boardGuard": null,
23934
+ "authorityCapability": null,
23935
+ "parameters": [
23936
+ {
23937
+ "name": "endpointId",
23938
+ "in": "path",
23939
+ "required": true,
23940
+ "schema": {
23941
+ "type": "string"
23942
+ }
23943
+ },
23944
+ {
23945
+ "name": "limit",
23946
+ "in": "query",
23947
+ "required": false,
23948
+ "schema": {
23949
+ "type": "integer"
23950
+ }
23951
+ },
23952
+ {
23953
+ "name": "linkedId",
23954
+ "in": "path",
23955
+ "required": true,
23956
+ "schema": {
23957
+ "type": "string"
23958
+ }
23959
+ },
23960
+ {
23961
+ "name": "offset",
23962
+ "in": "query",
23963
+ "required": false,
23964
+ "schema": {
23965
+ "type": "integer"
23966
+ }
23967
+ }
23968
+ ]
23969
+ },
23816
23970
  {
23817
23971
  "name": "paperclipListChatEndpointChats",
23818
23972
  "operationId": "GET /api/chat-endpoints/{endpointId}/openwa/gateway-chats",
23819
23973
  "method": "GET",
23820
23974
  "path": "/chat-endpoints/{endpointId}/openwa/gateway-chats",
23821
- "description": "List chats from the OpenWA gateway for the chat picker. Requires connection-management access. Reads the session's chats from the gateway and annotates each with its configured activation. Direct-chat names are masked. Responses are not cached.",
23975
+ "description": "List chats from the OpenWA gateway for the chat picker. Reads the session's chats from the gateway and annotates each with its configured activation. Direct-chat names are masked. Responses are not cached.",
23822
23976
  "toolset": "extended",
23823
23977
  "authority": "board",
23824
23978
  "authoritySource": "registry",
@@ -24115,6 +24269,40 @@
24115
24269
  }
24116
24270
  ]
24117
24271
  },
24272
+ {
24273
+ "name": "paperclipListChatEndpointOpenwaSessions",
24274
+ "operationId": "GET /api/chat-endpoints/{endpointId}/openwa/linkable-sessions",
24275
+ "method": "GET",
24276
+ "path": "/chat-endpoints/{endpointId}/openwa/linkable-sessions",
24277
+ "description": "List gateway sessions that can be linked. Requires connection-management access and the endpoint's OpenWA admin key. Lists gateway sessions other than the agent's own session and those already linked. Numbers are masked.",
24278
+ "toolset": "extended",
24279
+ "authority": "board",
24280
+ "authoritySource": "registry",
24281
+ "tags": [
24282
+ "chat-channels"
24283
+ ],
24284
+ "annotations": {
24285
+ "readOnlyHint": true,
24286
+ "destructiveHint": false,
24287
+ "idempotentHint": true
24288
+ },
24289
+ "guards": [
24290
+ "assertEndpointManagementAccess"
24291
+ ],
24292
+ "permissions": [],
24293
+ "boardGuard": null,
24294
+ "authorityCapability": null,
24295
+ "parameters": [
24296
+ {
24297
+ "name": "endpointId",
24298
+ "in": "path",
24299
+ "required": true,
24300
+ "schema": {
24301
+ "type": "string"
24302
+ }
24303
+ }
24304
+ ]
24305
+ },
24118
24306
  {
24119
24307
  "name": "paperclipListChatEndpointPrincipals",
24120
24308
  "operationId": "GET /api/chat-endpoints/{endpointId}/principals",
@@ -24205,7 +24393,7 @@
24205
24393
  "assertCompanyAccess"
24206
24394
  ],
24207
24395
  "permissions": [],
24208
- "boardGuard": "assertBoard@chat-channels.ts:163",
24396
+ "boardGuard": "assertBoard@chat-channels.ts:165",
24209
24397
  "authorityCapability": null,
24210
24398
  "parameters": [
24211
24399
  {
@@ -24218,6 +24406,40 @@
24218
24406
  }
24219
24407
  ]
24220
24408
  },
24409
+ {
24410
+ "name": "paperclipListChatEndpointSessions",
24411
+ "operationId": "GET /api/chat-endpoints/{endpointId}/openwa/linked-sessions",
24412
+ "method": "GET",
24413
+ "path": "/chat-endpoints/{endpointId}/openwa/linked-sessions",
24414
+ "description": "List linked read-only OpenWA numbers. Lists OpenWA sessions linked to this endpoint for owner-run reads, with their allowed chats. Never returns the viewer key or its secret id. Responses are not cached.",
24415
+ "toolset": "extended",
24416
+ "authority": "board",
24417
+ "authoritySource": "registry",
24418
+ "tags": [
24419
+ "chat-channels"
24420
+ ],
24421
+ "annotations": {
24422
+ "readOnlyHint": true,
24423
+ "destructiveHint": false,
24424
+ "idempotentHint": true
24425
+ },
24426
+ "guards": [
24427
+ "assertEndpointAccess"
24428
+ ],
24429
+ "permissions": [],
24430
+ "boardGuard": null,
24431
+ "authorityCapability": null,
24432
+ "parameters": [
24433
+ {
24434
+ "name": "endpointId",
24435
+ "in": "path",
24436
+ "required": true,
24437
+ "schema": {
24438
+ "type": "string"
24439
+ }
24440
+ }
24441
+ ]
24442
+ },
24221
24443
  {
24222
24444
  "name": "paperclipListChatEndpointStatus",
24223
24445
  "operationId": "GET /api/chat-endpoints/{endpointId}/conversations/{conversationId}/publications/{publicationId}/status",
@@ -34225,7 +34447,7 @@
34225
34447
  "operationId": "PUT /api/chat-endpoints/{endpointId}/openwa/chats",
34226
34448
  "method": "PUT",
34227
34449
  "path": "/chat-endpoints/{endpointId}/openwa/chats",
34228
- "description": "Save OpenWA per-chat settings. Requires connection-management access. Upserts activation (off, on, auto), trigger overrides, absence seconds, and reply policy for one chat. Per-chat settings win over endpoint defaults. Records openwa.chat_activation_changed and openwa.config_changed.",
34450
+ "description": "Save OpenWA per-chat settings. Upserts activation (off, on, auto), trigger overrides, absence seconds, and reply policy for one chat. Per-chat settings win over endpoint defaults. Records openwa.chat_activation_changed and openwa.config_changed.",
34229
34451
  "toolset": "extended",
34230
34452
  "authority": "board",
34231
34453
  "authoritySource": "registry",
@@ -34341,6 +34563,83 @@
34341
34563
  }
34342
34564
  }
34343
34565
  },
34566
+ {
34567
+ "name": "paperclipSetChatEndpointOpenwaLinkedChat",
34568
+ "operationId": "PUT /api/chat-endpoints/{endpointId}/openwa/linked-sessions/{linkedId}/chats",
34569
+ "method": "PUT",
34570
+ "path": "/chat-endpoints/{endpointId}/openwa/linked-sessions/{linkedId}/chats",
34571
+ "description": "Replace the allowed chats of a linked OpenWA number. Replaces the chat allowlist the assigned agent may read in owner-triggered runs. Records openwa.linked_session_chats_changed with counts only.",
34572
+ "toolset": "extended",
34573
+ "authority": "board",
34574
+ "authoritySource": "registry",
34575
+ "tags": [
34576
+ "chat-channels"
34577
+ ],
34578
+ "annotations": {
34579
+ "readOnlyHint": false,
34580
+ "destructiveHint": false,
34581
+ "idempotentHint": true
34582
+ },
34583
+ "guards": [
34584
+ "assertEndpointManagementAccess"
34585
+ ],
34586
+ "permissions": [],
34587
+ "boardGuard": null,
34588
+ "authorityCapability": null,
34589
+ "parameters": [
34590
+ {
34591
+ "name": "endpointId",
34592
+ "in": "path",
34593
+ "required": true,
34594
+ "schema": {
34595
+ "type": "string"
34596
+ }
34597
+ },
34598
+ {
34599
+ "name": "linkedId",
34600
+ "in": "path",
34601
+ "required": true,
34602
+ "schema": {
34603
+ "type": "string"
34604
+ }
34605
+ }
34606
+ ],
34607
+ "body": {
34608
+ "required": true,
34609
+ "documented": true,
34610
+ "mode": "merge",
34611
+ "schema": {
34612
+ "type": "object",
34613
+ "properties": {
34614
+ "chats": {
34615
+ "type": "array",
34616
+ "items": {
34617
+ "type": "object",
34618
+ "properties": {
34619
+ "chatId": {
34620
+ "type": "string"
34621
+ },
34622
+ "isGroup": {
34623
+ "type": "boolean"
34624
+ },
34625
+ "label": {
34626
+ "type": "string"
34627
+ }
34628
+ },
34629
+ "required": [
34630
+ "chatId",
34631
+ "isGroup",
34632
+ "label"
34633
+ ]
34634
+ }
34635
+ }
34636
+ },
34637
+ "required": [
34638
+ "chats"
34639
+ ]
34640
+ }
34641
+ }
34642
+ },
34344
34643
  {
34345
34644
  "name": "paperclipSetChatEndpointResource",
34346
34645
  "operationId": "PUT /api/chat-endpoints/{endpointId}/resources",
@@ -39353,7 +39652,7 @@
39353
39652
  "operationId": "PATCH /api/chat-endpoints/{endpointId}/openwa/policy",
39354
39653
  "method": "PATCH",
39355
39654
  "path": "/chat-endpoints/{endpointId}/openwa/policy",
39356
- "description": "Update the OpenWA endpoint policy. Requires connection-management access. Merges the patch into the stored policy, validates the result against the full OpenWA policy schema, and bumps the policy revision when anything changed. The optional inflightMode key (steer or queue) sets how messages arriving during a run are handled and is stored outside the policy. Records openwa.config_changed with the changed keys only, plus inflightMode before/after when it changed.",
39655
+ "description": "Update the OpenWA endpoint policy. Merges the patch into the stored policy, validates the result against the full OpenWA policy schema, and bumps the policy revision when anything changed. The optional inflightMode key (steer or queue) sets how messages arriving during a run are handled and is stored outside the policy. Records openwa.config_changed with the changed keys only, plus inflightMode before/after when it changed.",
39357
39656
  "toolset": "extended",
39358
39657
  "authority": "board",
39359
39658
  "authoritySource": "registry",
@@ -43579,7 +43878,7 @@
43579
43878
  "operationId": "POST /api/chat-endpoints/{endpointId}/github/verify",
43580
43879
  "method": "POST",
43581
43880
  "path": "/chat-endpoints/{endpointId}/github/verify",
43582
- "description": "Verify GitHub bot and assigned-agent capabilities. Separately checks signed delivery, App identity, current repository permissions, effective tool access, and runtime support. Requires connection-management access.",
43881
+ "description": "Verify GitHub bot and assigned-agent capabilities. Separately checks signed delivery, App identity, current repository permissions, effective tool access, and runtime support.",
43583
43882
  "toolset": "extended",
43584
43883
  "authority": "board",
43585
43884
  "authoritySource": "registry",
@@ -10,5 +10,6 @@
10
10
  "[Experimental] Experimental API; the corresponding instance feature must be enabled.",
11
11
  "[Experimental] On overlapping /cases routes the server selects the handler by resource identity; use a pipeline case ID.",
12
12
  "[Experimental] Overlapping /cases routes select their handler by resource identity.",
13
- "[Experimental] Pipeline case resource."
13
+ "[Experimental] Pipeline case resource.",
14
+ "[chat-channels] Requires connection-management access."
14
15
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tickernelz/paperclip-pro-mcp-server",
3
- "version": "2026.1004.11",
3
+ "version": "2026.1004.13",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/tickernelz/paperclip-pro",
6
6
  "bugs": {
@@ -38,7 +38,7 @@
38
38
  ],
39
39
  "dependencies": {
40
40
  "@modelcontextprotocol/sdk": "^1.30.0",
41
- "@tickernelz/paperclip-pro-shared": "2026.1004.11",
41
+ "@tickernelz/paperclip-pro-shared": "2026.1004.13",
42
42
  "zod": "^4.4.3"
43
43
  },
44
44
  "devDependencies": {