Zoetis Capabilities
Naftiko 0.5 capability definitions for Zoetis - 100 capabilities showing integration workflows and service orchestrations.
When an adverse event is reported for an animal health product, creates a case in Salesforce, logs it in the pharmacovigilance system, opens a ServiceNow incident, and alerts the safety team in Slack.
naftiko: "0.5"
info:
label: "Adverse Event Reporting Pipeline"
description: "When an adverse event is reported for an animal health product, creates a case in Salesforce, logs it in the pharmacovigilance system, opens a ServiceNow incident, and alerts the safety team in Slack."
tags:
- regulatory
- pharmacovigilance
- salesforce
- servicenow
- slack
- animal-health
capability:
exposes:
- type: mcp
namespace: pharmacovigilance
port: 8080
tools:
- name: report-adverse-event
description: "Given adverse event details, create Salesforce case, log in PV system, open ServiceNow ticket, and alert team."
inputParameters:
- name: product_name
in: body
type: string
description: "The product involved."
- name: species
in: body
type: string
description: "The animal species affected."
- name: event_description
in: body
type: string
description: "Description of the adverse event."
- name: severity
in: body
type: string
description: "Severity (mild, moderate, severe, fatal)."
- name: reporter_email
in: body
type: string
description: "The reporter's email address."
steps:
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Adverse Event: {{product_name}} - {{species}}"
priority: "{{severity}}"
description: "{{event_description}}"
type: "Pharmacovigilance"
- name: log-pv-event
type: call
call: "pharmacovigilance.create-report"
with:
product_name: "{{product_name}}"
species: "{{species}}"
description: "{{event_description}}"
severity: "{{severity}}"
reporter: "{{reporter_email}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "AE Report: {{product_name}} - {{species}} ({{severity}})"
category: "pharmacovigilance"
priority: "{{severity}}"
- name: alert-safety-team
type: call
call: "slack.post-message"
with:
channel: "pharmacovigilance-alerts"
text: "ADVERSE EVENT: {{severity}} - {{product_name}} in {{species}}. {{event_description}}. Case: {{create-case.id}}. PV Report: {{log-pv-event.report_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: pharmacovigilance
baseUri: "https://api.zoetis.com/pv/v1"
authentication:
type: bearer
token: "$secrets.pv_api_token"
resources:
- name: reports
path: "/adverse-events"
operations:
- name: create-report
method: POST
- type: http
namespace: servicenow
baseUri: "https://zoetis.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Orchestrates animal health workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 1"
description: "Orchestrates animal health workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-001
description: "Orchestrates animal health workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 2"
description: "Orchestrates animal health workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-002
description: "Orchestrates animal health workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 3.
naftiko: "0.5"
info:
label: "Animal Health Data Query 3"
description: "Retrieves animal health operational data for workflow 3."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-3
description: "Query animal health data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates animal health workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 4"
description: "Orchestrates animal health workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-004
description: "Orchestrates animal health workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 5"
description: "Orchestrates animal health workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-005
description: "Orchestrates animal health workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 6.
naftiko: "0.5"
info:
label: "Animal Health Data Query 6"
description: "Retrieves animal health operational data for workflow 6."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-6
description: "Query animal health data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates animal health workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 7"
description: "Orchestrates animal health workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-007
description: "Orchestrates animal health workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 8"
description: "Orchestrates animal health workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-008
description: "Orchestrates animal health workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 9.
naftiko: "0.5"
info:
label: "Animal Health Data Query 9"
description: "Retrieves animal health operational data for workflow 9."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-9
description: "Query animal health data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates animal health workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 10"
description: "Orchestrates animal health workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-010
description: "Orchestrates animal health workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 11"
description: "Orchestrates animal health workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-011
description: "Orchestrates animal health workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 12.
naftiko: "0.5"
info:
label: "Animal Health Data Query 12"
description: "Retrieves animal health operational data for workflow 12."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-12
description: "Query animal health data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates animal health workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 13"
description: "Orchestrates animal health workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-013
description: "Orchestrates animal health workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 14"
description: "Orchestrates animal health workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-014
description: "Orchestrates animal health workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 15.
naftiko: "0.5"
info:
label: "Animal Health Data Query 15"
description: "Retrieves animal health operational data for workflow 15."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-15
description: "Query animal health data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Orchestrates animal health workflow 16 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 16"
description: "Orchestrates animal health workflow 16 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-016
description: "Orchestrates animal health workflow 16 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 16 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 17 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 17"
description: "Orchestrates animal health workflow 17 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-017
description: "Orchestrates animal health workflow 17 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 17 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 18.
naftiko: "0.5"
info:
label: "Animal Health Data Query 18"
description: "Retrieves animal health operational data for workflow 18."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-18
description: "Query animal health data for workflow 18."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-18
method: GET
Orchestrates animal health workflow 19 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 19"
description: "Orchestrates animal health workflow 19 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-019
description: "Orchestrates animal health workflow 19 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 19 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 20 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 20"
description: "Orchestrates animal health workflow 20 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-020
description: "Orchestrates animal health workflow 20 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 20 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 21.
naftiko: "0.5"
info:
label: "Animal Health Data Query 21"
description: "Retrieves animal health operational data for workflow 21."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-21
description: "Query animal health data for workflow 21."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-21
method: GET
Orchestrates animal health workflow 22 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 22"
description: "Orchestrates animal health workflow 22 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-022
description: "Orchestrates animal health workflow 22 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 22 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 23 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 23"
description: "Orchestrates animal health workflow 23 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-023
description: "Orchestrates animal health workflow 23 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 23 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 24.
naftiko: "0.5"
info:
label: "Animal Health Data Query 24"
description: "Retrieves animal health operational data for workflow 24."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-24
description: "Query animal health data for workflow 24."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-24
method: GET
Orchestrates animal health workflow 25 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 25"
description: "Orchestrates animal health workflow 25 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-025
description: "Orchestrates animal health workflow 25 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 25 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates animal health workflow 26 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 26"
description: "Orchestrates animal health workflow 26 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-026
description: "Orchestrates animal health workflow 26 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 26 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves animal health operational data for workflow 27.
naftiko: "0.5"
info:
label: "Animal Health Data Query 27"
description: "Retrieves animal health operational data for workflow 27."
tags:
- animal
- operations
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: get-data-27
description: "Query animal health data for workflow 27."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "animal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: animal-api
baseUri: "https://api.zoetis.com/animal-health/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-27
method: GET
Orchestrates animal health workflow 28 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Animal Health Workflow 28"
description: "Orchestrates animal health workflow 28 by coordinating across systems, validating data, and sending notifications."
tags:
- animal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: animal
port: 8080
tools:
- name: run-animal-health-workflow-028
description: "Orchestrates animal health workflow 28 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Animal Health Workflow 28 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves Azure DevOps pipeline status.
naftiko: "0.5"
info:
label: "Azure DevOps Pipeline Viewer"
description: "Retrieves Azure DevOps pipeline status."
tags:
- engineering
- azure-devops
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-azure
description: "Retrieves Azure DevOps pipeline status."
inputParameters:
- name: entity_id
in: body
type: string
description: "The azure devops pipeline viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.zoetis.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: azure
path: "/azure/devops/pipeline/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-azure
method: GET
Retrieves the quality certificate for a manufacturing batch.
naftiko: "0.5"
info:
label: "Batch Quality Certificate"
description: "Retrieves the quality certificate for a manufacturing batch."
tags:
- quality
- manufacturing
capability:
exposes:
- type: mcp
namespace: quality
port: 8080
tools:
- name: get-batch
description: "Retrieves the quality certificate for a manufacturing batch."
inputParameters:
- name: entity_id
in: body
type: string
description: "The batch quality certificate identifier."
call: "quality-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: quality-api
baseUri: "https://api.zoetis.com/quality/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: batch
path: "/batch/quality/certificate/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-batch
method: GET
Retrieves results from a veterinary clinical study.
naftiko: "0.5"
info:
label: "Clinical Study Results Lookup"
description: "Retrieves results from a veterinary clinical study."
tags:
- research
- clinical
capability:
exposes:
- type: mcp
namespace: research
port: 8080
tools:
- name: get-clinical
description: "Retrieves results from a veterinary clinical study."
inputParameters:
- name: entity_id
in: body
type: string
description: "The clinical study results lookup identifier."
call: "research-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: research-api
baseUri: "https://api.zoetis.com/research/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: clinical
path: "/clinical/study/results/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-clinical
method: GET
Retrieves the current status of an animal health clinical trial from the R&D management system.
naftiko: "0.5"
info:
label: "Clinical Trial Status Lookup"
description: "Retrieves the current status of an animal health clinical trial from the R&D management system."
tags:
- r-and-d
- clinical-trials
- animal-health
capability:
exposes:
- type: mcp
namespace: clinical-trials
port: 8080
tools:
- name: get-trial-status
description: "Look up a clinical trial by ID. Returns phase, species, enrollment, and status."
inputParameters:
- name: trial_id
in: body
type: string
description: "The clinical trial identifier."
call: "rnd.get-trial"
with:
trial_id: "{{trial_id}}"
outputParameters:
- name: phase
type: string
mapping: "$.trial.phase"
- name: species
type: string
mapping: "$.trial.target_species"
- name: enrollment
type: integer
mapping: "$.trial.subjects_enrolled"
- name: status
type: string
mapping: "$.trial.status"
- name: principal_investigator
type: string
mapping: "$.trial.pi_name"
consumes:
- type: http
namespace: rnd
baseUri: "https://api.zoetis.com/rnd/v2"
authentication:
type: bearer
token: "$secrets.rnd_api_token"
resources:
- name: trials
path: "/trials/{{trial_id}}"
inputParameters:
- name: trial_id
in: path
operations:
- name: get-trial
method: GET
Retrieves diagnostic test results for a companion animal from the diagnostics platform by sample ID.
naftiko: "0.5"
info:
label: "Companion Animal Diagnostics Result Lookup"
description: "Retrieves diagnostic test results for a companion animal from the diagnostics platform by sample ID."
tags:
- animal-health
- diagnostics
- laboratory
capability:
exposes:
- type: mcp
namespace: diagnostics
port: 8080
tools:
- name: get-diagnostic-results
description: "Look up diagnostic test results by sample ID."
inputParameters:
- name: sample_id
in: body
type: string
description: "The diagnostic sample identifier."
call: "diagnostics.get-results"
with:
sample_id: "{{sample_id}}"
outputParameters:
- name: test_type
type: string
mapping: "$.results.test_type"
- name: species
type: string
mapping: "$.results.species"
- name: result
type: string
mapping: "$.results.outcome"
- name: reported_date
type: string
mapping: "$.results.reported_date"
consumes:
- type: http
namespace: diagnostics
baseUri: "https://api.zoetis.com/diagnostics/v1"
authentication:
type: bearer
token: "$secrets.diagnostics_api_token"
resources:
- name: results
path: "/samples/{{sample_id}}/results"
inputParameters:
- name: sample_id
in: path
operations:
- name: get-results
method: GET
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.zoetis.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a Datadog monitor status.
naftiko: "0.5"
info:
label: "Datadog Monitor Viewer"
description: "Retrieves a Datadog monitor status."
tags:
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: monitoring
port: 8080
tools:
- name: get-datadog
description: "Retrieves a Datadog monitor status."
inputParameters:
- name: entity_id
in: body
type: string
description: "The datadog monitor viewer identifier."
call: "monitoring-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: monitoring-api
baseUri: "https://api.zoetis.com/monitoring/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: datadog
path: "/datadog/monitor/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-datadog
method: GET
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a disease outbreak is detected, aggregates surveillance data from Snowflake, creates an alert in Salesforce, notifies the epidemiology team in Slack, and updates the outbreak tracking dashboard in Power BI.
naftiko: "0.5"
info:
label: "Disease Outbreak Monitoring Pipeline"
description: "When a disease outbreak is detected, aggregates surveillance data from Snowflake, creates an alert in Salesforce, notifies the epidemiology team in Slack, and updates the outbreak tracking dashboard in Power BI."
tags:
- animal-health
- epidemiology
- snowflake
- salesforce
- slack
- power-bi
capability:
exposes:
- type: mcp
namespace: disease-surveillance
port: 8080
tools:
- name: process-outbreak-alert
description: "Given outbreak details, aggregate data, create alert, notify team, and update dashboard."
inputParameters:
- name: disease_name
in: body
type: string
description: "The disease name."
- name: species
in: body
type: string
description: "Affected species."
- name: region
in: body
type: string
description: "Geographic region of the outbreak."
- name: severity
in: body
type: string
description: "Outbreak severity (low, moderate, high, critical)."
steps:
- name: aggregate-data
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT region, species, COUNT(*) as cases, MAX(report_date) as latest_report FROM surveillance.outbreak_reports WHERE disease = '{{disease_name}}' AND species = '{{species}}' AND region = '{{region}}' GROUP BY region, species"
database: "ZOETIS_SURVEILLANCE"
- name: create-alert
type: call
call: "salesforce.create-case"
with:
subject: "Outbreak Alert: {{disease_name}} in {{species}} - {{region}}"
priority: "{{severity}}"
type: "Disease_Surveillance"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "epidemiology-alerts"
text: "OUTBREAK ALERT: {{disease_name}} in {{species}} ({{region}}). Severity: {{severity}}. Case: {{create-alert.id}}. Review surveillance data."
- name: refresh-dashboard
type: call
call: "powerbi.trigger-refresh"
with:
group_id: "surveillance_workspace"
dataset_id: "outbreak_tracking"
consumes:
- type: http
namespace: snowflake
baseUri: "https://zoetis.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: group_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
method: POST
Retrieves account balance for a distributor.
naftiko: "0.5"
info:
label: "Distributor Account Balance"
description: "Retrieves account balance for a distributor."
tags:
- finance
- distribution
capability:
exposes:
- type: mcp
namespace: finance
port: 8080
tools:
- name: get-distributor
description: "Retrieves account balance for a distributor."
inputParameters:
- name: entity_id
in: body
type: string
description: "The distributor account balance identifier."
call: "finance-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: finance-api
baseUri: "https://api.zoetis.com/finance/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: distributor
path: "/distributor/account/balance/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-distributor
method: GET
When a distributor places an order, validates inventory in SAP, creates a sales order, updates the Salesforce opportunity, and sends order confirmation via SendGrid.
naftiko: "0.5"
info:
label: "Distributor Order Processing Pipeline"
description: "When a distributor places an order, validates inventory in SAP, creates a sales order, updates the Salesforce opportunity, and sends order confirmation via SendGrid."
tags:
- sales
- sap
- salesforce
- sendgrid
- distribution
capability:
exposes:
- type: mcp
namespace: order-management
port: 8080
tools:
- name: process-distributor-order
description: "Given order details, validate inventory, create SAP order, update CRM, and confirm."
inputParameters:
- name: distributor_id
in: body
type: string
description: "The SAP distributor customer ID."
- name: product_sku
in: body
type: string
description: "The product SKU."
- name: quantity
in: body
type: integer
description: "Order quantity."
- name: distributor_email
in: body
type: string
description: "The distributor contact email."
steps:
- name: check-inventory
type: call
call: "sap.check-material-availability"
with:
material: "{{product_sku}}"
quantity: "{{quantity}}"
- name: create-sales-order
type: call
call: "sap.create-sales-order"
with:
customer: "{{distributor_id}}"
material: "{{product_sku}}"
quantity: "{{quantity}}"
- name: update-opportunity
type: call
call: "salesforce.update-opportunity"
with:
distributor_id: "{{distributor_id}}"
order_number: "{{create-sales-order.order_number}}"
amount: "{{create-sales-order.total_amount}}"
- name: send-confirmation
type: call
call: "sendgrid.send-email"
with:
to: "{{distributor_email}}"
template_id: "order_confirmation"
dynamic_data:
order_number: "{{create-sales-order.order_number}}"
product: "{{product_sku}}"
quantity: "{{quantity}}"
delivery_date: "{{create-sales-order.delivery_date}}"
consumes:
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/API_SALES_ORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: availability
path: "/A_Product('{{material}}')/to_ProductAvailability"
inputParameters:
- name: material
in: path
operations:
- name: check-material-availability
method: GET
- name: sales-orders
path: "/A_SalesOrder"
operations:
- name: create-sales-order
method: POST
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity"
operations:
- name: update-opportunity
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
When a new animal health product is approved, creates a regulatory record in the compliance system, updates the product catalog in SAP, registers with Salesforce for commercial launch, and notifies the regulatory team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Drug Product Registration Pipeline"
description: "When a new animal health product is approved, creates a regulatory record in the compliance system, updates the product catalog in SAP, registers with Salesforce for commercial launch, and notifies the regulatory team in Microsoft Teams."
tags:
- regulatory
- manufacturing
- sap
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: product-registration
port: 8080
tools:
- name: register-product
description: "Given product approval details, create regulatory record, update SAP, register in CRM, and notify team."
inputParameters:
- name: product_name
in: body
type: string
description: "The approved product name."
- name: nda_number
in: body
type: string
description: "The regulatory NDA or approval number."
- name: species
in: body
type: string
description: "Target species (e.g., canine, feline, bovine, porcine, poultry)."
- name: therapeutic_area
in: body
type: string
description: "Therapeutic area (e.g., parasiticides, vaccines, anti-infectives)."
- name: market
in: body
type: string
description: "Market region (US, EU, APAC, LATAM)."
steps:
- name: create-regulatory-record
type: call
call: "regulatory.register-approval"
with:
product_name: "{{product_name}}"
nda_number: "{{nda_number}}"
species: "{{species}}"
market: "{{market}}"
- name: create-sap-material
type: call
call: "sap.create-material"
with:
material_name: "{{product_name}}"
material_group: "{{therapeutic_area}}"
regulatory_ref: "{{nda_number}}"
- name: create-sf-product
type: call
call: "salesforce.create-product"
with:
name: "{{product_name}}"
species: "{{species}}"
therapeutic_area: "{{therapeutic_area}}"
nda_number: "{{nda_number}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "regulatory-approvals"
text: "Product registered: {{product_name}} ({{nda_number}}) for {{species}} in {{market}}. SAP: {{create-sap-material.material_number}}. Salesforce: {{create-sf-product.id}}"
consumes:
- type: http
namespace: regulatory
baseUri: "https://api.zoetis.com/regulatory/v1"
authentication:
type: bearer
token: "$secrets.regulatory_api_token"
resources:
- name: approvals
path: "/approvals"
operations:
- name: register-approval
method: POST
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/API_PRODUCT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: materials
path: "/A_Product"
operations:
- name: create-material
method: POST
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: products
path: "/sobjects/Product2"
operations:
- name: create-product
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding"
folder_path: "NewHires/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to Zoetis, {{get-employee.first_name}}! Ticket: {{open-ticket.number}}. Documents: {{provision-folder.url}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://zoetis.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves GitHub repository information.
naftiko: "0.5"
info:
label: "GitHub Repo Viewer"
description: "Retrieves GitHub repository information."
tags:
- engineering
- github
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-github
description: "Retrieves GitHub repository information."
inputParameters:
- name: entity_id
in: body
type: string
description: "The github repo viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.zoetis.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: github
path: "/github/repo/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-github
method: GET
When a GMP deviation is detected in manufacturing, creates a CAPA in the quality system, opens a ServiceNow incident, notifies the quality team in Microsoft Teams, and logs the deviation in the regulatory system.
naftiko: "0.5"
info:
label: "GMP Deviation Investigation Workflow"
description: "When a GMP deviation is detected in manufacturing, creates a CAPA in the quality system, opens a ServiceNow incident, notifies the quality team in Microsoft Teams, and logs the deviation in the regulatory system."
tags:
- manufacturing
- quality
- regulatory
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: quality-deviations
port: 8080
tools:
- name: report-deviation
description: "Given deviation details, create CAPA, open incident, notify team, and log in regulatory."
inputParameters:
- name: plant_id
in: body
type: string
description: "The manufacturing plant identifier."
- name: deviation_type
in: body
type: string
description: "Type of deviation (process, equipment, material, documentation)."
- name: description
in: body
type: string
description: "Description of the deviation."
- name: severity
in: body
type: string
description: "Severity (minor, major, critical)."
- name: batch_number
in: body
type: string
description: "Affected batch number, if applicable."
steps:
- name: create-capa
type: call
call: "quality.create-capa"
with:
plant_id: "{{plant_id}}"
type: "{{deviation_type}}"
description: "{{description}}"
severity: "{{severity}}"
batch: "{{batch_number}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "GMP Deviation: {{deviation_type}} at {{plant_id}}"
category: "quality_deviation"
priority: "{{severity}}"
description: "{{description}}. Batch: {{batch_number}}"
- name: log-regulatory
type: call
call: "regulatory.log-deviation"
with:
plant_id: "{{plant_id}}"
deviation_type: "{{deviation_type}}"
capa_id: "{{create-capa.capa_id}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "quality-deviations"
text: "GMP DEVIATION: {{severity}} {{deviation_type}} at {{plant_id}}. Batch: {{batch_number}}. CAPA: {{create-capa.capa_id}}. ServiceNow: {{create-incident.number}}"
consumes:
- type: http
namespace: quality
baseUri: "https://api.zoetis.com/quality/v1"
authentication:
type: bearer
token: "$secrets.quality_api_token"
resources:
- name: capas
path: "/capas"
operations:
- name: create-capa
method: POST
- type: http
namespace: servicenow
baseUri: "https://zoetis.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: regulatory
baseUri: "https://api.zoetis.com/regulatory/v1"
authentication:
type: bearer
token: "$secrets.regulatory_api_token"
resources:
- name: deviations
path: "/deviations"
operations:
- name: log-deviation
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves a document from Google Drive by file ID.
naftiko: "0.5"
info:
label: "Google Drive Document Retrieval"
description: "Retrieves a document from Google Drive by file ID."
tags:
- collaboration
- google-drive
- documents
capability:
exposes:
- type: mcp
namespace: document-mgmt
port: 8080
tools:
- name: get-drive-file
description: "Fetch a Google Drive file's metadata by file ID."
inputParameters:
- name: file_id
in: body
type: string
description: "The Google Drive file identifier."
call: "gdrive.get-file"
with:
file_id: "{{file_id}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: owner
type: string
mapping: "$.owners[0].displayName"
- name: modified_time
type: string
mapping: "$.modifiedTime"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files/{{file_id}}?fields=name,owners,modifiedTime"
inputParameters:
- name: file_id
in: path
operations:
- name: get-file
method: GET
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.zoetis.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a Jira ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.zoetis.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves calibration status for R&D lab equipment from the LIMS system.
naftiko: "0.5"
info:
label: "Lab Equipment Calibration Tracker"
description: "Retrieves calibration status for R&D lab equipment from the LIMS system."
tags:
- r-and-d
- laboratory
- equipment
capability:
exposes:
- type: mcp
namespace: lab-equipment
port: 8080
tools:
- name: get-calibration-status
description: "Check calibration status for lab equipment."
inputParameters:
- name: equipment_id
in: body
type: string
description: "The lab equipment identifier."
call: "lims.get-calibration"
with:
equipment_id: "{{equipment_id}}"
outputParameters:
- name: last_calibrated
type: string
mapping: "$.calibration.last_date"
- name: next_due
type: string
mapping: "$.calibration.next_due"
- name: status
type: string
mapping: "$.calibration.status"
- name: certificate_id
type: string
mapping: "$.calibration.certificate_id"
consumes:
- type: http
namespace: lims
baseUri: "https://api.zoetis.com/lims/v1"
authentication:
type: bearer
token: "$secrets.lims_api_token"
resources:
- name: calibrations
path: "/equipment/{{equipment_id}}/calibration"
inputParameters:
- name: equipment_id
in: path
operations:
- name: get-calibration
method: GET
When a manufacturing batch passes quality testing, updates the batch record in SAP, creates a quality release document, notifies the quality team in Microsoft Teams, and logs the release in the regulatory compliance system.
naftiko: "0.5"
info:
label: "Manufacturing Batch Release Orchestrator"
description: "When a manufacturing batch passes quality testing, updates the batch record in SAP, creates a quality release document, notifies the quality team in Microsoft Teams, and logs the release in the regulatory compliance system."
tags:
- manufacturing
- quality
- sap
- microsoft-teams
- regulatory
capability:
exposes:
- type: mcp
namespace: batch-release
port: 8080
tools:
- name: release-batch
description: "Given a batch number and QC results, process batch release across SAP, quality, and regulatory systems."
inputParameters:
- name: batch_number
in: body
type: string
description: "The manufacturing batch number."
- name: product_name
in: body
type: string
description: "The product name."
- name: plant_id
in: body
type: string
description: "The manufacturing plant identifier."
- name: qc_result
in: body
type: string
description: "Quality control result (pass, conditional_pass)."
steps:
- name: update-batch
type: call
call: "sap.update-batch-status"
with:
batch_number: "{{batch_number}}"
status: "released"
qc_result: "{{qc_result}}"
- name: create-release-doc
type: call
call: "quality.create-release-document"
with:
batch_number: "{{batch_number}}"
product_name: "{{product_name}}"
plant_id: "{{plant_id}}"
- name: log-regulatory
type: call
call: "regulatory.log-batch-release"
with:
batch_number: "{{batch_number}}"
product_name: "{{product_name}}"
release_document: "{{create-release-doc.document_id}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "quality-releases"
text: "Batch {{batch_number}} ({{product_name}}) released from {{plant_id}}. QC: {{qc_result}}. Release doc: {{create-release-doc.document_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/API_BATCH_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: batches
path: "/A_Batch('{{batch_number}}')"
inputParameters:
- name: batch_number
in: path
operations:
- name: update-batch-status
method: PATCH
- type: http
namespace: quality
baseUri: "https://api.zoetis.com/quality/v1"
authentication:
type: bearer
token: "$secrets.quality_api_token"
resources:
- name: releases
path: "/release-documents"
operations:
- name: create-release-document
method: POST
- type: http
namespace: regulatory
baseUri: "https://api.zoetis.com/regulatory/v1"
authentication:
type: bearer
token: "$secrets.regulatory_api_token"
resources:
- name: batch-releases
path: "/batch-releases"
operations:
- name: log-batch-release
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Queries Snowflake for manufacturing plant utilization and capacity metrics.
naftiko: "0.5"
info:
label: "Manufacturing Plant Capacity Query"
description: "Queries Snowflake for manufacturing plant utilization and capacity metrics."
tags:
- manufacturing
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: mfg-analytics
port: 8080
tools:
- name: get-plant-capacity
description: "Fetch manufacturing plant capacity and utilization metrics."
inputParameters:
- name: plant_id
in: body
type: string
description: "The manufacturing plant identifier."
- name: period
in: body
type: string
description: "Reporting period (e.g., 2026-Q1)."
call: "snowflake.execute-query"
with:
statement: "SELECT line_id, product_type, SUM(units_produced) as produced, SUM(planned_units) as planned, SUM(units_produced)/SUM(planned_units)*100 as utilization_pct FROM manufacturing.production WHERE plant_id = '{{plant_id}}' AND period = '{{period}}' GROUP BY line_id, product_type"
database: "ZOETIS_MFG"
outputParameters:
- name: results
type: array
mapping: "$.data"
consumes:
- type: http
namespace: snowflake
baseUri: "https://zoetis.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends a notification message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a notification message to a Microsoft Teams channel."
tags:
- collaboration
- microsoft-teams
- messaging
capability:
exposes:
- type: mcp
namespace: teams-messaging
port: 8080
tools:
- name: send-teams-notification
description: "Send a notification to a Microsoft Teams channel."
inputParameters:
- name: team_id
in: body
type: string
description: "The Teams team ID."
- name: channel_id
in: body
type: string
description: "The Teams channel ID."
- name: message
in: body
type: string
description: "The notification message."
call: "msteams.send-message"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.zoetis.com/communications/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Triggers a Power BI dataset refresh for manufacturing and sales dashboards.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresh"
description: "Triggers a Power BI dataset refresh for manufacturing and sales dashboards."
tags:
- analytics
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: bi-reporting
port: 8080
tools:
- name: refresh-dataset
description: "Trigger a Power BI dataset refresh."
inputParameters:
- name: workspace_id
in: body
type: string
description: "The Power BI workspace ID."
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.trigger-refresh"
with:
group_id: "{{workspace_id}}"
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: group_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
method: POST
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.zoetis.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries SAP for current inventory levels of an animal health product across manufacturing plants and distribution centers.
naftiko: "0.5"
info:
label: "Product Inventory Level Check"
description: "Queries SAP for current inventory levels of an animal health product across manufacturing plants and distribution centers."
tags:
- manufacturing
- sap
- inventory
capability:
exposes:
- type: mcp
namespace: inventory
port: 8080
tools:
- name: get-inventory-levels
description: "Fetch SAP inventory levels for a product across plants."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
call: "sap.get-material-stock"
with:
material: "{{material_number}}"
outputParameters:
- name: total_stock
type: number
mapping: "$.d.TotalStock"
- name: available_stock
type: number
mapping: "$.d.AvailableStock"
- name: unit
type: string
mapping: "$.d.BaseUnit"
consumes:
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: material-stock
path: "/A_MatlStkInAcctMod(Material='{{material}}')"
inputParameters:
- name: material
in: path
operations:
- name: get-material-stock
method: GET
When a product label update is approved, uploads new label artwork to SharePoint, updates the product record in SAP, creates a change request in ServiceNow, and notifies the packaging team in Slack.
naftiko: "0.5"
info:
label: "Product Label Update Workflow"
description: "When a product label update is approved, uploads new label artwork to SharePoint, updates the product record in SAP, creates a change request in ServiceNow, and notifies the packaging team in Slack."
tags:
- regulatory
- manufacturing
- sharepoint
- sap
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: label-management
port: 8080
tools:
- name: process-label-update
description: "Given label update details, upload artwork, update SAP, create change request, and notify team."
inputParameters:
- name: product_name
in: body
type: string
description: "The product name."
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: change_reason
in: body
type: string
description: "Reason for the label change."
- name: effective_date
in: body
type: string
description: "Effective date for the new label."
steps:
- name: upload-artwork
type: call
call: "sharepoint.upload-file"
with:
site_id: "product_labels"
folder_path: "{{product_name}}/{{effective_date}}"
file_name: "label_{{material_number}}_{{effective_date}}.pdf"
- name: update-sap
type: call
call: "sap.update-material-label"
with:
material_number: "{{material_number}}"
label_version: "{{effective_date}}"
label_url: "{{upload-artwork.url}}"
- name: create-change-request
type: call
call: "servicenow.create-change-request"
with:
short_description: "Label update: {{product_name}} effective {{effective_date}}"
category: "product_labeling"
description: "{{change_reason}}. New artwork: {{upload-artwork.url}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "packaging-ops"
text: "Label update approved for {{product_name}} effective {{effective_date}}. Reason: {{change_reason}}. Change request: {{create-change-request.number}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/API_PRODUCT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: materials
path: "/A_Product('{{material_number}}')"
inputParameters:
- name: material_number
in: path
operations:
- name: update-material-label
method: PATCH
- type: http
namespace: servicenow
baseUri: "https://zoetis.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: change-requests
path: "/table/change_request"
operations:
- name: create-change-request
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
When a product recall is initiated, updates SAP inventory status, creates a Salesforce campaign for affected customers, opens a ServiceNow major incident, sends recall notifications via SendGrid, and alerts leadership in Slack.
naftiko: "0.5"
info:
label: "Product Recall Orchestrator"
description: "When a product recall is initiated, updates SAP inventory status, creates a Salesforce campaign for affected customers, opens a ServiceNow major incident, sends recall notifications via SendGrid, and alerts leadership in Slack."
tags:
- regulatory
- quality
- sap
- salesforce
- servicenow
- sendgrid
- slack
capability:
exposes:
- type: mcp
namespace: product-recall
port: 8080
tools:
- name: initiate-recall
description: "Given recall details, update inventory, notify customers, create incident, and alert leadership."
inputParameters:
- name: product_name
in: body
type: string
description: "The product being recalled."
- name: batch_numbers
in: body
type: string
description: "Comma-separated affected batch numbers."
- name: recall_reason
in: body
type: string
description: "Reason for the recall."
- name: recall_class
in: body
type: string
description: "Recall classification (I, II, III)."
steps:
- name: block-inventory
type: call
call: "sap.block-batches"
with:
product_name: "{{product_name}}"
batch_numbers: "{{batch_numbers}}"
reason: "RECALL_{{recall_class}}"
- name: create-campaign
type: call
call: "salesforce.create-campaign"
with:
name: "Product Recall: {{product_name}} - Class {{recall_class}}"
type: "Recall"
description: "{{recall_reason}}. Batches: {{batch_numbers}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "PRODUCT RECALL: {{product_name}} Class {{recall_class}}"
category: "product_recall"
priority: "1"
description: "{{recall_reason}}. Batches: {{batch_numbers}}"
- name: send-notifications
type: call
call: "sendgrid.send-email"
with:
list_id: "affected_distributors"
template_id: "product_recall_notice"
dynamic_data:
product: "{{product_name}}"
batches: "{{batch_numbers}}"
reason: "{{recall_reason}}"
class: "{{recall_class}}"
- name: alert-leadership
type: call
call: "slack.post-message"
with:
channel: "leadership-urgent"
text: "PRODUCT RECALL INITIATED: {{product_name}} (Class {{recall_class}}). Batches: {{batch_numbers}}. Reason: {{recall_reason}}. ServiceNow: {{create-incident.number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/API_BATCH_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: batches
path: "/A_Batch"
operations:
- name: block-batches
method: POST
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: campaigns
path: "/sobjects/Campaign"
operations:
- name: create-campaign
method: POST
- type: http
namespace: servicenow
baseUri: "https://zoetis.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves registration status for a veterinary product.
naftiko: "0.5"
info:
label: "Product Registration Status"
description: "Retrieves registration status for a veterinary product."
tags:
- regulatory
- product-management
capability:
exposes:
- type: mcp
namespace: regulatory
port: 8080
tools:
- name: get-product
description: "Retrieves registration status for a veterinary product."
inputParameters:
- name: entity_id
in: body
type: string
description: "The product registration status identifier."
call: "regulatory-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: regulatory-api
baseUri: "https://api.zoetis.com/regulatory/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: product
path: "/product/registration/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-product
method: GET
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When receiving raw materials from a supplier, validates the Certificate of Analysis, checks supplier quality scores in SAP, logs the receipt in the quality system, and notifies the procurement team in Slack.
naftiko: "0.5"
info:
label: "Raw Material Supplier Quality Pipeline"
description: "When receiving raw materials from a supplier, validates the Certificate of Analysis, checks supplier quality scores in SAP, logs the receipt in the quality system, and notifies the procurement team in Slack."
tags:
- manufacturing
- quality
- sap
- slack
- procurement
capability:
exposes:
- type: mcp
namespace: supplier-quality
port: 8080
tools:
- name: process-material-receipt
description: "Given material receipt details, validate CoA, check supplier quality, log receipt, and notify."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
- name: vendor_id
in: body
type: string
description: "The SAP vendor identifier."
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: batch_number
in: body
type: string
description: "The supplier batch number."
steps:
- name: get-supplier-quality
type: call
call: "sap.get-vendor-evaluation"
with:
vendor_id: "{{vendor_id}}"
- name: log-receipt
type: call
call: "quality.log-material-receipt"
with:
po_number: "{{po_number}}"
material: "{{material_number}}"
batch: "{{batch_number}}"
vendor_score: "{{get-supplier-quality.overall_score}}"
- name: notify-procurement
type: call
call: "slack.post-message"
with:
channel: "procurement-quality"
text: "Material received: {{material_number}} batch {{batch_number}} from vendor {{vendor_id}} (score: {{get-supplier-quality.overall_score}}). PO: {{po_number}}. Receipt: {{log-receipt.receipt_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: vendor-evaluations
path: "/A_BusinessPartner('{{vendor_id}}')/to_SupplierEvaluation"
inputParameters:
- name: vendor_id
in: path
operations:
- name: get-vendor-evaluation
method: GET
- type: http
namespace: quality
baseUri: "https://api.zoetis.com/quality/v1"
authentication:
type: bearer
token: "$secrets.quality_api_token"
resources:
- name: material-receipts
path: "/material-receipts"
operations:
- name: log-material-receipt
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Aggregates R&D pipeline data from the clinical trials system and Snowflake, calculates progress metrics, and updates the Power BI executive dashboard.
naftiko: "0.5"
info:
label: "R&D Pipeline Dashboard Builder"
description: "Aggregates R&D pipeline data from the clinical trials system and Snowflake, calculates progress metrics, and updates the Power BI executive dashboard."
tags:
- r-and-d
- analytics
- snowflake
- power-bi
capability:
exposes:
- type: mcp
namespace: rnd-reporting
port: 8080
tools:
- name: build-pipeline-dashboard
description: "Given a therapeutic area and year, aggregate R&D metrics and refresh the dashboard."
inputParameters:
- name: therapeutic_area
in: body
type: string
description: "The therapeutic area to report on."
- name: year
in: body
type: string
description: "The reporting year."
steps:
- name: query-pipeline
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT species, phase, COUNT(*) as programs, SUM(investment_mm) as total_investment FROM rnd.pipeline WHERE therapeutic_area = '{{therapeutic_area}}' AND year = '{{year}}' GROUP BY species, phase ORDER BY species, phase"
database: "ZOETIS_RND"
- name: refresh-dashboard
type: call
call: "powerbi.trigger-refresh"
with:
group_id: "rnd_workspace"
dataset_id: "pipeline_metrics"
consumes:
- type: http
namespace: snowflake
baseUri: "https://zoetis.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: group_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
method: POST
When a regulatory submission is ready, uploads documents to SharePoint, creates a tracking record in the regulatory system, notifies the regulatory affairs team in Microsoft Teams, and logs the submission in Salesforce.
naftiko: "0.5"
info:
label: "Regulatory Submission Pipeline"
description: "When a regulatory submission is ready, uploads documents to SharePoint, creates a tracking record in the regulatory system, notifies the regulatory affairs team in Microsoft Teams, and logs the submission in Salesforce."
tags:
- regulatory
- sharepoint
- microsoft-teams
- salesforce
capability:
exposes:
- type: mcp
namespace: regulatory-submissions
port: 8080
tools:
- name: submit-regulatory-filing
description: "Given filing details, upload docs, create tracking record, notify team, and log in CRM."
inputParameters:
- name: filing_type
in: body
type: string
description: "Type of filing (NDA, ANADA, supplement, variation)."
- name: product_name
in: body
type: string
description: "The product name."
- name: market
in: body
type: string
description: "Target market (US, EU, APAC)."
- name: submission_date
in: body
type: string
description: "Submission date in YYYY-MM-DD format."
steps:
- name: upload-documents
type: call
call: "sharepoint.upload-file"
with:
site_id: "regulatory_filings"
folder_path: "{{filing_type}}/{{product_name}}/{{market}}"
file_name: "{{filing_type}}_{{product_name}}_{{submission_date}}.pdf"
- name: create-tracking
type: call
call: "regulatory.create-submission"
with:
filing_type: "{{filing_type}}"
product_name: "{{product_name}}"
market: "{{market}}"
submission_date: "{{submission_date}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "regulatory-submissions"
text: "Regulatory submission filed: {{filing_type}} for {{product_name}} in {{market}} on {{submission_date}}. Tracking: {{create-tracking.submission_id}}. Docs: {{upload-documents.url}}"
- name: log-in-crm
type: call
call: "salesforce.create-activity"
with:
subject: "Regulatory filing: {{filing_type}} - {{product_name}} ({{market}})"
description: "Filed on {{submission_date}}. Tracking ID: {{create-tracking.submission_id}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: regulatory
baseUri: "https://api.zoetis.com/regulatory/v1"
authentication:
type: bearer
token: "$secrets.regulatory_api_token"
resources:
- name: submissions
path: "/submissions"
operations:
- name: create-submission
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: activities
path: "/sobjects/Task"
operations:
- name: create-activity
method: POST
Retrieves a Salesforce account by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account by account ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: get-salesforce
description: "Retrieves a Salesforce account by account ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The salesforce account viewer identifier."
call: "sales-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sales-api
baseUri: "https://api.zoetis.com/sales/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
Retrieves a veterinary practice or distributor account from Salesforce including contact details, territory, and purchase history.
naftiko: "0.5"
info:
label: "Salesforce Veterinary Account Lookup"
description: "Retrieves a veterinary practice or distributor account from Salesforce including contact details, territory, and purchase history."
tags:
- crm
- salesforce
- animal-health
- sales
capability:
exposes:
- type: mcp
namespace: crm
port: 8080
tools:
- name: get-vet-account
description: "Look up a Salesforce veterinary account by ID."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: type
type: string
mapping: "$.Account_Type__c"
- name: territory
type: string
mapping: "$.Territory__c"
- name: annual_revenue
type: number
mapping: "$.AnnualRevenue"
- name: species_focus
type: string
mapping: "$.Species_Focus__c"
consumes:
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
When an expense report is submitted in SAP Concur, validates and posts to SAP S/4HANA, and notifies finance.
naftiko: "0.5"
info:
label: "SAP Concur Expense Report Sync"
description: "When an expense report is submitted in SAP Concur, validates and posts to SAP S/4HANA, and notifies finance."
tags:
- finance
- sap-concur
- sap-s4hana
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: expense-management
port: 8080
tools:
- name: sync-expense-report
description: "Given a Concur expense report ID, validate, post to SAP, and notify finance."
inputParameters:
- name: report_id
in: body
type: string
description: "The SAP Concur expense report identifier."
steps:
- name: get-report
type: call
call: "concur.get-expense-report"
with:
report_id: "{{report_id}}"
- name: post-to-sap
type: call
call: "sap.create-expense-entry"
with:
amount: "{{get-report.total_amount}}"
currency: "{{get-report.currency_code}}"
cost_center: "{{get-report.cost_center}}"
- name: notify-finance
type: call
call: "msteams.send-message"
with:
channel_id: "finance-expenses"
text: "Expense report {{report_id}} for {{get-report.total_amount}} posted to SAP. Document: {{post-to-sap.document_number}}"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-expense-report
method: GET
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/API_FINANCIALACCOUNTING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: journal-entries
path: "/A_JournalEntry"
operations:
- name: create-expense-entry
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date."
tags:
- procurement
- sap
- sap-s4hana
- purchase-order
capability:
exposes:
- type: mcp
namespace: erp-procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP S/4HANA purchase order by PO number."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number (10-digit)."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OverallStatus"
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: total_value
type: string
mapping: "$.d.TotalAmount"
- name: delivery_date
type: string
mapping: "$.d.DeliveryDate"
consumes:
- type: http
namespace: sap
baseUri: "https://zoetis-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Retrieves a SAP purchase order by number.
naftiko: "0.5"
info:
label: "SAP Purchase Order Viewer"
description: "Retrieves a SAP purchase order by number."
tags:
- procurement
- sap
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-sap
description: "Retrieves a SAP purchase order by number."
inputParameters:
- name: entity_id
in: body
type: string
description: "The sap purchase order viewer identifier."
call: "procurement-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: procurement-api
baseUri: "https://api.zoetis.com/procurement/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: sap
path: "/sap/purchase/order/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-sap
method: GET
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.zoetis.com/it/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Retrieves a ServiceNow incident by number and returns status, priority, and assigned group.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number and returns status, priority, and assigned group."
tags:
- it-ops
- servicenow
- incident
capability:
exposes:
- type: mcp
namespace: it-service
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
- name: assigned_group
type: string
mapping: "$.result.assignment_group.display_value"
consumes:
- type: http
namespace: servicenow
baseUri: "https://zoetis.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{number}}"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
Retrieves a document from SharePoint.
naftiko: "0.5"
info:
label: "SharePoint Document Viewer"
description: "Retrieves a document from SharePoint."
tags:
- collaboration
- sharepoint
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-sharepoint
description: "Retrieves a document from SharePoint."
inputParameters:
- name: entity_id
in: body
type: string
description: "The sharepoint document viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.zoetis.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: sharepoint
path: "/sharepoint/document/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-sharepoint
method: GET
Posts a formatted message to a specified Slack channel.
naftiko: "0.5"
info:
label: "Slack Channel Message Post"
description: "Posts a formatted message to a specified Slack channel."
tags:
- collaboration
- slack
- messaging
capability:
exposes:
- type: mcp
namespace: messaging
port: 8080
tools:
- name: post-slack-message
description: "Post a message to a Slack channel."
inputParameters:
- name: channel
in: body
type: string
description: "The Slack channel name or ID."
- name: text
in: body
type: string
description: "The message text."
call: "slack.post-message"
with:
channel: "{{channel}}"
text: "{{text}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.zoetis.com/communications/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.zoetis.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Executes a sales analytics query against Snowflake for product, territory, and distributor performance.
naftiko: "0.5"
info:
label: "Snowflake Sales Analytics Query"
description: "Executes a sales analytics query against Snowflake for product, territory, and distributor performance."
tags:
- analytics
- snowflake
- sales
capability:
exposes:
- type: mcp
namespace: sales-analytics
port: 8080
tools:
- name: query-sales-data
description: "Run a sales analytics query on Snowflake."
inputParameters:
- name: species
in: body
type: string
description: "Target species filter."
- name: year
in: body
type: string
description: "Reporting year."
call: "snowflake.execute-query"
with:
statement: "SELECT product_name, territory, SUM(revenue) as total_revenue, SUM(units) as total_units FROM sales.transactions WHERE species = '{{species}}' AND year = '{{year}}' GROUP BY product_name, territory ORDER BY total_revenue DESC"
database: "ZOETIS_ANALYTICS"
outputParameters:
- name: results
type: array
mapping: "$.data"
consumes:
- type: http
namespace: snowflake
baseUri: "https://zoetis.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Retrieves dosage information by species and product.
naftiko: "0.5"
info:
label: "Species-Specific Dosage Lookup"
description: "Retrieves dosage information by species and product."
tags:
- veterinary
- product-management
capability:
exposes:
- type: mcp
namespace: veterinary
port: 8080
tools:
- name: get-species
description: "Retrieves dosage information by species and product."
inputParameters:
- name: entity_id
in: body
type: string
description: "The species specific dosage lookup identifier."
call: "veterinary-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: veterinary-api
baseUri: "https://api.zoetis.com/veterinary/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: species
path: "/species/specific/dosage/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-species
method: GET
When a stability study is initiated for a product, creates the study record in the LIMS, schedules sampling in ServiceNow, sets up data tracking in Google Sheets, and notifies the stability team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Stability Study Orchestrator"
description: "When a stability study is initiated for a product, creates the study record in the LIMS, schedules sampling in ServiceNow, sets up data tracking in Google Sheets, and notifies the stability team in Microsoft Teams."
tags:
- r-and-d
- manufacturing
- quality
- servicenow
- google-sheets
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: stability-studies
port: 8080
tools:
- name: initiate-stability-study
description: "Given study details, create LIMS record, schedule sampling, set up tracking, and notify team."
inputParameters:
- name: product_name
in: body
type: string
description: "The product name."
- name: batch_number
in: body
type: string
description: "The batch number under study."
- name: study_type
in: body
type: string
description: "Study type (long_term, accelerated, intermediate)."
- name: duration_months
in: body
type: integer
description: "Study duration in months."
steps:
- name: create-study
type: call
call: "lims.create-stability-study"
with:
product_name: "{{product_name}}"
batch_number: "{{batch_number}}"
study_type: "{{study_type}}"
duration: "{{duration_months}}"
- name: schedule-sampling
type: call
call: "servicenow.create-request"
with:
short_description: "Stability sampling: {{product_name}} batch {{batch_number}}"
category: "stability_testing"
description: "Study type: {{study_type}}. Duration: {{duration_months}} months."
- name: create-tracker
type: call
call: "gsheets.create-spreadsheet"
with:
title: "Stability: {{product_name}} - {{batch_number}} ({{study_type}})"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "stability-studies"
text: "Stability study initiated: {{product_name}} batch {{batch_number}} ({{study_type}}, {{duration_months}} months). LIMS: {{create-study.study_id}}. Tracker: {{create-tracker.url}}"
consumes:
- type: http
namespace: lims
baseUri: "https://api.zoetis.com/lims/v1"
authentication:
type: bearer
token: "$secrets.lims_api_token"
resources:
- name: stability-studies
path: "/stability-studies"
operations:
- name: create-stability-study
method: POST
- type: http
namespace: servicenow
baseUri: "https://zoetis.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: spreadsheets
path: "/spreadsheets"
operations:
- name: create-spreadsheet
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves cold chain temperature monitoring data for a shipment from the logistics system, checking for excursions that could affect vaccine potency.
naftiko: "0.5"
info:
label: "Vaccine Cold Chain Monitor"
description: "Retrieves cold chain temperature monitoring data for a shipment from the logistics system, checking for excursions that could affect vaccine potency."
tags:
- manufacturing
- logistics
- cold-chain
- animal-health
capability:
exposes:
- type: mcp
namespace: cold-chain
port: 8080
tools:
- name: get-shipment-temperature
description: "Fetch cold chain temperature data for a shipment."
inputParameters:
- name: shipment_id
in: body
type: string
description: "The shipment tracking identifier."
call: "logistics.get-temperature-log"
with:
shipment_id: "{{shipment_id}}"
outputParameters:
- name: min_temp_c
type: number
mapping: "$.temperature.min"
- name: max_temp_c
type: number
mapping: "$.temperature.max"
- name: avg_temp_c
type: number
mapping: "$.temperature.avg"
- name: excursion_count
type: integer
mapping: "$.temperature.excursions"
- name: status
type: string
mapping: "$.shipment.status"
consumes:
- type: http
namespace: logistics
baseUri: "https://api.zoetis.com/logistics/v1"
authentication:
type: bearer
token: "$secrets.logistics_api_token"
resources:
- name: temperature-logs
path: "/shipments/{{shipment_id}}/temperature"
inputParameters:
- name: shipment_id
in: path
operations:
- name: get-temperature-log
method: GET
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoetis.com/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoetis.com/v2"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
After a veterinary conference, imports leads from Google Sheets into Salesforce, assigns to territory reps, and sends follow-up emails via SendGrid.
naftiko: "0.5"
info:
label: "Veterinary Conference Lead Pipeline"
description: "After a veterinary conference, imports leads from Google Sheets into Salesforce, assigns to territory reps, and sends follow-up emails via SendGrid."
tags:
- sales
- salesforce
- google-sheets
- sendgrid
- marketing
capability:
exposes:
- type: mcp
namespace: conference-leads
port: 8080
tools:
- name: process-conference-leads
description: "Given a conference name and leads spreadsheet, import to Salesforce, assign reps, and send follow-ups."
inputParameters:
- name: conference_name
in: body
type: string
description: "The conference name."
- name: spreadsheet_id
in: body
type: string
description: "The Google Sheets ID containing leads."
steps:
- name: get-leads
type: call
call: "gsheets.get-values"
with:
spreadsheet_id: "{{spreadsheet_id}}"
range: "Leads!A:F"
- name: import-leads
type: call
call: "salesforce.bulk-create-leads"
with:
source: "{{conference_name}}"
leads: "{{get-leads.values}}"
- name: send-followups
type: call
call: "sendgrid.send-email"
with:
list_id: "conference-{{conference_name}}"
template_id: "conference_followup"
dynamic_data:
conference: "{{conference_name}}"
consumes:
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: get-values
method: GET
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: leads
path: "/composite/sobjects/Lead"
operations:
- name: bulk-create-leads
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
When a veterinarian contacts technical support, creates a Salesforce case, retrieves product information from the knowledge base, sends a response via SendGrid, and logs the interaction for pharmacovigilance review.
naftiko: "0.5"
info:
label: "Veterinary Technical Support Pipeline"
description: "When a veterinarian contacts technical support, creates a Salesforce case, retrieves product information from the knowledge base, sends a response via SendGrid, and logs the interaction for pharmacovigilance review."
tags:
- customer-service
- salesforce
- sendgrid
- animal-health
capability:
exposes:
- type: mcp
namespace: vet-support
port: 8080
tools:
- name: handle-tech-inquiry
description: "Given a veterinarian inquiry, create case, fetch product info, respond, and log."
inputParameters:
- name: vet_email
in: body
type: string
description: "The veterinarian's email."
- name: product_name
in: body
type: string
description: "The product in question."
- name: inquiry_type
in: body
type: string
description: "Type of inquiry (dosing, interactions, adverse_event, efficacy)."
- name: question
in: body
type: string
description: "The technical question."
steps:
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Tech support: {{product_name}} - {{inquiry_type}}"
description: "{{question}}"
type: "Technical_Support"
- name: get-product-info
type: call
call: "knowledge.get-product-details"
with:
product_name: "{{product_name}}"
topic: "{{inquiry_type}}"
- name: send-response
type: call
call: "sendgrid.send-email"
with:
to: "{{vet_email}}"
template_id: "tech_support_response"
dynamic_data:
product: "{{product_name}}"
inquiry_type: "{{inquiry_type}}"
case_number: "{{create-case.id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://zoetis.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: knowledge
baseUri: "https://api.zoetis.com/knowledge/v1"
authentication:
type: bearer
token: "$secrets.knowledge_api_token"
resources:
- name: products
path: "/products/{{product_name}}"
inputParameters:
- name: product_name
in: path
operations:
- name: get-product-details
method: GET
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: mail
path: "/mail/send"
operations:
- name: send-email
method: POST
Retrieves employee details from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Retrieves employee details from Workday."
tags:
- hr
- workday
- employee
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee
description: "Look up a Workday employee by worker ID."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.worker.name.full"
- name: department
type: string
mapping: "$.worker.organization.name"
- name: manager
type: string
mapping: "$.worker.manager.name.full"
- name: email
type: string
mapping: "$.worker.contact.email"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.zoetis.com/hr/v1"
authentication:
type: bearer
token: "$secrets.zoetis_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Creates a Zoom meeting, sends invites via Microsoft Outlook, and posts the link in Microsoft Teams.
naftiko: "0.5"
info:
label: "Zoom Meeting Scheduler"
description: "Creates a Zoom meeting, sends invites via Microsoft Outlook, and posts the link in Microsoft Teams."
tags:
- collaboration
- zoom
- microsoft-outlook
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: meeting-mgmt
port: 8080
tools:
- name: schedule-meeting
description: "Given meeting details, create Zoom meeting, send invite, and post to Teams."
inputParameters:
- name: host_email
in: body
type: string
description: "The host email."
- name: topic
in: body
type: string
description: "The meeting topic."
- name: start_time
in: body
type: string
description: "Start time in ISO 8601 format."
- name: duration_minutes
in: body
type: integer
description: "Duration in minutes."
steps:
- name: create-meeting
type: call
call: "zoom.create-meeting"
with:
host_email: "{{host_email}}"
topic: "{{topic}}"
start_time: "{{start_time}}"
duration: "{{duration_minutes}}"
- name: send-invite
type: call
call: "outlook.create-event"
with:
subject: "{{topic}}"
start: "{{start_time}}"
body: "Join Zoom: {{create-meeting.join_url}}"
- name: post-to-teams
type: call
call: "msteams.send-message"
with:
channel_id: "general"
text: "Meeting: {{topic}} at {{start_time}}. Zoom: {{create-meeting.join_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: meetings
path: "/users/{{host_email}}/meetings"
inputParameters:
- name: host_email
in: path
operations:
- name: create-meeting
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: events
path: "/me/events"
operations:
- name: create-event
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST