Warner Brothers Capabilities
Naftiko 0.5 capability definitions for Warner Brothers - 100 capabilities showing integration workflows and service orchestrations.
Retrieves ad campaign performance metrics.
naftiko: "0.5"
info:
label: "Ad Campaign Performance"
description: "Retrieves ad campaign performance metrics."
tags:
- advertising
- analytics
capability:
exposes:
- type: mcp
namespace: advertising
port: 8080
tools:
- name: get-ad
description: "Retrieves ad campaign performance metrics."
inputParameters:
- name: entity_id
in: body
type: string
description: "The ad campaign performance identifier."
call: "advertising-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: advertising-api
baseUri: "https://api.warner-brothers.com/advertising/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: ad
path: "/ad/campaign/performance/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-ad
method: GET
Pulls a streaming engagement report from Adobe Analytics for a given date range and report suite, returning page views, unique visitors, and average session duration.
naftiko: "0.5"
info:
label: "Adobe Analytics Report Fetch"
description: "Pulls a streaming engagement report from Adobe Analytics for a given date range and report suite, returning page views, unique visitors, and average session duration."
tags:
- analytics
- adobe-analytics
- streaming
capability:
exposes:
- type: mcp
namespace: digital-analytics
port: 8080
tools:
- name: get-engagement-report
description: "Fetch an Adobe Analytics engagement report for a date range and report suite."
inputParameters:
- name: report_suite_id
in: body
type: string
description: "The Adobe Analytics report suite ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "adobe-analytics.get-report"
with:
rsid: "{{report_suite_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: page_views
type: integer
mapping: "$.report.totals.pageViews"
- name: unique_visitors
type: integer
mapping: "$.report.totals.uniqueVisitors"
- name: avg_session_duration
type: string
mapping: "$.report.totals.averageSessionDuration"
consumes:
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: reports
path: "/{{report_suite_id}}/reports"
inputParameters:
- name: report_suite_id
in: path
operations:
- name: get-report
method: POST
Retrieves ADP payroll summary for a given pay period including gross pay, deductions, and net pay for a specific worker.
naftiko: "0.5"
info:
label: "ADP Payroll Summary"
description: "Retrieves ADP payroll summary for a given pay period including gross pay, deductions, and net pay for a specific worker."
tags:
- hr
- adp
- payroll
capability:
exposes:
- type: mcp
namespace: payroll
port: 8080
tools:
- name: get-payroll-summary
description: "Fetch ADP payroll summary for a worker and pay period."
inputParameters:
- name: worker_id
in: body
type: string
description: "The ADP worker identifier."
- name: pay_period
in: body
type: string
description: "The pay period identifier (e.g., 2026-03-15)."
call: "adp.get-pay-statement"
with:
worker_id: "{{worker_id}}"
pay_period: "{{pay_period}}"
outputParameters:
- name: gross_pay
type: number
mapping: "$.payStatement.grossPayAmount"
- name: net_pay
type: number
mapping: "$.payStatement.netPayAmount"
- name: deductions
type: number
mapping: "$.payStatement.totalDeductions"
consumes:
- type: http
namespace: adp
baseUri: "https://api.adp.com/hr/v2"
authentication:
type: bearer
token: "$secrets.adp_token"
resources:
- name: pay-statements
path: "/workers/{{worker_id}}/pay-statements"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-pay-statement
method: GET
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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
Purges Cloudflare CDN cache for specified URLs or zones to ensure fresh content delivery for streaming assets.
naftiko: "0.5"
info:
label: "Cloudflare CDN Cache Purge"
description: "Purges Cloudflare CDN cache for specified URLs or zones to ensure fresh content delivery for streaming assets."
tags:
- infrastructure
- cloudflare
- cdn
- streaming
capability:
exposes:
- type: mcp
namespace: cdn-ops
port: 8080
tools:
- name: purge-cache
description: "Purge Cloudflare CDN cache for a given zone and URL patterns."
inputParameters:
- name: zone_id
in: body
type: string
description: "The Cloudflare zone identifier."
- name: urls
in: body
type: array
description: "List of URLs to purge from cache."
call: "cloudflare.purge-cache"
with:
zone_id: "{{zone_id}}"
files: "{{urls}}"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: zones
path: "/zones/{{zone_id}}/purge_cache"
inputParameters:
- name: zone_id
in: path
operations:
- name: purge-cache
method: POST
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.warner-brothers.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Retrieves a Confluence wiki page by ID or title, returning content, author, last updated date, and space key.
naftiko: "0.5"
info:
label: "Confluence Wiki Page Lookup"
description: "Retrieves a Confluence wiki page by ID or title, returning content, author, last updated date, and space key."
tags:
- collaboration
- confluence
- documentation
capability:
exposes:
- type: mcp
namespace: wiki
port: 8080
tools:
- name: get-wiki-page
description: "Fetch a Confluence page by ID. Returns title, content excerpt, author, and space key."
inputParameters:
- name: page_id
in: body
type: string
description: "The Confluence page ID."
call: "confluence.get-page"
with:
page_id: "{{page_id}}"
outputParameters:
- name: title
type: string
mapping: "$.title"
- name: space_key
type: string
mapping: "$.space.key"
- name: author
type: string
mapping: "$.version.by.displayName"
- name: last_updated
type: string
mapping: "$.version.when"
consumes:
- type: http
namespace: confluence
baseUri: "https://warnerbros.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: content
path: "/content/{{page_id}}?expand=space,version"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
When new content is submitted for review, runs an automated compliance check, logs results in ServiceNow, updates the content catalog status, and notifies the compliance team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Content Compliance Review Pipeline"
description: "When new content is submitted for review, runs an automated compliance check, logs results in ServiceNow, updates the content catalog status, and notifies the compliance team in Microsoft Teams."
tags:
- compliance
- content
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: content-compliance
port: 8080
tools:
- name: submit-compliance-review
description: "Given a title ID and content type, run compliance checks, log results, and notify the team."
inputParameters:
- name: title_id
in: body
type: string
description: "The content catalog title identifier."
- name: content_type
in: body
type: string
description: "Type of content (film, series, short, game)."
- name: target_rating
in: body
type: string
description: "Target content rating (G, PG, PG-13, R)."
steps:
- name: run-check
type: call
call: "compliance.check-content"
with:
title_id: "{{title_id}}"
content_type: "{{content_type}}"
target_rating: "{{target_rating}}"
- name: log-results
type: call
call: "servicenow.create-incident"
with:
short_description: "Compliance review: {{title_id}}"
category: "content_compliance"
description: "Content type: {{content_type}}. Target rating: {{target_rating}}. Status: {{run-check.status}}"
- name: update-catalog
type: call
call: "catalog.update-title"
with:
title_id: "{{title_id}}"
compliance_status: "{{run-check.status}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "content-compliance"
text: "Compliance review for {{title_id}} ({{content_type}}): {{run-check.status}}. Target rating: {{target_rating}}. ServiceNow: {{log-results.number}}"
consumes:
- type: http
namespace: compliance
baseUri: "https://api.warnerbros.com/compliance/v1"
authentication:
type: bearer
token: "$secrets.compliance_api_token"
resources:
- name: checks
path: "/content-checks"
operations:
- name: check-content
method: POST
- type: http
namespace: servicenow
baseUri: "https://warnerbros.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: catalog
baseUri: "https://api.warnerbros.com/content/v2"
authentication:
type: bearer
token: "$secrets.content_catalog_token"
resources:
- name: titles
path: "/titles/{{title_id}}"
inputParameters:
- name: title_id
in: path
operations:
- name: update-title
method: PATCH
- 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
When a title is cleared for distribution, updates the content catalog, pushes metadata to YouTube, syncs rights information to Salesforce, and notifies the distribution team in Slack.
naftiko: "0.5"
info:
label: "Content Distribution Orchestrator"
description: "When a title is cleared for distribution, updates the content catalog, pushes metadata to YouTube, syncs rights information to Salesforce, and notifies the distribution team in Slack."
tags:
- distribution
- content
- youtube
- salesforce
- slack
- licensing
capability:
exposes:
- type: mcp
namespace: content-distribution
port: 8080
tools:
- name: distribute-title
description: "Given a title ID and distribution targets, update catalog status, push to YouTube, sync to Salesforce, and notify the team."
inputParameters:
- name: title_id
in: body
type: string
description: "The content catalog title identifier."
- name: distribution_regions
in: body
type: string
description: "Comma-separated list of distribution region codes."
- name: release_date
in: body
type: string
description: "Target release date in YYYY-MM-DD format."
steps:
- name: update-catalog
type: call
call: "catalog.update-title"
with:
title_id: "{{title_id}}"
status: "distributing"
regions: "{{distribution_regions}}"
- name: push-youtube
type: call
call: "youtube.update-video"
with:
title_id: "{{title_id}}"
publish_at: "{{release_date}}"
- name: sync-salesforce
type: call
call: "salesforce.update-opportunity"
with:
title_id: "{{title_id}}"
stage: "Distribution"
close_date: "{{release_date}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "distribution-ops"
text: "Title {{title_id}} cleared for distribution to {{distribution_regions}}. Release: {{release_date}}. YouTube: {{push-youtube.video_id}}"
consumes:
- type: http
namespace: catalog
baseUri: "https://api.warnerbros.com/content/v2"
authentication:
type: bearer
token: "$secrets.content_catalog_token"
resources:
- name: titles
path: "/titles/{{title_id}}"
inputParameters:
- name: title_id
in: path
operations:
- name: update-title
method: PATCH
- type: http
namespace: youtube
baseUri: "https://www.googleapis.com/youtube/v3"
authentication:
type: bearer
token: "$secrets.youtube_oauth_token"
resources:
- name: videos
path: "/videos?part=status"
operations:
- name: update-video
method: PUT
- type: http
namespace: salesforce
baseUri: "https://warnerbros.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: update-opportunity
method: PATCH
- 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
Checks licensing status for content in a region.
naftiko: "0.5"
info:
label: "Content Licensing Status"
description: "Checks licensing status for content in a region."
tags:
- media
- licensing
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-content
description: "Checks licensing status for content in a region."
inputParameters:
- name: entity_id
in: body
type: string
description: "The content licensing status identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: content
path: "/content/licensing/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-content
method: GET
When a title is approved for international release, triggers subtitle generation, updates the content catalog with localized metadata, uploads subtitle files to Amazon S3, and notifies the localization team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Content Localization Pipeline"
description: "When a title is approved for international release, triggers subtitle generation, updates the content catalog with localized metadata, uploads subtitle files to Amazon S3, and notifies the localization team in Microsoft Teams."
tags:
- localization
- content
- amazon-s3
- microsoft-teams
- internationalization
capability:
exposes:
- type: mcp
namespace: localization
port: 8080
tools:
- name: initiate-localization
description: "Given a title ID and target languages, trigger subtitle generation, upload to S3, update catalog, and notify team."
inputParameters:
- name: title_id
in: body
type: string
description: "The content catalog title identifier."
- name: target_languages
in: body
type: string
description: "Comma-separated language codes (e.g., es,fr,de,ja)."
- name: release_date
in: body
type: string
description: "Target international release date in YYYY-MM-DD format."
steps:
- name: update-catalog
type: call
call: "catalog.update-title"
with:
title_id: "{{title_id}}"
localization_status: "in_progress"
target_languages: "{{target_languages}}"
- name: upload-subtitles
type: call
call: "s3.put-object"
with:
bucket: "wb-localization-assets"
key: "subtitles/{{title_id}}/{{target_languages}}"
content_type: "application/zip"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "localization-ops"
text: "Localization initiated for title {{title_id}} in {{target_languages}}. Target release: {{release_date}}. Assets: {{upload-subtitles.url}}"
consumes:
- type: http
namespace: catalog
baseUri: "https://api.warnerbros.com/content/v2"
authentication:
type: bearer
token: "$secrets.content_catalog_token"
resources:
- name: titles
path: "/titles/{{title_id}}"
inputParameters:
- name: title_id
in: path
operations:
- name: update-title
method: PATCH
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: awsSigV4
accessKeyId: "$secrets.aws_access_key"
secretAccessKey: "$secrets.aws_secret_key"
region: "us-east-1"
resources:
- name: objects
path: "/{{bucket}}/{{key}}"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: put-object
method: PUT
- 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 metadata for a content asset.
naftiko: "0.5"
info:
label: "Content Metadata Lookup"
description: "Retrieves metadata for a content asset."
tags:
- media
- content-management
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-content
description: "Retrieves metadata for a content asset."
inputParameters:
- name: entity_id
in: body
type: string
description: "The content metadata lookup identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: content
path: "/content/metadata/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-content
method: GET
On new production greenlight in SAP, creates a Salesforce project record, provisions a SharePoint site for production documents, spins up an Autodesk Maya workspace, and notifies the production team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Content Production Orchestrator"
description: "On new production greenlight in SAP, creates a Salesforce project record, provisions a SharePoint site for production documents, spins up an Autodesk Maya workspace, and notifies the production team via Microsoft Teams."
tags:
- production
- content
- sap
- salesforce
- sharepoint
- autodesk-maya
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: production-ops
port: 8080
tools:
- name: launch-production
description: "Given a production ID and title, orchestrate project setup across SAP, Salesforce, SharePoint, Autodesk Maya, and Microsoft Teams."
inputParameters:
- name: production_id
in: body
type: string
description: "The SAP production project identifier."
- name: production_title
in: body
type: string
description: "The title of the production."
- name: lead_producer
in: body
type: string
description: "The Workday employee ID of the lead producer."
steps:
- name: create-project
type: call
call: "salesforce.create-opportunity"
with:
name: "{{production_title}}"
stage: "Production"
production_id: "{{production_id}}"
- name: provision-site
type: call
call: "sharepoint.create-site"
with:
site_name: "prod-{{production_id}}"
template: "production_workspace"
- name: setup-maya
type: call
call: "maya.create-workspace"
with:
project_name: "{{production_title}}"
storage_path: "{{provision-site.url}}/assets"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "production-launches"
text: "New production launched: {{production_title}} ({{production_id}}). Salesforce: {{create-project.id}}, SharePoint: {{provision-site.url}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://warnerbros.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity"
operations:
- name: create-opportunity
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: sites
path: "/root/sites"
operations:
- name: create-site
method: POST
- type: http
namespace: maya
baseUri: "https://developer.api.autodesk.com/da/us-east/v3"
authentication:
type: bearer
token: "$secrets.autodesk_token"
resources:
- name: workspaces
path: "/workitems"
operations:
- name: create-workspace
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
Checks the content rights management system for titles with expiring licenses within a given window, syncs findings to Salesforce, and alerts the rights team via Slack.
naftiko: "0.5"
info:
label: "Content Rights Expiry Monitor"
description: "Checks the content rights management system for titles with expiring licenses within a given window, syncs findings to Salesforce, and alerts the rights team via Slack."
tags:
- licensing
- rights-management
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: rights-management
port: 8080
tools:
- name: check-expiring-rights
description: "Given a number of days, find titles with rights expiring within that window, update Salesforce, and notify via Slack."
inputParameters:
- name: days_ahead
in: body
type: integer
description: "Number of days ahead to check for expiring rights."
- name: region
in: body
type: string
description: "Region code to filter by (e.g., NA, EMEA, APAC)."
steps:
- name: get-expiring
type: call
call: "rights.list-expiring"
with:
days: "{{days_ahead}}"
region: "{{region}}"
- name: update-salesforce
type: call
call: "salesforce.create-task"
with:
subject: "Rights expiring within {{days_ahead}} days in {{region}}"
description: "{{get-expiring.count}} titles with expiring rights. Review needed."
priority: "High"
- name: alert-team
type: call
call: "slack.post-message"
with:
channel: "rights-management"
text: "Alert: {{get-expiring.count}} titles have rights expiring within {{days_ahead}} days in {{region}}. Salesforce task: {{update-salesforce.id}}"
consumes:
- type: http
namespace: rights
baseUri: "https://api.warnerbros.com/rights/v1"
authentication:
type: bearer
token: "$secrets.rights_api_token"
resources:
- name: licenses
path: "/licenses/expiring"
operations:
- name: list-expiring
method: GET
- type: http
namespace: salesforce
baseUri: "https://warnerbros.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
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 viewership data for a content title.
naftiko: "0.5"
info:
label: "Content Viewership Report"
description: "Retrieves viewership data for a content title."
tags:
- media
- analytics
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-content
description: "Retrieves viewership data for a content title."
inputParameters:
- name: entity_id
in: body
type: string
description: "The content viewership report identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: content
path: "/content/viewership/report/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-content
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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
Triggers a Databricks job to generate personalized content recommendations based on viewer behavior, stores results in Snowflake, and sends a summary to Slack.
naftiko: "0.5"
info:
label: "Databricks Content Recommendation Job"
description: "Triggers a Databricks job to generate personalized content recommendations based on viewer behavior, stores results in Snowflake, and sends a summary to Slack."
tags:
- data
- databricks
- snowflake
- slack
- machine-learning
- recommendations
capability:
exposes:
- type: mcp
namespace: ml-recommendations
port: 8080
tools:
- name: run-recommendation-job
description: "Given a model version and target segment, trigger the recommendation pipeline on Databricks and notify when complete."
inputParameters:
- name: model_version
in: body
type: string
description: "The recommendation model version identifier."
- name: segment_id
in: body
type: string
description: "The target audience segment ID."
steps:
- name: trigger-job
type: call
call: "databricks.run-job"
with:
job_id: "content_recommendations"
notebook_params:
model_version: "{{model_version}}"
segment_id: "{{segment_id}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "data-science"
text: "Recommendation job triggered for segment {{segment_id}} with model {{model_version}}. Run ID: {{trigger-job.run_id}}"
consumes:
- type: http
namespace: databricks
baseUri: "https://warnerbros.cloud.databricks.com/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: jobs
path: "/jobs/run-now"
operations:
- name: run-job
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
Queries Datadog for streaming platform health metrics including error rates, latency percentiles, and active user counts.
naftiko: "0.5"
info:
label: "Datadog Streaming Health Check"
description: "Queries Datadog for streaming platform health metrics including error rates, latency percentiles, and active user counts."
tags:
- monitoring
- datadog
- streaming
- infrastructure
capability:
exposes:
- type: mcp
namespace: platform-monitoring
port: 8080
tools:
- name: get-streaming-health
description: "Fetch Datadog streaming platform health metrics for a given time window."
inputParameters:
- name: from_ts
in: body
type: integer
description: "Start timestamp in epoch seconds."
- name: to_ts
in: body
type: integer
description: "End timestamp in epoch seconds."
call: "datadog.query-metrics"
with:
query: "avg:streaming.error_rate{env:production}"
from: "{{from_ts}}"
to: "{{to_ts}}"
outputParameters:
- name: error_rate
type: number
mapping: "$.series[0].pointlist[-1][1]"
- name: query_time
type: string
mapping: "$.from_date"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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
Exports design assets from a Figma file, uploads them to Amazon S3, and notifies the creative team in Slack with download links.
naftiko: "0.5"
info:
label: "Figma Design Asset Export"
description: "Exports design assets from a Figma file, uploads them to Amazon S3, and notifies the creative team in Slack with download links."
tags:
- design
- figma
- amazon-s3
- slack
capability:
exposes:
- type: mcp
namespace: design-ops
port: 8080
tools:
- name: export-design-assets
description: "Given a Figma file key and node IDs, export assets, upload to S3, and notify the team."
inputParameters:
- name: file_key
in: body
type: string
description: "The Figma file key."
- name: node_ids
in: body
type: string
description: "Comma-separated Figma node IDs to export."
- name: format
in: body
type: string
description: "Export format (png, svg, pdf)."
steps:
- name: get-images
type: call
call: "figma.get-images"
with:
file_key: "{{file_key}}"
ids: "{{node_ids}}"
format: "{{format}}"
- name: upload-to-s3
type: call
call: "s3.put-object"
with:
bucket: "wb-design-assets"
key: "exports/{{file_key}}/{{format}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "creative-assets"
text: "Design assets exported from Figma file {{file_key}} in {{format}} format. Download: {{upload-to-s3.url}}"
consumes:
- type: http
namespace: figma
baseUri: "https://api.figma.com/v1"
authentication:
type: bearer
token: "$secrets.figma_token"
resources:
- name: images
path: "/images/{{file_key}}"
inputParameters:
- name: file_key
in: path
operations:
- name: get-images
method: GET
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: awsSigV4
accessKeyId: "$secrets.aws_access_key"
secretAccessKey: "$secrets.aws_secret_key"
region: "us-east-1"
resources:
- name: objects
path: "/{{bucket}}/{{key}}"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: put-object
method: PUT
- 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 GitHub repository statistics including star count, fork count, open issues, and default branch for a given organization and repository.
naftiko: "0.5"
info:
label: "GitHub Repository Stats"
description: "Retrieves GitHub repository statistics including star count, fork count, open issues, and default branch for a given organization and repository."
tags:
- engineering
- github
- devops
capability:
exposes:
- type: mcp
namespace: source-control
port: 8080
tools:
- name: get-repo-stats
description: "Fetch GitHub repository statistics for a given org and repo name."
inputParameters:
- name: org
in: body
type: string
description: "The GitHub organization name."
- name: repo
in: body
type: string
description: "The repository name."
call: "github.get-repo"
with:
org: "{{org}}"
repo: "{{repo}}"
outputParameters:
- name: stars
type: integer
mapping: "$.stargazers_count"
- name: forks
type: integer
mapping: "$.forks_count"
- name: open_issues
type: integer
mapping: "$.open_issues_count"
- name: default_branch
type: string
mapping: "$.default_branch"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: repos
path: "/repos/{{org}}/{{repo}}"
inputParameters:
- name: org
in: path
- name: repo
in: path
operations:
- name: get-repo
method: GET
Retrieves a document from Google Drive by file ID, returning metadata including name, owner, last modified date, and sharing permissions.
naftiko: "0.5"
info:
label: "Google Drive Document Retrieval"
description: "Retrieves a document from Google Drive by file ID, returning metadata including name, owner, last modified date, and sharing permissions."
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"
- name: web_link
type: string
mapping: "$.webViewLink"
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,webViewLink"
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.warner-brothers.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Retrieves a HubSpot contact by email address, returning name, company, lifecycle stage, and last activity date.
naftiko: "0.5"
info:
label: "HubSpot Contact Lookup"
description: "Retrieves a HubSpot contact by email address, returning name, company, lifecycle stage, and last activity date."
tags:
- marketing
- hubspot
- crm
capability:
exposes:
- type: mcp
namespace: marketing-crm
port: 8080
tools:
- name: get-contact
description: "Look up a HubSpot contact by email. Returns name, company, lifecycle stage, and last activity."
inputParameters:
- name: email
in: body
type: string
description: "The contact email address."
call: "hubspot.get-contact-by-email"
with:
email: "{{email}}"
outputParameters:
- name: full_name
type: string
mapping: "$.properties.firstname + ' ' + $.properties.lastname"
- name: company
type: string
mapping: "$.properties.company"
- name: lifecycle_stage
type: string
mapping: "$.properties.lifecyclestage"
- name: last_activity
type: string
mapping: "$.properties.notes_last_updated"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/objects/contacts/{{email}}?idProperty=email"
inputParameters:
- name: email
in: path
operations:
- name: get-contact-by-email
method: GET
Triggers an Informatica data quality job to validate content metadata completeness and accuracy across the content catalog.
naftiko: "0.5"
info:
label: "Informatica Data Quality Check"
description: "Triggers an Informatica data quality job to validate content metadata completeness and accuracy across the content catalog."
tags:
- data
- informatica
- data-quality
capability:
exposes:
- type: mcp
namespace: data-quality
port: 8080
tools:
- name: run-quality-check
description: "Trigger an Informatica data quality job for a given dataset."
inputParameters:
- name: job_name
in: body
type: string
description: "The Informatica data quality job name."
- name: dataset
in: body
type: string
description: "The target dataset to validate."
call: "informatica.run-job"
with:
taskName: "{{job_name}}"
parameters:
dataset: "{{dataset}}"
consumes:
- type: http
namespace: informatica
baseUri: "https://dm-us.informaticacloud.com/saas/api/v2"
authentication:
type: bearer
token: "$secrets.informatica_token"
resources:
- name: jobs
path: "/job"
operations:
- name: run-job
method: POST
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 potential IP infringement is detected, logs the case in Salesforce, creates a legal review task in ServiceNow, notifies the legal team in Microsoft Teams, and archives evidence to Amazon S3.
naftiko: "0.5"
info:
label: "IP Infringement Detection Workflow"
description: "When a potential IP infringement is detected, logs the case in Salesforce, creates a legal review task in ServiceNow, notifies the legal team in Microsoft Teams, and archives evidence to Amazon S3."
tags:
- legal
- ip-protection
- salesforce
- servicenow
- microsoft-teams
- amazon-s3
capability:
exposes:
- type: mcp
namespace: ip-protection
port: 8080
tools:
- name: report-infringement
description: "Given infringement details, create cases in Salesforce and ServiceNow, notify legal, and archive evidence."
inputParameters:
- name: title_id
in: body
type: string
description: "The content catalog title ID being infringed."
- name: infringing_url
in: body
type: string
description: "URL where the infringement was detected."
- name: evidence_file_url
in: body
type: string
description: "URL to the evidence screenshot or file."
- name: severity
in: body
type: string
description: "Severity level (low, medium, high, critical)."
steps:
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "IP Infringement: {{title_id}}"
priority: "{{severity}}"
description: "Infringement detected at {{infringing_url}} for title {{title_id}}"
- name: create-legal-task
type: call
call: "servicenow.create-request"
with:
short_description: "Legal review: IP infringement {{title_id}}"
category: "legal_ip"
priority: "{{severity}}"
- name: archive-evidence
type: call
call: "s3.put-object"
with:
bucket: "wb-legal-evidence"
key: "infringements/{{title_id}}/{{create-case.id}}"
- name: notify-legal
type: call
call: "msteams.send-message"
with:
channel_id: "legal-ip-enforcement"
text: "IP infringement reported for {{title_id}} at {{infringing_url}}. Severity: {{severity}}. Case: {{create-case.id}}. ServiceNow: {{create-legal-task.number}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://warnerbros.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: servicenow
baseUri: "https://warnerbros.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: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: awsSigV4
accessKeyId: "$secrets.aws_access_key"
secretAccessKey: "$secrets.aws_secret_key"
region: "us-east-1"
resources:
- name: objects
path: "/{{bucket}}/{{key}}"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: put-object
method: PUT
- 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
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 the current sprint status from Jira for a given project board, returning sprint name, progress, and remaining story points.
naftiko: "0.5"
info:
label: "Jira Sprint Status"
description: "Retrieves the current sprint status from Jira for a given project board, returning sprint name, progress, and remaining story points."
tags:
- engineering
- jira
- agile
capability:
exposes:
- type: mcp
namespace: project-mgmt
port: 8080
tools:
- name: get-sprint-status
description: "Fetch active sprint details from Jira for a given board ID."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board identifier."
call: "jira.get-active-sprint"
with:
board_id: "{{board_id}}"
outputParameters:
- name: sprint_name
type: string
mapping: "$.values[0].name"
- name: start_date
type: string
mapping: "$.values[0].startDate"
- name: end_date
type: string
mapping: "$.values[0].endDate"
- name: state
type: string
mapping: "$.values[0].state"
consumes:
- type: http
namespace: jira
baseUri: "https://warnerbros.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: sprints
path: "/board/{{board_id}}/sprint?state=active"
inputParameters:
- name: board_id
in: path
operations:
- name: get-active-sprint
method: GET
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.warner-brothers.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 new licensing opportunity is created in Salesforce, retrieves title metadata from the content catalog, generates a deal summary in Google Sheets, and sends a Slack notification to the licensing team.
naftiko: "0.5"
info:
label: "Licensing Deal Pipeline"
description: "When a new licensing opportunity is created in Salesforce, retrieves title metadata from the content catalog, generates a deal summary in Google Sheets, and sends a Slack notification to the licensing team."
tags:
- licensing
- salesforce
- google-sheets
- slack
- deals
capability:
exposes:
- type: mcp
namespace: licensing
port: 8080
tools:
- name: initiate-license-deal
description: "Given a Salesforce opportunity ID and title ID, fetch title metadata, create a deal summary spreadsheet, and notify the licensing team."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The Salesforce opportunity ID for the licensing deal."
- name: title_id
in: body
type: string
description: "The content catalog title ID being licensed."
- name: licensee_name
in: body
type: string
description: "The name of the licensee organization."
steps:
- name: get-opportunity
type: call
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
- name: get-title
type: call
call: "catalog.get-title"
with:
title_id: "{{title_id}}"
- name: create-summary
type: call
call: "gsheets.create-spreadsheet"
with:
title: "License Deal: {{licensee_name}} - {{get-title.title}}"
data:
deal_value: "{{get-opportunity.amount}}"
title: "{{get-title.title}}"
licensee: "{{licensee_name}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "licensing-deals"
text: "New licensing deal initiated: {{licensee_name}} for {{get-title.title}}. Value: {{get-opportunity.amount}}. Sheet: {{create-summary.url}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://warnerbros.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: get-opportunity
method: GET
- type: http
namespace: catalog
baseUri: "https://api.warnerbros.com/content/v2"
authentication:
type: bearer
token: "$secrets.content_catalog_token"
resources:
- name: titles
path: "/titles/{{title_id}}"
inputParameters:
- name: title_id
in: path
operations:
- name: get-title
method: GET
- 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: 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 campaign performance from Google Analytics, Adobe Analytics, and Salesforce Marketing Cloud into a Google Sheets dashboard for marketing leadership.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Dashboard"
description: "Aggregates campaign performance from Google Analytics, Adobe Analytics, and Salesforce Marketing Cloud into a Google Sheets dashboard for marketing leadership."
tags:
- marketing
- google-analytics
- adobe-analytics
- salesforce-marketing-cloud
- google-sheets
capability:
exposes:
- type: mcp
namespace: marketing-dashboard
port: 8080
tools:
- name: build-campaign-dashboard
description: "Given a campaign ID and date range, aggregate metrics from Google Analytics, Adobe Analytics, and SFMC into a Google Sheets dashboard."
inputParameters:
- name: campaign_id
in: body
type: string
description: "The marketing campaign identifier."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
steps:
- name: get-ga-metrics
type: call
call: "ga.get-report"
with:
campaign_id: "{{campaign_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: get-adobe-metrics
type: call
call: "adobe-analytics.get-report"
with:
campaign_id: "{{campaign_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: get-sfmc-metrics
type: call
call: "sfmc.get-campaign-stats"
with:
campaign_id: "{{campaign_id}}"
- name: write-dashboard
type: call
call: "gsheets.update-range"
with:
spreadsheet_id: "marketing_dashboard"
range: "Campaign_{{campaign_id}}!A1"
values:
- - "Source"
- "Sessions"
- "Conversions"
- - "Google Analytics"
- "{{get-ga-metrics.sessions}}"
- "{{get-ga-metrics.conversions}}"
- - "Adobe Analytics"
- "{{get-adobe-metrics.visits}}"
- "{{get-adobe-metrics.conversions}}"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: get-report
method: POST
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
resources:
- name: reports
path: "/reports"
operations:
- name: get-report
method: POST
- type: http
namespace: sfmc
baseUri: "https://warnerbros.rest.marketingcloudapis.com/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: campaigns
path: "/campaigns/{{campaign_id}}/stats"
inputParameters:
- name: campaign_id
in: path
operations:
- name: get-campaign-stats
method: GET
- 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: update-range
method: PUT
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 1"
description: "Orchestrates media workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-001
description: "Orchestrates media 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 Media Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 2"
description: "Orchestrates media workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-002
description: "Orchestrates media 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 Media Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media operational data for workflow 3.
naftiko: "0.5"
info:
label: "Media Data Query 3"
description: "Retrieves media operational data for workflow 3."
tags:
- media
- operations
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-data-3
description: "Query media data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates media workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 4"
description: "Orchestrates media workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-004
description: "Orchestrates media 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 Media Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 5"
description: "Orchestrates media workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-005
description: "Orchestrates media 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 Media Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media operational data for workflow 6.
naftiko: "0.5"
info:
label: "Media Data Query 6"
description: "Retrieves media operational data for workflow 6."
tags:
- media
- operations
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-data-6
description: "Query media data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates media workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 7"
description: "Orchestrates media workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-007
description: "Orchestrates media 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 Media Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 8"
description: "Orchestrates media workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-008
description: "Orchestrates media 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 Media Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media operational data for workflow 9.
naftiko: "0.5"
info:
label: "Media Data Query 9"
description: "Retrieves media operational data for workflow 9."
tags:
- media
- operations
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-data-9
description: "Query media data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates media workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 10"
description: "Orchestrates media workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-010
description: "Orchestrates media 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 Media Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 11"
description: "Orchestrates media workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-011
description: "Orchestrates media 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 Media Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media operational data for workflow 12.
naftiko: "0.5"
info:
label: "Media Data Query 12"
description: "Retrieves media operational data for workflow 12."
tags:
- media
- operations
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-data-12
description: "Query media data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates media workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 13"
description: "Orchestrates media workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-013
description: "Orchestrates media 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 Media Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 14"
description: "Orchestrates media workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-014
description: "Orchestrates media 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 Media Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media operational data for workflow 15.
naftiko: "0.5"
info:
label: "Media Data Query 15"
description: "Retrieves media operational data for workflow 15."
tags:
- media
- operations
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-data-15
description: "Query media data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Orchestrates media workflow 16 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 16"
description: "Orchestrates media workflow 16 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-016
description: "Orchestrates media 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 Media Workflow 16 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media workflow 17 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Media Workflow 17"
description: "Orchestrates media workflow 17 by coordinating across systems, validating data, and sending notifications."
tags:
- media
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: run-media-workflow-017
description: "Orchestrates media 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 Media Workflow 17 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 media operational data for workflow 18.
naftiko: "0.5"
info:
label: "Media Data Query 18"
description: "Retrieves media operational data for workflow 18."
tags:
- media
- operations
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-data-18
description: "Query media data for workflow 18."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-18
method: GET
When a BigCommerce order is placed for Warner Bros merchandise, syncs inventory in SAP, generates a shipping label via the fulfillment API, and sends order confirmation via SendGrid.
naftiko: "0.5"
info:
label: "Merchandise Fulfillment Orchestrator"
description: "When a BigCommerce order is placed for Warner Bros merchandise, syncs inventory in SAP, generates a shipping label via the fulfillment API, and sends order confirmation via SendGrid."
tags:
- ecommerce
- bigcommerce
- sap
- sendgrid
- merchandise
capability:
exposes:
- type: mcp
namespace: merchandise-fulfillment
port: 8080
tools:
- name: fulfill-merchandise-order
description: "Given a BigCommerce order ID, sync inventory, create shipping label, and send confirmation email."
inputParameters:
- name: order_id
in: body
type: string
description: "The BigCommerce order identifier."
steps:
- name: get-order
type: call
call: "bigcommerce.get-order"
with:
order_id: "{{order_id}}"
- name: reserve-inventory
type: call
call: "sap.reserve-material"
with:
material_id: "{{get-order.product_sku}}"
quantity: "{{get-order.quantity}}"
plant: "WB_MERCH_01"
- name: create-shipment
type: call
call: "bigcommerce.create-shipment"
with:
order_id: "{{order_id}}"
tracking_number: "{{reserve-inventory.delivery_number}}"
- name: send-confirmation
type: call
call: "sendgrid.send-email"
with:
to: "{{get-order.customer_email}}"
template_id: "order_confirmation"
dynamic_data:
order_id: "{{order_id}}"
tracking: "{{reserve-inventory.delivery_number}}"
consumes:
- type: http
namespace: bigcommerce
baseUri: "https://api.bigcommerce.com/stores/{{store_hash}}/v2"
authentication:
type: apiKey
key: "$secrets.bigcommerce_token"
inputParameters:
- name: store_hash
in: path
value: "$secrets.bigcommerce_store_hash"
resources:
- name: orders
path: "/orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: shipments
path: "/orders/{{order_id}}/shipments"
inputParameters:
- name: order_id
in: path
operations:
- name: create-shipment
method: POST
- type: http
namespace: sap
baseUri: "https://warnerbros-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_DOCUMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: material-documents
path: "/A_MaterialDocumentHeader"
operations:
- name: reserve-material
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
Sends a formatted notification message to a Microsoft Teams channel, used for cross-team alerts and updates.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a formatted notification message to a Microsoft Teams channel, used for cross-team alerts and updates."
tags:
- collaboration
- microsoft-teams
- messaging
capability:
exposes:
- type: mcp
namespace: teams-messaging
port: 8080
tools:
- name: send-teams-notification
description: "Send a notification message to a Microsoft Teams channel."
inputParameters:
- name: team_id
in: body
type: string
description: "The Microsoft Teams team ID."
- name: channel_id
in: body
type: string
description: "The Microsoft Teams channel ID."
- name: message
in: body
type: string
description: "The notification message text."
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.warner-brothers.com/communications/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Queries New Relic for application performance metrics including response time, throughput, and error rate for a given application.
naftiko: "0.5"
info:
label: "New Relic APM Health Check"
description: "Queries New Relic for application performance metrics including response time, throughput, and error rate for a given application."
tags:
- monitoring
- new-relic
- infrastructure
capability:
exposes:
- type: mcp
namespace: apm-monitoring
port: 8080
tools:
- name: get-app-health
description: "Fetch New Relic application health metrics including response time, throughput, and error rate."
inputParameters:
- name: app_id
in: body
type: string
description: "The New Relic application ID."
call: "newrelic.get-application"
with:
app_id: "{{app_id}}"
outputParameters:
- name: response_time
type: number
mapping: "$.application.application_summary.response_time"
- name: throughput
type: number
mapping: "$.application.application_summary.throughput"
- name: error_rate
type: number
mapping: "$.application.application_summary.error_rate"
- name: health_status
type: string
mapping: "$.application.health_status"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-application
method: GET
Retrieves Oracle Cloud infrastructure cost summary for a given compartment and time period.
naftiko: "0.5"
info:
label: "Oracle Cloud Infrastructure Cost"
description: "Retrieves Oracle Cloud infrastructure cost summary for a given compartment and time period."
tags:
- cloud
- oracle-cloud
- finops
capability:
exposes:
- type: mcp
namespace: cloud-cost
port: 8080
tools:
- name: get-oci-cost
description: "Fetch Oracle Cloud cost summary for a compartment and date range."
inputParameters:
- name: compartment_id
in: body
type: string
description: "The Oracle Cloud compartment OCID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "oci.get-cost-summary"
with:
compartment_id: "{{compartment_id}}"
time_start: "{{start_date}}"
time_end: "{{end_date}}"
outputParameters:
- name: total_cost
type: number
mapping: "$.data.aggregatedCost"
- name: currency
type: string
mapping: "$.data.currency"
consumes:
- type: http
namespace: oci
baseUri: "https://usageapi.us-ashburn-1.oci.oraclecloud.com/20200107"
authentication:
type: bearer
token: "$secrets.oci_token"
resources:
- name: usage
path: "/usage"
operations:
- name: get-cost-summary
method: POST
When VFX shots are completed, uploads assets to Box, updates the production tracker in Google Sheets, notifies the post-production team in Microsoft Teams, and logs delivery in ServiceNow.
naftiko: "0.5"
info:
label: "Post-Production VFX Handoff Orchestrator"
description: "When VFX shots are completed, uploads assets to Box, updates the production tracker in Google Sheets, notifies the post-production team in Microsoft Teams, and logs delivery in ServiceNow."
tags:
- production
- vfx
- box
- google-sheets
- microsoft-teams
- servicenow
capability:
exposes:
- type: mcp
namespace: vfx-delivery
port: 8080
tools:
- name: deliver-vfx-shots
description: "Given a production ID and shot list, upload to Box, update tracker, notify team, and log delivery."
inputParameters:
- name: production_id
in: body
type: string
description: "The production project identifier."
- name: shot_count
in: body
type: integer
description: "Number of VFX shots being delivered."
- name: vendor_name
in: body
type: string
description: "The VFX vendor name."
- name: delivery_folder_url
in: body
type: string
description: "URL to the source delivery folder."
steps:
- name: create-box-folder
type: call
call: "box.create-folder"
with:
name: "VFX_Delivery_{{production_id}}_{{vendor_name}}"
parent_id: "0"
- name: update-tracker
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "vfx_production_tracker"
range: "Deliveries!A:E"
values:
- "{{production_id}}"
- "{{vendor_name}}"
- "{{shot_count}}"
- "delivered"
- "{{create-box-folder.url}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "post-production"
text: "VFX delivery: {{shot_count}} shots from {{vendor_name}} for production {{production_id}}. Box: {{create-box-folder.url}}"
- name: log-delivery
type: call
call: "servicenow.create-incident"
with:
short_description: "VFX delivery received: {{production_id}}"
category: "production_delivery"
description: "{{shot_count}} shots from {{vendor_name}}. Storage: {{create-box-folder.url}}"
consumes:
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: folders
path: "/folders"
operations:
- name: create-folder
method: POST
- 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}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
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: servicenow
baseUri: "https://warnerbros.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
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.warner-brothers.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Triggers a Power BI dataset refresh for a given workspace and dataset, used to update executive dashboards with the latest streaming and financial data.
naftiko: "0.5"
info:
label: "Power BI Report Refresh"
description: "Triggers a Power BI dataset refresh for a given workspace and dataset, used to update executive dashboards with the latest streaming and financial data."
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 for a workspace and dataset ID."
inputParameters:
- name: workspace_id
in: body
type: string
description: "The Power BI workspace (group) ID."
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID to refresh."
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
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 new content release is proposed, creates an approval request in ServiceNow, notifies the legal team in Microsoft Teams for rights clearance, and updates the release calendar in Google Sheets.
naftiko: "0.5"
info:
label: "Release Approval Workflow"
description: "When a new content release is proposed, creates an approval request in ServiceNow, notifies the legal team in Microsoft Teams for rights clearance, and updates the release calendar in Google Sheets."
tags:
- production
- release-management
- servicenow
- microsoft-teams
- google-sheets
capability:
exposes:
- type: mcp
namespace: release-management
port: 8080
tools:
- name: submit-release-approval
description: "Given a title ID and proposed release date, create an approval request, notify legal, and update the release calendar."
inputParameters:
- name: title_id
in: body
type: string
description: "The content catalog title identifier."
- name: release_date
in: body
type: string
description: "Proposed release date in YYYY-MM-DD format."
- name: release_type
in: body
type: string
description: "Type of release (theatrical, streaming, home_video)."
steps:
- name: create-approval
type: call
call: "servicenow.create-change-request"
with:
short_description: "Release approval: {{title_id}} on {{release_date}}"
type: "normal"
category: "content_release"
description: "Release type: {{release_type}}. Title: {{title_id}}"
- name: notify-legal
type: call
call: "msteams.send-message"
with:
channel_id: "legal-clearance"
text: "Release approval needed: {{title_id}} for {{release_type}} on {{release_date}}. ServiceNow: {{create-approval.number}}"
- name: update-calendar
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "release_calendar"
range: "Calendar!A:E"
values:
- "{{title_id}}"
- "{{release_date}}"
- "{{release_type}}"
- "pending_approval"
- "{{create-approval.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://warnerbros.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: 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: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
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.warner-brothers.com/sales/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 Salesforce opportunity by ID and returns deal stage, amount, close date, and account name.
naftiko: "0.5"
info:
label: "Salesforce Opportunity Lookup"
description: "Retrieves a Salesforce opportunity by ID and returns deal stage, amount, close date, and account name."
tags:
- sales
- salesforce
- crm
capability:
exposes:
- type: mcp
namespace: crm
port: 8080
tools:
- name: get-opportunity
description: "Look up a Salesforce opportunity by ID. Returns stage, amount, close date, and account."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The Salesforce opportunity ID."
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
outputParameters:
- name: stage
type: string
mapping: "$.StageName"
- name: amount
type: number
mapping: "$.Amount"
- name: close_date
type: string
mapping: "$.CloseDate"
- name: account_name
type: string
mapping: "$.Account.Name"
consumes:
- type: http
namespace: salesforce
baseUri: "https://warnerbros.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: get-opportunity
method: GET
When an expense report is submitted in SAP Concur, validates the report, creates a matching entry in SAP S/4HANA, and notifies the finance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "SAP Concur Expense Report Sync"
description: "When an expense report is submitted in SAP Concur, validates the report, creates a matching entry in SAP S/4HANA, and notifies the finance team via Microsoft Teams."
tags:
- finance
- sap-concur
- sap-s4hana
- microsoft-teams
- expense
capability:
exposes:
- type: mcp
namespace: expense-management
port: 8080
tools:
- name: sync-expense-report
description: "Given a Concur expense report ID, validate it, post to SAP S/4HANA, and notify finance."
inputParameters:
- name: report_id
in: body
type: string
description: "The SAP Concur expense report identifier."
- name: employee_id
in: body
type: string
description: "The Workday employee ID of the submitter."
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}}"
description: "Concur Report {{report_id}}"
- name: notify-finance
type: call
call: "msteams.send-message"
with:
channel_id: "finance-expenses"
text: "Expense report {{report_id}} for {{get-report.total_amount}} {{get-report.currency_code}} 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://warnerbros-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
- finance
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. Returns status, vendor, total value, and delivery date."
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://warnerbros-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
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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.warner-brothers.com/it/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_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, assigned group, and resolution notes.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number and returns status, priority, assigned group, and resolution notes."
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. Returns status, priority, assigned group, and description."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number (e.g., INC0012345)."
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"
- name: description
type: string
mapping: "$.result.short_description"
consumes:
- type: http
namespace: servicenow
baseUri: "https://warnerbros.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.warner-brothers.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_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, used for notifications and alerts across Warner Bros teams.
naftiko: "0.5"
info:
label: "Slack Channel Message Post"
description: "Posts a formatted message to a specified Slack channel, used for notifications and alerts across Warner Bros teams."
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 to post."
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.warner-brothers.com/communications/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_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.warner-brothers.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 viewership analytics query against Snowflake and returns aggregated streaming metrics for a given title and date range.
naftiko: "0.5"
info:
label: "Snowflake Viewership Query"
description: "Executes a viewership analytics query against Snowflake and returns aggregated streaming metrics for a given title and date range."
tags:
- analytics
- snowflake
- streaming
- data
capability:
exposes:
- type: mcp
namespace: data-analytics
port: 8080
tools:
- name: query-viewership
description: "Run a viewership analytics query on Snowflake for a title and date range."
inputParameters:
- name: title_id
in: body
type: string
description: "The content catalog title ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "snowflake.execute-query"
with:
statement: "SELECT title_id, SUM(view_minutes) as total_minutes, COUNT(DISTINCT user_id) as unique_viewers FROM streaming.viewership WHERE title_id = '{{title_id}}' AND view_date BETWEEN '{{start_date}}' AND '{{end_date}}' GROUP BY title_id"
database: "STREAMING_ANALYTICS"
warehouse: "ANALYTICS_WH"
outputParameters:
- name: total_minutes
type: integer
mapping: "$.data[0][1]"
- name: unique_viewers
type: integer
mapping: "$.data[0][2]"
consumes:
- type: http
namespace: snowflake
baseUri: "https://warnerbros.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Launches a social media campaign by creating posts across Instagram, Twitter, and Facebook via their APIs, logging the campaign in Salesforce Marketing Cloud, and tracking via Adobe Analytics.
naftiko: "0.5"
info:
label: "Social Media Campaign Orchestrator"
description: "Launches a social media campaign by creating posts across Instagram, Twitter, and Facebook via their APIs, logging the campaign in Salesforce Marketing Cloud, and tracking via Adobe Analytics."
tags:
- marketing
- social-media
- instagram
- twitter
- facebook
- salesforce-marketing-cloud
- adobe-analytics
capability:
exposes:
- type: mcp
namespace: social-campaigns
port: 8080
tools:
- name: launch-campaign
description: "Given campaign details, post content to Instagram, Twitter, and Facebook, register in Salesforce Marketing Cloud, and set up Adobe Analytics tracking."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The name of the marketing campaign."
- name: content_text
in: body
type: string
description: "The post text content."
- name: media_url
in: body
type: string
description: "URL of the media asset to attach."
- name: campaign_id
in: body
type: string
description: "The Salesforce Marketing Cloud campaign ID."
steps:
- name: post-twitter
type: call
call: "twitter.create-tweet"
with:
text: "{{content_text}}"
media_url: "{{media_url}}"
- name: post-instagram
type: call
call: "instagram.create-post"
with:
caption: "{{content_text}}"
image_url: "{{media_url}}"
- name: post-facebook
type: call
call: "facebook.create-post"
with:
message: "{{content_text}}"
link: "{{media_url}}"
- name: register-campaign
type: call
call: "sfmc.update-campaign"
with:
campaign_id: "{{campaign_id}}"
status: "launched"
twitter_id: "{{post-twitter.id}}"
instagram_id: "{{post-instagram.id}}"
- name: setup-tracking
type: call
call: "adobe-analytics.create-segment"
with:
name: "campaign-{{campaign_id}}"
campaign_id: "{{campaign_id}}"
consumes:
- type: http
namespace: twitter
baseUri: "https://api.twitter.com/2"
authentication:
type: bearer
token: "$secrets.twitter_bearer_token"
resources:
- name: tweets
path: "/tweets"
operations:
- name: create-tweet
method: POST
- type: http
namespace: instagram
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: media
path: "/{{ig_user_id}}/media"
inputParameters:
- name: ig_user_id
in: path
operations:
- name: create-post
method: POST
- type: http
namespace: facebook
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.facebook_page_token"
resources:
- name: feed
path: "/{{page_id}}/feed"
inputParameters:
- name: page_id
in: path
operations:
- name: create-post
method: POST
- type: http
namespace: sfmc
baseUri: "https://warnerbros.rest.marketingcloudapis.com/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: campaigns
path: "/campaigns/{{campaign_id}}"
inputParameters:
- name: campaign_id
in: path
operations:
- name: update-campaign
method: PATCH
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
resources:
- name: segments
path: "/segments"
operations:
- name: create-segment
method: POST
Executes a Splunk search query against security logs and returns matching events, used for security incident investigation.
naftiko: "0.5"
info:
label: "Splunk Security Log Search"
description: "Executes a Splunk search query against security logs and returns matching events, used for security incident investigation."
tags:
- security
- splunk
- logging
capability:
exposes:
- type: mcp
namespace: security-logs
port: 8080
tools:
- name: search-security-logs
description: "Run a Splunk search query against security logs for a given time range."
inputParameters:
- name: search_query
in: body
type: string
description: "The Splunk search query (SPL)."
- name: earliest_time
in: body
type: string
description: "Earliest time for the search (e.g., -24h)."
- name: latest_time
in: body
type: string
description: "Latest time for the search (e.g., now)."
call: "splunk.create-search"
with:
search: "{{search_query}}"
earliest_time: "{{earliest_time}}"
latest_time: "{{latest_time}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://warnerbros-splunk.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search-jobs
path: "/search/jobs"
operations:
- name: create-search
method: POST
Queries the content catalog API to retrieve metadata for a title including availability, ratings, and streaming platform distribution status.
naftiko: "0.5"
info:
label: "Streaming Content Catalog Lookup"
description: "Queries the content catalog API to retrieve metadata for a title including availability, ratings, and streaming platform distribution status."
tags:
- streaming
- content
- catalog
capability:
exposes:
- type: mcp
namespace: content-catalog
port: 8080
tools:
- name: get-title-metadata
description: "Look up a streaming title by ID and return metadata including availability, ratings, genre, and distribution status."
inputParameters:
- name: title_id
in: body
type: string
description: "The internal content catalog title identifier."
call: "catalog.get-title"
with:
title_id: "{{title_id}}"
outputParameters:
- name: title
type: string
mapping: "$.data.title"
- name: availability
type: string
mapping: "$.data.availability_status"
- name: rating
type: string
mapping: "$.data.content_rating"
- name: platforms
type: array
mapping: "$.data.distribution_platforms"
consumes:
- type: http
namespace: catalog
baseUri: "https://api.warnerbros.com/content/v2"
authentication:
type: bearer
token: "$secrets.content_catalog_token"
resources:
- name: titles
path: "/titles/{{title_id}}"
inputParameters:
- name: title_id
in: path
operations:
- name: get-title
method: GET
When a production requests a sound stage, checks availability via the facilities API, creates a booking in ServiceNow, allocates budget in SAP, and confirms via Microsoft Teams.
naftiko: "0.5"
info:
label: "Studio Booking Orchestrator"
description: "When a production requests a sound stage, checks availability via the facilities API, creates a booking in ServiceNow, allocates budget in SAP, and confirms via Microsoft Teams."
tags:
- production
- facilities
- servicenow
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: studio-facilities
port: 8080
tools:
- name: book-sound-stage
description: "Given a production ID, requested dates, and stage preference, check availability, create booking, allocate budget, and confirm."
inputParameters:
- name: production_id
in: body
type: string
description: "The production project identifier."
- name: stage_id
in: body
type: string
description: "The preferred sound stage identifier."
- name: start_date
in: body
type: string
description: "Booking start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "Booking end date in YYYY-MM-DD format."
steps:
- name: check-availability
type: call
call: "facilities.get-stage-availability"
with:
stage_id: "{{stage_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: create-booking
type: call
call: "servicenow.create-request"
with:
short_description: "Sound stage booking: {{stage_id}} for {{production_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
category: "facilities_booking"
- name: allocate-budget
type: call
call: "sap.create-cost-allocation"
with:
cost_center: "{{production_id}}"
amount: "{{check-availability.daily_rate}}"
description: "Stage {{stage_id}} booking {{start_date}} to {{end_date}}"
- name: confirm-booking
type: call
call: "msteams.send-message"
with:
channel_id: "production-facilities"
text: "Sound stage {{stage_id}} booked for {{production_id}} from {{start_date}} to {{end_date}}. ServiceNow: {{create-booking.number}}. Budget: {{allocate-budget.document_number}}"
consumes:
- type: http
namespace: facilities
baseUri: "https://api.warnerbros.com/facilities/v1"
authentication:
type: bearer
token: "$secrets.facilities_api_token"
resources:
- name: stages
path: "/stages/{{stage_id}}/availability"
inputParameters:
- name: stage_id
in: path
operations:
- name: get-stage-availability
method: GET
- type: http
namespace: servicenow
baseUri: "https://warnerbros.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: sap
baseUri: "https://warnerbros-s4.sap.com/sap/opu/odata/sap/API_FINANCIALACCOUNTING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: cost-allocations
path: "/A_JournalEntry"
operations:
- name: create-cost-allocation
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 subscriber churn signals, creates a Salesforce case for high-risk accounts, triggers a retention email via SendGrid, and posts a summary to Slack.
naftiko: "0.5"
info:
label: "Subscriber Churn Alert Pipeline"
description: "Queries Snowflake for subscriber churn signals, creates a Salesforce case for high-risk accounts, triggers a retention email via SendGrid, and posts a summary to Slack."
tags:
- streaming
- churn
- snowflake
- salesforce
- sendgrid
- slack
capability:
exposes:
- type: mcp
namespace: subscriber-retention
port: 8080
tools:
- name: process-churn-alert
description: "Given a subscriber ID flagged for churn risk, create a retention case, send a win-back email, and alert the team."
inputParameters:
- name: subscriber_id
in: body
type: string
description: "The subscriber account identifier."
- name: risk_score
in: body
type: number
description: "The churn risk score (0-100)."
steps:
- name: get-subscriber
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT email, plan_type, last_login, watch_hours_30d FROM subscribers.accounts WHERE subscriber_id = '{{subscriber_id}}'"
database: "STREAMING_ANALYTICS"
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Churn risk: {{subscriber_id}} (score: {{risk_score}})"
priority: "High"
description: "Subscriber {{subscriber_id}} flagged with churn risk score {{risk_score}}. Plan: {{get-subscriber.plan_type}}. Last active: {{get-subscriber.last_login}}"
- name: send-retention-email
type: call
call: "sendgrid.send-email"
with:
to: "{{get-subscriber.email}}"
template_id: "retention_winback_v2"
dynamic_data:
subscriber_id: "{{subscriber_id}}"
- name: alert-team
type: call
call: "slack.post-message"
with:
channel: "subscriber-retention"
text: "Churn alert: {{subscriber_id}} (risk: {{risk_score}}). Case: {{create-case.id}}. Retention email sent to {{get-subscriber.email}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://warnerbros.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://warnerbros.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: 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 engagement metrics for subscribers.
naftiko: "0.5"
info:
label: "Subscriber Engagement Report"
description: "Retrieves engagement metrics for subscribers."
tags:
- media
- analytics
capability:
exposes:
- type: mcp
namespace: media
port: 8080
tools:
- name: get-subscriber
description: "Retrieves engagement metrics for subscribers."
inputParameters:
- name: entity_id
in: body
type: string
description: "The subscriber engagement report identifier."
call: "media-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: media-api
baseUri: "https://api.warner-brothers.com/media/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: subscriber
path: "/subscriber/engagement/report/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-subscriber
method: GET
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 talent contract approaches expiry, retrieves contract details from Salesforce, creates a renewal task in ServiceNow, generates a DocuSign envelope for signature, and notifies talent relations in Slack.
naftiko: "0.5"
info:
label: "Talent Contract Renewal Pipeline"
description: "When a talent contract approaches expiry, retrieves contract details from Salesforce, creates a renewal task in ServiceNow, generates a DocuSign envelope for signature, and notifies talent relations in Slack."
tags:
- talent
- licensing
- salesforce
- servicenow
- slack
- contracts
capability:
exposes:
- type: mcp
namespace: talent-contracts
port: 8080
tools:
- name: initiate-contract-renewal
description: "Given a Salesforce contract ID and talent name, create renewal task, prepare DocuSign, and notify team."
inputParameters:
- name: contract_id
in: body
type: string
description: "The Salesforce contract record ID."
- name: talent_name
in: body
type: string
description: "The name of the talent."
- name: talent_email
in: body
type: string
description: "The talent's email address."
steps:
- name: get-contract
type: call
call: "salesforce.get-contract"
with:
contract_id: "{{contract_id}}"
- name: create-renewal-task
type: call
call: "servicenow.create-request"
with:
short_description: "Contract renewal: {{talent_name}}"
category: "talent_contracts"
description: "Contract {{contract_id}} expires {{get-contract.end_date}}. Value: {{get-contract.amount}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "talent-relations"
text: "Contract renewal initiated for {{talent_name}}. Expires: {{get-contract.end_date}}. ServiceNow: {{create-renewal-task.number}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://warnerbros.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contracts
path: "/sobjects/Contract/{{contract_id}}"
inputParameters:
- name: contract_id
in: path
operations:
- name: get-contract
method: GET
- type: http
namespace: servicenow
baseUri: "https://warnerbros.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: 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 new hire is created in Workday, opens a ServiceNow onboarding ticket, provisions Adobe Creative Cloud licenses, sets up a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Talent Onboarding Orchestrator"
description: "When a new hire is created in Workday, opens a ServiceNow onboarding ticket, provisions Adobe Creative Cloud licenses, sets up a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- adobe-creative-cloud
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: onboard-talent
description: "Given a Workday employee ID and department, orchestrate the full onboarding sequence across ServiceNow, Adobe Creative Cloud, SharePoint, and Microsoft Teams."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday worker ID for the new hire."
- name: start_date
in: body
type: string
description: "The employee start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department the new hire is joining."
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-creative-cloud
type: call
call: "adobe.provision-license"
with:
email: "{{get-employee.work_email}}"
product: "creative_cloud_all_apps"
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{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 Warner Bros, {{get-employee.first_name}}! Ticket: {{open-ticket.number}}. Adobe CC is provisioned. Docs: {{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://warnerbros.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: adobe
baseUri: "https://usermanagement.adobe.io/v2/usermanagement"
authentication:
type: bearer
token: "$secrets.adobe_um_token"
resources:
- name: licenses
path: "/action/{{org_id}}"
inputParameters:
- name: org_id
in: path
operations:
- name: provision-license
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
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 Twitch channel streaming metrics including viewer count, follower count, and recent broadcast history for a given channel.
naftiko: "0.5"
info:
label: "Twitch Stream Metrics"
description: "Retrieves Twitch channel streaming metrics including viewer count, follower count, and recent broadcast history for a given channel."
tags:
- streaming
- twitch
- analytics
capability:
exposes:
- type: mcp
namespace: twitch-analytics
port: 8080
tools:
- name: get-stream-metrics
description: "Fetch Twitch channel metrics including current viewers, followers, and recent broadcasts."
inputParameters:
- name: broadcaster_id
in: body
type: string
description: "The Twitch broadcaster ID."
call: "twitch.get-channel"
with:
broadcaster_id: "{{broadcaster_id}}"
outputParameters:
- name: viewer_count
type: integer
mapping: "$.data[0].viewer_count"
- name: follower_count
type: integer
mapping: "$.data[0].follower_total"
- name: is_live
type: boolean
mapping: "$.data[0].is_live"
consumes:
- type: http
namespace: twitch
baseUri: "https://api.twitch.tv/helix"
authentication:
type: bearer
token: "$secrets.twitch_token"
inputParameters:
- name: Client-Id
in: header
value: "$secrets.twitch_client_id"
resources:
- name: channels
path: "/channels?broadcaster_id={{broadcaster_id}}"
inputParameters:
- name: broadcaster_id
in: query
operations:
- name: get-channel
method: GET
Triggers a Unity game build pipeline via Azure DevOps, monitors build status, and posts results to the game development Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Unity Build Pipeline Trigger"
description: "Triggers a Unity game build pipeline via Azure DevOps, monitors build status, and posts results to the game development Microsoft Teams channel."
tags:
- gaming
- unity
- azure-devops
- microsoft-teams
- ci-cd
capability:
exposes:
- type: mcp
namespace: game-builds
port: 8080
tools:
- name: trigger-game-build
description: "Given a Unity project name and branch, trigger an Azure DevOps build pipeline and notify the team on completion."
inputParameters:
- name: project_name
in: body
type: string
description: "The Unity project name."
- name: branch
in: body
type: string
description: "The source branch to build from."
- name: platform
in: body
type: string
description: "Target platform (e.g., PC, PS5, Xbox)."
steps:
- name: trigger-build
type: call
call: "azdevops.queue-build"
with:
definition_name: "{{project_name}}-{{platform}}"
source_branch: "{{branch}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "game-dev-builds"
text: "Build queued for {{project_name}} on {{platform}} from {{branch}}. Build ID: {{trigger-build.build_id}}. Pipeline: {{trigger-build.url}}"
consumes:
- type: http
namespace: azdevops
baseUri: "https://dev.azure.com/warnerbros"
authentication:
type: basic
username: ""
password: "$secrets.azdevops_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?api-version=7.0"
inputParameters:
- name: project
in: path
operations:
- name: queue-build
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
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.warner-brothers.com/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.warner-brothers.com/v2"
authentication:
type: bearer
token: "$secrets.warner_brothers_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 employee details from Workday including name, department, manager, and contact information for a given worker ID.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Retrieves employee details from Workday including name, department, manager, and contact information for a given worker ID."
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. Returns name, department, manager, and email."
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.warner-brothers.com/hr/v1"
authentication:
type: bearer
token: "$secrets.warner_brothers_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Retrieves YouTube channel performance metrics including subscriber count, view totals, and top-performing videos for a given channel ID.
naftiko: "0.5"
info:
label: "YouTube Channel Analytics"
description: "Retrieves YouTube channel performance metrics including subscriber count, view totals, and top-performing videos for a given channel ID."
tags:
- streaming
- analytics
- youtube
capability:
exposes:
- type: mcp
namespace: youtube-analytics
port: 8080
tools:
- name: get-channel-stats
description: "Fetch YouTube channel statistics including subscribers, total views, and video count."
inputParameters:
- name: channel_id
in: body
type: string
description: "The YouTube channel identifier."
call: "youtube.get-channel"
with:
channel_id: "{{channel_id}}"
outputParameters:
- name: subscriber_count
type: string
mapping: "$.items[0].statistics.subscriberCount"
- name: view_count
type: string
mapping: "$.items[0].statistics.viewCount"
- name: video_count
type: string
mapping: "$.items[0].statistics.videoCount"
consumes:
- type: http
namespace: youtube
baseUri: "https://www.googleapis.com/youtube/v3"
authentication:
type: apiKey
key: "$secrets.youtube_api_key"
resources:
- name: channels
path: "/channels?part=statistics&id={{channel_id}}"
inputParameters:
- name: channel_id
in: query
operations:
- name: get-channel
method: GET
Retrieves a Zendesk support ticket by ID and returns status, priority, assignee, and customer details.
naftiko: "0.5"
info:
label: "Zendesk Support Ticket Lookup"
description: "Retrieves a Zendesk support ticket by ID and returns status, priority, assignee, and customer details."
tags:
- customer-service
- zendesk
- support
capability:
exposes:
- type: mcp
namespace: customer-support
port: 8080
tools:
- name: get-support-ticket
description: "Look up a Zendesk ticket by ID. Returns status, priority, assignee, and requester email."
inputParameters:
- name: ticket_id
in: body
type: string
description: "The Zendesk ticket ID."
call: "zendesk.get-ticket"
with:
ticket_id: "{{ticket_id}}"
outputParameters:
- name: status
type: string
mapping: "$.ticket.status"
- name: priority
type: string
mapping: "$.ticket.priority"
- name: assignee
type: string
mapping: "$.ticket.assignee.name"
- name: requester_email
type: string
mapping: "$.ticket.requester.email"
consumes:
- type: http
namespace: zendesk
baseUri: "https://warnerbros.zendesk.com/api/v2"
authentication:
type: basic
username: "$secrets.zendesk_user"
password: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets/{{ticket_id}}"
inputParameters:
- name: ticket_id
in: path
operations:
- name: get-ticket
method: GET
Creates a Zoom meeting for a given host, sends calendar invites via Microsoft Outlook, and posts the meeting link in a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Zoom Meeting Scheduler"
description: "Creates a Zoom meeting for a given host, sends calendar invites via Microsoft Outlook, and posts the meeting link in a Microsoft Teams channel."
tags:
- collaboration
- zoom
- microsoft-outlook
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: meeting-mgmt
port: 8080
tools:
- name: schedule-meeting
description: "Given a host email, topic, and time, create a Zoom meeting, send Outlook invites, and post to Teams."
inputParameters:
- name: host_email
in: body
type: string
description: "The Zoom host email address."
- name: topic
in: body
type: string
description: "The meeting topic."
- name: start_time
in: body
type: string
description: "Meeting start time in ISO 8601 format."
- name: duration_minutes
in: body
type: integer
description: "Meeting duration in minutes."
- name: attendees
in: body
type: string
description: "Comma-separated attendee email addresses."
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}}"
attendees: "{{attendees}}"
body: "Join Zoom: {{create-meeting.join_url}}"
- name: post-to-teams
type: call
call: "msteams.send-message"
with:
channel_id: "general"
text: "Meeting scheduled: {{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