@norbix.ai/mcp 0.6.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/README.md CHANGED
@@ -166,7 +166,9 @@ NORBIX_HUB_URL=https://hub.norbix.ai norbix-mcp --http --port 3010
166
166
  `norbix_test_integration`, `norbix_get_code_functions`, `norbix_get_code_function_qualifiers`,
167
167
  `norbix_invoke_code_function`, `norbix_get_code_function_event_sample`,
168
168
  `norbix_get_code_function_runs`, `norbix_get_marketplace_integrations`,
169
- `norbix_save_marketplace_integration`, `norbix_get_database_schemas`,
169
+ `norbix_save_marketplace_integration`, `norbix_test_marketplace_integration`,
170
+ `norbix_invoke_marketplace_function`, `norbix_get_marketplace_function_runs`,
171
+ `norbix_get_database_schemas`,
170
172
  `norbix_find_documents`, `norbix_find_one_document`, `norbix_insert_document`,
171
173
  `norbix_update_document`, `norbix_get_taxonomy_terms`, `norbix_get_roles`, `norbix_get_policies`,
172
174
  `norbix_get_logs`, `norbix_list_service_api_keys`.
@@ -203,6 +205,16 @@ envelope itself (`CodeFunctionEventDto`: `specVersion`, `event`, `source`,
203
205
  `context.runAs.accessToken`, `data.{database,user,file,payment,ai,task,payload}`,
204
206
  `config`) is in `norbix_describe_endpoint("getCodeFunctionEventSample")`.
205
207
 
208
+ **Marketplace** (`@norbix.ai/ts` 4.21.0): `norbix_save_marketplace_integration`
209
+ enables a listing as a connection (empty `integration.viewId` → the answer's `id`
210
+ is the minted `int_…`), `norbix_test_marketplace_integration` runs its validation
211
+ steps (`steps[]`; functions can be added once every `requiredForFunctions` step
212
+ succeeded), `norbix_invoke_marketplace_function` calls a function by hand
213
+ (`functionViewId`, `payload`), and `norbix_get_marketplace_function_runs` lists
214
+ the last runs of a trigger or task. Listings, functions (`saveMarketplaceFunction`
215
+ with `arguments` and `inputs`) and the rest of the 23 routes are reached with
216
+ `norbix_search_endpoints("marketplace")`.
217
+
206
218
  ## Database tools
207
219
 
208
220
  Six shortcuts cover the everyday database work. Everything else in the
@@ -212,6 +212,16 @@
212
212
  "name": "resolver",
213
213
  "type": "TokenMappingResolverType",
214
214
  "optional": false
215
+ },
216
+ {
217
+ "name": "secretKeys",
218
+ "type": "string[]",
219
+ "optional": true
220
+ },
221
+ {
222
+ "name": "secretFormat",
223
+ "type": "SecretValueFormat",
224
+ "optional": true
215
225
  }
216
226
  ]
217
227
  },
@@ -3312,6 +3322,11 @@
3312
3322
  "name": "payload",
3313
3323
  "type": "{ [index: string]: string }",
3314
3324
  "optional": true
3325
+ },
3326
+ {
3327
+ "name": "runAsUserId",
3328
+ "type": "string",
3329
+ "optional": true
3315
3330
  }
3316
3331
  ]
3317
3332
  },
@@ -5623,6 +5638,41 @@
5623
5638
  }
5624
5639
  ]
5625
5640
  },
5641
+ "MarketplaceValidationStepResultDto": {
5642
+ "base": null,
5643
+ "fields": [
5644
+ {
5645
+ "name": "key",
5646
+ "type": "string",
5647
+ "optional": false
5648
+ },
5649
+ {
5650
+ "name": "label",
5651
+ "type": "string",
5652
+ "optional": false
5653
+ },
5654
+ {
5655
+ "name": "requiredForFunctions",
5656
+ "type": "boolean",
5657
+ "optional": false
5658
+ },
5659
+ {
5660
+ "name": "succeeded",
5661
+ "type": "boolean",
5662
+ "optional": false
5663
+ },
5664
+ {
5665
+ "name": "skipped",
5666
+ "type": "boolean",
5667
+ "optional": false
5668
+ },
5669
+ {
5670
+ "name": "message",
5671
+ "type": "string",
5672
+ "optional": true
5673
+ }
5674
+ ]
5675
+ },
5626
5676
  "MarketplaceIntegrationDto": {
5627
5677
  "base": "IntegrationDto",
5628
5678
  "fields": [
@@ -5655,36 +5705,41 @@
5655
5705
  "name": "config",
5656
5706
  "type": "IReadOnlyDictionary<string, string>",
5657
5707
  "optional": false
5708
+ },
5709
+ {
5710
+ "name": "lastValidationSteps",
5711
+ "type": "MarketplaceValidationStepResultDto[]",
5712
+ "optional": true
5658
5713
  }
5659
5714
  ]
5660
5715
  },
5661
- "MarketplaceTokenMappingDto": {
5716
+ "MarketplaceFunctionParameterDto": {
5662
5717
  "base": null,
5663
5718
  "fields": [
5664
5719
  {
5665
- "name": "token",
5720
+ "name": "name",
5666
5721
  "type": "string",
5667
5722
  "optional": false
5668
5723
  },
5669
5724
  {
5670
- "name": "resolver",
5671
- "type": "MarketplaceTokenResolverKind",
5725
+ "name": "type",
5726
+ "type": "string",
5672
5727
  "optional": false
5673
5728
  },
5674
5729
  {
5675
- "name": "value",
5730
+ "name": "description",
5676
5731
  "type": "string",
5677
5732
  "optional": true
5678
5733
  },
5679
5734
  {
5680
- "name": "secretKeys",
5681
- "type": "string[]",
5682
- "optional": true
5735
+ "name": "isRequired",
5736
+ "type": "boolean",
5737
+ "optional": false
5683
5738
  },
5684
5739
  {
5685
- "name": "format",
5686
- "type": "MarketplaceSecretValueFormat",
5687
- "optional": false
5740
+ "name": "defaultValue",
5741
+ "type": "string",
5742
+ "optional": true
5688
5743
  }
5689
5744
  ]
5690
5745
  },
@@ -5724,11 +5779,21 @@
5724
5779
  {
5725
5780
  "name": "requestTemplate",
5726
5781
  "type": "string",
5782
+ "optional": true
5783
+ },
5784
+ {
5785
+ "name": "arguments",
5786
+ "type": "{ [index: string]: string } = {}",
5787
+ "optional": false
5788
+ },
5789
+ {
5790
+ "name": "inputs",
5791
+ "type": "MarketplaceFunctionParameterDto[] = []",
5727
5792
  "optional": false
5728
5793
  },
5729
5794
  {
5730
5795
  "name": "mappedTokens",
5731
- "type": "MarketplaceTokenMappingDto[] = []",
5796
+ "type": "TokenMappingDto[] = []",
5732
5797
  "optional": false
5733
5798
  }
5734
5799
  ]
@@ -5788,33 +5853,23 @@
5788
5853
  }
5789
5854
  ]
5790
5855
  },
5791
- "MarketplaceFunctionParameterDto": {
5856
+ "MarketplaceInstallFormDto": {
5792
5857
  "base": null,
5793
5858
  "fields": [
5794
5859
  {
5795
- "name": "name",
5860
+ "name": "dataSchema",
5796
5861
  "type": "string",
5797
5862
  "optional": false
5798
5863
  },
5799
5864
  {
5800
- "name": "type",
5865
+ "name": "uiSchema",
5801
5866
  "type": "string",
5802
5867
  "optional": false
5803
5868
  },
5804
5869
  {
5805
- "name": "description",
5806
- "type": "string",
5807
- "optional": true
5808
- },
5809
- {
5810
- "name": "isRequired",
5811
- "type": "boolean",
5870
+ "name": "secretKeys",
5871
+ "type": "string[] = []",
5812
5872
  "optional": false
5813
- },
5814
- {
5815
- "name": "defaultValue",
5816
- "type": "string",
5817
- "optional": true
5818
5873
  }
5819
5874
  ]
5820
5875
  },
@@ -5888,6 +5943,36 @@
5888
5943
  }
5889
5944
  ]
5890
5945
  },
5946
+ "MarketplaceValidationStepDto": {
5947
+ "base": null,
5948
+ "fields": [
5949
+ {
5950
+ "name": "key",
5951
+ "type": "string",
5952
+ "optional": false
5953
+ },
5954
+ {
5955
+ "name": "label",
5956
+ "type": "string",
5957
+ "optional": false
5958
+ },
5959
+ {
5960
+ "name": "description",
5961
+ "type": "string",
5962
+ "optional": true
5963
+ },
5964
+ {
5965
+ "name": "requiredForFunctions",
5966
+ "type": "boolean",
5967
+ "optional": false
5968
+ },
5969
+ {
5970
+ "name": "probe",
5971
+ "type": "MarketplaceHttpRequestSpecDto",
5972
+ "optional": true
5973
+ }
5974
+ ]
5975
+ },
5891
5976
  "MarketplaceFunctionDefinitionDto": {
5892
5977
  "base": null,
5893
5978
  "fields": [
@@ -5916,6 +6001,16 @@
5916
6001
  "type": "string",
5917
6002
  "optional": true
5918
6003
  },
6004
+ {
6005
+ "name": "formKind",
6006
+ "type": "MarketplaceFormKind",
6007
+ "optional": false
6008
+ },
6009
+ {
6010
+ "name": "inputs",
6011
+ "type": "IReadOnlyList<MarketplaceFunctionParameterDto>",
6012
+ "optional": false
6013
+ },
5919
6014
  {
5920
6015
  "name": "parameters",
5921
6016
  "type": "IReadOnlyList<MarketplaceFunctionParameterDto>",
@@ -5938,7 +6033,7 @@
5938
6033
  },
5939
6034
  {
5940
6035
  "name": "defaultTokenMappings",
5941
- "type": "MarketplaceTokenMappingDto[] = []",
6036
+ "type": "TokenMappingDto[] = []",
5942
6037
  "optional": false
5943
6038
  }
5944
6039
  ]
@@ -5991,6 +6086,16 @@
5991
6086
  "type": "string",
5992
6087
  "optional": true
5993
6088
  },
6089
+ {
6090
+ "name": "videoUrl",
6091
+ "type": "string",
6092
+ "optional": true
6093
+ },
6094
+ {
6095
+ "name": "availability",
6096
+ "type": "MarketplaceAvailability",
6097
+ "optional": false
6098
+ },
5994
6099
  {
5995
6100
  "name": "isOfficial",
5996
6101
  "type": "boolean",
@@ -6016,6 +6121,16 @@
6016
6121
  "type": "IReadOnlyList<MarketplaceFieldDefinitionDto>",
6017
6122
  "optional": false
6018
6123
  },
6124
+ {
6125
+ "name": "installForm",
6126
+ "type": "MarketplaceInstallFormDto",
6127
+ "optional": true
6128
+ },
6129
+ {
6130
+ "name": "validationSteps",
6131
+ "type": "IReadOnlyList<MarketplaceValidationStepDto>",
6132
+ "optional": false
6133
+ },
6019
6134
  {
6020
6135
  "name": "functions",
6021
6136
  "type": "IReadOnlyList<MarketplaceFunctionDefinitionDto>",
@@ -7348,6 +7463,31 @@
7348
7463
  }
7349
7464
  ]
7350
7465
  },
7466
+ "MarketplaceFunctionCallDto": {
7467
+ "base": null,
7468
+ "fields": [
7469
+ {
7470
+ "name": "functionId",
7471
+ "type": "string",
7472
+ "optional": false
7473
+ },
7474
+ {
7475
+ "name": "functionKey",
7476
+ "type": "string",
7477
+ "optional": false
7478
+ },
7479
+ {
7480
+ "name": "integrationId",
7481
+ "type": "string",
7482
+ "optional": false
7483
+ },
7484
+ {
7485
+ "name": "payload",
7486
+ "type": "{ [index: string]: Object } = {}",
7487
+ "optional": false
7488
+ }
7489
+ ]
7490
+ },
7351
7491
  "CodeFunctionDataDto": {
7352
7492
  "base": null,
7353
7493
  "fields": [
@@ -7385,6 +7525,11 @@
7385
7525
  "name": "payload",
7386
7526
  "type": "{ [index: string]: Object }",
7387
7527
  "optional": true
7528
+ },
7529
+ {
7530
+ "name": "marketplace",
7531
+ "type": "MarketplaceFunctionCallDto",
7532
+ "optional": true
7388
7533
  }
7389
7534
  ]
7390
7535
  },
@@ -7482,6 +7627,26 @@
7482
7627
  }
7483
7628
  ]
7484
7629
  },
7630
+ "MarketplaceFunctionSchedulerTaskRequest": {
7631
+ "base": "SchedulerTaskRequest",
7632
+ "fields": [
7633
+ {
7634
+ "name": "type",
7635
+ "type": "SchedulerTaskType",
7636
+ "optional": false
7637
+ },
7638
+ {
7639
+ "name": "functionId",
7640
+ "type": "string",
7641
+ "optional": true
7642
+ },
7643
+ {
7644
+ "name": "payload",
7645
+ "type": "{ [index: string]: string }",
7646
+ "optional": true
7647
+ }
7648
+ ]
7649
+ },
7485
7650
  "ICultureBasedRequest": {
7486
7651
  "base": null,
7487
7652
  "fields": [
@@ -9573,11 +9738,6 @@
9573
9738
  "name": "isEnabled",
9574
9739
  "type": "boolean",
9575
9740
  "optional": false
9576
- },
9577
- {
9578
- "name": "defaultIntegrationViewId",
9579
- "type": "string",
9580
- "optional": true
9581
9741
  }
9582
9742
  ]
9583
9743
  },
@@ -10949,6 +11109,16 @@
10949
11109
  "type": "string",
10950
11110
  "optional": true
10951
11111
  },
11112
+ {
11113
+ "name": "lastHeartbeatOutcome",
11114
+ "type": "string",
11115
+ "optional": true
11116
+ },
11117
+ {
11118
+ "name": "lastHeartbeatError",
11119
+ "type": "string",
11120
+ "optional": true
11121
+ },
10952
11122
  {
10953
11123
  "name": "message",
10954
11124
  "type": "string",
@@ -13491,6 +13661,16 @@
13491
13661
  "name": "functionCount",
13492
13662
  "type": "number",
13493
13663
  "optional": false
13664
+ },
13665
+ {
13666
+ "name": "availability",
13667
+ "type": "MarketplaceAvailability",
13668
+ "optional": false
13669
+ },
13670
+ {
13671
+ "name": "videoUrl",
13672
+ "type": "string",
13673
+ "optional": true
13494
13674
  }
13495
13675
  ]
13496
13676
  },
@@ -13594,6 +13774,61 @@
13594
13774
  }
13595
13775
  ]
13596
13776
  },
13777
+ "MarketplaceFunctionRunDto": {
13778
+ "base": null,
13779
+ "fields": [
13780
+ {
13781
+ "name": "firedAt",
13782
+ "type": "string",
13783
+ "optional": false
13784
+ },
13785
+ {
13786
+ "name": "event",
13787
+ "type": "string",
13788
+ "optional": false
13789
+ },
13790
+ {
13791
+ "name": "source",
13792
+ "type": "string",
13793
+ "optional": false
13794
+ },
13795
+ {
13796
+ "name": "functionId",
13797
+ "type": "string",
13798
+ "optional": false
13799
+ },
13800
+ {
13801
+ "name": "runAsUserId",
13802
+ "type": "string",
13803
+ "optional": true
13804
+ },
13805
+ {
13806
+ "name": "succeeded",
13807
+ "type": "boolean",
13808
+ "optional": false
13809
+ },
13810
+ {
13811
+ "name": "durationMs",
13812
+ "type": "number",
13813
+ "optional": true
13814
+ },
13815
+ {
13816
+ "name": "error",
13817
+ "type": "string",
13818
+ "optional": true
13819
+ },
13820
+ {
13821
+ "name": "vendorRequestId",
13822
+ "type": "string",
13823
+ "optional": true
13824
+ },
13825
+ {
13826
+ "name": "input",
13827
+ "type": "string",
13828
+ "optional": true
13829
+ }
13830
+ ]
13831
+ },
13597
13832
  "CodeIntegrationListProjection": {
13598
13833
  "base": "IntegrationListProjection",
13599
13834
  "fields": [
@@ -13716,6 +13951,11 @@
13716
13951
  "name": "requestId",
13717
13952
  "type": "string",
13718
13953
  "optional": true
13954
+ },
13955
+ {
13956
+ "name": "input",
13957
+ "type": "string",
13958
+ "optional": true
13719
13959
  }
13720
13960
  ]
13721
13961
  },
@@ -17356,6 +17596,16 @@
17356
17596
  }
17357
17597
  ]
17358
17598
  },
17599
+ "GetLicenseKeyResponse": {
17600
+ "base": "ResponseBase",
17601
+ "fields": [
17602
+ {
17603
+ "name": "key",
17604
+ "type": "string",
17605
+ "optional": true
17606
+ }
17607
+ ]
17608
+ },
17359
17609
  "CreateAiServiceUserResponse": {
17360
17610
  "base": "ResponseBase",
17361
17611
  "fields": [
@@ -18592,6 +18842,11 @@
18592
18842
  "name": "items",
18593
18843
  "type": "IReadOnlyList<IntegrationTestResultItemDto>",
18594
18844
  "optional": true
18845
+ },
18846
+ {
18847
+ "name": "steps",
18848
+ "type": "IReadOnlyList<MarketplaceValidationStepResultDto>",
18849
+ "optional": true
18595
18850
  }
18596
18851
  ]
18597
18852
  },
@@ -18629,6 +18884,16 @@
18629
18884
  }
18630
18885
  ]
18631
18886
  },
18887
+ "GetMarketplaceFunctionRunsResponse": {
18888
+ "base": "ResponseBase",
18889
+ "fields": [
18890
+ {
18891
+ "name": "runs",
18892
+ "type": "MarketplaceFunctionRunDto[] = []",
18893
+ "optional": false
18894
+ }
18895
+ ]
18896
+ },
18632
18897
  "InvokeMarketplaceFunctionResponse": {
18633
18898
  "base": "ResponseBase",
18634
18899
  "fields": [
@@ -18662,11 +18927,6 @@
18662
18927
  "GetCodeIntegrationsResponse": {
18663
18928
  "base": "ResponseBase",
18664
18929
  "fields": [
18665
- {
18666
- "name": "defaultIntegrationId",
18667
- "type": "string",
18668
- "optional": true
18669
- },
18670
18930
  {
18671
18931
  "name": "list",
18672
18932
  "type": "PaginatedResponse<CodeIntegrationListProjection>",
@@ -20293,16 +20553,6 @@
20293
20553
  }
20294
20554
  ]
20295
20555
  },
20296
- "SetCodeIntegrationAsDefault": {
20297
- "base": "CodeMashRequestBase",
20298
- "fields": [
20299
- {
20300
- "name": "id",
20301
- "type": "string",
20302
- "optional": false
20303
- }
20304
- ]
20305
- },
20306
20556
  "DeleteCodeIntegrationRequest": {
20307
20557
  "base": "CodeMashRequestBase",
20308
20558
  "fields": [
@@ -21620,11 +21870,6 @@
21620
21870
  "type": "ConfirmCodeIntegrationHumanDeliveryRequest",
21621
21871
  "optional": true
21622
21872
  },
21623
- {
21624
- "name": "typegen_208_SetCodeIntegrationAsDefault",
21625
- "type": "SetCodeIntegrationAsDefault",
21626
- "optional": true
21627
- },
21628
21873
  {
21629
21874
  "name": "typegen_209_DeleteCodeIntegrationRequest",
21630
21875
  "type": "DeleteCodeIntegrationRequest",
@@ -21959,6 +22204,11 @@
21959
22204
  "name": "typegen_283_CodeFunctionSchedulerTaskRequest",
21960
22205
  "type": "CodeFunctionSchedulerTaskRequest",
21961
22206
  "optional": true
22207
+ },
22208
+ {
22209
+ "name": "typegen_284_MarketplaceFunctionSchedulerTaskRequest",
22210
+ "type": "MarketplaceFunctionSchedulerTaskRequest",
22211
+ "optional": true
21962
22212
  }
21963
22213
  ]
21964
22214
  },
@@ -23212,6 +23462,16 @@
23212
23462
  "base": "RequestBase",
23213
23463
  "fields": []
23214
23464
  },
23465
+ "GetLicenseKey": {
23466
+ "base": "RequestBase",
23467
+ "fields": [
23468
+ {
23469
+ "name": "id",
23470
+ "type": "string",
23471
+ "optional": true
23472
+ }
23473
+ ]
23474
+ },
23215
23475
  "CreateAiServiceUserRequest": {
23216
23476
  "base": "RequestBase",
23217
23477
  "fields": [
@@ -26412,7 +26672,7 @@
26412
26672
  },
26413
26673
  {
26414
26674
  "name": "tokenMappings",
26415
- "type": "MarketplaceTokenMappingDto[] = []",
26675
+ "type": "TokenMappingDto[] = []",
26416
26676
  "optional": false
26417
26677
  }
26418
26678
  ]
@@ -26427,6 +26687,26 @@
26427
26687
  }
26428
26688
  ]
26429
26689
  },
26690
+ "GetMarketplaceFunctionRuns": {
26691
+ "base": "CodeMashRequestBase",
26692
+ "fields": [
26693
+ {
26694
+ "name": "triggerId",
26695
+ "type": "string",
26696
+ "optional": true
26697
+ },
26698
+ {
26699
+ "name": "taskId",
26700
+ "type": "string",
26701
+ "optional": true
26702
+ },
26703
+ {
26704
+ "name": "limit",
26705
+ "type": "number",
26706
+ "optional": true
26707
+ }
26708
+ ]
26709
+ },
26430
26710
  "GetCodeFunctions": {
26431
26711
  "base": "CodeMashListPaginationRequestBase",
26432
26712
  "fields": [
@@ -29539,7 +29819,19 @@
29539
29819
  "Template",
29540
29820
  "EmailFooters",
29541
29821
  "Old",
29542
- "New"
29822
+ "New",
29823
+ "RequestInput",
29824
+ "IntegrationConfig",
29825
+ "IntegrationSecret"
29826
+ ]
29827
+ },
29828
+ "SecretValueFormat": {
29829
+ "enum": true,
29830
+ "values": [
29831
+ "Raw",
29832
+ "Bearer",
29833
+ "Basic",
29834
+ "Prefixed"
29543
29835
  ]
29544
29836
  },
29545
29837
  "CollectionEmailCampaignRecipientField": {
@@ -29898,7 +30190,8 @@
29898
30190
  "PushCampaign",
29899
30191
  "SmsCampaign",
29900
30192
  "CodeFunctionalCall",
29901
- "WebhookCall"
30193
+ "WebhookCall",
30194
+ "MarketplaceFunctionCall"
29902
30195
  ]
29903
30196
  },
29904
30197
  "MarketplaceTransport": {
@@ -29931,25 +30224,12 @@
29931
30224
  "Calendar"
29932
30225
  ]
29933
30226
  },
29934
- "MarketplaceTokenResolverKind": {
29935
- "enum": true,
29936
- "values": [
29937
- "Static",
29938
- "Request",
29939
- "Project",
29940
- "Initiator",
29941
- "Custom",
29942
- "IntegrationConfig",
29943
- "IntegrationSecret"
29944
- ]
29945
- },
29946
- "MarketplaceSecretValueFormat": {
30227
+ "MarketplaceAvailability": {
29947
30228
  "enum": true,
29948
30229
  "values": [
29949
- "Raw",
29950
- "Bearer",
29951
- "Basic",
29952
- "Prefixed"
30230
+ "Development",
30231
+ "Staging",
30232
+ "Production"
29953
30233
  ]
29954
30234
  },
29955
30235
  "MarketplaceFieldType": {
@@ -29973,6 +30253,17 @@
29973
30253
  "Path"
29974
30254
  ]
29975
30255
  },
30256
+ "MarketplaceFormKind": {
30257
+ "enum": true,
30258
+ "values": [
30259
+ "Generic",
30260
+ "DatabaseQuery",
30261
+ "DatabaseWrite",
30262
+ "Message",
30263
+ "Prompt",
30264
+ "Web"
30265
+ ]
30266
+ },
29976
30267
  "CodeFunctionSource": {
29977
30268
  "enum": true,
29978
30269
  "values": [
@@ -1730,19 +1730,6 @@
1730
1730
  "pathParams": [],
1731
1731
  "scope": "project"
1732
1732
  },
1733
- {
1734
- "surface": "hub",
1735
- "group": "code",
1736
- "method": "setCodeIntegrationAsDefault",
1737
- "requestDto": "SetCodeIntegrationAsDefault",
1738
- "responseDto": "EmptyResponse",
1739
- "path": "/{version}/code/integrations/{Id}/default",
1740
- "verb": "PUT",
1741
- "pathParams": [
1742
- "Id"
1743
- ],
1744
- "scope": "project"
1745
- },
1746
1733
  {
1747
1734
  "surface": "hub",
1748
1735
  "group": "code",
@@ -2068,6 +2055,17 @@
2068
2055
  ],
2069
2056
  "scope": "project"
2070
2057
  },
2058
+ {
2059
+ "surface": "hub",
2060
+ "group": "code",
2061
+ "method": "getMarketplaceFunctionRuns",
2062
+ "requestDto": "GetMarketplaceFunctionRuns",
2063
+ "responseDto": "GetMarketplaceFunctionRunsResponse",
2064
+ "path": "/{version}/code/marketplace/functions/runs",
2065
+ "verb": "GET",
2066
+ "pathParams": [],
2067
+ "scope": "project"
2068
+ },
2071
2069
  {
2072
2070
  "surface": "hub",
2073
2071
  "group": "code",
package/dist/server.js CHANGED
@@ -73,9 +73,12 @@ export const curated = [
73
73
  { name: 'norbix_get_code_function_qualifiers', surface: 'hub', group: 'code', method: 'getCodeFunctionQualifiers', description: 'List the aliases and versions of one cloud function (functionId from norbix_get_code_functions).' },
74
74
  { name: 'norbix_invoke_code_function', surface: 'hub', group: 'code', method: 'invokeCodeFunction', description: 'Call a cloud function by hand with a manual.invoke envelope: functionRef { integrationId, functionId, qualifier? }, payload (JSON object → data.payload), invocationType Sync (wait for the result) or Async, runAsUserId (the service user the function acts as; omitted = you). Sync answers with statusCode, durationMs, output, requestId, logs.' },
75
75
  { name: 'norbix_get_code_function_event_sample', surface: 'hub', group: 'code', method: 'getCodeFunctionEventSample', description: 'A sample event envelope with example data for a source (Database | Membership | Files | Payments | Ai | Scheduler | Manual), an event name and, for Database, a schemaId — the fixture for a local run of a function.' },
76
- { name: 'norbix_get_code_function_runs', surface: 'hub', group: 'code', method: 'getCodeFunctionRuns', description: 'The last cloud-function runs of a trigger (triggerId) or a scheduler task (taskId), newest first: firedAt, event, succeeded, statusCode, durationMs, error, requestId. limit 1-50, default 20.' },
76
+ { name: 'norbix_get_code_function_runs', surface: 'hub', group: 'code', method: 'getCodeFunctionRuns', description: 'The last cloud-function runs of a trigger (triggerId) or a scheduler task (taskId), newest first: firedAt, event, succeeded, statusCode, durationMs, error, requestId; a run through the Fake provider also input — the envelope the function received as JSON text, context.runAs.accessToken masked, cut at 64 KB. limit 1-50, default 20.' },
77
77
  { name: 'norbix_get_marketplace_integrations', surface: 'hub', group: 'code', method: 'getMarketplaceIntegrations', description: 'List marketplace integrations of the project.' },
78
- { name: 'norbix_save_marketplace_integration', surface: 'hub', group: 'code', method: 'saveMarketplaceIntegration', description: 'Create or update a marketplace integration.' },
78
+ { name: 'norbix_save_marketplace_integration', surface: 'hub', group: 'code', method: 'saveMarketplaceIntegration', description: 'Enable a marketplace listing as a connection: integration { listingViewId (ml_…), integrationName, isEnabled, config { key: value } } and secrets { key: value }. Leave integration.viewId empty for a new connection — the answer\'s id is the minted int_…; set it to save an existing one again (empty secrets keep the stored ones). getMarketplaceListing shows the listing\'s config and secret fields.' },
79
+ { name: 'norbix_test_marketplace_integration', surface: 'hub', group: 'code', method: 'testMarketplaceIntegration', description: 'Validate a marketplace connection (integrationViewId): runs the listing\'s steps in order; steps[] has key, label, requiredForFunctions, succeeded, skipped, message. Functions can be added only when every requiredForFunctions step succeeded (else saveMarketplaceFunction fails with CM-ERRORS-MARKETPLACE-013).' },
80
+ { name: 'norbix_invoke_marketplace_function', surface: 'hub', group: 'code', method: 'invokeMarketplaceFunction', description: 'Call a marketplace function by hand as the caller: functionViewId (func_…) and payload (JSON object; each declared input is read from it as @Model.Request.<name>, a missing required input is refused). Answers isSuccess, output, vendorRequestId.' },
81
+ { name: 'norbix_get_marketplace_function_runs', surface: 'hub', group: 'code', method: 'getMarketplaceFunctionRuns', description: 'The last marketplace-function runs of a trigger (triggerId) or a scheduler task (taskId), newest first: firedAt, event, source, functionId, runAsUserId, succeeded, durationMs, error, vendorRequestId; a run through the Fake vendor also input — what the vendor received, secrets masked. limit 1-50, default 20.' },
79
82
  { name: 'norbix_get_database_schemas', surface: 'hub', group: 'database', method: 'getDatabaseSchemas', description: 'List database collection schemas of the project.' },
80
83
  { name: 'norbix_get_roles', surface: 'hub', group: 'membership', method: 'getRoles', description: 'List membership roles of the project.' },
81
84
  { name: 'norbix_get_policies', surface: 'hub', group: 'membership', method: 'getPolicies', description: 'List membership policies of the project.' },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norbix.ai/mcp",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Norbix MCP server — manage projects, integrations, databases, membership, notifications and every other Norbix Hub/API endpoint from Claude, Cursor, VS Code, Windsurf or any MCP client.",
5
5
  "author": "UAB Isidos",
6
6
  "license": "MIT",
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@modelcontextprotocol/sdk": "^1.12.0",
48
- "@norbix.ai/ts": "^4.19.0",
48
+ "@norbix.ai/ts": "^4.21.0",
49
49
  "express": "^4.21.2",
50
50
  "zod": "^3.24.0"
51
51
  },