Paramount Capabilities

Naftiko 0.5 capability definitions for Paramount - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Pulls ad impression and revenue data from Google Ads and the internal ad server, reconciles in Snowflake, and updates the advertising revenue dashboard in Tableau.

naftiko: "0.5"
info:
  label: "Ad Campaign Revenue Tracker"
  description: "Pulls ad impression and revenue data from Google Ads and the internal ad server, reconciles in Snowflake, and updates the advertising revenue dashboard in Tableau."
  tags:
    - advertising
    - revenue
    - google-ads
    - snowflake
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: ad-revenue
      port: 8080
      tools:
        - name: track-ad-revenue
          description: "Track advertising revenue across platforms and update the revenue dashboard."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The advertising campaign identifier."
            - name: date
              in: body
              type: string
              description: "The reporting date in YYYY-MM-DD format."
          steps:
            - name: get-google-ads-data
              type: call
              call: "google-ads.get-campaign-revenue"
              with:
                campaign_id: "{{campaign_id}}"
                date: "{{date}}"
            - name: get-internal-ad-data
              type: call
              call: "ad-server.get-revenue"
              with:
                campaign_id: "{{campaign_id}}"
                date: "{{date}}"
            - name: reconcile-revenue
              type: call
              call: "snowflake.execute-query"
              with:
                query: "CALL reconcile_ad_revenue('{{campaign_id}}', '{{date}}')"
            - name: refresh-dashboard
              type: call
              call: "tableau.refresh-extract"
              with:
                datasource_id: "ad_revenue_ds"
  consumes:
    - type: http
      namespace: google-ads
      baseUri: "https://googleads.googleapis.com/v14"
      authentication:
        type: bearer
        token: "$secrets.google_ads_token"
      resources:
        - name: campaigns
          path: "/customers/paramount/campaigns/{{campaign_id}}/revenue"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-campaign-revenue
              method: GET
    - type: http
      namespace: ad-server
      baseUri: "https://api.paramount.com/adserver/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_adserver_token"
      resources:
        - name: revenue
          path: "/campaigns/{{campaign_id}}/revenue"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-revenue
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.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: tableau
      baseUri: "https://tableau.paramount.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/sites/paramount/datasources/{{datasource_id}}/refresh"
          inputParameters:
            - name: datasource_id
              in: path
          operations:
            - name: refresh-extract
              method: POST

Queries the ad server for available ad inventory by content category, time slot, and region. Returns available impressions and CPM rates.

naftiko: "0.5"
info:
  label: "Ad Inventory Availability Checker"
  description: "Queries the ad server for available ad inventory by content category, time slot, and region. Returns available impressions and CPM rates."
  tags:
    - advertising
    - inventory
capability:
  exposes:
    - type: mcp
      namespace: ad-inventory
      port: 8080
      tools:
        - name: check-ad-inventory
          description: "Check available advertising inventory by category and region."
          inputParameters:
            - name: content_category
              in: body
              type: string
              description: "The content category for ad placement."
            - name: region
              in: body
              type: string
              description: "The geographic region."
            - name: date_range
              in: body
              type: string
              description: "The date range for inventory check."
          call: "ad-server.get-inventory"
          with:
            category: "{{content_category}}"
            region: "{{region}}"
            range: "{{date_range}}"
          outputParameters:
            - name: available_impressions
              type: integer
              mapping: "$.data.available_impressions"
            - name: cpm_rate
              type: number
              mapping: "$.data.cpm"
            - name: fill_rate
              type: number
              mapping: "$.data.current_fill_rate"
  consumes:
    - type: http
      namespace: ad-server
      baseUri: "https://api.paramount.com/adserver/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_adserver_token"
      resources:
        - name: inventory
          path: "/inventory/check"
          operations:
            - name: get-inventory
              method: GET

Queries the post-production workflow system for Adobe Premiere Pro project status. Returns edit progress, review status, and estimated delivery date.

naftiko: "0.5"
info:
  label: "Adobe Premiere Pro Project Status"
  description: "Queries the post-production workflow system for Adobe Premiere Pro project status. Returns edit progress, review status, and estimated delivery date."
  tags:
    - content
    - post-production
    - adobe-premiere-pro
capability:
  exposes:
    - type: mcp
      namespace: post-production
      port: 8080
      tools:
        - name: get-edit-project-status
          description: "Look up the status of a post-production editing project."
          inputParameters:
            - name: project_id
              in: body
              type: string
              description: "The post-production project identifier."
          call: "postprod-api.get-project"
          with:
            project_id: "{{project_id}}"
          outputParameters:
            - name: edit_progress
              type: number
              mapping: "$.data.edit_progress_pct"
            - name: review_status
              type: string
              mapping: "$.data.review_status"
            - name: estimated_delivery
              type: string
              mapping: "$.data.estimated_delivery_date"
  consumes:
    - type: http
      namespace: postprod-api
      baseUri: "https://api.paramount.com/postproduction/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_postprod_token"
      resources:
        - name: projects
          path: "/projects/{{project_id}}"
          inputParameters:
            - name: project_id
              in: path
          operations:
            - name: get-project
              method: GET

Queries first-party streaming data in Snowflake to build audience segments, syncs them to the ad server for targeting, and logs the segment in Salesforce for advertiser proposals.

naftiko: "0.5"
info:
  label: "Advertising Audience Segment Builder"
  description: "Queries first-party streaming data in Snowflake to build audience segments, syncs them to the ad server for targeting, and logs the segment in Salesforce for advertiser proposals."
  tags:
    - advertising
    - streaming
    - snowflake
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: audience-ops
      port: 8080
      tools:
        - name: build-audience-segment
          description: "Build an advertising audience segment from streaming data."
          inputParameters:
            - name: segment_name
              in: body
              type: string
              description: "Name for the new audience segment."
            - name: genre_affinity
              in: body
              type: string
              description: "Genre affinity filter."
            - name: min_watch_hours
              in: body
              type: number
              description: "Minimum watch hours threshold."
          steps:
            - name: query-audience
              type: call
              call: "snowflake.execute-query"
              with:
                query: "CALL build_audience_segment('{{segment_name}}', '{{genre_affinity}}', {{min_watch_hours}})"
            - name: sync-to-adserver
              type: call
              call: "ad-server.create-segment"
              with:
                segment_name: "{{segment_name}}"
                user_ids: "{{query-audience.user_ids}}"
            - name: log-in-salesforce
              type: call
              call: "salesforce.create-record"
              with:
                object: "Audience_Segment__c"
                data:
                  name: "{{segment_name}}"
                  size: "{{query-audience.segment_size}}"
                  ad_server_id: "{{sync-to-adserver.segment_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.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: ad-server
      baseUri: "https://api.paramount.com/adserver/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_adserver_token"
      resources:
        - name: segments
          path: "/segments"
          operations:
            - name: create-segment
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: records
          path: "/sobjects/{{object}}"
          inputParameters:
            - name: object
              in: path
          operations:
            - name: create-record
              method: POST

Pulls affiliate sign-up and conversion data from the affiliate platform, joins with subscription revenue in Snowflake, and updates the partnerships dashboard in Tableau.

naftiko: "0.5"
info:
  label: "Affiliate Partner Performance Report"
  description: "Pulls affiliate sign-up and conversion data from the affiliate platform, joins with subscription revenue in Snowflake, and updates the partnerships dashboard in Tableau."
  tags:
    - marketing
    - advertising
    - snowflake
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: affiliate-ops
      port: 8080
      tools:
        - name: report-affiliate-performance
          description: "Generate an affiliate partner performance report."
          inputParameters:
            - name: partner_id
              in: body
              type: string
              description: "The affiliate partner identifier."
            - name: date_start
              in: body
              type: string
              description: "Report start date."
            - name: date_end
              in: body
              type: string
              description: "Report end date."
          steps:
            - name: get-affiliate-data
              type: call
              call: "affiliate-platform.get-partner-stats"
              with:
                partner_id: "{{partner_id}}"
                start_date: "{{date_start}}"
                end_date: "{{date_end}}"
            - name: get-revenue-data
              type: call
              call: "snowflake.execute-query"
              with:
                query: "SELECT SUM(revenue) as total_revenue FROM affiliate_subscriptions WHERE partner_id='{{partner_id}}'"
            - name: refresh-dashboard
              type: call
              call: "tableau.refresh-extract"
              with:
                datasource_id: "affiliate_performance_ds"
  consumes:
    - type: http
      namespace: affiliate-platform
      baseUri: "https://api.paramount.com/affiliates/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_affiliate_token"
      resources:
        - name: partners
          path: "/partners/{{partner_id}}/stats"
          inputParameters:
            - name: partner_id
              in: path
          operations:
            - name: get-partner-stats
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.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: tableau
      baseUri: "https://tableau.paramount.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/sites/paramount/datasources/{{datasource_id}}/refresh"
          inputParameters:
            - name: datasource_id
              in: path
          operations:
            - name: refresh-extract
              method: POST

Queries Azure DevOps for the latest pipeline build status. Returns build number, result, and source branch.

naftiko: "0.5"
info:
  label: "Azure DevOps Pipeline Status"
  description: "Queries Azure DevOps for the latest pipeline build status. Returns build number, result, and source branch."
  tags:
    - development
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: cicd-ops
      port: 8080
      tools:
        - name: get-pipeline-status
          description: "Look up the latest Azure DevOps pipeline build status."
          inputParameters:
            - name: pipeline_id
              in: body
              type: string
              description: "The pipeline definition identifier."
          call: "azdo.get-latest-build"
          with:
            pipeline_id: "{{pipeline_id}}"
          outputParameters:
            - name: build_number
              type: string
              mapping: "$.value[0].buildNumber"
            - name: result
              type: string
              mapping: "$.value[0].result"
            - name: source_branch
              type: string
              mapping: "$.value[0].sourceBranch"
  consumes:
    - type: http
      namespace: azdo
      baseUri: "https://dev.azure.com/paramount/streaming/_apis/build"
      authentication:
        type: basic
        username: ""
        password: "$secrets.azdo_pat"
      resources:
        - name: builds
          path: "/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
          inputParameters:
            - name: pipeline_id
              in: query
          operations:
            - name: get-latest-build
              method: GET

Uploads a document to Box and creates a shared link for distribution.

naftiko: "0.5"
info:
  label: "Box File Upload and Share"
  description: "Uploads a document to Box and creates a shared link for distribution."
  tags:
    - document-management
    - box
capability:
  exposes:
    - type: mcp
      namespace: file-sharing
      port: 8080
      tools:
        - name: upload-and-share-file
          description: "Upload a file to Box and create a shared link."
          inputParameters:
            - name: folder_id
              in: body
              type: string
              description: "The Box folder ID."
            - name: file_name
              in: body
              type: string
              description: "The file name."
          steps:
            - name: upload-file
              type: call
              call: "box.upload-file"
              with:
                folder_id: "{{folder_id}}"
                file_name: "{{file_name}}"
            - name: create-link
              type: call
              call: "box.create-shared-link"
              with:
                file_id: "{{upload-file.id}}"
  consumes:
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files/content"
          operations:
            - name: upload-file
              method: POST
        - name: shared-links
          path: "/files/{{file_id}}?fields=shared_link"
          inputParameters:
            - name: file_id
              in: path
          operations:
            - name: create-shared-link
              method: PUT

Searches Confluence for knowledge base articles matching a query string. Returns titles, URLs, and last updated dates.

naftiko: "0.5"
info:
  label: "Confluence Knowledge Base Search"
  description: "Searches Confluence for knowledge base articles matching a query string. Returns titles, URLs, and last updated dates."
  tags:
    - operations
    - knowledge-management
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: knowledge-base
      port: 8080
      tools:
        - name: search-kb
          description: "Search Confluence for knowledge base articles."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search query."
          call: "confluence.search"
          with:
            query: "{{query}}"
          outputParameters:
            - name: results
              type: array
              mapping: "$.results"
            - name: total_count
              type: integer
              mapping: "$.totalSize"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://paramount.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: search
          path: "/search?cql=text~'{{query}}'"
          inputParameters:
            - name: query
              in: query
          operations:
            - name: search
              method: GET

Checks content availability windows by territory and platform. Returns start date, end date, and licensed platforms.

naftiko: "0.5"
info:
  label: "Content Availability Window Lookup"
  description: "Checks content availability windows by territory and platform. Returns start date, end date, and licensed platforms."
  tags:
    - licensing
    - content
capability:
  exposes:
    - type: mcp
      namespace: content-windows
      port: 8080
      tools:
        - name: get-availability-window
          description: "Look up content availability windows by title and territory."
          inputParameters:
            - name: title_id
              in: body
              type: string
              description: "The content title ID."
            - name: territory
              in: body
              type: string
              description: "The territory code."
          call: "cms.get-window"
          with:
            title_id: "{{title_id}}"
            territory: "{{territory}}"
          outputParameters:
            - name: start_date
              type: string
              mapping: "$.data.window_start"
            - name: end_date
              type: string
              mapping: "$.data.window_end"
            - name: platforms
              type: array
              mapping: "$.data.licensed_platforms"
  consumes:
    - type: http
      namespace: cms
      baseUri: "https://api.paramount.com/content/v2"
      authentication:
        type: bearer
        token: "$secrets.paramount_cms_token"
      resources:
        - name: windows
          path: "/titles/{{title_id}}/windows/{{territory}}"
          inputParameters:
            - name: title_id
              in: path
            - name: territory
              in: path
          operations:
            - name: get-window
              method: GET

Triggers the media encoding pipeline for a new content asset, monitors progress via the encoding service, and updates the CMS with delivery URLs when complete.

naftiko: "0.5"
info:
  label: "Content Encoding Pipeline Trigger"
  description: "Triggers the media encoding pipeline for a new content asset, monitors progress via the encoding service, and updates the CMS with delivery URLs when complete."
  tags:
    - content
    - streaming
    - encoding
capability:
  exposes:
    - type: mcp
      namespace: encoding-ops
      port: 8080
      tools:
        - name: trigger-encoding
          description: "Trigger content encoding and update CMS with delivery URLs upon completion."
          inputParameters:
            - name: asset_id
              in: body
              type: string
              description: "The source media asset identifier."
            - name: output_profiles
              in: body
              type: array
              description: "List of encoding profiles (4K, HD, SD, mobile)."
          steps:
            - name: start-encoding
              type: call
              call: "encoding-service.submit-job"
              with:
                asset_id: "{{asset_id}}"
                profiles: "{{output_profiles}}"
            - name: check-status
              type: call
              call: "encoding-service.get-job-status"
              with:
                job_id: "{{start-encoding.job_id}}"
            - name: update-cms
              type: call
              call: "cms.update-delivery-urls"
              with:
                asset_id: "{{asset_id}}"
                urls: "{{check-status.output_urls}}"
  consumes:
    - type: http
      namespace: encoding-service
      baseUri: "https://api.paramount.com/encoding/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_encoding_token"
      resources:
        - name: jobs
          path: "/jobs"
          operations:
            - name: submit-job
              method: POST
        - name: job-status
          path: "/jobs/{{job_id}}"
          inputParameters:
            - name: job_id
              in: path
          operations:
            - name: get-job-status
              method: GET
    - type: http
      namespace: cms
      baseUri: "https://api.paramount.com/content/v2"
      authentication:
        type: bearer
        token: "$secrets.paramount_cms_token"
      resources:
        - name: titles
          path: "/titles/{{asset_id}}/delivery"
          inputParameters:
            - name: asset_id
              in: path
          operations:
            - name: update-delivery-urls
              method: PUT

Retrieves licensing deal details from Salesforce, cross-references content availability windows, and stores licensing reports in Snowflake for the business affairs team.

naftiko: "0.5"
info:
  label: "Content Licensing Agreement Tracker"
  description: "Retrieves licensing deal details from Salesforce, cross-references content availability windows, and stores licensing reports in Snowflake for the business affairs team."
  tags:
    - licensing
    - salesforce
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: licensing-ops
      port: 8080
      tools:
        - name: track-licensing-agreement
          description: "Track a content licensing agreement and generate availability reports."
          inputParameters:
            - name: deal_id
              in: body
              type: string
              description: "The Salesforce licensing deal identifier."
          steps:
            - name: get-deal
              type: call
              call: "salesforce.get-deal"
              with:
                deal_id: "{{deal_id}}"
            - name: get-content-windows
              type: call
              call: "cms.get-licensing-windows"
              with:
                deal_id: "{{deal_id}}"
            - name: store-report
              type: call
              call: "snowflake.insert-record"
              with:
                table: "licensing_reports"
                data:
                  deal_id: "{{deal_id}}"
                  partner: "{{get-deal.partner_name}}"
                  territories: "{{get-deal.territories}}"
                  window_start: "{{get-content-windows.start_date}}"
                  window_end: "{{get-content-windows.end_date}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: deals
          path: "/sobjects/Licensing_Deal__c/{{deal_id}}"
          inputParameters:
            - name: deal_id
              in: path
          operations:
            - name: get-deal
              method: GET
    - type: http
      namespace: cms
      baseUri: "https://api.paramount.com/content/v2"
      authentication:
        type: bearer
        token: "$secrets.paramount_cms_token"
      resources:
        - name: licensing
          path: "/deals/{{deal_id}}/windows"
          inputParameters:
            - name: deal_id
              in: path
          operations:
            - name: get-licensing-windows
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-record
              method: POST

Retrieves content metadata from the CMS by title ID. Returns title, genre, rating, runtime, and cast information.

naftiko: "0.5"
info:
  label: "Content Metadata Lookup"
  description: "Retrieves content metadata from the CMS by title ID. Returns title, genre, rating, runtime, and cast information."
  tags:
    - content
    - catalog
capability:
  exposes:
    - type: mcp
      namespace: content-catalog
      port: 8080
      tools:
        - name: get-content-metadata
          description: "Look up content metadata by title identifier."
          inputParameters:
            - name: title_id
              in: body
              type: string
              description: "The content title identifier."
          call: "cms.get-title"
          with:
            title_id: "{{title_id}}"
          outputParameters:
            - name: title
              type: string
              mapping: "$.data.title"
            - name: genre
              type: array
              mapping: "$.data.genres"
            - name: rating
              type: string
              mapping: "$.data.rating"
            - name: runtime
              type: integer
              mapping: "$.data.runtime_minutes"
  consumes:
    - type: http
      namespace: cms
      baseUri: "https://api.paramount.com/content/v2"
      authentication:
        type: bearer
        token: "$secrets.paramount_cms_token"
      resources:
        - name: titles
          path: "/titles/{{title_id}}"
          inputParameters:
            - name: title_id
              in: path
          operations:
            - name: get-title
              method: GET

Pulls user viewing history from the streaming platform, feeds it to the recommendation model in Snowflake, and updates personalized content rails in the CMS.

naftiko: "0.5"
info:
  label: "Content Recommendation Engine Sync"
  description: "Pulls user viewing history from the streaming platform, feeds it to the recommendation model in Snowflake, and updates personalized content rails in the CMS."
  tags:
    - streaming
    - content
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: recommendations
      port: 8080
      tools:
        - name: sync-recommendations
          description: "Update content recommendations based on viewing patterns."
          inputParameters:
            - name: user_segment
              in: body
              type: string
              description: "The user segment identifier."
            - name: model_version
              in: body
              type: string
              description: "The recommendation model version to use."
          steps:
            - name: get-viewing-data
              type: call
              call: "streaming-platform.get-viewing-history"
              with:
                segment: "{{user_segment}}"
            - name: run-model
              type: call
              call: "snowflake.execute-query"
              with:
                query: "CALL generate_recommendations('{{user_segment}}', '{{model_version}}')"
            - name: update-content-rails
              type: call
              call: "cms.update-recommendation-rails"
              with:
                segment: "{{user_segment}}"
                recommendations: "{{run-model.titles}}"
  consumes:
    - type: http
      namespace: streaming-platform
      baseUri: "https://api.paramount.com/streaming/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_streaming_token"
      resources:
        - name: viewing
          path: "/subscribers/viewing-history"
          operations:
            - name: get-viewing-history
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.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: cms
      baseUri: "https://api.paramount.com/content/v2"
      authentication:
        type: bearer
        token: "$secrets.paramount_cms_token"
      resources:
        - name: recommendations
          path: "/rails/recommendations"
          operations:
            - name: update-recommendation-rails
              method: PUT

When a new title is approved for release, creates the catalog entry in the content management system, schedules distribution via the streaming platform, and notifies marketing in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Content Release Orchestrator"
  description: "When a new title is approved for release, creates the catalog entry in the content management system, schedules distribution via the streaming platform, and notifies marketing in Microsoft Teams."
  tags:
    - content
    - streaming
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: content-release
      port: 8080
      tools:
        - name: orchestrate-content-release
          description: "Orchestrate the release of a new title across content catalog, streaming platform, and marketing notification."
          inputParameters:
            - name: title_id
              in: body
              type: string
              description: "The content title identifier."
            - name: release_date
              in: body
              type: string
              description: "The planned release date in YYYY-MM-DD format."
            - name: content_type
              in: body
              type: string
              description: "Type of content (movie, series, episode, special)."
          steps:
            - name: create-catalog-entry
              type: call
              call: "cms.create-title"
              with:
                title_id: "{{title_id}}"
                release_date: "{{release_date}}"
                content_type: "{{content_type}}"
            - name: schedule-distribution
              type: call
              call: "streaming-platform.schedule-release"
              with:
                title_id: "{{title_id}}"
                release_date: "{{release_date}}"
                regions: "all"
            - name: notify-marketing
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "content-releases"
                text: "New release scheduled: {{title_id}} ({{content_type}}) on {{release_date}}. Distribution: {{schedule-distribution.status}}"
  consumes:
    - type: http
      namespace: cms
      baseUri: "https://api.paramount.com/content/v2"
      authentication:
        type: bearer
        token: "$secrets.paramount_cms_token"
      resources:
        - name: titles
          path: "/titles"
          operations:
            - name: create-title
              method: POST
    - type: http
      namespace: streaming-platform
      baseUri: "https://api.paramount.com/streaming/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_streaming_token"
      resources:
        - name: releases
          path: "/releases/schedule"
          operations:
            - name: schedule-release
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Scans Salesforce for licensing deals with upcoming expiry dates, generates a renewal report in Snowflake, and sends alerts to business affairs via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Content Rights Expiry Monitor"
  description: "Scans Salesforce for licensing deals with upcoming expiry dates, generates a renewal report in Snowflake, and sends alerts to business affairs via Microsoft Teams."
  tags:
    - licensing
    - salesforce
    - snowflake
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: rights-management
      port: 8080
      tools:
        - name: monitor-rights-expiry
          description: "Monitor content rights approaching expiry and alert business affairs."
          inputParameters:
            - name: days_ahead
              in: body
              type: integer
              description: "Number of days ahead to check for expiring rights."
          steps:
            - name: get-expiring-deals
              type: call
              call: "salesforce.query-expiring-deals"
              with:
                days_ahead: "{{days_ahead}}"
            - name: generate-report
              type: call
              call: "snowflake.execute-query"
              with:
                query: "CALL generate_expiry_report({{days_ahead}})"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "business-affairs"
                text: "Rights expiry alert: {{get-expiring-deals.count}} deals expiring within {{days_ahead}} days. Review report in Snowflake."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: deals
          path: "/query?q=SELECT+Id,Name,Term_End_Date__c+FROM+Licensing_Deal__c+WHERE+Term_End_Date__c<=NEXT_N_DAYS:{{days_ahead}}"
          inputParameters:
            - name: days_ahead
              in: query
          operations:
            - name: query-expiring-deals
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.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: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Syncs the content release calendar from the CMS to Google Calendar and Microsoft Outlook for cross-team visibility.

naftiko: "0.5"
info:
  label: "Content Scheduling Calendar Sync"
  description: "Syncs the content release calendar from the CMS to Google Calendar and Microsoft Outlook for cross-team visibility."
  tags:
    - content
    - scheduling
    - google-workspace
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: content-calendar
      port: 8080
      tools:
        - name: sync-release-calendar
          description: "Sync content release dates to Google Calendar and Outlook."
          inputParameters:
            - name: month
              in: body
              type: string
              description: "The month to sync (YYYY-MM format)."
          steps:
            - name: get-releases
              type: call
              call: "cms.get-release-calendar"
              with:
                month: "{{month}}"
            - name: sync-google-cal
              type: call
              call: "google-calendar.create-events"
              with:
                calendar_id: "content-releases"
                events: "{{get-releases.titles}}"
            - name: sync-outlook
              type: call
              call: "outlook.create-events"
              with:
                calendar_id: "content-releases"
                events: "{{get-releases.titles}}"
  consumes:
    - type: http
      namespace: cms
      baseUri: "https://api.paramount.com/content/v2"
      authentication:
        type: bearer
        token: "$secrets.paramount_cms_token"
      resources:
        - name: calendar
          path: "/releases/calendar?month={{month}}"
          inputParameters:
            - name: month
              in: query
          operations:
            - name: get-release-calendar
              method: GET
    - type: http
      namespace: google-calendar
      baseUri: "https://www.googleapis.com/calendar/v3"
      authentication:
        type: bearer
        token: "$secrets.google_calendar_token"
      resources:
        - name: events
          path: "/calendars/{{calendar_id}}/events"
          inputParameters:
            - name: calendar_id
              in: path
          operations:
            - name: create-events
              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/calendars/{{calendar_id}}/events"
          inputParameters:
            - name: calendar_id
              in: path
          operations:
            - name: create-events
              method: POST

Retrieves Datadog monitor status for streaming infrastructure. Returns monitor name, overall state, and last triggered timestamp.

naftiko: "0.5"
info:
  label: "Datadog Streaming Infrastructure Monitor"
  description: "Retrieves Datadog monitor status for streaming infrastructure. Returns monitor name, overall state, and last triggered timestamp."
  tags:
    - streaming
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: infra-monitoring
      port: 8080
      tools:
        - name: get-monitor-status
          description: "Check Datadog monitor status for streaming infrastructure."
          inputParameters:
            - name: monitor_id
              in: body
              type: string
              description: "The Datadog monitor identifier."
          call: "datadog.get-monitor"
          with:
            monitor_id: "{{monitor_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.name"
            - name: status
              type: string
              mapping: "$.overall_state"
            - name: last_triggered
              type: string
              mapping: "$.state.last_triggered_ts"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
        header: "DD-API-KEY"
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET

Retrieves a digital asset (image, video, poster) from Paramount's DAM system by asset ID. Returns the asset URL, format, resolution, and usage rights.

naftiko: "0.5"
info:
  label: "Digital Asset Retrieval"
  description: "Retrieves a digital asset (image, video, poster) from Paramount's DAM system by asset ID. Returns the asset URL, format, resolution, and usage rights."
  tags:
    - content
    - digital-assets
capability:
  exposes:
    - type: mcp
      namespace: asset-management
      port: 8080
      tools:
        - name: get-digital-asset
          description: "Retrieve a digital asset and its metadata from the DAM."
          inputParameters:
            - name: asset_id
              in: body
              type: string
              description: "The digital asset identifier."
          call: "dam.get-asset"
          with:
            asset_id: "{{asset_id}}"
          outputParameters:
            - name: url
              type: string
              mapping: "$.data.download_url"
            - name: format
              type: string
              mapping: "$.data.format"
            - name: resolution
              type: string
              mapping: "$.data.resolution"
            - name: rights
              type: object
              mapping: "$.data.usage_rights"
  consumes:
    - type: http
      namespace: dam
      baseUri: "https://api.paramount.com/dam/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_dam_token"
      resources:
        - name: assets
          path: "/assets/{{asset_id}}"
          inputParameters:
            - name: asset_id
              in: path
          operations:
            - name: get-asset
              method: GET

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Slack welcome message.

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Slack welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - slack
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Orchestrate new hire onboarding across Workday, ServiceNow, SharePoint, and Slack."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID."
            - name: start_date
              in: body
              type: string
              description: "The employee start date."
            - 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: "{{workday_employee_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding"
                folder_path: "NewHires/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "slack.post-message"
              with:
                channel: "new-hires"
                text: "Welcome to Paramount, {{get-employee.first_name}}! Onboarding ticket: {{open-ticket.number}}"
  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://paramount.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: folders
          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: 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 Google Ads campaign spending data by campaign ID. Returns total spend, impressions, clicks, and CPC.

naftiko: "0.5"
info:
  label: "Google Ads Campaign Spend Lookup"
  description: "Retrieves Google Ads campaign spending data by campaign ID. Returns total spend, impressions, clicks, and CPC."
  tags:
    - advertising
    - google-ads
capability:
  exposes:
    - type: mcp
      namespace: ad-spending
      port: 8080
      tools:
        - name: get-campaign-spend
          description: "Look up Google Ads campaign spend metrics."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The Google Ads campaign identifier."
            - name: date
              in: body
              type: string
              description: "The reporting date."
          call: "google-ads.get-spend"
          with:
            campaign_id: "{{campaign_id}}"
            date: "{{date}}"
          outputParameters:
            - name: total_spend
              type: number
              mapping: "$.data.cost_micros"
            - name: impressions
              type: integer
              mapping: "$.data.impressions"
            - name: clicks
              type: integer
              mapping: "$.data.clicks"
  consumes:
    - type: http
      namespace: google-ads
      baseUri: "https://googleads.googleapis.com/v14"
      authentication:
        type: bearer
        token: "$secrets.google_ads_token"
      resources:
        - name: campaigns
          path: "/customers/paramount/campaigns/{{campaign_id}}/metrics"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-spend
              method: GET

Retrieves Paramount+ website traffic metrics from Google Analytics. Returns sessions, page views, average session duration, and top landing pages.

naftiko: "0.5"
info:
  label: "Google Analytics Web Traffic Report"
  description: "Retrieves Paramount+ website traffic metrics from Google Analytics. Returns sessions, page views, average session duration, and top landing pages."
  tags:
    - marketing
    - analytics
    - google-analytics
capability:
  exposes:
    - type: mcp
      namespace: web-analytics
      port: 8080
      tools:
        - name: get-web-traffic
          description: "Get Paramount+ web traffic metrics from Google Analytics."
          inputParameters:
            - name: start_date
              in: body
              type: string
              description: "Report start date."
            - name: end_date
              in: body
              type: string
              description: "Report end date."
          call: "google-analytics.run-report"
          with:
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
          outputParameters:
            - name: sessions
              type: integer
              mapping: "$.rows[0].metricValues[0].value"
            - name: page_views
              type: integer
              mapping: "$.rows[0].metricValues[1].value"
            - name: avg_session_duration
              type: number
              mapping: "$.rows[0].metricValues[2].value"
  consumes:
    - type: http
      namespace: google-analytics
      baseUri: "https://analyticsdata.googleapis.com/v1beta"
      authentication:
        type: bearer
        token: "$secrets.google_analytics_token"
      resources:
        - name: reports
          path: "/properties/paramount/runReport"
          operations:
            - name: run-report
              method: POST

Retrieves tag configuration from Google Tag Manager for the Paramount+ website.

naftiko: "0.5"
info:
  label: "Google Tag Manager Container Lookup"
  description: "Retrieves tag configuration from Google Tag Manager for the Paramount+ website."
  tags:
    - marketing
    - google-tag-manager
capability:
  exposes:
    - type: mcp
      namespace: gtm-ops
      port: 8080
      tools:
        - name: get-gtm-tag
          description: "Look up a GTM tag configuration."
          inputParameters:
            - name: tag_id
              in: body
              type: string
              description: "The GTM tag ID."
          call: "gtm.get-tag"
          with:
            tag_id: "{{tag_id}}"
          outputParameters:
            - name: tag_name
              type: string
              mapping: "$.tag.name"
            - name: tag_type
              type: string
              mapping: "$.tag.type"
  consumes:
    - type: http
      namespace: gtm
      baseUri: "https://www.googleapis.com/tagmanager/v2"
      authentication:
        type: bearer
        token: "$secrets.google_tagmanager_token"
      resources:
        - name: tags
          path: "/accounts/paramount/containers/web/workspaces/default/tags/{{tag_id}}"
          inputParameters:
            - name: tag_id
              in: path
          operations:
            - name: get-tag
              method: GET

Syncs marketing qualified leads from HubSpot to Salesforce for the advertising sales team.

naftiko: "0.5"
info:
  label: "HubSpot Marketing Lead Sync"
  description: "Syncs marketing qualified leads from HubSpot to Salesforce for the advertising sales team."
  tags:
    - marketing
    - hubspot
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: lead-sync
      port: 8080
      tools:
        - name: sync-hubspot-lead
          description: "Sync a HubSpot marketing lead to Salesforce."
          inputParameters:
            - name: contact_id
              in: body
              type: string
              description: "The HubSpot contact ID."
          steps:
            - name: get-contact
              type: call
              call: "hubspot.get-contact"
              with:
                contact_id: "{{contact_id}}"
            - name: create-lead
              type: call
              call: "salesforce.create-lead"
              with:
                first_name: "{{get-contact.firstname}}"
                last_name: "{{get-contact.lastname}}"
                email: "{{get-contact.email}}"
                company: "{{get-contact.company}}"
  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/{{contact_id}}"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: get-contact
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: leads
          path: "/sobjects/Lead"
          operations:
            - name: create-lead
              method: POST

Creates a Jira issue for production workflow blockers, links related content in Confluence, and notifies the production team via Slack.

naftiko: "0.5"
info:
  label: "Jira Production Issue Tracker"
  description: "Creates a Jira issue for production workflow blockers, links related content in Confluence, and notifies the production team via Slack."
  tags:
    - content
    - production
    - jira
    - confluence
    - slack
capability:
  exposes:
    - type: mcp
      namespace: production-tracking
      port: 8080
      tools:
        - name: create-production-issue
          description: "Create a production issue in Jira with Confluence links and Slack notification."
          inputParameters:
            - name: production_id
              in: body
              type: string
              description: "The production identifier."
            - name: issue_summary
              in: body
              type: string
              description: "Summary of the production issue."
            - name: priority
              in: body
              type: string
              description: "Issue priority (Highest, High, Medium, Low)."
          steps:
            - name: create-jira-issue
              type: call
              call: "jira.create-issue"
              with:
                project: "PROD"
                summary: "{{issue_summary}}"
                priority: "{{priority}}"
                labels: ["production-{{production_id}}"]
            - name: link-wiki
              type: call
              call: "confluence.create-page-link"
              with:
                space: "PROD"
                page_title: "Production {{production_id}} - Issues"
                link_url: "{{create-jira-issue.self}}"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "production-issues"
                text: "New issue for Production {{production_id}}: {{issue_summary}} ({{priority}}). Jira: {{create-jira-issue.key}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://paramount.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://paramount.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page-link
              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

Pulls sprint progress from Jira and posts a daily summary to the engineering Slack channel.

naftiko: "0.5"
info:
  label: "Jira Sprint Status Reporter"
  description: "Pulls sprint progress from Jira and posts a daily summary to the engineering Slack channel."
  tags:
    - development
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: dev-reporting
      port: 8080
      tools:
        - name: report-sprint-status
          description: "Generate and post a Jira sprint status report to Slack."
          inputParameters:
            - name: board_id
              in: body
              type: string
              description: "The Jira board identifier."
          steps:
            - name: get-sprint
              type: call
              call: "jira.get-active-sprint"
              with:
                board_id: "{{board_id}}"
            - name: get-issues
              type: call
              call: "jira.get-sprint-issues"
              with:
                sprint_id: "{{get-sprint.id}}"
            - name: post-report
              type: call
              call: "slack.post-message"
              with:
                channel: "engineering"
                text: "Sprint {{get-sprint.name}}: {{get-issues.done_count}}/{{get-issues.total_count}} done. {{get-issues.in_progress_count}} in progress."
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://paramount.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
        - name: sprint-issues
          path: "/sprint/{{sprint_id}}/issue"
          inputParameters:
            - name: sprint_id
              in: path
          operations:
            - name: get-sprint-issues
              method: GET
    - 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 newsletter subscribers from MailChimp and syncs to Salesforce Marketing Cloud for unified audience management.

naftiko: "0.5"
info:
  label: "MailChimp Newsletter Subscriber Sync"
  description: "Retrieves newsletter subscribers from MailChimp and syncs to Salesforce Marketing Cloud for unified audience management."
  tags:
    - marketing
    - mailchimp
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: subscriber-sync
      port: 8080
      tools:
        - name: sync-mailchimp-subscribers
          description: "Sync MailChimp subscribers to SFMC."
          inputParameters:
            - name: list_id
              in: body
              type: string
              description: "The MailChimp list identifier."
          steps:
            - name: get-subscribers
              type: call
              call: "mailchimp.get-members"
              with:
                list_id: "{{list_id}}"
            - name: sync-to-sfmc
              type: call
              call: "sfmc.upsert-data-extension"
              with:
                data_extension: "mailchimp_subscribers"
                rows: "{{get-subscribers.members}}"
  consumes:
    - type: http
      namespace: mailchimp
      baseUri: "https://us1.api.mailchimp.com/3.0"
      authentication:
        type: basic
        username: "anystring"
        password: "$secrets.mailchimp_api_key"
      resources:
        - name: lists
          path: "/lists/{{list_id}}/members"
          inputParameters:
            - name: list_id
              in: path
          operations:
            - name: get-members
              method: GET
    - type: http
      namespace: sfmc
      baseUri: "https://paramount.rest.marketingcloudapis.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: data-extensions
          path: "/customobjectdata/key/{{data_extension}}/rowset"
          inputParameters:
            - name: data_extension
              in: path
          operations:
            - name: upsert-data-extension
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 1"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-1
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-1"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/accounts"
          operations:
            - name: create-account
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 10"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-10
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-10"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-10
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://paramount.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 11"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-11
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-11"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "hubspot.send-email"
              with:
                to: "{{process.email}}"
                subject: "Workflow 11 Complete"
                body: "{{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-11
              method: POST
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/contacts"
          operations:
            - name: send-email
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 12"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-12
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-12"
              with:
                identifier: "{{identifier}}"
            - name: push
              type: call
              call: "datadog.submit-metrics"
              with:
                metric_name: "media.workflow_12"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-12
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_token"
      resources:
        - name: metrics
          path: "/metrics"
          operations:
            - name: submit-metrics
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 13"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-13
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-13"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-13
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/accounts"
          operations:
            - name: create-account
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 14"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-14
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-14"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-14
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://paramount.service-now.com/api/now/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: create-incident
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 15"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-15
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-15"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#media"
                text: "Completed workflow 15: {{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-15
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: post-message
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 16"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-16
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-16"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "MEDIA"
                title: "Report 16"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-16
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://paramount.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 17"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-17
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-17"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "workflow_17"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-17
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets"
          operations:
            - name: refresh-dataset
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 18"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-18
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-18"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "MEDI"
                summary: "Task from workflow 18"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-18
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://paramount.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 19"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-19
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-19"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "media"
                message: "Workflow 19 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-19
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: send-message
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 2"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-2
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-2"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://paramount.service-now.com/api/now/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: create-incident
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 20"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-20
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-20"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "tableau.publish-datasource"
              with:
                dataset_id: "workflow_20"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-20
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://paramount-tableau.online.tableau.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/datasources"
          operations:
            - name: publish-datasource
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 21"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-21
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-21"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-21
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files"
          operations:
            - name: upload-file
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 22"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-22
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-22"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-22
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://paramount.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 23"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-23
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-23"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "hubspot.send-email"
              with:
                to: "{{process.email}}"
                subject: "Workflow 23 Complete"
                body: "{{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-23
              method: POST
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/contacts"
          operations:
            - name: send-email
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 24"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-24
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-24"
              with:
                identifier: "{{identifier}}"
            - name: push
              type: call
              call: "datadog.submit-metrics"
              with:
                metric_name: "media.workflow_24"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-24
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_token"
      resources:
        - name: metrics
          path: "/metrics"
          operations:
            - name: submit-metrics
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 25"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-25
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-25"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-25
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/accounts"
          operations:
            - name: create-account
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 26"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-26
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-26"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-26
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://paramount.service-now.com/api/now/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: create-incident
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 27"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-27
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-27"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#media"
                text: "Completed workflow 27: {{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-27
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: post-message
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 28"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-28
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-28"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "MEDIA"
                title: "Report 28"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-28
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://paramount.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 29"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-29
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-29"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "workflow_29"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-29
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets"
          operations:
            - name: refresh-dataset
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 3"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-3
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-3"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#media"
                text: "Completed workflow 3: {{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-3
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: post-message
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 30"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-30
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-30"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "MEDI"
                summary: "Task from workflow 30"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-30
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://paramount.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 31"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-31
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-31"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "media"
                message: "Workflow 31 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-31
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: send-message
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 32"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-32
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-32"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "tableau.publish-datasource"
              with:
                dataset_id: "workflow_32"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-32
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://paramount-tableau.online.tableau.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/datasources"
          operations:
            - name: publish-datasource
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 33"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-33
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-33"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-33
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files"
          operations:
            - name: upload-file
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 34"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-34
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-34"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-34
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://paramount.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 35"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-35
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-35"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "hubspot.send-email"
              with:
                to: "{{process.email}}"
                subject: "Workflow 35 Complete"
                body: "{{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-35
              method: POST
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/contacts"
          operations:
            - name: send-email
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 4"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-4
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-4"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "MEDIA"
                title: "Report 4"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-4
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://paramount.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 5"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-5
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-5"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "workflow_5"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-5
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets"
          operations:
            - name: refresh-dataset
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 6"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-6
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-6"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "MEDI"
                summary: "Task from workflow 6"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-6
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://paramount.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 7"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-7
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-7"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "media"
                message: "Workflow 7 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-7
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: send-message
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 8"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-8
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-8"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "tableau.publish-datasource"
              with:
                dataset_id: "workflow_8"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-8
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://paramount-tableau.online.tableau.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/datasources"
          operations:
            - name: publish-datasource
              method: POST

Orchestrates media operations including data retrieval, processing, and automated notification for Paramount.

naftiko: "0.5"
info:
  label: "Paramount Workflow 9"
  description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
  tags:
    - media
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: media
      port: 8080
      tools:
        - name: paramount-workflow-9
          description: "Orchestrates media operations including data retrieval, processing, and automated notification for Paramount."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "paramount-ops.run-workflow-9"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: paramount-ops
      baseUri: "https://api.paramount.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-9
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files"
          operations:
            - name: upload-file
              method: POST

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 1"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-1
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-1"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-1
          path: "/data-1/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-1
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 10"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-10
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-10"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-10
          path: "/data-10/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-10
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 11"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-11
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-11"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-11
          path: "/data-11/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-11
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 12"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-12
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-12"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-12
          path: "/data-12/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-12
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 13"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-13
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-13"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-13
          path: "/data-13/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-13
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 14"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-14
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-14"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-14
          path: "/data-14/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-14
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 15"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-15
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-15"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-15
          path: "/data-15/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-15
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 2"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-2
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-2"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-2
          path: "/data-2/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-2
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 3"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-3
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-3"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-3
          path: "/data-3/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-3
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 4"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-4
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-4"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-4
          path: "/data-4/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-4
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 5"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-5
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-5"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-5
          path: "/data-5/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-5
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 6"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-6
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-6"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-6
          path: "/data-6/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-6
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 7"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-7
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-7"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-7
          path: "/data-7/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-7
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 8"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-8
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-8"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-8
          path: "/data-8/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-8
              method: GET

Retrieves operational data for Paramount media workflows.

naftiko: "0.5"
info:
  label: "Paramount Data Lookup 9"
  description: "Retrieves operational data for Paramount media workflows."
  tags:
    - media
    - operations
capability:
  exposes:
    - type: mcp
      namespace: paramount-data
      port: 8080
      tools:
        - name: get-data-9
          description: "Retrieves operational data for Paramount media workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "paramount-data.get-data-9"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: paramount-data
      baseUri: "https://api.paramount.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_api_token"
      resources:
        - name: data-9
          path: "/data-9/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-9
              method: GET

Sends a formatted message to a Microsoft Teams channel. Reusable notification primitive for Paramount workflows.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Notifier"
  description: "Sends a formatted message to a Microsoft Teams channel. Reusable notification primitive for Paramount workflows."
  tags:
    - communications
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: teams-notifications
      port: 8080
      tools:
        - name: send-teams-notification
          description: "Send a message to a Microsoft Teams channel."
          inputParameters:
            - name: channel_id
              in: body
              type: string
              description: "The Teams channel identifier."
            - name: message
              in: body
              type: string
              description: "The message text."
          call: "msteams.send-message"
          with:
            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/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves application performance metrics from New Relic for the Paramount+ streaming app. Returns response time, throughput, and error rate.

naftiko: "0.5"
info:
  label: "New Relic Streaming App Performance"
  description: "Retrieves application performance metrics from New Relic for the Paramount+ streaming app. Returns response time, throughput, and error rate."
  tags:
    - streaming
    - operations
    - new-relic
capability:
  exposes:
    - type: mcp
      namespace: apm-monitoring
      port: 8080
      tools:
        - name: get-streaming-app-performance
          description: "Get Paramount+ streaming app performance metrics from New Relic."
          inputParameters:
            - name: app_id
              in: body
              type: string
              description: "The New Relic application identifier."
          call: "newrelic.get-app-metrics"
          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"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apiKey
        key: "$secrets.newrelic_api_key"
        header: "X-Api-Key"
      resources:
        - name: applications
          path: "/applications/{{app_id}}.json"
          inputParameters:
            - name: app_id
              in: path
          operations:
            - name: get-app-metrics
              method: GET

Retrieves streaming app performance from New Relic. Returns response time, throughput, and error rate for the Paramount+ backend.

naftiko: "0.5"
info:
  label: "New Relic Streaming Performance"
  description: "Retrieves streaming app performance from New Relic. Returns response time, throughput, and error rate for the Paramount+ backend."
  tags:
    - streaming
    - new-relic
capability:
  exposes:
    - type: mcp
      namespace: app-monitoring
      port: 8080
      tools:
        - name: get-streaming-performance
          description: "Get Paramount+ backend performance from New Relic."
          inputParameters:
            - name: app_id
              in: body
              type: string
              description: "The New Relic app ID."
          call: "newrelic.get-app"
          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"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apiKey
        key: "$secrets.newrelic_api_key"
        header: "X-Api-Key"
      resources:
        - name: applications
          path: "/applications/{{app_id}}.json"
          inputParameters:
            - name: app_id
              in: path
          operations:
            - name: get-app
              method: GET

Pulls production spending from SAP, compares against the approved budget in Oracle, and creates a variance alert in ServiceNow if spending exceeds threshold.

naftiko: "0.5"
info:
  label: "Production Budget Tracker"
  description: "Pulls production spending from SAP, compares against the approved budget in Oracle, and creates a variance alert in ServiceNow if spending exceeds threshold."
  tags:
    - content
    - finance
    - sap
    - oracle
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: production-finance
      port: 8080
      tools:
        - name: track-production-budget
          description: "Track production spending against approved budget and alert on variances."
          inputParameters:
            - name: production_id
              in: body
              type: string
              description: "The production project identifier."
            - name: cost_center
              in: body
              type: string
              description: "The SAP cost center."
          steps:
            - name: get-spending
              type: call
              call: "sap.get-cost-center-spend"
              with:
                cost_center: "{{cost_center}}"
            - name: get-budget
              type: call
              call: "oracle.get-approved-budget"
              with:
                production_id: "{{production_id}}"
            - name: create-variance-alert
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Budget variance: Production {{production_id}}"
                category: "production_finance"
                description: "Spent: ${{get-spending.total_spend}}. Budget: ${{get-budget.approved_amount}}. Variance: {{get-spending.variance_pct}}%"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://paramount.sap.com/sap/opu/odata/sap/API_COSTCENTER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: cost-centers
          path: "/A_CostCenter('{{cost_center}}')/to_Spending"
          inputParameters:
            - name: cost_center
              in: path
          operations:
            - name: get-cost-center-spend
              method: GET
    - type: http
      namespace: oracle
      baseUri: "https://paramount.oraclecloud.com/fscmRestApi/resources/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_token"
      resources:
        - name: budgets
          path: "/budgets/{{production_id}}"
          inputParameters:
            - name: production_id
              in: path
          operations:
            - name: get-approved-budget
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://paramount.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

Creates a programmatic advertising deal in the ad server, registers the deal in Salesforce for billing, and notifies the ad ops team in Slack.

naftiko: "0.5"
info:
  label: "Programmatic Ad Deal Creator"
  description: "Creates a programmatic advertising deal in the ad server, registers the deal in Salesforce for billing, and notifies the ad ops team in Slack."
  tags:
    - advertising
    - salesforce
    - slack
capability:
  exposes:
    - type: mcp
      namespace: programmatic-ads
      port: 8080
      tools:
        - name: create-programmatic-deal
          description: "Create a programmatic ad deal with billing registration and team notification."
          inputParameters:
            - name: advertiser_id
              in: body
              type: string
              description: "The advertiser identifier."
            - name: deal_type
              in: body
              type: string
              description: "Deal type (preferred, private-auction, guaranteed)."
            - name: cpm_floor
              in: body
              type: number
              description: "The CPM floor price."
            - name: impressions
              in: body
              type: integer
              description: "The committed impression count."
          steps:
            - name: create-deal
              type: call
              call: "ad-server.create-deal"
              with:
                advertiser_id: "{{advertiser_id}}"
                deal_type: "{{deal_type}}"
                cpm_floor: "{{cpm_floor}}"
                impressions: "{{impressions}}"
            - name: register-billing
              type: call
              call: "salesforce.create-opportunity"
              with:
                name: "Programmatic Deal - {{advertiser_id}}"
                deal_id: "{{create-deal.deal_id}}"
                amount: "{{create-deal.estimated_revenue}}"
            - name: notify-ad-ops
              type: call
              call: "slack.post-message"
              with:
                channel: "ad-ops"
                text: "New programmatic deal {{create-deal.deal_id}}: {{deal_type}} at ${{cpm_floor}} CPM, {{impressions}} impressions. SF: {{register-billing.id}}"
  consumes:
    - type: http
      namespace: ad-server
      baseUri: "https://api.paramount.com/adserver/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_adserver_token"
      resources:
        - name: deals
          path: "/deals"
          operations:
            - name: create-deal
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.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: 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 licensing revenue by territory from Salesforce, enriches with content performance data from Snowflake, and generates an executive report in SharePoint.

naftiko: "0.5"
info:
  label: "Regional Licensing Revenue Report"
  description: "Aggregates licensing revenue by territory from Salesforce, enriches with content performance data from Snowflake, and generates an executive report in SharePoint."
  tags:
    - licensing
    - revenue
    - salesforce
    - snowflake
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: licensing-revenue
      port: 8080
      tools:
        - name: generate-licensing-revenue-report
          description: "Generate a regional licensing revenue report with content performance data."
          inputParameters:
            - name: quarter
              in: body
              type: string
              description: "The fiscal quarter (e.g., Q1-2026)."
            - name: region
              in: body
              type: string
              description: "The geographic region."
          steps:
            - name: get-sf-revenue
              type: call
              call: "salesforce.query-licensing-revenue"
              with:
                quarter: "{{quarter}}"
                region: "{{region}}"
            - name: get-content-performance
              type: call
              call: "snowflake.execute-query"
              with:
                query: "SELECT * FROM content_performance WHERE quarter='{{quarter}}' AND region='{{region}}'"
            - name: store-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "business-affairs"
                file_path: "LicensingReports/{{region}}_{{quarter}}.xlsx"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: licensing-revenue
          path: "/query?q=SELECT+Territory__c,SUM(Amount)+FROM+Licensing_Deal__c+WHERE+Quarter__c='{{quarter}}'+GROUP+BY+Territory__c"
          inputParameters:
            - name: quarter
              in: query
            - name: region
              in: query
          operations:
            - name: query-licensing-revenue
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.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: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: file_path
              in: path
          operations:
            - name: upload-file
              method: PUT

Looks up a Salesforce opportunity by ID. Returns deal name, stage, amount, and close date for advertising and licensing deals.

naftiko: "0.5"
info:
  label: "Salesforce Opportunity Lookup"
  description: "Looks up a Salesforce opportunity by ID. Returns deal name, stage, amount, and close date for advertising and licensing deals."
  tags:
    - sales
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: sales-ops
      port: 8080
      tools:
        - name: get-opportunity
          description: "Look up a Salesforce opportunity by ID."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "The Salesforce opportunity identifier."
          call: "salesforce.get-opportunity"
          with:
            opportunity_id: "{{opportunity_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.Name"
            - name: stage
              type: string
              mapping: "$.StageName"
            - name: amount
              type: number
              mapping: "$.Amount"
            - name: close_date
              type: string
              mapping: "$.CloseDate"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.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

Pulls approved expense reports from SAP Concur, creates journal entries in Oracle, and notifies the finance controller via Microsoft Teams.

naftiko: "0.5"
info:
  label: "SAP Concur Expense Sync"
  description: "Pulls approved expense reports from SAP Concur, creates journal entries in Oracle, and notifies the finance controller via Microsoft Teams."
  tags:
    - finance
    - sap-concur
    - oracle
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: expense-ops
      port: 8080
      tools:
        - name: sync-approved-expenses
          description: "Sync approved SAP Concur expenses to Oracle and notify finance."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The SAP Concur expense report identifier."
          steps:
            - name: get-expense-report
              type: call
              call: "concur.get-report"
              with:
                report_id: "{{report_id}}"
            - name: create-journal
              type: call
              call: "oracle.create-journal-entry"
              with:
                amount: "{{get-expense-report.total_amount}}"
                cost_center: "{{get-expense-report.cost_center}}"
                description: "Expense report {{report_id}}"
            - name: notify-controller
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "finance-ops"
                text: "Expense report {{report_id}} synced to Oracle. Amount: ${{get-expense-report.total_amount}}. Journal: {{create-journal.entry_id}}"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-report
              method: GET
    - type: http
      namespace: oracle
      baseUri: "https://paramount.oraclecloud.com/fscmRestApi/resources/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_token"
      resources:
        - name: journals
          path: "/journalEntries"
          operations:
            - name: create-journal-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/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Sends a transactional email via SendGrid. Reusable email primitive for Paramount workflows.

naftiko: "0.5"
info:
  label: "SendGrid Email Sender"
  description: "Sends a transactional email via SendGrid. Reusable email primitive for Paramount workflows."
  tags:
    - communications
    - sendgrid
capability:
  exposes:
    - type: mcp
      namespace: email-ops
      port: 8080
      tools:
        - name: send-email
          description: "Send a transactional email via SendGrid."
          inputParameters:
            - name: to
              in: body
              type: string
              description: "Recipient email."
            - name: subject
              in: body
              type: string
              description: "Email subject."
            - name: body
              in: body
              type: string
              description: "Email body."
          call: "sendgrid.send-email"
          with:
            to: "{{to}}"
            subject: "{{subject}}"
            body: "{{body}}"
  consumes:
    - 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

Looks up a ServiceNow incident by number. Returns state, priority, assigned group, and resolution notes.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Status"
  description: "Looks up a ServiceNow incident by number. Returns state, priority, assigned group, and resolution notes."
  tags:
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: itsm-ops
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number."
          call: "servicenow.get-incident"
          with:
            incident_number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result.state"
            - name: priority
              type: string
              mapping: "$.result.priority"
            - name: assigned_group
              type: string
              mapping: "$.result.assignment_group.display_value"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://paramount.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={{incident_number}}"
          inputParameters:
            - name: incident_number
              in: query
          operations:
            - name: get-incident
              method: GET

Uploads a document to a SharePoint site. Used for report publishing and document management across Paramount departments.

naftiko: "0.5"
info:
  label: "SharePoint Document Upload"
  description: "Uploads a document to a SharePoint site. Used for report publishing and document management across Paramount departments."
  tags:
    - document-management
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: doc-management
      port: 8080
      tools:
        - name: upload-document
          description: "Upload a document to a SharePoint site."
          inputParameters:
            - name: site_id
              in: body
              type: string
              description: "The SharePoint site identifier."
            - name: file_path
              in: body
              type: string
              description: "The destination file path."
          call: "sharepoint.upload-file"
          with:
            site_id: "{{site_id}}"
            file_path: "{{file_path}}"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: file_path
              in: path
          operations:
            - name: upload-file
              method: PUT

Sends a formatted message to a Slack channel. Used as a reusable notification primitive across Paramount workflows.

naftiko: "0.5"
info:
  label: "Slack Channel Notifier"
  description: "Sends a formatted message to a Slack channel. Used as a reusable notification primitive across Paramount workflows."
  tags:
    - communications
    - slack
capability:
  exposes:
    - type: mcp
      namespace: slack-notifications
      port: 8080
      tools:
        - name: send-slack-notification
          description: "Send a message to a Slack channel."
          inputParameters:
            - name: channel
              in: body
              type: string
              description: "The Slack channel."
            - name: message
              in: body
              type: string
              description: "The message text."
          call: "slack.post-message"
          with:
            channel: "{{channel}}"
            text: "{{message}}"
  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

Executes a SQL query against Paramount's Snowflake data warehouse. Returns result rows and metadata for analytics workflows.

naftiko: "0.5"
info:
  label: "Snowflake Query Runner"
  description: "Executes a SQL query against Paramount's Snowflake data warehouse. Returns result rows and metadata for analytics workflows."
  tags:
    - analytics
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: data-warehouse
      port: 8080
      tools:
        - name: run-snowflake-query
          description: "Execute a SQL query against the Paramount Snowflake warehouse."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The SQL query to execute."
          call: "snowflake.execute-query"
          with:
            statement: "{{query}}"
          outputParameters:
            - name: rows
              type: array
              mapping: "$.data"
            - name: row_count
              type: integer
              mapping: "$.resultSetMetaData.numRows"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST

Publishes promotional content across Instagram, Facebook, and Twitter simultaneously from the creative asset library, and logs publication status in Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Social Media Content Publisher"
  description: "Publishes promotional content across Instagram, Facebook, and Twitter simultaneously from the creative asset library, and logs publication status in Salesforce Marketing Cloud."
  tags:
    - marketing
    - social-media
    - instagram
    - facebook
    - twitter
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: social-publishing
      port: 8080
      tools:
        - name: publish-social-content
          description: "Publish promotional content across multiple social platforms and log status."
          inputParameters:
            - name: asset_id
              in: body
              type: string
              description: "The creative asset identifier."
            - name: caption
              in: body
              type: string
              description: "The post caption text."
            - name: campaign_id
              in: body
              type: string
              description: "The marketing campaign identifier."
          steps:
            - name: get-asset
              type: call
              call: "dam.get-asset"
              with:
                asset_id: "{{asset_id}}"
            - name: post-instagram
              type: call
              call: "meta-api.create-post"
              with:
                platform: "instagram"
                media_url: "{{get-asset.url}}"
                caption: "{{caption}}"
            - name: post-facebook
              type: call
              call: "meta-api.create-post"
              with:
                platform: "facebook"
                media_url: "{{get-asset.url}}"
                caption: "{{caption}}"
            - name: post-twitter
              type: call
              call: "twitter-api.create-tweet"
              with:
                text: "{{caption}}"
                media_url: "{{get-asset.url}}"
            - name: log-publication
              type: call
              call: "sfmc.create-data-extension-row"
              with:
                data_extension: "social_publications"
                data:
                  campaign_id: "{{campaign_id}}"
                  asset_id: "{{asset_id}}"
                  platforms: "instagram,facebook,twitter"
  consumes:
    - type: http
      namespace: dam
      baseUri: "https://api.paramount.com/dam/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_dam_token"
      resources:
        - name: assets
          path: "/assets/{{asset_id}}"
          inputParameters:
            - name: asset_id
              in: path
          operations:
            - name: get-asset
              method: GET
    - type: http
      namespace: meta-api
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.meta_access_token"
      resources:
        - name: posts
          path: "/paramount/feed"
          operations:
            - name: create-post
              method: POST
    - type: http
      namespace: twitter-api
      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: sfmc
      baseUri: "https://paramount.rest.marketingcloudapis.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: data-extensions
          path: "/customobjectdata/key/{{data_extension}}/rowset"
          inputParameters:
            - name: data_extension
              in: path
          operations:
            - name: create-data-extension-row
              method: POST

Pulls CDN performance metrics from Cloudflare, correlates with streaming quality data, stores in Snowflake, and alerts the platform team in Slack if latency exceeds thresholds.

naftiko: "0.5"
info:
  label: "Streaming CDN Performance Monitor"
  description: "Pulls CDN performance metrics from Cloudflare, correlates with streaming quality data, stores in Snowflake, and alerts the platform team in Slack if latency exceeds thresholds."
  tags:
    - streaming
    - operations
    - cloudflare
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: cdn-monitoring
      port: 8080
      tools:
        - name: monitor-cdn-performance
          description: "Monitor CDN performance and alert on streaming quality issues."
          inputParameters:
            - name: zone_id
              in: body
              type: string
              description: "The Cloudflare zone identifier."
            - name: time_range
              in: body
              type: string
              description: "Time range for metrics (1h, 6h, 24h)."
          steps:
            - name: get-cdn-metrics
              type: call
              call: "cloudflare.get-zone-analytics"
              with:
                zone_id: "{{zone_id}}"
                time_range: "{{time_range}}"
            - name: store-metrics
              type: call
              call: "snowflake.insert-record"
              with:
                table: "cdn_performance"
                data:
                  zone_id: "{{zone_id}}"
                  bandwidth: "{{get-cdn-metrics.bandwidth}}"
                  latency_p95: "{{get-cdn-metrics.latency_p95}}"
                  cache_hit_rate: "{{get-cdn-metrics.cache_hit_rate}}"
            - name: alert-if-degraded
              type: call
              call: "slack.post-message"
              with:
                channel: "platform-alerts"
                text: "CDN Alert: P95 latency {{get-cdn-metrics.latency_p95}}ms, cache hit rate {{get-cdn-metrics.cache_hit_rate}}% for zone {{zone_id}}"
  consumes:
    - type: http
      namespace: cloudflare
      baseUri: "https://api.cloudflare.com/client/v4"
      authentication:
        type: bearer
        token: "$secrets.cloudflare_token"
      resources:
        - name: analytics
          path: "/zones/{{zone_id}}/analytics/dashboard"
          inputParameters:
            - name: zone_id
              in: path
          operations:
            - name: get-zone-analytics
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-record
              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

Pulls current Paramount+ subscriber counts by region from the streaming platform, stores daily snapshots in Snowflake, and refreshes the executive subscriber dashboard.

naftiko: "0.5"
info:
  label: "Streaming Subscriber Count Report"
  description: "Pulls current Paramount+ subscriber counts by region from the streaming platform, stores daily snapshots in Snowflake, and refreshes the executive subscriber dashboard."
  tags:
    - streaming
    - analytics
    - snowflake
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: subscriber-metrics
      port: 8080
      tools:
        - name: report-subscriber-counts
          description: "Generate a daily subscriber count report by region."
          inputParameters:
            - name: date
              in: body
              type: string
              description: "The reporting date."
          steps:
            - name: get-subscribers
              type: call
              call: "streaming-platform.get-subscriber-counts"
              with:
                date: "{{date}}"
            - name: store-snapshot
              type: call
              call: "snowflake.insert-record"
              with:
                table: "subscriber_snapshots"
                data:
                  date: "{{date}}"
                  total: "{{get-subscribers.total}}"
                  by_region: "{{get-subscribers.by_region}}"
            - name: refresh-dashboard
              type: call
              call: "tableau.refresh-extract"
              with:
                datasource_id: "subscriber_metrics_ds"
  consumes:
    - type: http
      namespace: streaming-platform
      baseUri: "https://api.paramount.com/streaming/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_streaming_token"
      resources:
        - name: subscribers
          path: "/subscribers/counts"
          operations:
            - name: get-subscriber-counts
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-record
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.paramount.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/sites/paramount/datasources/{{datasource_id}}/refresh"
          inputParameters:
            - name: datasource_id
              in: path
          operations:
            - name: refresh-extract
              method: POST

Queries the analytics platform for streaming viewership metrics by title. Returns total views, unique viewers, average watch time, and completion rate.

naftiko: "0.5"
info:
  label: "Streaming Viewership Lookup"
  description: "Queries the analytics platform for streaming viewership metrics by title. Returns total views, unique viewers, average watch time, and completion rate."
  tags:
    - streaming
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: viewership-analytics
      port: 8080
      tools:
        - name: get-viewership-metrics
          description: "Look up streaming viewership metrics for a specific title."
          inputParameters:
            - name: title_id
              in: body
              type: string
              description: "The content title identifier."
            - name: date_range
              in: body
              type: string
              description: "Date range for the query (7d, 30d, 90d)."
          call: "analytics-platform.get-viewership"
          with:
            title_id: "{{title_id}}"
            range: "{{date_range}}"
          outputParameters:
            - name: total_views
              type: integer
              mapping: "$.data.total_views"
            - name: unique_viewers
              type: integer
              mapping: "$.data.unique_viewers"
            - name: avg_watch_time
              type: number
              mapping: "$.data.avg_watch_time_minutes"
            - name: completion_rate
              type: number
              mapping: "$.data.completion_rate"
  consumes:
    - type: http
      namespace: analytics-platform
      baseUri: "https://api.paramount.com/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_analytics_token"
      resources:
        - name: viewership
          path: "/titles/{{title_id}}/viewership"
          inputParameters:
            - name: title_id
              in: path
          operations:
            - name: get-viewership
              method: GET

Pulls subscriber engagement data from the streaming platform, runs churn prediction models in Snowflake, and creates retention campaign triggers in Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Subscriber Churn Predictor"
  description: "Pulls subscriber engagement data from the streaming platform, runs churn prediction models in Snowflake, and creates retention campaign triggers in Salesforce Marketing Cloud."
  tags:
    - streaming
    - analytics
    - snowflake
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: subscriber-retention
      port: 8080
      tools:
        - name: predict-churn-risk
          description: "Identify at-risk subscribers and trigger retention campaigns."
          inputParameters:
            - name: segment
              in: body
              type: string
              description: "The subscriber segment to analyze."
            - name: lookback_days
              in: body
              type: integer
              description: "Number of days to analyze for engagement patterns."
          steps:
            - name: get-engagement-data
              type: call
              call: "streaming-platform.get-engagement-metrics"
              with:
                segment: "{{segment}}"
                days: "{{lookback_days}}"
            - name: run-churn-model
              type: call
              call: "snowflake.execute-query"
              with:
                query: "CALL predict_churn('{{segment}}', {{lookback_days}})"
            - name: trigger-retention
              type: call
              call: "sfmc.trigger-journey"
              with:
                journey_id: "churn_prevention"
                audience: "{{run-churn-model.at_risk_subscribers}}"
  consumes:
    - type: http
      namespace: streaming-platform
      baseUri: "https://api.paramount.com/streaming/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_streaming_token"
      resources:
        - name: engagement
          path: "/subscribers/engagement"
          operations:
            - name: get-engagement-metrics
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.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: sfmc
      baseUri: "https://paramount.rest.marketingcloudapis.com/interaction/v1"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: journeys
          path: "/events"
          operations:
            - name: trigger-journey
              method: POST

Triggers subtitle generation for a title, sends for translation review, updates the CMS with localized subtitle files, and notifies the localization team in Slack.

naftiko: "0.5"
info:
  label: "Subtitle and Localization Workflow"
  description: "Triggers subtitle generation for a title, sends for translation review, updates the CMS with localized subtitle files, and notifies the localization team in Slack."
  tags:
    - content
    - localization
    - slack
capability:
  exposes:
    - type: mcp
      namespace: localization-ops
      port: 8080
      tools:
        - name: process-subtitles
          description: "Generate and localize subtitles for a content title."
          inputParameters:
            - name: title_id
              in: body
              type: string
              description: "The content title identifier."
            - name: source_language
              in: body
              type: string
              description: "Source language code (e.g., en-US)."
            - name: target_languages
              in: body
              type: array
              description: "List of target language codes."
          steps:
            - name: generate-subtitles
              type: call
              call: "subtitle-service.generate"
              with:
                title_id: "{{title_id}}"
                source_lang: "{{source_language}}"
            - name: submit-translation
              type: call
              call: "translation-service.submit-job"
              with:
                source_file: "{{generate-subtitles.subtitle_url}}"
                target_languages: "{{target_languages}}"
            - name: update-cms
              type: call
              call: "cms.update-subtitles"
              with:
                title_id: "{{title_id}}"
                subtitle_files: "{{submit-translation.output_files}}"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "localization"
                text: "Subtitles ready for {{title_id}} in {{target_languages}}. Translation job: {{submit-translation.job_id}}"
  consumes:
    - type: http
      namespace: subtitle-service
      baseUri: "https://api.paramount.com/subtitles/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_subtitle_token"
      resources:
        - name: subtitles
          path: "/generate"
          operations:
            - name: generate
              method: POST
    - type: http
      namespace: translation-service
      baseUri: "https://api.paramount.com/translation/v1"
      authentication:
        type: bearer
        token: "$secrets.paramount_translation_token"
      resources:
        - name: jobs
          path: "/jobs"
          operations:
            - name: submit-job
              method: POST
    - type: http
      namespace: cms
      baseUri: "https://api.paramount.com/content/v2"
      authentication:
        type: bearer
        token: "$secrets.paramount_cms_token"
      resources:
        - name: subtitles
          path: "/titles/{{title_id}}/subtitles"
          inputParameters:
            - name: title_id
              in: path
          operations:
            - name: update-subtitles
              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

Triggers a Tableau datasource extract refresh. Used to update dashboards after data pipeline completions.

naftiko: "0.5"
info:
  label: "Tableau Dashboard Refresh"
  description: "Triggers a Tableau datasource extract refresh. Used to update dashboards after data pipeline completions."
  tags:
    - analytics
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: dashboard-ops
      port: 8080
      tools:
        - name: refresh-tableau-dashboard
          description: "Trigger a Tableau datasource extract refresh."
          inputParameters:
            - name: datasource_id
              in: body
              type: string
              description: "The Tableau datasource identifier."
          call: "tableau.refresh-extract"
          with:
            datasource_id: "{{datasource_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.paramount.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/sites/paramount/datasources/{{datasource_id}}/refresh"
          inputParameters:
            - name: datasource_id
              in: path
          operations:
            - name: refresh-extract
              method: POST

Looks up a talent contract in Salesforce by contract ID. Returns talent name, deal status, contract term, and compensation structure.

naftiko: "0.5"
info:
  label: "Talent Contract Status Lookup"
  description: "Looks up a talent contract in Salesforce by contract ID. Returns talent name, deal status, contract term, and compensation structure."
  tags:
    - content
    - licensing
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: talent-ops
      port: 8080
      tools:
        - name: get-talent-contract
          description: "Look up talent contract details by contract identifier."
          inputParameters:
            - name: contract_id
              in: body
              type: string
              description: "The Salesforce talent contract identifier."
          call: "salesforce.get-contract"
          with:
            contract_id: "{{contract_id}}"
          outputParameters:
            - name: talent_name
              type: string
              mapping: "$.Name"
            - name: status
              type: string
              mapping: "$.Status__c"
            - name: term_end
              type: string
              mapping: "$.Term_End_Date__c"
            - name: deal_value
              type: number
              mapping: "$.Total_Deal_Value__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://paramount.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: contracts
          path: "/sobjects/Talent_Contract__c/{{contract_id}}"
          inputParameters:
            - name: contract_id
              in: path
          operations:
            - name: get-contract
              method: GET

When a vendor invoice arrives for production services, validates against the SAP purchase order, creates a payment in Oracle, and notifies finance in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Vendor Invoice Processor"
  description: "When a vendor invoice arrives for production services, validates against the SAP purchase order, creates a payment in Oracle, and notifies finance in Microsoft Teams."
  tags:
    - procurement
    - finance
    - sap
    - oracle
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: vendor-payments
      port: 8080
      tools:
        - name: process-vendor-invoice
          description: "Validate and process a vendor invoice for production services."
          inputParameters:
            - name: invoice_number
              in: body
              type: string
              description: "The vendor invoice number."
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number."
            - name: amount
              in: body
              type: number
              description: "The invoice amount."
          steps:
            - name: validate-po
              type: call
              call: "sap.get-po"
              with:
                po_number: "{{po_number}}"
            - name: create-payment
              type: call
              call: "oracle.create-payment-request"
              with:
                invoice_number: "{{invoice_number}}"
                po_number: "{{po_number}}"
                amount: "{{amount}}"
            - name: notify-finance
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "finance-approvals"
                text: "Invoice {{invoice_number}} for ${{amount}} validated against PO {{po_number}}. Payment: {{create-payment.request_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://paramount.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
    - type: http
      namespace: oracle
      baseUri: "https://paramount.oraclecloud.com/fscmRestApi/resources/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_token"
      resources:
        - name: payments
          path: "/payablesInvoices"
          operations:
            - name: create-payment-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/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Pulls YouTube channel analytics for Paramount's official channels, aggregates with internal content performance data in Snowflake, and refreshes the content strategy dashboard.

naftiko: "0.5"
info:
  label: "YouTube Channel Performance Report"
  description: "Pulls YouTube channel analytics for Paramount's official channels, aggregates with internal content performance data in Snowflake, and refreshes the content strategy dashboard."
  tags:
    - content
    - marketing
    - youtube
    - snowflake
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: youtube-analytics
      port: 8080
      tools:
        - name: report-youtube-performance
          description: "Generate a YouTube channel performance report with content strategy insights."
          inputParameters:
            - name: channel_id
              in: body
              type: string
              description: "The YouTube channel identifier."
            - name: start_date
              in: body
              type: string
              description: "Report start date."
            - name: end_date
              in: body
              type: string
              description: "Report end date."
          steps:
            - name: get-youtube-stats
              type: call
              call: "youtube-api.get-channel-analytics"
              with:
                channel_id: "{{channel_id}}"
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: store-metrics
              type: call
              call: "snowflake.insert-record"
              with:
                table: "youtube_analytics"
                data:
                  channel_id: "{{channel_id}}"
                  views: "{{get-youtube-stats.views}}"
                  subscribers_gained: "{{get-youtube-stats.subscribers_gained}}"
                  watch_hours: "{{get-youtube-stats.watch_hours}}"
            - name: refresh-dashboard
              type: call
              call: "tableau.refresh-extract"
              with:
                datasource_id: "youtube_performance_ds"
  consumes:
    - type: http
      namespace: youtube-api
      baseUri: "https://youtubeanalytics.googleapis.com/v2"
      authentication:
        type: bearer
        token: "$secrets.google_youtube_token"
      resources:
        - name: reports
          path: "/reports?ids=channel==MINE"
          operations:
            - name: get-channel-analytics
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://paramount.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-record
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.paramount.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/sites/paramount/datasources/{{datasource_id}}/refresh"
          inputParameters:
            - name: datasource_id
              in: path
          operations:
            - name: refresh-extract
              method: POST

Creates a Zoom meeting and posts the join link to a Slack channel.

naftiko: "0.5"
info:
  label: "Zoom Meeting Creator"
  description: "Creates a Zoom meeting and posts the join link to a Slack channel."
  tags:
    - communications
    - zoom
    - slack
capability:
  exposes:
    - type: mcp
      namespace: meeting-ops
      port: 8080
      tools:
        - name: create-zoom-meeting
          description: "Create a Zoom meeting and share in Slack."
          inputParameters:
            - name: topic
              in: body
              type: string
              description: "Meeting topic."
            - name: start_time
              in: body
              type: string
              description: "Start time in ISO 8601."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel to post link."
          steps:
            - name: create-meeting
              type: call
              call: "zoom.create-meeting"
              with:
                topic: "{{topic}}"
                start_time: "{{start_time}}"
            - name: post-link
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Zoom meeting: {{topic}} at {{start_time}}. Join: {{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/me/meetings"
          operations:
            - name: create-meeting
              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