USA TODAY Capabilities
Naftiko 0.5 capability definitions for USA TODAY - 100 capabilities showing integration workflows and service orchestrations.
When an advertiser books a campaign in Salesforce, creates the ad order in Google Ads, schedules social promotion on Facebook, and sends a confirmation to the advertiser via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Ad Campaign Booking Orchestrator"
description: "When an advertiser books a campaign in Salesforce, creates the ad order in Google Ads, schedules social promotion on Facebook, and sends a confirmation to the advertiser via Microsoft Outlook."
tags:
- advertising
- campaign-management
- salesforce
- google-ads
- facebook
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: ad-operations
port: 8080
tools:
- name: book-ad-campaign
description: "Create ad orders across platforms and confirm with advertiser."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "Salesforce opportunity ID."
steps:
- name: get-deal
type: call
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
- name: create-google-campaign
type: call
call: "googleads.create-campaign"
with:
name: "{{get-deal.Name}}"
budget: "{{get-deal.Amount}}"
start_date: "{{get-deal.Campaign_Start__c}}"
- name: create-fb-campaign
type: call
call: "meta.create-campaign"
with:
name: "{{get-deal.Name}}"
budget: "{{get-deal.Social_Budget__c}}"
- name: send-confirmation
type: call
call: "outlook.send-mail"
with:
to: "{{get-deal.Contact_Email__c}}"
subject: "Campaign Confirmed: {{get-deal.Name}}"
body: "Your campaign is booked. Google ID: {{create-google-campaign.id}}, Facebook ID: {{create-fb-campaign.id}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://gannett.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: get-opportunity
method: GET
- type: http
namespace: googleads
baseUri: "https://googleads.googleapis.com/v14"
authentication:
type: bearer
token: "$secrets.google_ads_token"
resources:
- name: campaigns
path: "/customers/{{customer_id}}/campaigns"
inputParameters:
- name: customer_id
in: path
operations:
- name: create-campaign
method: POST
- type: http
namespace: meta
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.meta_ads_token"
resources:
- name: campaigns
path: "/act_{{ad_account_id}}/campaigns"
inputParameters:
- name: ad_account_id
in: path
operations:
- name: create-campaign
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Checks available ad inventory by placement.
naftiko: "0.5"
info:
label: "Ad Inventory Availability"
description: "Checks available ad inventory by placement."
tags:
- advertising
- sales
capability:
exposes:
- type: mcp
namespace: advertising
port: 8080
tools:
- name: get-ad
description: "Checks available ad inventory by placement."
inputParameters:
- name: entity_id
in: body
type: string
description: "The ad inventory availability identifier."
call: "advertising-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: advertising-api
baseUri: "https://api.usa-today.com/advertising/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: ad
path: "/ad/inventory/availability/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-ad
method: GET
Aggregates advertising revenue from Google Ads and Facebook Ads, reconciles with Salesforce bookings, and publishes the report to Looker Studio.
naftiko: "0.5"
info:
label: "Ad Revenue Reporting Orchestrator"
description: "Aggregates advertising revenue from Google Ads and Facebook Ads, reconciles with Salesforce bookings, and publishes the report to Looker Studio."
tags:
- advertising
- finance
- google-ads
- facebook
- salesforce
- looker-studio
capability:
exposes:
- type: mcp
namespace: ad-revenue
port: 8080
tools:
- name: generate-revenue-report
description: "Aggregate multi-platform ad revenue and refresh Looker Studio."
inputParameters:
- name: period
in: body
type: string
description: "Reporting period (e.g., '2024-Q1')."
steps:
- name: get-google-revenue
type: call
call: "googleads.get-account-revenue"
with:
period: "{{period}}"
- name: get-fb-revenue
type: call
call: "meta.get-account-insights"
with:
period: "{{period}}"
- name: get-sf-bookings
type: call
call: "salesforce.query-revenue"
with:
period: "{{period}}"
- name: refresh-report
type: call
call: "lookerstudio.refresh-datasource"
with:
datasource_id: "ad_revenue_report"
consumes:
- type: http
namespace: googleads
baseUri: "https://googleads.googleapis.com/v14"
authentication:
type: bearer
token: "$secrets.google_ads_token"
resources:
- name: reports
path: "/customers/{{customer_id}}/reports"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-account-revenue
method: GET
- type: http
namespace: meta
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.meta_ads_token"
resources:
- name: account-insights
path: "/act_{{ad_account_id}}/insights"
inputParameters:
- name: ad_account_id
in: path
operations:
- name: get-account-insights
method: GET
- type: http
namespace: salesforce
baseUri: "https://gannett.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: query
path: "/query"
operations:
- name: query-revenue
method: GET
- type: http
namespace: lookerstudio
baseUri: "https://datastudio.googleapis.com/v1"
authentication:
type: bearer
token: "$secrets.google_datastudio_token"
resources:
- name: datasources
path: "/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-datasource
method: POST
Retrieves Adobe Analytics content performance for editorial sections.
naftiko: "0.5"
info:
label: "Adobe Analytics Content Performance"
description: "Retrieves Adobe Analytics content performance for editorial sections."
tags:
- analytics
- publishing
- adobe-analytics
capability:
exposes:
- type: mcp
namespace: content-performance
port: 8080
tools:
- name: get-section-metrics
description: "Fetch Adobe Analytics section-level metrics."
inputParameters:
- name: report_suite_id
in: body
type: string
description: "Report suite ID."
- name: section
in: body
type: string
description: "Editorial section name."
call: "adobe-analytics.get-report"
with:
rsid: "{{report_suite_id}}"
section: "{{section}}"
outputParameters:
- name: pageviews
type: number
mapping: "$.totalPages[0].data[0].pageViews"
- name: unique_visitors
type: number
mapping: "$.totalPages[0].data[0].uniqueVisitors"
consumes:
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: reports
path: "/{{company_id}}/reports"
inputParameters:
- name: company_id
in: path
operations:
- name: get-report
method: POST
Retrieves ADP payroll summary for a pay period.
naftiko: "0.5"
info:
label: "ADP Payroll Summary Lookup"
description: "Retrieves ADP payroll summary for a pay period."
tags:
- hr
- payroll
- adp
capability:
exposes:
- type: mcp
namespace: payroll-ops
port: 8080
tools:
- name: get-payroll-summary
description: "Fetch ADP payroll summary."
inputParameters:
- name: pay_period
in: body
type: string
description: "Pay period identifier."
call: "adp.get-payroll"
with:
pay_period: "{{pay_period}}"
outputParameters:
- name: gross_pay
type: string
mapping: "$.payrollSummary.grossPay"
- name: net_pay
type: string
mapping: "$.payrollSummary.netPay"
consumes:
- type: http
namespace: adp
baseUri: "https://api.adp.com/hr/v2"
authentication:
type: bearer
token: "$secrets.adp_token"
resources:
- name: payroll
path: "/payroll-summaries/{{pay_period}}"
inputParameters:
- name: pay_period
in: path
operations:
- name: get-payroll
method: GET
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves engagement metrics for a published article.
naftiko: "0.5"
info:
label: "Article Engagement Metrics"
description: "Retrieves engagement metrics for a published article."
tags:
- editorial
- analytics
capability:
exposes:
- type: mcp
namespace: editorial
port: 8080
tools:
- name: get-article
description: "Retrieves engagement metrics for a published article."
inputParameters:
- name: entity_id
in: body
type: string
description: "The article engagement metrics identifier."
call: "editorial-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.usa-today.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: article
path: "/article/engagement/metrics/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-article
method: GET
When a story is approved in the CMS, publishes it to the WordPress site, pushes notifications via WhatsApp and social channels, and logs the publication in Google Sheets.
naftiko: "0.5"
info:
label: "Article Publishing Orchestrator"
description: "When a story is approved in the CMS, publishes it to the WordPress site, pushes notifications via WhatsApp and social channels, and logs the publication in Google Sheets."
tags:
- publishing
- content-management
- wordpress
- whatsapp
- google-sheets
capability:
exposes:
- type: mcp
namespace: content-publishing
port: 8080
tools:
- name: publish-article
description: "Publish an article to WordPress, send notifications, and log publication."
inputParameters:
- name: article_id
in: body
type: string
description: "CMS article identifier."
- name: title
in: body
type: string
description: "Article headline."
- name: content
in: body
type: string
description: "Article body content."
- name: category
in: body
type: string
description: "Article category."
steps:
- name: create-post
type: call
call: "wordpress.create-post"
with:
title: "{{title}}"
content: "{{content}}"
categories: "{{category}}"
status: "publish"
- name: send-alert
type: call
call: "whatsapp.send-message"
with:
template: "breaking_news"
headline: "{{title}}"
url: "{{create-post.link}}"
- name: log-publication
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "usa_today_publications"
row:
article_id: "{{article_id}}"
title: "{{title}}"
url: "{{create-post.link}}"
published_at: "{{create-post.date}}"
consumes:
- type: http
namespace: wordpress
baseUri: "https://www.usatoday.com/wp-json/wp/v2"
authentication:
type: bearer
token: "$secrets.wordpress_token"
resources:
- name: posts
path: "/posts"
operations:
- name: create-post
method: POST
- type: http
namespace: whatsapp
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/{{phone_number_id}}/messages"
inputParameters:
- name: phone_number_id
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
Retrieves the latest Azure DevOps build status.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status Lookup"
description: "Retrieves the latest Azure DevOps build status."
tags:
- devops
- ci-cd
- azure-devops
capability:
exposes:
- type: mcp
namespace: devops-builds
port: 8080
tools:
- name: get-build-status
description: "Fetch latest build status."
inputParameters:
- name: project
in: body
type: string
description: "Project name."
- name: pipeline_id
in: body
type: string
description: "Pipeline ID."
call: "azuredevops.get-builds"
with:
project: "{{project}}"
definition_id: "{{pipeline_id}}"
outputParameters:
- name: build_number
type: string
mapping: "$.value[0].buildNumber"
- name: status
type: string
mapping: "$.value[0].status"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/gannett"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?definitions={{definition_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: definition_id
in: query
operations:
- name: get-builds
method: GET
When a breaking news article is published, simultaneously pushes to Twitter, Facebook, and Instagram, and logs engagement metrics to Google Sheets.
naftiko: "0.5"
info:
label: "Breaking News Social Distribution Orchestrator"
description: "When a breaking news article is published, simultaneously pushes to Twitter, Facebook, and Instagram, and logs engagement metrics to Google Sheets."
tags:
- publishing
- social-media
- twitter
- facebook
- instagram
- google-sheets
capability:
exposes:
- type: mcp
namespace: social-distribution
port: 8080
tools:
- name: distribute-breaking-news
description: "Push a breaking story across all social channels and log."
inputParameters:
- name: headline
in: body
type: string
description: "Article headline."
- name: url
in: body
type: string
description: "Article URL."
- name: image_url
in: body
type: string
description: "Featured image URL."
steps:
- name: post-twitter
type: call
call: "twitter.create-tweet"
with:
text: "BREAKING: {{headline}} {{url}}"
- name: post-facebook
type: call
call: "facebook.create-post"
with:
message: "BREAKING: {{headline}}"
link: "{{url}}"
- name: post-instagram
type: call
call: "instagram.create-media"
with:
caption: "BREAKING: {{headline}} Link in bio."
image_url: "{{image_url}}"
- name: log-distribution
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "social_distribution_log"
row:
headline: "{{headline}}"
url: "{{url}}"
twitter_id: "{{post-twitter.id}}"
fb_id: "{{post-facebook.id}}"
consumes:
- type: http
namespace: twitter
baseUri: "https://api.twitter.com/2"
authentication:
type: bearer
token: "$secrets.twitter_bearer_token"
resources:
- name: tweets
path: "/tweets"
operations:
- name: create-tweet
method: POST
- type: http
namespace: facebook
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.facebook_page_token"
resources:
- name: posts
path: "/{{page_id}}/feed"
inputParameters:
- name: page_id
in: path
operations:
- name: create-post
method: POST
- type: http
namespace: instagram
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: media
path: "/{{ig_user_id}}/media"
inputParameters:
- name: ig_user_id
in: path
operations:
- name: create-media
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
When a classified ad is submitted, creates the listing in WordPress, generates an invoice in Oracle E-Business Suite, and sends payment link via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Classified Ad Revenue Orchestrator"
description: "When a classified ad is submitted, creates the listing in WordPress, generates an invoice in Oracle E-Business Suite, and sends payment link via Microsoft Outlook."
tags:
- advertising
- classified
- wordpress
- oracle-e-business-suite
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: classified-ops
port: 8080
tools:
- name: process-classified-ad
description: "Create classified listing, invoice, and send payment link."
inputParameters:
- name: ad_title
in: body
type: string
description: "Classified ad title."
- name: ad_content
in: body
type: string
description: "Ad content."
- name: advertiser_email
in: body
type: string
description: "Advertiser email."
- name: price
in: body
type: string
description: "Ad price."
steps:
- name: create-listing
type: call
call: "wordpress.create-post"
with:
title: "{{ad_title}}"
content: "{{ad_content}}"
categories: "classifieds"
status: "publish"
- name: create-invoice
type: call
call: "oracle-ebs.create-invoice"
with:
customer_email: "{{advertiser_email}}"
amount: "{{price}}"
description: "Classified ad: {{ad_title}}"
- name: send-payment-link
type: call
call: "outlook.send-mail"
with:
to: "{{advertiser_email}}"
subject: "Invoice for classified ad: {{ad_title}}"
body: "Your ad is live at {{create-listing.link}}. Invoice: {{create-invoice.invoice_number}}. Pay: {{create-invoice.payment_url}}"
consumes:
- type: http
namespace: wordpress
baseUri: "https://www.usatoday.com/wp-json/wp/v2"
authentication:
type: bearer
token: "$secrets.wordpress_token"
resources:
- name: posts
path: "/posts"
operations:
- name: create-post
method: POST
- type: http
namespace: oracle-ebs
baseUri: "https://gannett-ebs.gannett.com/webservices/rest/ar"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: invoices
path: "/invoices"
operations:
- name: create-invoice
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Retrieves Cloudflare analytics for the USA Today zone.
naftiko: "0.5"
info:
label: "Cloudflare CDN Performance Lookup"
description: "Retrieves Cloudflare analytics for the USA Today zone."
tags:
- infrastructure
- cdn
- cloudflare
capability:
exposes:
- type: mcp
namespace: cdn-ops
port: 8080
tools:
- name: get-zone-analytics
description: "Fetch Cloudflare zone analytics."
inputParameters:
- name: zone_id
in: body
type: string
description: "Cloudflare zone ID."
call: "cloudflare.get-zone-analytics"
with:
zone_id: "{{zone_id}}"
outputParameters:
- name: requests
type: number
mapping: "$.result.totals.requests.all"
- name: bandwidth
type: number
mapping: "$.result.totals.bandwidth.all"
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
Retrieves a Confluence page by ID, returning title, body, and version.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Lookup"
description: "Retrieves a Confluence page by ID, returning title, body, and version."
tags:
- documents
- knowledge-base
- confluence
capability:
exposes:
- type: mcp
namespace: knowledge-mgmt
port: 8080
tools:
- name: get-confluence-page
description: "Fetch a Confluence page."
inputParameters:
- name: page_id
in: body
type: string
description: "Confluence page ID."
call: "confluence.get-page"
with:
page_id: "{{page_id}}"
outputParameters:
- name: title
type: string
mapping: "$.title"
- name: version
type: number
mapping: "$.version.number"
consumes:
- type: http
namespace: confluence
baseUri: "https://gannett.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.usa-today.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Retrieves a content page from the CMS.
naftiko: "0.5"
info:
label: "Content CMS Page Lookup"
description: "Retrieves a content page from the CMS."
tags:
- editorial
- content-management
capability:
exposes:
- type: mcp
namespace: editorial
port: 8080
tools:
- name: get-content
description: "Retrieves a content page from the CMS."
inputParameters:
- name: entity_id
in: body
type: string
description: "The content cms page lookup identifier."
call: "editorial-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.usa-today.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: content
path: "/content/cms/page/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-content
method: GET
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves Datadog monitor status.
naftiko: "0.5"
info:
label: "Datadog Infrastructure Monitor Lookup"
description: "Retrieves Datadog monitor status."
tags:
- monitoring
- infrastructure
- datadog
capability:
exposes:
- type: mcp
namespace: infra-monitoring
port: 8080
tools:
- name: get-monitor-status
description: "Fetch Datadog monitor status."
inputParameters:
- name: monitor_id
in: body
type: string
description: "Monitor ID."
call: "datadog.get-monitor"
with:
monitor_id: "{{monitor_id}}"
outputParameters:
- name: state
type: string
mapping: "$.overall_state"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: monitors
path: "/monitor/{{monitor_id}}"
inputParameters:
- name: monitor_id
in: path
operations:
- name: get-monitor
method: GET
Retrieves a Datadog monitor status.
naftiko: "0.5"
info:
label: "Datadog Monitor Viewer"
description: "Retrieves a Datadog monitor status."
tags:
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: monitoring
port: 8080
tools:
- name: get-datadog
description: "Retrieves a Datadog monitor status."
inputParameters:
- name: entity_id
in: body
type: string
description: "The datadog monitor viewer identifier."
call: "monitoring-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: monitoring-api
baseUri: "https://api.usa-today.com/monitoring/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: datadog
path: "/datadog/monitor/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-datadog
method: GET
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves active Dynatrace problems.
naftiko: "0.5"
info:
label: "Dynatrace Application Monitoring"
description: "Retrieves active Dynatrace problems."
tags:
- monitoring
- dynatrace
capability:
exposes:
- type: mcp
namespace: observability
port: 8080
tools:
- name: get-active-problems
description: "Fetch active problems from Dynatrace."
inputParameters:
- name: time_range
in: body
type: string
description: "Time range."
call: "dynatrace.get-problems"
with:
relativeTime: "{{time_range}}"
outputParameters:
- name: total_count
type: number
mapping: "$.totalCount"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://gannett.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: problems
path: "/problems"
operations:
- name: get-problems
method: GET
Creates editorial assignments in Microsoft Planner, notifies reporters via Microsoft Teams, and logs deadlines in Google Sheets.
naftiko: "0.5"
info:
label: "Editorial Calendar Orchestrator"
description: "Creates editorial assignments in Microsoft Planner, notifies reporters via Microsoft Teams, and logs deadlines in Google Sheets."
tags:
- publishing
- editorial
- microsoft-planner
- microsoft-teams
- google-sheets
capability:
exposes:
- type: mcp
namespace: editorial-ops
port: 8080
tools:
- name: create-assignment
description: "Create editorial assignment with Planner task, Teams notification, and Sheets log."
inputParameters:
- name: title
in: body
type: string
description: "Story assignment title."
- name: reporter_email
in: body
type: string
description: "Assigned reporter email."
- name: due_date
in: body
type: string
description: "Due date YYYY-MM-DD."
- name: section
in: body
type: string
description: "Newspaper section."
steps:
- name: create-task
type: call
call: "planner.create-task"
with:
title: "{{title}}"
assigned_to: "{{reporter_email}}"
due_date: "{{due_date}}"
bucket: "{{section}}"
- name: notify-reporter
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{reporter_email}}"
text: "New assignment: {{title}}. Due: {{due_date}}. Section: {{section}}."
- name: log-assignment
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "editorial_calendar"
row:
title: "{{title}}"
reporter: "{{reporter_email}}"
due_date: "{{due_date}}"
section: "{{section}}"
consumes:
- type: http
namespace: planner
baseUri: "https://graph.microsoft.com/v1.0/planner"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: tasks
path: "/tasks"
operations:
- name: create-task
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome.
naftiko: "0.5"
info:
label: "Employee Onboarding Pipeline"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate new hire onboarding across Workday, ServiceNow, SharePoint, and Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date YYYY-MM-DD."
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: "Onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding"
folder_path: "Onboarding/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to Gannett/USA Today, {{get-employee.first_name}}!"
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://gannett.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves Facebook ad spend and ROAS for a date range.
naftiko: "0.5"
info:
label: "Facebook Ads Spend Reporter"
description: "Retrieves Facebook ad spend and ROAS for a date range."
tags:
- advertising
- facebook
capability:
exposes:
- type: mcp
namespace: paid-media
port: 8080
tools:
- name: get-fb-ad-spend
description: "Fetch Facebook ad spend and ROAS."
inputParameters:
- name: ad_account_id
in: body
type: string
description: "Facebook ad account ID."
- name: start_date
in: body
type: string
description: "Start date YYYY-MM-DD."
- name: end_date
in: body
type: string
description: "End date YYYY-MM-DD."
call: "meta.get-account-insights"
with:
ad_account_id: "{{ad_account_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: spend
type: string
mapping: "$.data[0].spend"
- name: roas
type: string
mapping: "$.data[0].purchase_roas[0].value"
consumes:
- type: http
namespace: meta
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.meta_ads_token"
resources:
- name: account-insights
path: "/act_{{ad_account_id}}/insights"
inputParameters:
- name: ad_account_id
in: path
operations:
- name: get-account-insights
method: GET
Retrieves Google Ads campaign performance metrics including impressions, clicks, and cost.
naftiko: "0.5"
info:
label: "Google Ads Campaign Performance Lookup"
description: "Retrieves Google Ads campaign performance metrics including impressions, clicks, and cost."
tags:
- advertising
- google-ads
capability:
exposes:
- type: mcp
namespace: ad-performance
port: 8080
tools:
- name: get-google-ads-metrics
description: "Fetch Google Ads campaign performance."
inputParameters:
- name: campaign_id
in: body
type: string
description: "Google Ads campaign ID."
- name: date_range
in: body
type: string
description: "Date range."
call: "googleads.get-campaign-metrics"
with:
campaign_id: "{{campaign_id}}"
date_range: "{{date_range}}"
outputParameters:
- name: impressions
type: number
mapping: "$.metrics.impressions"
- name: clicks
type: number
mapping: "$.metrics.clicks"
- name: cost
type: string
mapping: "$.metrics.costMicros"
consumes:
- type: http
namespace: googleads
baseUri: "https://googleads.googleapis.com/v14"
authentication:
type: bearer
token: "$secrets.google_ads_token"
resources:
- name: campaigns
path: "/customers/{{customer_id}}/campaigns/{{campaign_id}}"
inputParameters:
- name: customer_id
in: path
- name: campaign_id
in: path
operations:
- name: get-campaign-metrics
method: GET
Retrieves Google Analytics page performance data for a specific article URL, returning pageviews, unique visitors, and average time on page.
naftiko: "0.5"
info:
label: "Google Analytics Article Performance Lookup"
description: "Retrieves Google Analytics page performance data for a specific article URL, returning pageviews, unique visitors, and average time on page."
tags:
- analytics
- publishing
- google-analytics
capability:
exposes:
- type: mcp
namespace: content-analytics
port: 8080
tools:
- name: get-article-metrics
description: "Fetch GA metrics for a specific article."
inputParameters:
- name: page_path
in: body
type: string
description: "Article URL path."
- name: start_date
in: body
type: string
description: "Start date YYYY-MM-DD."
- name: end_date
in: body
type: string
description: "End date YYYY-MM-DD."
call: "ga.get-report"
with:
page_path: "{{page_path}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: pageviews
type: number
mapping: "$.rows[0].pageviews"
- name: unique_visitors
type: number
mapping: "$.rows[0].uniqueVisitors"
- name: avg_time_on_page
type: string
mapping: "$.rows[0].avgTimeOnPage"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: get-report
method: POST
Searches for documents in Google Drive by name.
naftiko: "0.5"
info:
label: "Google Drive File Search"
description: "Searches for documents in Google Drive by name."
tags:
- documents
- google-drive
capability:
exposes:
- type: mcp
namespace: drive-search
port: 8080
tools:
- name: search-drive-files
description: "Search Google Drive files."
inputParameters:
- name: query
in: body
type: string
description: "Search query."
call: "gdrive.search-files"
with:
q: "name contains '{{query}}'"
outputParameters:
- name: files
type: array
mapping: "$.files"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files"
operations:
- name: search-files
method: GET
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.usa-today.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Retrieves search performance data from Google Search Console.
naftiko: "0.5"
info:
label: "Google Search Console Performance"
description: "Retrieves search performance data from Google Search Console."
tags:
- seo
- analytics
- google-search-console
capability:
exposes:
- type: mcp
namespace: seo-analytics
port: 8080
tools:
- name: get-search-performance
description: "Fetch GSC performance data."
inputParameters:
- name: site_url
in: body
type: string
description: "Site URL property."
- name: start_date
in: body
type: string
description: "Start date YYYY-MM-DD."
- name: end_date
in: body
type: string
description: "End date YYYY-MM-DD."
call: "gsc.query-analytics"
with:
site_url: "{{site_url}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: clicks
type: number
mapping: "$.rows[0].clicks"
- name: impressions
type: number
mapping: "$.rows[0].impressions"
consumes:
- type: http
namespace: gsc
baseUri: "https://www.googleapis.com/webmasters/v3"
authentication:
type: bearer
token: "$secrets.google_search_console_token"
resources:
- name: analytics
path: "/sites/{{site_url}}/searchAnalytics/query"
inputParameters:
- name: site_url
in: path
operations:
- name: query-analytics
method: POST
Retrieves the latest GTM container version.
naftiko: "0.5"
info:
label: "Google Tag Manager Container Version"
description: "Retrieves the latest GTM container version."
tags:
- analytics
- tag-management
- google-tag-manager
capability:
exposes:
- type: mcp
namespace: tag-management
port: 8080
tools:
- name: get-gtm-version
description: "Fetch latest GTM container version."
inputParameters:
- name: account_id
in: body
type: string
description: "GTM account ID."
- name: container_id
in: body
type: string
description: "GTM container ID."
call: "gtm.get-live-version"
with:
account_id: "{{account_id}}"
container_id: "{{container_id}}"
outputParameters:
- name: version_number
type: string
mapping: "$.containerVersionId"
consumes:
- type: http
namespace: gtm
baseUri: "https://www.googleapis.com/tagmanager/v2"
authentication:
type: bearer
token: "$secrets.google_tagmanager_token"
resources:
- name: versions
path: "/accounts/{{account_id}}/containers/{{container_id}}/versions/live"
inputParameters:
- name: account_id
in: path
- name: container_id
in: path
operations:
- name: get-live-version
method: GET
Retrieves a HubSpot contact by email.
naftiko: "0.5"
info:
label: "HubSpot Contact Lookup"
description: "Retrieves a HubSpot contact by email."
tags:
- marketing
- crm
- hubspot
capability:
exposes:
- type: mcp
namespace: crm-marketing
port: 8080
tools:
- name: get-hubspot-contact
description: "Look up a HubSpot contact by email."
inputParameters:
- name: email
in: body
type: string
description: "Contact email."
call: "hubspot.get-contact-by-email"
with:
email: "{{email}}"
outputParameters:
- name: lifecycle_stage
type: string
mapping: "$.properties.lifecyclestage"
- name: subscription_status
type: string
mapping: "$.properties.subscription_status"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/objects/contacts/{{email}}?idProperty=email"
inputParameters:
- name: email
in: path
operations:
- name: get-contact-by-email
method: GET
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves Instagram post engagement metrics for editorial content.
naftiko: "0.5"
info:
label: "Instagram Content Promotion"
description: "Retrieves Instagram post engagement metrics for editorial content."
tags:
- social-media
- publishing
- instagram
capability:
exposes:
- type: mcp
namespace: social-engagement
port: 8080
tools:
- name: get-post-engagement
description: "Fetch Instagram post engagement metrics."
inputParameters:
- name: media_id
in: body
type: string
description: "Instagram media ID."
call: "instagram.get-media-insights"
with:
media_id: "{{media_id}}"
outputParameters:
- name: impressions
type: number
mapping: "$.data[0].values[0].value"
- name: reach
type: number
mapping: "$.data[1].values[0].value"
consumes:
- type: http
namespace: instagram
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: media-insights
path: "/{{media_id}}/insights"
inputParameters:
- name: media_id
in: path
operations:
- name: get-media-insights
method: GET
Sets up an investigative report workspace by creating a shared Google Drive folder, a Confluence space, assigning tasks in Microsoft Planner, and notifying the investigative team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Investigative Report Collaboration Orchestrator"
description: "Sets up an investigative report workspace by creating a shared Google Drive folder, a Confluence space, assigning tasks in Microsoft Planner, and notifying the investigative team in Microsoft Teams."
tags:
- publishing
- collaboration
- google-drive
- confluence
- microsoft-planner
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: investigative-ops
port: 8080
tools:
- name: setup-investigation
description: "Create collaboration workspace for investigative reporting."
inputParameters:
- name: project_name
in: body
type: string
description: "Investigation project name."
- name: lead_reporter
in: body
type: string
description: "Lead reporter email."
steps:
- name: create-drive-folder
type: call
call: "gdrive.create-folder"
with:
name: "Investigation - {{project_name}}"
parent_id: "investigations_root"
- name: create-confluence-space
type: call
call: "confluence.create-space"
with:
name: "INV - {{project_name}}"
key: "INV{{project_name}}"
- name: create-plan
type: call
call: "planner.create-task"
with:
title: "Lead: {{project_name}}"
assigned_to: "{{lead_reporter}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "investigative-team"
text: "New investigation: {{project_name}}. Lead: {{lead_reporter}}. Drive: {{create-drive-folder.url}}"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: folders
path: "/files"
operations:
- name: create-folder
method: POST
- type: http
namespace: confluence
baseUri: "https://gannett.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: spaces
path: "/space"
operations:
- name: create-space
method: POST
- type: http
namespace: planner
baseUri: "https://graph.microsoft.com/v1.0/planner"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: tasks
path: "/tasks"
operations:
- name: create-task
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a Jira ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.usa-today.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves LinkedIn company page analytics including followers and engagement.
naftiko: "0.5"
info:
label: "LinkedIn Page Analytics"
description: "Retrieves LinkedIn company page analytics including followers and engagement."
tags:
- social-media
- linkedin
capability:
exposes:
- type: mcp
namespace: social-analytics
port: 8080
tools:
- name: get-linkedin-analytics
description: "Fetch LinkedIn company page stats."
inputParameters:
- name: organization_id
in: body
type: string
description: "LinkedIn organization ID."
call: "linkedin.get-page-stats"
with:
organization_id: "{{organization_id}}"
outputParameters:
- name: follower_count
type: number
mapping: "$.firstDegreeSize"
consumes:
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: stats
path: "/networkSizes/{{organization_id}}?edgeType=CompanyFollowedByMember"
inputParameters:
- name: organization_id
in: path
operations:
- name: get-page-stats
method: GET
Triggers a data source refresh in Looker Studio for editorial dashboards.
naftiko: "0.5"
info:
label: "Looker Studio Dashboard Refresh"
description: "Triggers a data source refresh in Looker Studio for editorial dashboards."
tags:
- analytics
- reporting
- looker-studio
capability:
exposes:
- type: mcp
namespace: bi-ops
port: 8080
tools:
- name: refresh-dashboard
description: "Refresh a Looker Studio data source."
inputParameters:
- name: datasource_id
in: body
type: string
description: "Looker Studio data source ID."
call: "lookerstudio.refresh-datasource"
with:
datasource_id: "{{datasource_id}}"
consumes:
- type: http
namespace: lookerstudio
baseUri: "https://datastudio.googleapis.com/v1"
authentication:
type: bearer
token: "$secrets.google_datastudio_token"
resources:
- name: datasources
path: "/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-datasource
method: POST
Retrieves MailChimp newsletter campaign statistics.
naftiko: "0.5"
info:
label: "MailChimp Newsletter Stats Lookup"
description: "Retrieves MailChimp newsletter campaign statistics."
tags:
- marketing
- email
- mailchimp
capability:
exposes:
- type: mcp
namespace: email-marketing
port: 8080
tools:
- name: get-campaign-stats
description: "Fetch MailChimp campaign statistics."
inputParameters:
- name: campaign_id
in: body
type: string
description: "MailChimp campaign ID."
call: "mailchimp.get-campaign-report"
with:
campaign_id: "{{campaign_id}}"
outputParameters:
- name: open_rate
type: number
mapping: "$.opens.open_rate"
- name: click_rate
type: number
mapping: "$.clicks.click_rate"
- name: emails_sent
type: number
mapping: "$.emails_sent"
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: reports
path: "/reports/{{campaign_id}}"
inputParameters:
- name: campaign_id
in: path
operations:
- name: get-campaign-report
method: GET
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends a notification to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a notification to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: team-notifications
port: 8080
tools:
- name: send-channel-message
description: "Post a message to a Teams channel."
inputParameters:
- name: team_id
in: body
type: string
description: "Teams team ID."
- name: channel_id
in: body
type: string
description: "Channel ID."
- name: message
in: body
type: string
description: "Message text."
call: "msteams.post-message"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.usa-today.com/communications/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Retrieves New Relic APM metrics.
naftiko: "0.5"
info:
label: "New Relic Application Performance"
description: "Retrieves New Relic APM metrics."
tags:
- monitoring
- new-relic
capability:
exposes:
- type: mcp
namespace: apm-monitoring
port: 8080
tools:
- name: get-app-performance
description: "Fetch New Relic APM metrics."
inputParameters:
- name: app_id
in: body
type: string
description: "New Relic app ID."
call: "newrelic.get-application"
with:
app_id: "{{app_id}}"
outputParameters:
- name: response_time
type: number
mapping: "$.application.application_summary.response_time"
- name: error_rate
type: number
mapping: "$.application.application_summary.error_rate"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-application
method: GET
Orchestrates news media workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 1"
description: "Orchestrates news media workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-001
description: "Orchestrates news media workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates news media workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 2"
description: "Orchestrates news media workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-002
description: "Orchestrates news media workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves news media operational data for workflow 3.
naftiko: "0.5"
info:
label: "News Media Data Query 3"
description: "Retrieves news media operational data for workflow 3."
tags:
- news
- operations
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: get-data-3
description: "Query news media data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "news-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: news-api
baseUri: "https://api.usa-today.com/news-media/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates news media workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 4"
description: "Orchestrates news media workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-004
description: "Orchestrates news media workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates news media workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 5"
description: "Orchestrates news media workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-005
description: "Orchestrates news media workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves news media operational data for workflow 6.
naftiko: "0.5"
info:
label: "News Media Data Query 6"
description: "Retrieves news media operational data for workflow 6."
tags:
- news
- operations
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: get-data-6
description: "Query news media data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "news-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: news-api
baseUri: "https://api.usa-today.com/news-media/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates news media workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 7"
description: "Orchestrates news media workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-007
description: "Orchestrates news media workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates news media workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 8"
description: "Orchestrates news media workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-008
description: "Orchestrates news media workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves news media operational data for workflow 9.
naftiko: "0.5"
info:
label: "News Media Data Query 9"
description: "Retrieves news media operational data for workflow 9."
tags:
- news
- operations
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: get-data-9
description: "Query news media data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "news-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: news-api
baseUri: "https://api.usa-today.com/news-media/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates news media workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 10"
description: "Orchestrates news media workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-010
description: "Orchestrates news media workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates news media workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 11"
description: "Orchestrates news media workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-011
description: "Orchestrates news media workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves news media operational data for workflow 12.
naftiko: "0.5"
info:
label: "News Media Data Query 12"
description: "Retrieves news media operational data for workflow 12."
tags:
- news
- operations
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: get-data-12
description: "Query news media data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "news-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: news-api
baseUri: "https://api.usa-today.com/news-media/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates news media workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 13"
description: "Orchestrates news media workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-013
description: "Orchestrates news media workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates news media workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 14"
description: "Orchestrates news media workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-014
description: "Orchestrates news media workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves news media operational data for workflow 15.
naftiko: "0.5"
info:
label: "News Media Data Query 15"
description: "Retrieves news media operational data for workflow 15."
tags:
- news
- operations
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: get-data-15
description: "Query news media data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "news-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: news-api
baseUri: "https://api.usa-today.com/news-media/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Orchestrates news media workflow 16 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 16"
description: "Orchestrates news media workflow 16 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-016
description: "Orchestrates news media workflow 16 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 16 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates news media workflow 17 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 17"
description: "Orchestrates news media workflow 17 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-017
description: "Orchestrates news media workflow 17 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 17 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves news media operational data for workflow 18.
naftiko: "0.5"
info:
label: "News Media Data Query 18"
description: "Retrieves news media operational data for workflow 18."
tags:
- news
- operations
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: get-data-18
description: "Query news media data for workflow 18."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "news-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: news-api
baseUri: "https://api.usa-today.com/news-media/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-18
method: GET
Orchestrates news media workflow 19 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 19"
description: "Orchestrates news media workflow 19 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-019
description: "Orchestrates news media workflow 19 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 19 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates news media workflow 20 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 20"
description: "Orchestrates news media workflow 20 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-020
description: "Orchestrates news media workflow 20 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 20 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves news media operational data for workflow 21.
naftiko: "0.5"
info:
label: "News Media Data Query 21"
description: "Retrieves news media operational data for workflow 21."
tags:
- news
- operations
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: get-data-21
description: "Query news media data for workflow 21."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "news-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: news-api
baseUri: "https://api.usa-today.com/news-media/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-21
method: GET
Orchestrates news media workflow 22 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "News Media Workflow 22"
description: "Orchestrates news media workflow 22 by coordinating across systems, validating data, and sending notifications."
tags:
- news
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: news
port: 8080
tools:
- name: run-news-media-workflow-022
description: "Orchestrates news media workflow 22 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed News Media Workflow 22 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Pulls subscriber data from Salesforce, cross-references with Google Analytics engagement, and refreshes a Looker Studio dashboard with subscriber health metrics.
naftiko: "0.5"
info:
label: "Paywall Subscription Analytics Orchestrator"
description: "Pulls subscriber data from Salesforce, cross-references with Google Analytics engagement, and refreshes a Looker Studio dashboard with subscriber health metrics."
tags:
- subscriptions
- analytics
- salesforce
- google-analytics
- looker-studio
capability:
exposes:
- type: mcp
namespace: subscription-analytics
port: 8080
tools:
- name: analyze-subscriber-health
description: "Aggregate subscriber and engagement data for the subscription health dashboard."
inputParameters:
- name: segment
in: body
type: string
description: "Subscriber segment (e.g., 'premium', 'basic')."
- name: date_range
in: body
type: string
description: "Date range."
steps:
- name: get-subscriber-data
type: call
call: "salesforce.query-subscribers"
with:
segment: "{{segment}}"
- name: get-engagement
type: call
call: "ga.get-report"
with:
segment: "{{segment}}"
date_range: "{{date_range}}"
- name: refresh-dashboard
type: call
call: "lookerstudio.refresh-datasource"
with:
datasource_id: "subscriber_health"
consumes:
- type: http
namespace: salesforce
baseUri: "https://gannett.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: query
path: "/query"
operations:
- name: query-subscribers
method: GET
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: get-report
method: POST
- type: http
namespace: lookerstudio
baseUri: "https://datastudio.googleapis.com/v1"
authentication:
type: bearer
token: "$secrets.google_datastudio_token"
resources:
- name: datasources
path: "/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-datasource
method: POST
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.usa-today.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a Salesforce account by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account by account ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: get-salesforce
description: "Retrieves a Salesforce account by account ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The salesforce account viewer identifier."
call: "sales-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sales-api
baseUri: "https://api.usa-today.com/sales/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
Retrieves a Salesforce advertiser account by ID, returning account name, contract status, and revenue.
naftiko: "0.5"
info:
label: "Salesforce Advertiser Account Lookup"
description: "Retrieves a Salesforce advertiser account by ID, returning account name, contract status, and revenue."
tags:
- advertising
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: ad-sales
port: 8080
tools:
- name: get-advertiser-account
description: "Fetch Salesforce advertiser account details."
inputParameters:
- name: account_id
in: body
type: string
description: "Salesforce account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: contract_status
type: string
mapping: "$.Contract_Status__c"
- name: annual_revenue
type: string
mapping: "$.AnnualRevenue"
consumes:
- type: http
namespace: salesforce
baseUri: "https://gannett.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.usa-today.com/it/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Retrieves a ServiceNow incident by number.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number."
tags:
- it-ops
- servicenow
capability:
exposes:
- type: mcp
namespace: it-service
port: 8080
tools:
- name: get-incident
description: "Fetch a ServiceNow incident."
inputParameters:
- name: incident_number
in: body
type: string
description: "Incident number."
call: "servicenow.get-incident"
with:
number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
consumes:
- type: http
namespace: servicenow
baseUri: "https://gannett.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{number}}"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
Uploads a document to SharePoint.
naftiko: "0.5"
info:
label: "SharePoint Document Upload"
description: "Uploads a document to SharePoint."
tags:
- documents
- sharepoint
capability:
exposes:
- type: mcp
namespace: document-mgmt
port: 8080
tools:
- name: upload-document
description: "Upload a file to SharePoint."
inputParameters:
- name: site_id
in: body
type: string
description: "SharePoint site ID."
- name: folder_path
in: body
type: string
description: "Folder path."
- name: file_name
in: body
type: string
description: "File name."
call: "sharepoint.upload-file"
with:
site_id: "{{site_id}}"
folder_path: "{{folder_path}}"
file_name: "{{file_name}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
Retrieves a document from SharePoint.
naftiko: "0.5"
info:
label: "SharePoint Document Viewer"
description: "Retrieves a document from SharePoint."
tags:
- collaboration
- sharepoint
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-sharepoint
description: "Retrieves a document from SharePoint."
inputParameters:
- name: entity_id
in: body
type: string
description: "The sharepoint document viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.usa-today.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: sharepoint
path: "/sharepoint/document/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-sharepoint
method: GET
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.usa-today.com/communications/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.usa-today.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Retrieves subscriber acquisition metrics.
naftiko: "0.5"
info:
label: "Subscriber Acquisition Report"
description: "Retrieves subscriber acquisition metrics."
tags:
- subscriptions
- analytics
capability:
exposes:
- type: mcp
namespace: subscriptions
port: 8080
tools:
- name: get-subscriber
description: "Retrieves subscriber acquisition metrics."
inputParameters:
- name: entity_id
in: body
type: string
description: "The subscriber acquisition report identifier."
call: "subscriptions-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: subscriptions-api
baseUri: "https://api.usa-today.com/subscriptions/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: subscriber
path: "/subscriber/acquisition/report/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-subscriber
method: GET
Identifies at-risk subscribers in Salesforce, sends targeted retention campaigns via MailChimp, creates retention offers in the subscription platform, and logs results in Google Sheets.
naftiko: "0.5"
info:
label: "Subscriber Churn Prevention Orchestrator"
description: "Identifies at-risk subscribers in Salesforce, sends targeted retention campaigns via MailChimp, creates retention offers in the subscription platform, and logs results in Google Sheets."
tags:
- subscriptions
- retention
- salesforce
- mailchimp
- google-sheets
capability:
exposes:
- type: mcp
namespace: retention-ops
port: 8080
tools:
- name: run-churn-prevention
description: "Identify at-risk subscribers and trigger retention campaigns."
inputParameters:
- name: risk_threshold
in: body
type: number
description: "Churn risk score threshold (0-100)."
steps:
- name: get-at-risk
type: call
call: "salesforce.query-subscribers"
with:
query: "SELECT Id, Email, Churn_Score__c FROM Contact WHERE Churn_Score__c > {{risk_threshold}}"
- name: send-retention
type: call
call: "mailchimp.send-campaign"
with:
list_id: "at_risk_subscribers"
subject: "We miss you! Special offer inside"
template: "retention_offer"
- name: log-results
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "retention_campaigns"
row:
threshold: "{{risk_threshold}}"
contacts_targeted: "{{get-at-risk.totalSize}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://gannett.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: query
path: "/query"
operations:
- name: query-subscribers
method: GET
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
When a subscriber upgrades their plan, updates the record in Salesforce, processes payment via Mastercard, and sends a welcome email via MailChimp.
naftiko: "0.5"
info:
label: "Subscription Management Orchestrator"
description: "When a subscriber upgrades their plan, updates the record in Salesforce, processes payment via Mastercard, and sends a welcome email via MailChimp."
tags:
- subscriptions
- salesforce
- mastercard
- mailchimp
capability:
exposes:
- type: mcp
namespace: subscription-ops
port: 8080
tools:
- name: upgrade-subscription
description: "Process subscription upgrade across Salesforce, payment, and email."
inputParameters:
- name: contact_id
in: body
type: string
description: "Salesforce contact ID."
- name: new_plan
in: body
type: string
description: "New subscription plan name."
steps:
- name: get-contact
type: call
call: "salesforce.get-contact"
with:
contact_id: "{{contact_id}}"
- name: update-subscription
type: call
call: "salesforce.update-contact"
with:
contact_id: "{{contact_id}}"
subscription_plan: "{{new_plan}}"
- name: process-payment
type: call
call: "mastercard.create-payment"
with:
customer_id: "{{contact_id}}"
plan: "{{new_plan}}"
- name: send-welcome
type: call
call: "mailchimp.send-transactional"
with:
email: "{{get-contact.Email}}"
template: "subscription_upgrade"
merge_vars:
first_name: "{{get-contact.FirstName}}"
plan: "{{new_plan}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://gannett.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- name: update-contact
method: PATCH
- type: http
namespace: mastercard
baseUri: "https://api.mastercard.com/payments/v1"
authentication:
type: bearer
token: "$secrets.mastercard_token"
resources:
- name: payments
path: "/payments"
operations:
- name: create-payment
method: POST
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: bearer
token: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves content syndication partner delivery status.
naftiko: "0.5"
info:
label: "Syndication Partner Status"
description: "Retrieves content syndication partner delivery status."
tags:
- distribution
- partnerships
capability:
exposes:
- type: mcp
namespace: distribution
port: 8080
tools:
- name: get-syndication
description: "Retrieves content syndication partner delivery status."
inputParameters:
- name: entity_id
in: body
type: string
description: "The syndication partner status identifier."
call: "distribution-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: distribution-api
baseUri: "https://api.usa-today.com/distribution/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: syndication
path: "/syndication/partner/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-syndication
method: GET
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Fetches recent Twitter mentions and logs results to Google Sheets.
naftiko: "0.5"
info:
label: "Twitter Brand Mention Tracker"
description: "Fetches recent Twitter mentions and logs results to Google Sheets."
tags:
- social-media
- twitter
- google-sheets
capability:
exposes:
- type: mcp
namespace: social-listening
port: 8080
tools:
- name: track-brand-mentions
description: "Search Twitter mentions and log to Sheets."
inputParameters:
- name: query
in: body
type: string
description: "Search query."
- name: since_date
in: body
type: string
description: "Start date YYYY-MM-DD."
steps:
- name: search-tweets
type: call
call: "twitter.search-recent"
with:
query: "{{query}}"
start_time: "{{since_date}}T00:00:00Z"
- name: log-results
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "usa_today_social"
row:
query: "{{query}}"
count: "{{search-tweets.meta.result_count}}"
consumes:
- type: http
namespace: twitter
baseUri: "https://api.twitter.com/2"
authentication:
type: bearer
token: "$secrets.twitter_bearer_token"
resources:
- name: tweets-search
path: "/tweets/search/recent"
operations:
- name: search-recent
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.usa-today.com/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.usa-today.com/v2"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a WordPress post by ID, returning title, status, date, and URL.
naftiko: "0.5"
info:
label: "WordPress Post Lookup"
description: "Retrieves a WordPress post by ID, returning title, status, date, and URL."
tags:
- publishing
- wordpress
capability:
exposes:
- type: mcp
namespace: cms-ops
port: 8080
tools:
- name: get-post
description: "Fetch a WordPress post by ID."
inputParameters:
- name: post_id
in: body
type: string
description: "WordPress post ID."
call: "wordpress.get-post"
with:
post_id: "{{post_id}}"
outputParameters:
- name: title
type: string
mapping: "$.title.rendered"
- name: status
type: string
mapping: "$.status"
- name: date
type: string
mapping: "$.date"
- name: link
type: string
mapping: "$.link"
consumes:
- type: http
namespace: wordpress
baseUri: "https://www.usatoday.com/wp-json/wp/v2"
authentication:
type: bearer
token: "$secrets.wordpress_token"
resources:
- name: posts
path: "/posts/{{post_id}}"
inputParameters:
- name: post_id
in: path
operations:
- name: get-post
method: GET
Retrieves employee details from Workday by worker ID.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Retrieves employee details from Workday by worker ID."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee-details
description: "Fetch Workday employee profile."
inputParameters:
- name: worker_id
in: body
type: string
description: "Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.worker.name.formatted"
- name: title
type: string
mapping: "$.worker.position.title"
- name: department
type: string
mapping: "$.worker.organization.name"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.usa-today.com/hr/v1"
authentication:
type: bearer
token: "$secrets.usa_today_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Retrieves YouTube channel analytics for USA Today's channel.
naftiko: "0.5"
info:
label: "YouTube Channel Analytics"
description: "Retrieves YouTube channel analytics for USA Today's channel."
tags:
- publishing
- video
- youtube
capability:
exposes:
- type: mcp
namespace: video-analytics
port: 8080
tools:
- name: get-channel-analytics
description: "Fetch YouTube channel analytics."
inputParameters:
- name: channel_id
in: body
type: string
description: "YouTube channel ID."
- name: start_date
in: body
type: string
description: "Start date."
- name: end_date
in: body
type: string
description: "End date."
call: "youtube.get-analytics"
with:
channel_id: "{{channel_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: views
type: number
mapping: "$.rows[0][0]"
- name: watch_time_minutes
type: number
mapping: "$.rows[0][1]"
consumes:
- type: http
namespace: youtube
baseUri: "https://youtubeanalytics.googleapis.com/v2"
authentication:
type: bearer
token: "$secrets.youtube_token"
resources:
- name: reports
path: "/reports"
operations:
- name: get-analytics
method: GET
Retrieves a Zendesk support ticket for subscriber service.
naftiko: "0.5"
info:
label: "Zendesk Support Ticket Lookup"
description: "Retrieves a Zendesk support ticket for subscriber service."
tags:
- customer-service
- subscriptions
- zendesk
capability:
exposes:
- type: mcp
namespace: subscriber-support
port: 8080
tools:
- name: get-ticket
description: "Fetch a Zendesk support ticket."
inputParameters:
- name: ticket_id
in: body
type: string
description: "Zendesk ticket ID."
call: "zendesk.get-ticket"
with:
ticket_id: "{{ticket_id}}"
outputParameters:
- name: status
type: string
mapping: "$.ticket.status"
- name: subject
type: string
mapping: "$.ticket.subject"
- name: priority
type: string
mapping: "$.ticket.priority"
consumes:
- type: http
namespace: zendesk
baseUri: "https://gannett.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets/{{ticket_id}}"
inputParameters:
- name: ticket_id
in: path
operations:
- name: get-ticket
method: GET
Creates a Zoom meeting and sends invitations via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Zoom Meeting Scheduler"
description: "Creates a Zoom meeting and sends invitations via Microsoft Outlook."
tags:
- communications
- zoom
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: meeting-management
port: 8080
tools:
- name: schedule-zoom-meeting
description: "Create a Zoom meeting and email invites."
inputParameters:
- name: topic
in: body
type: string
description: "Meeting topic."
- name: start_time
in: body
type: string
description: "ISO 8601 start time."
- name: attendees
in: body
type: string
description: "Comma-separated emails."
steps:
- name: create-meeting
type: call
call: "zoom.create-meeting"
with:
topic: "{{topic}}"
start_time: "{{start_time}}"
- name: send-invites
type: call
call: "outlook.send-mail"
with:
to: "{{attendees}}"
subject: "Zoom: {{topic}}"
body: "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: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Creates a Zoom webinar for live news events, promotes via MailChimp, posts on LinkedIn, and logs registrations in Google Sheets.
naftiko: "0.5"
info:
label: "Zoom Webinar Event Orchestrator"
description: "Creates a Zoom webinar for live news events, promotes via MailChimp, posts on LinkedIn, and logs registrations in Google Sheets."
tags:
- events
- publishing
- zoom
- mailchimp
- linkedin
- google-sheets
capability:
exposes:
- type: mcp
namespace: event-management
port: 8080
tools:
- name: create-live-event
description: "Set up a Zoom webinar with promotion and tracking."
inputParameters:
- name: topic
in: body
type: string
description: "Webinar topic."
- name: start_time
in: body
type: string
description: "Start time ISO 8601."
- name: duration
in: body
type: number
description: "Duration in minutes."
steps:
- name: create-webinar
type: call
call: "zoom.create-webinar"
with:
topic: "{{topic}}"
start_time: "{{start_time}}"
duration: "{{duration}}"
- name: send-promotion
type: call
call: "mailchimp.send-campaign"
with:
list_id: "usa_today_events"
subject: "Join Live: {{topic}}"
body: "Register: {{create-webinar.registration_url}}"
- name: post-linkedin
type: call
call: "linkedin.create-post"
with:
text: "Join our live event: {{topic}}. Register: {{create-webinar.registration_url}}"
- name: log-event
type: call
call: "gsheets.append-row"
with:
spreadsheet_id: "events_tracker"
row:
topic: "{{topic}}"
webinar_id: "{{create-webinar.id}}"
url: "{{create-webinar.registration_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: webinars
path: "/users/me/webinars"
operations:
- name: create-webinar
method: POST
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: posts
path: "/ugcPosts"
operations:
- name: create-post
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: rows
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-row
method: POST