@smartbear/mcp 0.16.0 → 0.17.1

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.
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { GenerationInputSchema, RefineInputSchema } from "./ai.js";
3
- import { CanIDeploySchema, MatrixSchema } from "./base.js";
3
+ import { CanIDeploySchema, MatrixSchema, GetPacticipantSchema, ListBranchesSchema, ListVersionsSchema, GetVersionSchema, GetLatestVersionSchema, GetEnvironmentSchema, RecordDeploymentSchema, GetCurrentlyDeployedSchema, RecordReleaseSchema, GetCurrentlySupportedSchema, PublishConsumerContractsSchema, PublishProviderContractSchema, GetPactsForVerificationSchema, GetBiDirectionalProviderVersionSchema, GetBiDirectionalConsumerProviderVersionSchema, GetPacticipantNetworkSchema, GetLabelSchema, LabelByNameSchema, UpdatePacticipantSchema, UpdateVersionSchema, GetBranchVersionsSchema, GetVersionDeployedSchema, CreateEnvironmentSchema, UpdateEnvironmentSchema, CreatePacticipantSchema, DeletePacticipantSchema, GetBranchSchema, DeleteBranchSchema, ManageLabelSchema, GetIntegrationsByTeamSchema, DeleteIntegrationSchema, WebhookIdSchema, CreateWebhookSchema, UpdateWebhookSchema, SecretIdSchema, CreateSecretSchema, UpdateSecretSchema, RegenerateTokenSchema, AuditSchema, ListAdminUsersSchema, AdminUserIdSchema, CreateAdminUserSchema, UpdateAdminUserSchema, InviteUsersSchema, SetUserRolesSchema, UserRoleSchema, ListAdminTeamsSchema, AdminTeamIdSchema, CreateTeamSchema, UpdateTeamSchema, TeamUserIdSchema, SetTeamUsersSchema, PatchTeamUsersSchema, AdminRoleIdSchema, CreateRoleSchema, UpdateRoleSchema, CreateSystemAccountSchema, GetSystemAccountTokensSchema } from "./base.js";
4
4
  const TOOLS = [
5
5
  {
6
6
  title: "Generate Pact Tests",
@@ -91,6 +91,770 @@ const TOOLS = [
91
91
  inputSchema: z.object({}),
92
92
  handler: "getTeamMetrics",
93
93
  clients: ["pactflow"]
94
+ },
95
+ {
96
+ title: "List Pacticipants",
97
+ summary: "Retrieve all pacticipants (applications/services) registered in the Pact Broker or PactFlow workspace.",
98
+ purpose: "Get an overview of all registered services and their metadata. Use this to discover what applications are participating in contract testing, check their main branches, and find repository URLs.",
99
+ inputSchema: z.object({
100
+ pageNumber: z.number().optional().describe("Page number (default: 1)"),
101
+ pageSize: z.number().optional().describe("Number of results per page")
102
+ }),
103
+ handler: "listPacticipants",
104
+ clients: ["pactflow", "pact_broker"]
105
+ },
106
+ {
107
+ title: "Get Pacticipant",
108
+ summary: "Retrieve details for a specific pacticipant by name.",
109
+ purpose: "Fetch metadata for a single application/service including its display name, main branch, repository URL, and labels.",
110
+ inputSchema: GetPacticipantSchema,
111
+ handler: "getPacticipant",
112
+ clients: ["pactflow", "pact_broker"]
113
+ },
114
+ {
115
+ title: "List Branches",
116
+ summary: "Retrieve all branches for a given pacticipant, with optional filtering and pagination.",
117
+ purpose: "Explore the branches that have published pacts or verifications. Useful for understanding the active development lines of a service and for identifying stale branches to clean up.",
118
+ inputSchema: ListBranchesSchema,
119
+ handler: "listBranches",
120
+ clients: ["pactflow", "pact_broker"]
121
+ },
122
+ {
123
+ title: "List Pacticipant Versions",
124
+ summary: "Retrieve all versions for a given pacticipant.",
125
+ purpose: "List all published versions of a service with their branch and tag associations. Useful for understanding which versions exist and tracing deployment history.",
126
+ inputSchema: ListVersionsSchema,
127
+ handler: "listVersions",
128
+ clients: ["pactflow", "pact_broker"]
129
+ },
130
+ {
131
+ title: "Get Pacticipant Version",
132
+ summary: "Retrieve details for a specific version of a pacticipant.",
133
+ purpose: "Fetch metadata for a single version including its branches, tags, and build URL.",
134
+ inputSchema: GetVersionSchema,
135
+ handler: "getVersion",
136
+ clients: ["pactflow", "pact_broker"]
137
+ },
138
+ {
139
+ title: "Get Latest Pacticipant Version",
140
+ summary: "Retrieve the latest version of a pacticipant, optionally filtered by tag.",
141
+ purpose: "Quickly identify the most recent version of a service. When a tag is provided, returns the latest version that has that tag applied (e.g. the latest version tagged 'prod').",
142
+ inputSchema: GetLatestVersionSchema,
143
+ handler: "getLatestVersion",
144
+ clients: ["pactflow", "pact_broker"]
145
+ },
146
+ {
147
+ title: "List Environments",
148
+ summary: "Retrieve all environments configured in the Pact Broker or PactFlow workspace.",
149
+ purpose: "Get the list of deployment environments (e.g. development, staging, production) so you can use their UUIDs in record-deployment and can-i-deploy operations.",
150
+ inputSchema: z.object({}),
151
+ handler: "listEnvironments",
152
+ clients: ["pactflow", "pact_broker"]
153
+ },
154
+ {
155
+ title: "Get Environment",
156
+ summary: "Retrieve details for a specific environment by UUID.",
157
+ purpose: "Fetch metadata for a single environment including its name, display name, production flag, and associated teams.",
158
+ inputSchema: GetEnvironmentSchema,
159
+ handler: "getEnvironment",
160
+ clients: ["pactflow", "pact_broker"]
161
+ },
162
+ {
163
+ title: "Record Deployment",
164
+ summary: "Record that a version of a pacticipant has been deployed to an environment.",
165
+ purpose: "Inform PactFlow/Pact Broker of a successful deployment so that can-i-deploy checks and contract verification can use real deployment state. This is a key step in the PactFlow deployment workflow — run it after each successful deploy to keep the deployment state accurate.",
166
+ inputSchema: RecordDeploymentSchema,
167
+ handler: "recordDeployment",
168
+ clients: ["pactflow", "pact_broker"]
169
+ },
170
+ {
171
+ title: "Get Currently Deployed Versions",
172
+ summary: "Retrieve all versions currently deployed to a given environment.",
173
+ purpose: "Check which versions of all services are currently running in an environment. Useful for auditing the state of an environment or for troubleshooting deployment issues.",
174
+ inputSchema: GetCurrentlyDeployedSchema,
175
+ handler: "getCurrentlyDeployed",
176
+ clients: ["pactflow", "pact_broker"]
177
+ },
178
+ {
179
+ title: "Record Release",
180
+ summary: "Record that a version of a pacticipant has been released to an environment (for mobile/library release workflows).",
181
+ purpose: "Use for services that are 'released' rather than 'deployed' — e.g. mobile apps, libraries, or multi-version APIs where multiple versions coexist simultaneously. Unlike record-deployment (which marks previous versions as no longer deployed), record-release marks a version as currently supported without replacing prior versions.",
182
+ inputSchema: RecordReleaseSchema,
183
+ handler: "recordRelease",
184
+ clients: ["pactflow", "pact_broker"]
185
+ },
186
+ {
187
+ title: "Get Currently Supported Versions",
188
+ summary: "Retrieve all versions currently released and supported in a given environment.",
189
+ purpose: "Check which released versions are still actively supported in an environment. Important for mobile or library workflows where multiple versions are simultaneously in use.",
190
+ inputSchema: GetCurrentlySupportedSchema,
191
+ handler: "getCurrentlySupported",
192
+ clients: ["pactflow", "pact_broker"]
193
+ },
194
+ {
195
+ title: "Publish Consumer Contracts",
196
+ summary: "Publish one or more consumer Pact contracts to the Pact Broker or PactFlow, with branch and tag metadata.",
197
+ purpose: "Upload consumer-driven contract files after running consumer tests. Associate each contract with a branch and version number so that PactFlow can match it to provider verification results and enable can-i-deploy checks.",
198
+ inputSchema: PublishConsumerContractsSchema,
199
+ handler: "publishContracts",
200
+ clients: ["pactflow", "pact_broker"]
201
+ },
202
+ {
203
+ title: "Publish Provider Contract",
204
+ summary: "Publish a provider OpenAPI contract and self-verification results to PactFlow (Bi-Directional Contract Testing).",
205
+ purpose: "Upload an OpenAPI specification as a provider contract along with the results of running a tool (e.g. Dredd, Schemathesis) that verifies the provider implementation against the spec. This enables PactFlow to perform automated cross-contract verification without requiring the provider to run the consumer Pact tests.",
206
+ inputSchema: PublishProviderContractSchema,
207
+ handler: "publishProviderContract",
208
+ clients: ["pactflow"]
209
+ },
210
+ {
211
+ title: "Get Pacts for Verification",
212
+ summary: "Retrieve the pacts that a provider should verify, based on consumer version selectors and WIP/pending pact configuration.",
213
+ purpose: "Fetch the exact set of consumer pacts that a provider needs to verify in its current CI run. Use consumer version selectors to control which consumer branches and environments are included. Enable WIP pacts to get early feedback on new consumer interactions without breaking the provider build.",
214
+ inputSchema: GetPactsForVerificationSchema,
215
+ handler: "getPactsForVerification",
216
+ clients: ["pactflow", "pact_broker"]
217
+ },
218
+ {
219
+ title: "Get BDCT Provider Contract",
220
+ summary: "Fetch the provider OpenAPI contract for a given provider version in Bi-Directional Contract Testing.",
221
+ purpose: "Retrieve the OpenAPI specification that was published as the provider contract for a specific version. Also returns the verification status of that contract against all consumer pacts.",
222
+ inputSchema: GetBiDirectionalProviderVersionSchema,
223
+ handler: "getBiDirectionalProviderContract",
224
+ clients: ["pactflow"]
225
+ },
226
+ {
227
+ title: "Get BDCT Provider Contract Verification Results",
228
+ summary: "Fetch the self-verification results for a provider contract version in Bi-Directional Contract Testing.",
229
+ purpose: "Retrieve the results of the tool (e.g. Dredd, Schemathesis) that verified the provider implementation against its own OpenAPI spec. Use this to understand whether the provider passed its self-verification step.",
230
+ inputSchema: GetBiDirectionalProviderVersionSchema,
231
+ handler: "getBiDirectionalProviderContractVerificationResults",
232
+ clients: ["pactflow"]
233
+ },
234
+ {
235
+ title: "Get BDCT Consumer Contracts",
236
+ summary: "Fetch all consumer Pact contracts relevant to a given provider version in Bi-Directional Contract Testing.",
237
+ purpose: "Retrieve the consumer-side Pact contracts that PactFlow compared against the provider's OpenAPI spec for a specific provider version. Useful for understanding which consumer interactions triggered a cross-contract verification.",
238
+ inputSchema: GetBiDirectionalProviderVersionSchema,
239
+ handler: "getBiDirectionalConsumerContract",
240
+ clients: ["pactflow"]
241
+ },
242
+ {
243
+ title: "Get BDCT Consumer Contract Verification Results",
244
+ summary: "Fetch the consumer contract verification results for a given provider version in Bi-Directional Contract Testing.",
245
+ purpose: "Retrieve the results of comparing all consumer Pact contracts against the provider's OpenAPI spec for a specific provider version. Shows whether each consumer interaction is covered by the spec.",
246
+ inputSchema: GetBiDirectionalProviderVersionSchema,
247
+ handler: "getBiDirectionalConsumerContractVerificationResults",
248
+ clients: ["pactflow"]
249
+ },
250
+ {
251
+ title: "Get BDCT Cross-Contract Verification Results",
252
+ summary: "Fetch the cross-contract verification results for a given provider version in Bi-Directional Contract Testing.",
253
+ purpose: "Retrieve the combined results of PactFlow's automated cross-contract comparison for a specific provider version — the outcome of comparing the provider's OpenAPI spec against all relevant consumer Pact files. This is the key result that determines whether can-i-deploy will pass.",
254
+ inputSchema: GetBiDirectionalProviderVersionSchema,
255
+ handler: "getBiDirectionalCrossContractVerificationResults",
256
+ clients: ["pactflow"]
257
+ },
258
+ {
259
+ title: "Get BDCT Consumer Contract by Consumer Version",
260
+ summary: "Fetch the consumer Pact contract for a specific consumer-provider version pair in Bi-Directional Contract Testing.",
261
+ purpose: "Retrieve the Pact contract published by a specific consumer version, in the context of a specific provider version. Use this when you need the exact consumer contract that was compared against a given provider spec.",
262
+ inputSchema: GetBiDirectionalConsumerProviderVersionSchema,
263
+ handler: "getBiDirectionalConsumerContractByConsumer",
264
+ clients: ["pactflow"]
265
+ },
266
+ {
267
+ title: "Get BDCT Provider Contract by Consumer Version",
268
+ summary: "Fetch the provider OpenAPI contract for a specific consumer-provider version pair in Bi-Directional Contract Testing.",
269
+ purpose: "Retrieve the provider's OpenAPI spec in the context of a specific consumer version pair. Useful when investigating why a particular consumer-provider combination failed cross-contract verification.",
270
+ inputSchema: GetBiDirectionalConsumerProviderVersionSchema,
271
+ handler: "getBiDirectionalProviderContractByConsumer",
272
+ clients: ["pactflow"]
273
+ },
274
+ {
275
+ title: "Get BDCT Provider Contract Verification Results by Consumer Version",
276
+ summary: "Fetch the provider contract self-verification results for a specific consumer-provider version pair in Bi-Directional Contract Testing.",
277
+ purpose: "Retrieve the provider's self-verification results in the context of a specific consumer version pair. Use when diagnosing failures for a particular consumer-provider combination.",
278
+ inputSchema: GetBiDirectionalConsumerProviderVersionSchema,
279
+ handler: "getBiDirectionalProviderContractVerificationResultsByConsumer",
280
+ clients: ["pactflow"]
281
+ },
282
+ {
283
+ title: "Get BDCT Consumer Contract Verification Results by Consumer Version",
284
+ summary: "Fetch the consumer contract verification results for a specific consumer-provider version pair in Bi-Directional Contract Testing.",
285
+ purpose: "Retrieve the results of comparing a specific consumer version's Pact against the provider's OpenAPI spec. Shows exactly which interactions passed or failed the cross-contract comparison.",
286
+ inputSchema: GetBiDirectionalConsumerProviderVersionSchema,
287
+ handler: "getBiDirectionalConsumerContractVerificationResultsByConsumer",
288
+ clients: ["pactflow"]
289
+ },
290
+ {
291
+ title: "Get BDCT Cross-Contract Verification Results by Consumer Version",
292
+ summary: "Fetch the cross-contract verification results for a specific consumer-provider version pair in Bi-Directional Contract Testing.",
293
+ purpose: "Retrieve the precise cross-contract comparison outcome between a specific consumer version and provider version. This is the most granular BDCT result — use it to understand exactly why a specific consumer-provider pairing succeeded or failed, and which interactions were incompatible.",
294
+ inputSchema: GetBiDirectionalConsumerProviderVersionSchema,
295
+ handler: "getBiDirectionalCrossContractVerificationResultsByConsumer",
296
+ clients: ["pactflow"]
297
+ },
298
+ {
299
+ title: "List Integrations",
300
+ summary: "Retrieve all consumer-provider integrations registered in the workspace.",
301
+ purpose: "Get a high-level view of all the consumer-provider pairings that have pacts published. An integration is automatically created when a consumer publishes a pact for a provider.",
302
+ inputSchema: z.object({}),
303
+ handler: "listIntegrations",
304
+ clients: ["pactflow", "pact_broker"]
305
+ },
306
+ {
307
+ title: "Get Pacticipant Network",
308
+ summary: "Retrieve the integration network graph for a specific pacticipant.",
309
+ purpose: "Visualise all the consumer-provider relationships for a service — both the services it consumes and the consumers that depend on it. Use this to understand the blast radius of changes to a service.",
310
+ inputSchema: GetPacticipantNetworkSchema,
311
+ handler: "getPacticipantNetwork",
312
+ clients: ["pactflow", "pact_broker"]
313
+ },
314
+ {
315
+ title: "List Labels",
316
+ summary: "Retrieve all labels used across the workspace.",
317
+ purpose: "Get a list of every label that has been applied to any pacticipant. Labels are used to categorise services and enable label-based queries.",
318
+ inputSchema: z.object({
319
+ pageNumber: z.number().optional().describe("Page number"),
320
+ pageSize: z.number().optional().describe("Results per page")
321
+ }),
322
+ handler: "listLabels",
323
+ clients: ["pactflow", "pact_broker"]
324
+ },
325
+ {
326
+ title: "Get Pacticipant Label",
327
+ summary: "Check whether a specific label is applied to a pacticipant.",
328
+ purpose: "Verify that a label exists on a pacticipant. Returns 404 if the label is not applied.",
329
+ inputSchema: GetLabelSchema,
330
+ handler: "getPacticipantLabel",
331
+ clients: ["pactflow", "pact_broker"]
332
+ },
333
+ {
334
+ title: "List Pacticipants by Label",
335
+ summary: "Retrieve all pacticipants that have a specific label applied.",
336
+ purpose: "Filter the pacticipant list by label. Useful for querying services by team ownership, technology, or any custom grouping you have applied via labels.",
337
+ inputSchema: LabelByNameSchema,
338
+ handler: "listPacticipantsByLabel",
339
+ clients: ["pactflow", "pact_broker"]
340
+ },
341
+ {
342
+ title: "Update Pacticipant",
343
+ summary: "Fully replace a pacticipant's metadata (display name, main branch, repository URL, etc.).",
344
+ purpose: "Update a service's metadata with a full replacement. All fields not provided will be cleared. Use Patch Pacticipant instead if you only want to update specific fields.",
345
+ inputSchema: UpdatePacticipantSchema,
346
+ handler: "updatePacticipant",
347
+ clients: ["pactflow", "pact_broker"]
348
+ },
349
+ {
350
+ title: "Patch Pacticipant",
351
+ summary: "Partially update a pacticipant's metadata — only fields provided are changed.",
352
+ purpose: "Update one or more properties of a service without affecting the others. Prefer this over Update Pacticipant when you only need to change a specific field such as the main branch.",
353
+ inputSchema: UpdatePacticipantSchema,
354
+ handler: "patchPacticipant",
355
+ clients: ["pactflow", "pact_broker"]
356
+ },
357
+ {
358
+ title: "Update Pacticipant Version",
359
+ summary: "Update metadata for a specific pacticipant version.",
360
+ purpose: "Set or update the build URL for an existing version. This is useful when the build URL was not available at publish time.",
361
+ inputSchema: UpdateVersionSchema,
362
+ handler: "updateVersion",
363
+ clients: ["pactflow", "pact_broker"]
364
+ },
365
+ {
366
+ title: "Get Branch Versions",
367
+ summary: "Retrieve all versions published from a specific branch of a pacticipant.",
368
+ purpose: "List the history of versions for a particular branch. Useful for understanding which versions were created on a feature branch before it was merged.",
369
+ inputSchema: GetBranchVersionsSchema,
370
+ handler: "getBranchVersions",
371
+ clients: ["pactflow", "pact_broker"]
372
+ },
373
+ {
374
+ title: "Get Deployed Versions for Version",
375
+ summary: "Retrieve deployment records for a specific pacticipant version in a specific environment.",
376
+ purpose: "Check the deployment history for a particular version in a given environment. Returns all deployment records including whether each is currently active.",
377
+ inputSchema: GetVersionDeployedSchema,
378
+ handler: "getDeployedVersions",
379
+ clients: ["pactflow", "pact_broker"]
380
+ },
381
+ {
382
+ title: "Get Released Versions for Version",
383
+ summary: "Retrieve release records for a specific pacticipant version in a specific environment.",
384
+ purpose: "Check the release history for a particular version in a given environment. Used in mobile/library workflows to see all release records for a version.",
385
+ inputSchema: GetVersionDeployedSchema,
386
+ handler: "getReleasedVersions",
387
+ clients: ["pactflow", "pact_broker"]
388
+ },
389
+ {
390
+ title: "Create Environment",
391
+ summary: "Create a new deployment environment in PactFlow.",
392
+ purpose: "Register a new environment (e.g. 'staging', 'production') so it can be used in record-deployment and can-i-deploy workflows.",
393
+ inputSchema: CreateEnvironmentSchema,
394
+ handler: "createEnvironment",
395
+ clients: ["pactflow", "pact_broker"]
396
+ },
397
+ {
398
+ title: "Update Environment",
399
+ summary: "Update an existing environment's metadata.",
400
+ purpose: "Rename an environment, change its production flag, or update team assignments.",
401
+ inputSchema: UpdateEnvironmentSchema,
402
+ handler: "updateEnvironment",
403
+ clients: ["pactflow", "pact_broker"]
404
+ },
405
+ {
406
+ title: "Delete Environment",
407
+ summary: "Delete an environment by UUID.",
408
+ purpose: "Remove an environment that is no longer needed. This will also remove all deployed and released version records for this environment.",
409
+ inputSchema: GetEnvironmentSchema,
410
+ handler: "deleteEnvironment",
411
+ clients: ["pactflow", "pact_broker"]
412
+ },
413
+ {
414
+ title: "Create Pacticipant",
415
+ summary: "Register a new application/service (pacticipant) in the workspace.",
416
+ purpose: "Create a pacticipant entry before publishing contracts or recording deployments. The name cannot be changed after creation.",
417
+ inputSchema: CreatePacticipantSchema,
418
+ handler: "createPacticipant",
419
+ clients: ["pactflow", "pact_broker"]
420
+ },
421
+ {
422
+ title: "Delete Pacticipant",
423
+ summary: "Delete a pacticipant and all its associated data.",
424
+ purpose: "Remove a service from the workspace, including all its pacts, verifications, deployments, and version records.",
425
+ inputSchema: DeletePacticipantSchema,
426
+ handler: "deletePacticipant",
427
+ clients: ["pactflow", "pact_broker"]
428
+ },
429
+ {
430
+ title: "Get Branch",
431
+ summary: "Retrieve details for a specific branch of a pacticipant.",
432
+ purpose: "Fetch metadata for a single branch, including its latest version.",
433
+ inputSchema: GetBranchSchema,
434
+ handler: "getBranch",
435
+ clients: ["pactflow", "pact_broker"]
436
+ },
437
+ {
438
+ title: "Delete Branch",
439
+ summary: "Delete a branch from a pacticipant.",
440
+ purpose: "Remove a stale branch record. This does not delete the versions or pacts published from the branch.",
441
+ inputSchema: DeleteBranchSchema,
442
+ handler: "deleteBranch",
443
+ clients: ["pactflow", "pact_broker"]
444
+ },
445
+ {
446
+ title: "Add Label to Pacticipant",
447
+ summary: "Apply a label to a pacticipant.",
448
+ purpose: "Tag a service with a label for grouping and filtering. Creates the label if it does not already exist.",
449
+ inputSchema: ManageLabelSchema,
450
+ handler: "addLabel",
451
+ clients: ["pactflow", "pact_broker"]
452
+ },
453
+ {
454
+ title: "Remove Label from Pacticipant",
455
+ summary: "Remove a label from a pacticipant.",
456
+ purpose: "Delete the label association from a pacticipant. Does not affect other pacticipants that have the same label.",
457
+ inputSchema: ManageLabelSchema,
458
+ handler: "removeLabel",
459
+ clients: ["pactflow", "pact_broker"]
460
+ },
461
+ {
462
+ title: "Get Integrations by Team",
463
+ summary: "Retrieve all consumer-provider integrations belonging to a specific team.",
464
+ purpose: "Filter the integration list by team ownership to see only the pairings relevant to a given team.",
465
+ inputSchema: GetIntegrationsByTeamSchema,
466
+ handler: "getIntegrationsByTeam",
467
+ clients: ["pactflow"]
468
+ },
469
+ {
470
+ title: "Delete Integration",
471
+ summary: "Delete a specific consumer-provider integration.",
472
+ purpose: "Remove the integration record between a consumer and provider. Use with caution — this removes the link even if pacts exist.",
473
+ inputSchema: DeleteIntegrationSchema,
474
+ handler: "deleteIntegration",
475
+ clients: ["pactflow", "pact_broker"]
476
+ },
477
+ {
478
+ title: "Delete All Integrations",
479
+ summary: "Delete ALL consumer-provider integrations in the workspace.",
480
+ purpose: "Bulk-remove all integration records. This is a destructive operation — use only when resetting the workspace.",
481
+ inputSchema: z.object({}),
482
+ handler: "deleteAllIntegrations",
483
+ clients: ["pactflow", "pact_broker"]
484
+ },
485
+ {
486
+ title: "List Webhooks",
487
+ summary: "Retrieve all webhooks configured in the workspace.",
488
+ purpose: "Get an overview of all webhook triggers, their target URLs, and enabled/disabled status.",
489
+ inputSchema: z.object({}),
490
+ handler: "listWebhooks",
491
+ clients: ["pactflow", "pact_broker"]
492
+ },
493
+ {
494
+ title: "Get Webhook",
495
+ summary: "Retrieve details for a specific webhook by UUID.",
496
+ purpose: "Fetch the full configuration of a single webhook including events, request details, and consumer/provider filters.",
497
+ inputSchema: WebhookIdSchema,
498
+ handler: "getWebhook",
499
+ clients: ["pactflow", "pact_broker"]
500
+ },
501
+ {
502
+ title: "Create Webhook",
503
+ summary: "Create a new webhook to trigger on contract events.",
504
+ purpose: "Set up automated notifications or CI triggers that fire when contracts change, verifications are published, or other events occur.",
505
+ inputSchema: CreateWebhookSchema,
506
+ handler: "createWebhook",
507
+ clients: ["pactflow", "pact_broker"]
508
+ },
509
+ {
510
+ title: "Update Webhook",
511
+ summary: "Update an existing webhook's configuration.",
512
+ purpose: "Modify the URL, events, consumer/provider filters, or enabled status of a webhook.",
513
+ inputSchema: UpdateWebhookSchema,
514
+ handler: "updateWebhook",
515
+ clients: ["pactflow", "pact_broker"]
516
+ },
517
+ {
518
+ title: "Delete Webhook",
519
+ summary: "Delete a webhook by UUID.",
520
+ purpose: "Permanently remove a webhook. Any in-flight triggered executions will still complete.",
521
+ inputSchema: WebhookIdSchema,
522
+ handler: "deleteWebhook",
523
+ clients: ["pactflow", "pact_broker"]
524
+ },
525
+ {
526
+ title: "Test Execute Webhooks",
527
+ summary: "Trigger a test execution of all matching webhooks without a real event.",
528
+ purpose: "Verify webhook configuration by sending a test request. Useful for debugging URL, auth, or body template issues.",
529
+ inputSchema: z.object({}),
530
+ handler: "executeWebhooks",
531
+ clients: ["pactflow", "pact_broker"]
532
+ },
533
+ {
534
+ title: "Execute Webhook",
535
+ summary: "Trigger a test execution of a specific webhook.",
536
+ purpose: "Send a test request for a single webhook to verify its configuration without waiting for a real event.",
537
+ inputSchema: WebhookIdSchema,
538
+ handler: "executeWebhook",
539
+ clients: ["pactflow", "pact_broker"]
540
+ },
541
+ {
542
+ title: "List Secrets",
543
+ summary: "Retrieve all secrets stored in the workspace.",
544
+ purpose: "Get an overview of all configured secrets. Note: secret values are never returned — only metadata.",
545
+ inputSchema: z.object({}),
546
+ handler: "listSecrets",
547
+ clients: ["pactflow"]
548
+ },
549
+ {
550
+ title: "Get Secret",
551
+ summary: "Retrieve metadata for a specific secret by UUID.",
552
+ purpose: "Fetch secret metadata (name, description, team). The secret value is never returned.",
553
+ inputSchema: SecretIdSchema,
554
+ handler: "getSecret",
555
+ clients: ["pactflow"]
556
+ },
557
+ {
558
+ title: "Create Secret",
559
+ summary: "Create a new secret for use in webhook authentication.",
560
+ purpose: "Store a sensitive value (API key, password, token) securely. The value can be referenced in webhook configurations without exposing it.",
561
+ inputSchema: CreateSecretSchema,
562
+ handler: "createSecret",
563
+ clients: ["pactflow"]
564
+ },
565
+ {
566
+ title: "Update Secret",
567
+ summary: "Update an existing secret's name, value, or description.",
568
+ purpose: "Rotate or rename a secret. The team assignment cannot be changed after creation.",
569
+ inputSchema: UpdateSecretSchema,
570
+ handler: "updateSecret",
571
+ clients: ["pactflow"]
572
+ },
573
+ {
574
+ title: "Delete Secret",
575
+ summary: "Delete a secret by UUID.",
576
+ purpose: "Permanently remove a secret. Any webhooks referencing this secret will need to be updated.",
577
+ inputSchema: SecretIdSchema,
578
+ handler: "deleteSecret",
579
+ clients: ["pactflow"]
580
+ },
581
+ {
582
+ title: "Get Current User",
583
+ summary: "Retrieve the profile of the currently authenticated user.",
584
+ purpose: "Check who you are authenticated as, including your UUID, name, email, and roles.",
585
+ inputSchema: z.object({}),
586
+ handler: "getCurrentUser",
587
+ clients: ["pactflow"]
588
+ },
589
+ {
590
+ title: "List API Tokens",
591
+ summary: "Retrieve API tokens for the current user.",
592
+ purpose: "List the read-only and read-write API tokens for the authenticated user.",
593
+ inputSchema: z.object({}),
594
+ handler: "listTokens",
595
+ clients: ["pactflow"]
596
+ },
597
+ {
598
+ title: "Regenerate API Token",
599
+ summary: "Regenerate (rotate) an API token by ID.",
600
+ purpose: "Invalidate the current token and generate a new one. Use when a token has been compromised.",
601
+ inputSchema: RegenerateTokenSchema,
602
+ handler: "regenerateToken",
603
+ clients: ["pactflow"]
604
+ },
605
+ {
606
+ title: "Get User Preferences",
607
+ summary: "Retrieve the current user's preferences.",
608
+ purpose: "Fetch all preference settings for the authenticated user.",
609
+ inputSchema: z.object({}),
610
+ handler: "getUserPreferences",
611
+ clients: ["pactflow"]
612
+ },
613
+ {
614
+ title: "Get System Preferences",
615
+ summary: "Retrieve system-wide preferences.",
616
+ purpose: "Fetch all system-level preference settings for the workspace.",
617
+ inputSchema: z.object({}),
618
+ handler: "getSystemPreferences",
619
+ clients: ["pactflow"]
620
+ },
621
+ {
622
+ title: "Get Audit Log",
623
+ summary: "Retrieve the audit log of events in the workspace.",
624
+ purpose: "Search and filter the audit trail of actions taken in PactFlow. Useful for compliance, debugging, and security reviews.",
625
+ useCases: [
626
+ "Review recent changes to pacticipants, webhooks, or secrets",
627
+ "Investigate who published a specific pact or verification",
628
+ "Filter events by user or event type for compliance reporting",
629
+ "Track deployment recording activity across environments"
630
+ ],
631
+ inputSchema: AuditSchema,
632
+ handler: "getAuditLog",
633
+ clients: ["pactflow"]
634
+ },
635
+ {
636
+ title: "Admin List Users",
637
+ summary: "List all users in the workspace (admin).",
638
+ purpose: "Get an overview of all user accounts with optional filtering by active status, name/email, or user type.",
639
+ inputSchema: ListAdminUsersSchema,
640
+ handler: "listAdminUsers",
641
+ clients: ["pactflow"]
642
+ },
643
+ {
644
+ title: "Admin Get User",
645
+ summary: "Retrieve details for a specific user by UUID (admin).",
646
+ purpose: "Fetch a user's profile including their email, name, roles, and active status.",
647
+ inputSchema: AdminUserIdSchema,
648
+ handler: "getAdminUser",
649
+ clients: ["pactflow"]
650
+ },
651
+ {
652
+ title: "Admin Create User",
653
+ summary: "Create a new user account (admin).",
654
+ purpose: "Add a new user to the workspace. For SSO environments, provide externalIdpId or externalIdpUsername to match the IdP identity.",
655
+ inputSchema: CreateAdminUserSchema,
656
+ handler: "createAdminUser",
657
+ clients: ["pactflow"]
658
+ },
659
+ {
660
+ title: "Admin Update User",
661
+ summary: "Update a user's profile or active status (admin).",
662
+ purpose: "Modify user details such as name, email, or active status. Deactivating a user prevents them from logging in.",
663
+ inputSchema: UpdateAdminUserSchema,
664
+ handler: "updateAdminUser",
665
+ clients: ["pactflow"]
666
+ },
667
+ {
668
+ title: "Admin Delete User",
669
+ summary: "Delete a user account (admin).",
670
+ purpose: "Permanently remove a user from the workspace.",
671
+ inputSchema: AdminUserIdSchema,
672
+ handler: "deleteAdminUser",
673
+ clients: ["pactflow"]
674
+ },
675
+ {
676
+ title: "Admin Invite Users",
677
+ summary: "Send invitations to new users (admin).",
678
+ purpose: "Invite one or more people to join the workspace by email. They will receive an invitation email.",
679
+ inputSchema: InviteUsersSchema,
680
+ handler: "inviteUsers",
681
+ clients: ["pactflow"]
682
+ },
683
+ {
684
+ title: "Admin Set User Roles",
685
+ summary: "Replace all roles assigned to a user (admin).",
686
+ purpose: "Fully replace the set of roles for a user. All existing roles are removed and replaced with the provided list.",
687
+ inputSchema: SetUserRolesSchema,
688
+ handler: "setUserRoles",
689
+ clients: ["pactflow"]
690
+ },
691
+ {
692
+ title: "Admin Add Role to User",
693
+ summary: "Add a single role to a user (admin).",
694
+ purpose: "Grant an additional role to a user without affecting their existing roles.",
695
+ inputSchema: UserRoleSchema,
696
+ handler: "addRoleToUser",
697
+ clients: ["pactflow"]
698
+ },
699
+ {
700
+ title: "Admin Remove Role from User",
701
+ summary: "Remove a single role from a user (admin).",
702
+ purpose: "Revoke a specific role from a user without affecting their other roles.",
703
+ inputSchema: UserRoleSchema,
704
+ handler: "removeRoleFromUser",
705
+ clients: ["pactflow"]
706
+ },
707
+ {
708
+ title: "Admin List Teams",
709
+ summary: "List all teams in the workspace (admin).",
710
+ purpose: "Get an overview of all teams with optional name filtering and pagination.",
711
+ inputSchema: ListAdminTeamsSchema,
712
+ handler: "listAdminTeams",
713
+ clients: ["pactflow"]
714
+ },
715
+ {
716
+ title: "Admin Get Team",
717
+ summary: "Retrieve details for a specific team by UUID (admin).",
718
+ purpose: "Fetch a team's configuration including its name, members, environments, and pacticipants.",
719
+ inputSchema: AdminTeamIdSchema,
720
+ handler: "getAdminTeam",
721
+ clients: ["pactflow"]
722
+ },
723
+ {
724
+ title: "Admin Create Team",
725
+ summary: "Create a new team (admin).",
726
+ purpose: "Add a new team to the workspace and optionally assign administrators, environments, and pacticipants.",
727
+ inputSchema: CreateTeamSchema,
728
+ handler: "createAdminTeam",
729
+ clients: ["pactflow"]
730
+ },
731
+ {
732
+ title: "Admin Update Team",
733
+ summary: "Replace a team's configuration (admin).",
734
+ purpose: "Fully update a team's name, administrators, environments, and pacticipant assignments.",
735
+ inputSchema: UpdateTeamSchema,
736
+ handler: "updateAdminTeam",
737
+ clients: ["pactflow"]
738
+ },
739
+ {
740
+ title: "Admin Delete Team",
741
+ summary: "Delete a team (admin).",
742
+ purpose: "Permanently remove a team from the workspace. Members are not deleted.",
743
+ inputSchema: AdminTeamIdSchema,
744
+ handler: "deleteAdminTeam",
745
+ clients: ["pactflow"]
746
+ },
747
+ {
748
+ title: "Admin List Team Users",
749
+ summary: "List all users in a specific team (admin).",
750
+ purpose: "Retrieve all user members of a team.",
751
+ inputSchema: AdminTeamIdSchema,
752
+ handler: "listTeamUsers",
753
+ clients: ["pactflow"]
754
+ },
755
+ {
756
+ title: "Admin Get Team User",
757
+ summary: "Check if a specific user is a member of a team (admin).",
758
+ purpose: "Verify team membership for a user. Returns 404 if the user is not in the team.",
759
+ inputSchema: TeamUserIdSchema,
760
+ handler: "getTeamUser",
761
+ clients: ["pactflow"]
762
+ },
763
+ {
764
+ title: "Admin Set Team Users",
765
+ summary: "Replace all members of a team (admin).",
766
+ purpose: "Fully replace the set of users in a team. All existing members are removed and replaced with the provided list.",
767
+ inputSchema: SetTeamUsersSchema,
768
+ handler: "setTeamUsers",
769
+ clients: ["pactflow"]
770
+ },
771
+ {
772
+ title: "Admin Patch Team Users",
773
+ summary: "Add or remove individual users from a team using JSON Patch (admin).",
774
+ purpose: "Make targeted changes to team membership — add specific users or remove them — without replacing the entire member list.",
775
+ inputSchema: PatchTeamUsersSchema,
776
+ handler: "patchTeamUsers",
777
+ clients: ["pactflow"]
778
+ },
779
+ {
780
+ title: "Admin Remove User from Team",
781
+ summary: "Remove a specific user from a team (admin).",
782
+ purpose: "Revoke team membership for a user.",
783
+ inputSchema: TeamUserIdSchema,
784
+ handler: "removeUserFromTeam",
785
+ clients: ["pactflow"]
786
+ },
787
+ {
788
+ title: "Admin List Roles",
789
+ summary: "List all roles defined in the workspace (admin).",
790
+ purpose: "Get an overview of all role definitions and their associated permissions.",
791
+ inputSchema: z.object({}),
792
+ handler: "listAdminRoles",
793
+ clients: ["pactflow"]
794
+ },
795
+ {
796
+ title: "Admin Get Role",
797
+ summary: "Retrieve details for a specific role by UUID (admin).",
798
+ purpose: "Fetch a role's name, description, and full list of permission scopes.",
799
+ inputSchema: AdminRoleIdSchema,
800
+ handler: "getAdminRole",
801
+ clients: ["pactflow"]
802
+ },
803
+ {
804
+ title: "Admin Create Role",
805
+ summary: "Create a new role with specific permissions (admin).",
806
+ purpose: "Define a custom role with a tailored set of permission scopes. Roles can then be assigned to users.",
807
+ inputSchema: CreateRoleSchema,
808
+ handler: "createAdminRole",
809
+ clients: ["pactflow"]
810
+ },
811
+ {
812
+ title: "Admin Update Role",
813
+ summary: "Update an existing role's name and permissions (admin).",
814
+ purpose: "Modify the permission set of a role. Changes take effect for all users assigned the role.",
815
+ inputSchema: UpdateRoleSchema,
816
+ handler: "updateAdminRole",
817
+ clients: ["pactflow"]
818
+ },
819
+ {
820
+ title: "Admin Delete Role",
821
+ summary: "Delete a role (admin).",
822
+ purpose: "Permanently remove a role. Users currently assigned this role will lose its permissions.",
823
+ inputSchema: AdminRoleIdSchema,
824
+ handler: "deleteAdminRole",
825
+ clients: ["pactflow"]
826
+ },
827
+ {
828
+ title: "Admin Reset Roles",
829
+ summary: "Reset all roles to their factory defaults (admin).",
830
+ purpose: "Restore the built-in roles to their original permission sets. Custom roles are removed.",
831
+ inputSchema: z.object({}),
832
+ handler: "resetAdminRoles",
833
+ clients: ["pactflow"]
834
+ },
835
+ {
836
+ title: "Admin List Permissions",
837
+ summary: "List all available permission scopes (admin).",
838
+ purpose: "Retrieve all permission scopes that can be assigned to roles.",
839
+ inputSchema: z.object({}),
840
+ handler: "listAdminPermissions",
841
+ clients: ["pactflow"]
842
+ },
843
+ {
844
+ title: "Admin Create System Account",
845
+ summary: "Create a new system account (admin).",
846
+ purpose: "Add a machine/service account that can authenticate via API token rather than user credentials.",
847
+ inputSchema: CreateSystemAccountSchema,
848
+ handler: "createSystemAccount",
849
+ clients: ["pactflow"]
850
+ },
851
+ {
852
+ title: "Admin Get System Account Tokens",
853
+ summary: "Retrieve API tokens for a system account (admin).",
854
+ purpose: "Get the tokens associated with a system account for use in CI/CD pipelines.",
855
+ inputSchema: GetSystemAccountTokensSchema,
856
+ handler: "getSystemAccountTokens",
857
+ clients: ["pactflow"]
94
858
  }
95
859
  ];
96
860
  export {