Accenture Capabilities
Naftiko 0.5 capability definitions for Accenture - 100 capabilities showing integration workflows and service orchestrations.
Runs automated accessibility scans, collects WCAG violations, creates remediation tasks in Jira, generates audit report in Confluence, and notifies the UX team.
naftiko: "0.5"
info:
label: "Accessibility Audit Pipeline"
description: "Runs automated accessibility scans, collects WCAG violations, creates remediation tasks in Jira, generates audit report in Confluence, and notifies the UX team."
tags:
- accessibility
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: accessibility
port: 8080
tools:
- name: accessibility_audit_pipeline
description: "Orchestrate accessibility audit pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: run-scan
type: call
call: "axe.scan-urls"
with:
url_list: "{{resource_id}}"
- name: analyze-violations
type: call
call: "snowflake.run-query"
with:
sql_query: "CALL analyze_a11y('{{resource_id}}')"
warehouse: "QA_WH"
- name: create-tasks
type: call
call: "jira.create-issue"
with:
project: "A11Y"
summary: "WCAG violations: {{resource_id}}"
- name: notify
type: call
call: "slack.send-message"
with:
channel: "ux-team"
text: "Accessibility audit for {{resource_id}}: {{analyze-violations.violation_count}} issues"
consumes:
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Fetches an Adobe Analytics campaign performance report, uploads the summary to Google Sheets, and notifies the marketing team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Adobe Analytics Campaign Report and Distribution"
description: "Fetches an Adobe Analytics campaign performance report, uploads the summary to Google Sheets, and notifies the marketing team in Microsoft Teams."
tags:
- marketing
- analytics
- adobe-analytics
- google-sheets
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: marketing-adobe
port: 8080
tools:
- name: get-campaign-report-and-distribute
description: "Fetch an Adobe Analytics report, push to Google Sheets, and notify the team."
inputParameters:
- name: report_suite_id
in: body
type: string
description: "The Adobe Analytics report suite ID."
- name: start_date
in: body
type: string
description: "Report start date (YYYY-MM-DD)."
- name: end_date
in: body
type: string
description: "Report end date (YYYY-MM-DD)."
- name: spreadsheet_id
in: body
type: string
description: "The Google Sheets spreadsheet ID."
- name: teams_channel
in: body
type: string
description: "The Teams channel for campaign updates."
steps:
- name: get-report
type: call
call: "adobe.get-report"
with:
rsid: "{{report_suite_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: update-sheet
type: call
call: "googlesheets.update-values"
with:
spreadsheet_id: "{{spreadsheet_id}}"
range: "CampaignData!A1"
values: "{{get-report.rows}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Adobe Analytics Report ({{start_date}} - {{end_date}}): {{get-report.total_visits}} visits, {{get-report.total_conversions}} conversions. Spreadsheet updated: https://docs.google.com/spreadsheets/d/{{spreadsheet_id}}"
consumes:
- type: http
namespace: adobe
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: "/{{rsid}}/reports"
inputParameters:
- name: rsid
in: path
operations:
- name: get-report
method: POST
- type: http
namespace: googlesheets
baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/{{spreadsheet_id}}/values/{{range}}"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: update-values
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Collects agile maturity metrics from Jira, calculates team health in Snowflake, generates transformation reports, and notifies coaches.
naftiko: "0.5"
info:
label: "Agile Transformation Metrics Pipeline"
description: "Collects agile maturity metrics from Jira, calculates team health in Snowflake, generates transformation reports, and notifies coaches."
tags:
- agile
- transformation
- jira
- snowflake
capability:
exposes:
- type: mcp
namespace: agile
port: 8080
tools:
- name: agile_transformation_metrics_pipeline
description: "Orchestrate agile transformation metrics pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Runs API load tests, collects latency metrics from Datadog, compares against SLOs in Grafana, creates tickets for regressions, and publishes report.
naftiko: "0.5"
info:
label: "API Performance Benchmark Pipeline"
description: "Runs API load tests, collects latency metrics from Datadog, compares against SLOs in Grafana, creates tickets for regressions, and publishes report."
tags:
- performance
- datadog
- grafana
- jira
- confluence
capability:
exposes:
- type: mcp
namespace: performance
port: 8080
tools:
- name: api_performance_benchmark_pipeline
description: "Orchestrate api performance benchmark pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: run-load-test
type: call
call: "k6.run-test"
with:
test_id: "{{resource_id}}"
- name: get-metrics
type: call
call: "datadog.get-latency-metrics"
with:
service: "{{resource_id}}"
- name: check-slos
type: call
call: "grafana.get-slo-status"
with:
service: "{{resource_id}}"
- name: create-report
type: call
call: "confluence.create-page"
with:
space: "PERF"
title: "Benchmark: {{resource_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: grafana
baseUri: "https://accenture-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
Retrieves the status of an Appian process instance by ID. Used by low-code consultants to monitor automated workflows built for clients.
naftiko: "0.5"
info:
label: "Appian Process Automation Status"
description: "Retrieves the status of an Appian process instance by ID. Used by low-code consultants to monitor automated workflows built for clients."
tags:
- automation
- low-code
- appian
capability:
exposes:
- type: mcp
namespace: automation-bpm
port: 8080
tools:
- name: get-process-status
description: "Look up an Appian process instance by ID and return its status."
inputParameters:
- name: process_id
in: body
type: string
description: "The Appian process instance ID."
call: "appian.get-process"
with:
process_id: "{{process_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: started_by
type: string
mapping: "$.startedBy"
- name: start_time
type: string
mapping: "$.startTime"
consumes:
- type: http
namespace: appian
baseUri: "https://accenture.appiancloud.com/suite/webapi"
authentication:
type: bearer
token: "$secrets.appian_token"
resources:
- name: processes
path: "/process-instances/{{process_id}}"
inputParameters:
- name: process_id
in: path
operations:
- name: get-process
method: GET
Invokes an AWS Lambda function with a JSON payload. Used by cloud consultants to trigger serverless workloads for client applications.
naftiko: "0.5"
info:
label: "AWS Lambda Function Invocation"
description: "Invokes an AWS Lambda function with a JSON payload. Used by cloud consultants to trigger serverless workloads for client applications."
tags:
- cloud
- serverless
- aws-lambda
capability:
exposes:
- type: mcp
namespace: cloud-serverless
port: 8080
tools:
- name: invoke-lambda
description: "Invoke an AWS Lambda function by name with a JSON payload."
inputParameters:
- name: function_name
in: body
type: string
description: "The Lambda function name or ARN."
- name: payload
in: body
type: string
description: "The JSON payload to send to the function."
call: "lambda.invoke"
with:
function_name: "{{function_name}}"
payload: "{{payload}}"
consumes:
- type: http
namespace: lambda
baseUri: "https://lambda.us-east-1.amazonaws.com/2015-03-31"
authentication:
type: aws-sigv4
access_key: "$secrets.aws_access_key"
secret_key: "$secrets.aws_secret_key"
resources:
- name: functions
path: "/functions/{{function_name}}/invocations"
inputParameters:
- name: function_name
in: path
operations:
- name: invoke
method: POST
Creates a new user in Azure Active Directory, assigns licenses, and adds to the appropriate security group. Used for client identity management engagements.
naftiko: "0.5"
info:
label: "Azure Active Directory User Provisioning"
description: "Creates a new user in Azure Active Directory, assigns licenses, and adds to the appropriate security group. Used for client identity management engagements."
tags:
- identity
- provisioning
- azure-active-directory
capability:
exposes:
- type: mcp
namespace: identity-provisioning
port: 8080
tools:
- name: provision-aad-user
description: "Create an Azure AD user, assign a license, and add to a security group."
inputParameters:
- name: display_name
in: body
type: string
description: "The user display name."
- name: user_principal_name
in: body
type: string
description: "The user principal name (UPN)."
- name: department
in: body
type: string
description: "The user's department."
- name: license_sku
in: body
type: string
description: "The license SKU to assign."
- name: group_id
in: body
type: string
description: "The security group ID to add the user to."
steps:
- name: create-user
type: call
call: "aad.create-user"
with:
displayName: "{{display_name}}"
userPrincipalName: "{{user_principal_name}}"
department: "{{department}}"
accountEnabled: true
- name: assign-license
type: call
call: "aad.assign-license"
with:
user_id: "{{create-user.id}}"
sku_id: "{{license_sku}}"
- name: add-to-group
type: call
call: "aad.add-group-member"
with:
group_id: "{{group_id}}"
member_id: "{{create-user.id}}"
consumes:
- type: http
namespace: aad
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- name: license-assignment
path: "/users/{{user_id}}/assignLicense"
inputParameters:
- name: user_id
in: path
operations:
- name: assign-license
method: POST
- name: group-members
path: "/groups/{{group_id}}/members/$ref"
inputParameters:
- name: group_id
in: path
operations:
- name: add-group-member
method: POST
Triggers an Azure Data Factory pipeline run, logs the run in ServiceNow, and notifies the data engineering team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Azure Data Factory Pipeline Trigger and Monitor"
description: "Triggers an Azure Data Factory pipeline run, logs the run in ServiceNow, and notifies the data engineering team in Microsoft Teams."
tags:
- data
- etl
- azure-data-factory
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: data-adf
port: 8080
tools:
- name: trigger-adf-pipeline-and-monitor
description: "Trigger an ADF pipeline, log in ServiceNow, and notify the data team."
inputParameters:
- name: subscription_id
in: body
type: string
description: "The Azure subscription ID."
- name: resource_group
in: body
type: string
description: "The Azure resource group."
- name: factory_name
in: body
type: string
description: "The ADF factory name."
- name: pipeline_name
in: body
type: string
description: "The pipeline name to trigger."
- name: teams_channel
in: body
type: string
description: "The Teams channel for data engineering."
steps:
- name: trigger-pipeline
type: call
call: "adf.create-pipeline-run"
with:
subscription_id: "{{subscription_id}}"
resource_group: "{{resource_group}}"
factory_name: "{{factory_name}}"
pipeline_name: "{{pipeline_name}}"
- name: log-run
type: call
call: "servicenow.create-task"
with:
short_description: "ADF pipeline run: {{pipeline_name}}"
description: "Factory: {{factory_name}}. Pipeline: {{pipeline_name}}. Run ID: {{trigger-pipeline.run_id}}."
assigned_group: "Data_Engineering"
category: "etl_monitoring"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "ADF Pipeline Triggered: {{pipeline_name}} in {{factory_name}}. Run ID: {{trigger-pipeline.run_id}}. ServiceNow: {{log-run.number}}."
consumes:
- type: http
namespace: adf
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: pipeline-runs
path: "/subscriptions/{{subscription_id}}/resourceGroups/{{resource_group}}/providers/Microsoft.DataFactory/factories/{{factory_name}}/pipelines/{{pipeline_name}}/createRun?api-version=2018-06-01"
inputParameters:
- name: subscription_id
in: path
- name: resource_group
in: path
- name: factory_name
in: path
- name: pipeline_name
in: path
operations:
- name: create-pipeline-run
method: POST
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
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: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Fetches the latest build run status from an Azure DevOps pipeline. Used by DevOps consultants to monitor client CI/CD pipelines.
naftiko: "0.5"
info:
label: "Azure DevOps Pipeline Status"
description: "Fetches the latest build run status from an Azure DevOps pipeline. Used by DevOps consultants to monitor client CI/CD pipelines."
tags:
- devops
- cicd
- azure-devops
capability:
exposes:
- type: mcp
namespace: devops-cicd
port: 8080
tools:
- name: get-pipeline-status
description: "Look up the latest run of an Azure DevOps pipeline by project and pipeline ID."
inputParameters:
- name: project
in: body
type: string
description: "The Azure DevOps project name."
- name: pipeline_id
in: body
type: string
description: "The pipeline definition ID."
call: "azuredevops.get-pipeline-run"
with:
project: "{{project}}"
pipeline_id: "{{pipeline_id}}"
outputParameters:
- name: status
type: string
mapping: "$.state"
- name: result
type: string
mapping: "$.result"
- name: started
type: string
mapping: "$.createdDate"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/accenture"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: pipeline-runs
path: "/{{project}}/_apis/pipelines/{{pipeline_id}}/runs?$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: pipeline_id
in: path
operations:
- name: get-pipeline-run
method: GET
Retrieves work item details from Azure DevOps for Accenture project management.
naftiko: "0.5"
info:
label: "Azure DevOps Work Item Lookup"
description: "Retrieves work item details from Azure DevOps for Accenture project management."
tags:
- project-management
- azure-devops
- work-items
capability:
exposes:
- type: mcp
namespace: project-mgmt
port: 8080
tools:
- name: get-work-item
description: "Look up work item by ID."
inputParameters:
- name: work_item_id
in: body
type: string
description: "The work_item_id to look up."
call: "azure-devops.get-work_item_id"
with:
work_item_id: "{{work_item_id}}"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/accenture/_apis"
authentication:
type: bearer
token: "$secrets.azuredevops_pat"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: azure_devops_work_item_lookup
method: GET
Fetches metadata and download URL for a Box file by ID. Used by consultants to access shared client deliverables.
naftiko: "0.5"
info:
label: "Box Document Retrieval"
description: "Fetches metadata and download URL for a Box file by ID. Used by consultants to access shared client deliverables."
tags:
- content-management
- collaboration
- box
capability:
exposes:
- type: mcp
namespace: content-docs
port: 8080
tools:
- name: get-box-file
description: "Retrieve a Box file's metadata and download link by file ID."
inputParameters:
- name: file_id
in: body
type: string
description: "The Box file ID."
call: "box.get-file"
with:
file_id: "{{file_id}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: size
type: string
mapping: "$.size"
- name: download_url
type: string
mapping: "$.shared_link.download_url"
consumes:
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files/{{file_id}}"
inputParameters:
- name: file_id
in: path
operations:
- name: get-file
method: GET
On a protected-branch pipeline failure in Azure DevOps, creates a Datadog event, opens a Jira bug, and alerts the engineering channel in Microsoft Teams.
naftiko: "0.5"
info:
label: "CI/CD Failure Observability Chain"
description: "On a protected-branch pipeline failure in Azure DevOps, creates a Datadog event, opens a Jira bug, and alerts the engineering channel in Microsoft Teams."
tags:
- devops
- observability
- azure-devops
- datadog
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: devops-observability
port: 8080
tools:
- name: handle-pipeline-failure
description: "Given a pipeline failure event, create a Datadog event, open a Jira bug, and alert Slack with full context."
inputParameters:
- name: pipeline_id
in: body
type: string
- name: project
in: body
type: string
- name: ref
in: body
type: string
- name: failed_job_name
in: body
type: string
- name: log_url
in: body
type: string
- name: commit_sha
in: body
type: string
steps:
- name: create-event
type: call
call: "datadog.create-event"
with:
title: "Pipeline failure: {{project}} / {{ref}}"
text: "Job {{failed_job_name}} failed on commit {{commit_sha}}. Log: {{log_url}}"
alert_type: "error"
tags: "project:{{project}},ref:{{ref}}"
- name: create-bug
type: call
call: "jira.create-issue"
with:
project_key: "ENG"
issuetype: "Bug"
summary: "[CI Failure] {{project}} / {{ref}} — {{failed_job_name}}"
description: "Pipeline: {{pipeline_id}}\nBranch: {{ref}}\nCommit: {{commit_sha}}\nLog: {{log_url}}\nDatadog event: {{create-event.id}}"
- name: post-alert
type: call
call: "msteams.send-message"
with:
channel: "engineering-alerts"
text: "Pipeline Failure: {{project}} | Branch: {{ref}} | Job: {{failed_job_name}} | Jira: {{create-bug.key}} | Log: {{log_url}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
header: "DD-API-KEY"
key: "$secrets.datadog_api_key"
resources:
- name: events
path: "/events"
operations:
- name: create-event
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Plans data migration, executes extraction, validates in Snowflake, loads to target system, and notifies migration team.
naftiko: "0.5"
info:
label: "Client Data Migration Orchestrator"
description: "Plans data migration, executes extraction, validates in Snowflake, loads to target system, and notifies migration team."
tags:
- migration
- data
- snowflake
- servicenow
capability:
exposes:
- type: mcp
namespace: migration
port: 8080
tools:
- name: client_data_migration_orchestrator
description: "Orchestrate client data migration orchestrator workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Collects project metrics from Jira, client satisfaction from Salesforce, cost actuals from SAP, generates health scorecard in Power BI, and escalates risks.
naftiko: "0.5"
info:
label: "Client Delivery Health Check"
description: "Collects project metrics from Jira, client satisfaction from Salesforce, cost actuals from SAP, generates health scorecard in Power BI, and escalates risks."
tags:
- delivery
- jira
- salesforce
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: delivery
port: 8080
tools:
- name: client_delivery_health_check
description: "Orchestrate client delivery health check workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-metrics
type: call
call: "jira.get-project-metrics"
with:
project_key: "{{resource_id}}"
- name: get-satisfaction
type: call
call: "salesforce.get-csat"
with:
project_id: "{{resource_id}}"
- name: refresh-scorecard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "delivery_health"
- name: notify
type: call
call: "msteams.send-message"
with:
channel: "delivery-mgmt"
text: "Health check for {{resource_id}}: Velocity {{get-metrics.velocity}}, CSAT {{get-satisfaction.score}}"
consumes:
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: powerbi-op
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: msteams-op
method: POST
Pulls Jira sprint metrics, Confluence status page data, and Datadog SLO compliance for a client engagement, then posts a consolidated health summary to Microsoft Teams.
naftiko: "0.5"
info:
label: "Client Delivery Health Dashboard Sync"
description: "Pulls Jira sprint metrics, Confluence status page data, and Datadog SLO compliance for a client engagement, then posts a consolidated health summary to Microsoft Teams."
tags:
- delivery
- reporting
- jira
- confluence
- datadog
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: delivery-health
port: 8080
tools:
- name: generate-delivery-health-report
description: "Given a Jira board ID, Confluence page ID, and Datadog SLO ID, compile a delivery health report and post it to Teams."
inputParameters:
- name: jira_board_id
in: body
type: string
description: "The Jira board ID for the engagement."
- name: confluence_page_id
in: body
type: string
description: "The Confluence status page ID."
- name: datadog_slo_id
in: body
type: string
description: "The Datadog SLO ID for the engagement."
- name: teams_channel
in: body
type: string
description: "The Microsoft Teams channel for delivery updates."
steps:
- name: get-sprint
type: call
call: "jira.get-board-sprint"
with:
board_id: "{{jira_board_id}}"
- name: get-status-page
type: call
call: "confluence.get-page"
with:
page_id: "{{confluence_page_id}}"
- name: get-slo
type: call
call: "datadog.get-slo"
with:
slo_id: "{{datadog_slo_id}}"
- name: post-summary
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Delivery Health Report:\n- Sprint: {{get-sprint.name}} | Velocity: {{get-sprint.completed_points}}/{{get-sprint.total_points}}\n- Status: {{get-status-page.status}}\n- SLO Compliance: {{get-slo.overall_status}} ({{get-slo.sli_value}}%)"
consumes:
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: sprints
path: "/board/{{board_id}}/sprint?state=active"
inputParameters:
- name: board_id
in: path
operations:
- name: get-board-sprint
method: GET
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
header: "DD-API-KEY"
key: "$secrets.datadog_api_key"
resources:
- name: slos
path: "/slo/{{slo_id}}"
inputParameters:
- name: slo_id
in: path
operations:
- name: get-slo
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
When a new Salesforce opportunity reaches Closed Won, creates a Jira project board, provisions a Confluence space, opens a Microsoft Planner plan, and notifies the delivery lead in Microsoft Teams.
naftiko: "0.5"
info:
label: "Client Engagement Kickoff Pipeline"
description: "When a new Salesforce opportunity reaches Closed Won, creates a Jira project board, provisions a Confluence space, opens a Microsoft Planner plan, and notifies the delivery lead in Microsoft Teams."
tags:
- delivery
- project-management
- salesforce
- jira
- confluence
- microsoft-planner
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: delivery-kickoff
port: 8080
tools:
- name: initiate-engagement-kickoff
description: "Given a Salesforce opportunity ID and delivery lead email, set up Jira, Confluence, and Planner for the new engagement."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The Salesforce opportunity record ID."
- name: delivery_lead_upn
in: body
type: string
description: "The Microsoft UPN of the delivery lead."
- name: engagement_name
in: body
type: string
description: "The name of the client engagement."
steps:
- name: get-opportunity
type: call
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
- name: create-jira-project
type: call
call: "jira.create-project"
with:
key: "{{engagement_name}}"
name: "{{get-opportunity.account_name}} — {{engagement_name}}"
project_type: "software"
- name: create-confluence-space
type: call
call: "confluence.create-space"
with:
key: "{{engagement_name}}"
name: "{{get-opportunity.account_name}} — {{engagement_name}}"
- name: create-planner
type: call
call: "planner.create-plan"
with:
title: "{{engagement_name}} Delivery Plan"
owner: "{{delivery_lead_upn}}"
- name: notify-lead
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{delivery_lead_upn}}"
text: "Engagement Kickoff: {{engagement_name}} for {{get-opportunity.account_name}}. Jira: {{create-jira-project.url}} | Confluence: {{create-confluence-space.url}} | Planner: {{create-planner.url}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.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: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: projects
path: "/project"
operations:
- name: create-project
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_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: plans
path: "/plans"
operations:
- name: create-plan
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
Receives escalations from Salesforce, creates response teams, tracks resolution in ServiceNow, and notifies account leadership.
naftiko: "0.5"
info:
label: "Client Escalation Management Pipeline"
description: "Receives escalations from Salesforce, creates response teams, tracks resolution in ServiceNow, and notifies account leadership."
tags:
- client-management
- escalation
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: client-management
port: 8080
tools:
- name: client_escalation_management_pipeline
description: "Orchestrate client escalation management pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Pulls project hours from Microsoft Project, retrieves billing rates from SAP S/4HANA, generates an invoice line in Oracle Financials, and emails the client via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Client Invoice Generation Pipeline"
description: "Pulls project hours from Microsoft Project, retrieves billing rates from SAP S/4HANA, generates an invoice line in Oracle Financials, and emails the client via Microsoft Outlook."
tags:
- finance
- billing
- microsoft-project
- sap-s4hana
- oracle
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: finance-billing
port: 8080
tools:
- name: generate-client-invoice
description: "Given a project code and billing period, pull hours, compute charges, create an Oracle invoice, and email the client."
inputParameters:
- name: project_code
in: body
type: string
description: "The project or engagement code."
- name: billing_period
in: body
type: string
description: "The billing period (e.g., 2026-03)."
- name: client_email
in: body
type: string
description: "The client finance contact email."
steps:
- name: get-project-hours
type: call
call: "msproject.get-timesheet"
with:
project_code: "{{project_code}}"
period: "{{billing_period}}"
- name: get-rates
type: call
call: "sap.get-billing-rates"
with:
project_code: "{{project_code}}"
- name: create-invoice
type: call
call: "oracle.create-invoice"
with:
project_code: "{{project_code}}"
period: "{{billing_period}}"
total_hours: "{{get-project-hours.total_hours}}"
rate: "{{get-rates.blended_rate}}"
amount: "{{get-project-hours.total_hours * get-rates.blended_rate}}"
- name: email-client
type: call
call: "outlook.send-mail"
with:
to: "{{client_email}}"
subject: "Invoice for {{project_code}} — {{billing_period}}"
body: "Please find attached invoice {{create-invoice.invoice_number}} for ${{create-invoice.total_amount}}. Payment due: {{create-invoice.due_date}}."
consumes:
- type: http
namespace: msproject
baseUri: "https://graph.microsoft.com/v1.0/sites/accenture.sharepoint.com/lists"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: timesheets
path: "/ProjectTimesheets/items?$filter=ProjectCode eq '{{project_code}}' and Period eq '{{period}}'"
inputParameters:
- name: project_code
in: query
- name: period
in: query
operations:
- name: get-timesheet
method: GET
- type: http
namespace: sap
baseUri: "https://accenture-s4.sap.com/sap/opu/odata/sap/API_BILLING_DOCUMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: billing-rates
path: "/A_BillingRate?$filter=ProjectCode eq '{{project_code}}'"
inputParameters:
- name: project_code
in: query
operations:
- name: get-billing-rates
method: GET
- type: http
namespace: oracle
baseUri: "https://accenture.oraclecloud.com/fscmRestApi/resources/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: invoices
path: "/receivablesInvoices"
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
Triggers NPS survey via Qualtrics, collects responses, analyzes in Snowflake, updates Salesforce account health, and notifies account leads.
naftiko: "0.5"
info:
label: "Client NPS Survey Pipeline"
description: "Triggers NPS survey via Qualtrics, collects responses, analyzes in Snowflake, updates Salesforce account health, and notifies account leads."
tags:
- client-experience
- salesforce
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: client-experience
port: 8080
tools:
- name: client_nps_survey_pipeline
description: "Orchestrate client nps survey pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: trigger-survey
type: call
call: "qualtrics.distribute-survey"
with:
survey_id: "nps_{{resource_id}}"
- name: analyze-responses
type: call
call: "snowflake.run-query"
with:
sql_query: "CALL analyze_nps('{{resource_id}}')"
warehouse: "CX_WH"
- name: update-salesforce
type: call
call: "salesforce.update-account-health"
with:
account_id: "{{resource_id}}"
nps: "{{analyze-responses.nps_score}}"
- name: notify
type: call
call: "slack.send-message"
with:
channel: "account-leads"
text: "NPS for {{resource_id}}: {{analyze-responses.nps_score}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
On new project in Salesforce, creates Jira project, provisions SharePoint site, sets up Teams channel, creates ServiceNow cost center, and notifies the delivery team.
naftiko: "0.5"
info:
label: "Client Project Kickoff Automation"
description: "On new project in Salesforce, creates Jira project, provisions SharePoint site, sets up Teams channel, creates ServiceNow cost center, and notifies the delivery team."
tags:
- delivery
- salesforce
- jira
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: delivery
port: 8080
tools:
- name: client_project_kickoff_automation
description: "Orchestrate client project kickoff automation workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-project
type: call
call: "salesforce.get-opportunity"
with:
opp_id: "{{resource_id}}"
- name: create-jira
type: call
call: "jira.create-project"
with:
name: "{{get-project.name}}"
key: "{{get-project.code}}"
- name: create-cost-center
type: call
call: "servicenow.create-record"
with:
table: "cost_centers"
project: "{{resource_id}}"
- name: notify
type: call
call: "msteams.send-message"
with:
channel: "delivery-ops"
text: "Project {{get-project.name}} kicked off. Jira: {{create-jira.key}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: msteams-op
method: POST
Creates a Google Forms survey for client feedback, distributes via MailChimp email campaign, and logs the campaign in Salesforce for account tracking.
naftiko: "0.5"
info:
label: "Client Satisfaction Survey Pipeline"
description: "Creates a Google Forms survey for client feedback, distributes via MailChimp email campaign, and logs the campaign in Salesforce for account tracking."
tags:
- client-experience
- survey
- google-forms
- mailchimp
- salesforce
capability:
exposes:
- type: mcp
namespace: cx-survey
port: 8080
tools:
- name: launch-satisfaction-survey
description: "Given a Salesforce opportunity ID and survey template, create a Google Form, send via MailChimp, and log in Salesforce."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The Salesforce opportunity ID."
- name: survey_title
in: body
type: string
description: "The survey title."
- name: recipient_list_id
in: body
type: string
description: "The MailChimp audience list ID."
steps:
- name: get-opportunity
type: call
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
- name: create-survey
type: call
call: "googleforms.create-form"
with:
title: "{{survey_title}} — {{get-opportunity.account_name}}"
- name: send-campaign
type: call
call: "mailchimp.create-campaign"
with:
list_id: "{{recipient_list_id}}"
subject: "We value your feedback: {{survey_title}}"
body: "Please take a moment to share your feedback: {{create-survey.responder_url}}"
- name: log-activity
type: call
call: "salesforce.create-task"
with:
opportunity_id: "{{opportunity_id}}"
subject: "Client satisfaction survey sent: {{survey_title}}"
description: "Survey URL: {{create-survey.responder_url}}. MailChimp campaign: {{send-campaign.campaign_id}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.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
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
- type: http
namespace: googleforms
baseUri: "https://forms.googleapis.com/v1"
authentication:
type: bearer
token: "$secrets.google_forms_token"
resources:
- name: forms
path: "/forms"
operations:
- name: create-form
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: create-campaign
method: POST
Scans cloud architecture against best practices, identifies anti-patterns in Snowflake, creates recommendations in Confluence, and notifies architects.
naftiko: "0.5"
info:
label: "Cloud Architecture Review Pipeline"
description: "Scans cloud architecture against best practices, identifies anti-patterns in Snowflake, creates recommendations in Confluence, and notifies architects."
tags:
- architecture
- cloud
- snowflake
- confluence
capability:
exposes:
- type: mcp
namespace: architecture
port: 8080
tools:
- name: cloud_architecture_review_pipeline
description: "Orchestrate cloud architecture review pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Queries AWS cost data, identifies top-spending services, cross-checks against Azure spend, and posts a cost optimization summary to Microsoft Teams for the FinOps team.
naftiko: "0.5"
info:
label: "Cloud Cost Optimization Alert"
description: "Queries AWS cost data, identifies top-spending services, cross-checks against Azure spend, and posts a cost optimization summary to Microsoft Teams for the FinOps team."
tags:
- finops
- cloud
- amazon-web-services
- microsoft-azure
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: finops-cost
port: 8080
tools:
- name: generate-cost-alert
description: "Given an AWS account ID and Azure subscription, compare cloud spend and post a summary to Teams."
inputParameters:
- name: aws_account_id
in: body
type: string
description: "The AWS account ID."
- name: azure_subscription_id
in: body
type: string
description: "The Azure subscription ID."
- name: period
in: body
type: string
description: "The cost reporting period (YYYY-MM)."
- name: teams_channel
in: body
type: string
description: "The Microsoft Teams channel for FinOps alerts."
steps:
- name: get-aws-costs
type: call
call: "aws.get-cost-and-usage"
with:
account_id: "{{aws_account_id}}"
period: "{{period}}"
- name: get-azure-costs
type: call
call: "azure.get-cost-management"
with:
subscription_id: "{{azure_subscription_id}}"
period: "{{period}}"
- name: post-summary
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Cloud Cost Report ({{period}}):\n- AWS Total: ${{get-aws-costs.total_cost}} | Top Service: {{get-aws-costs.top_service}} (${{get-aws-costs.top_service_cost}})\n- Azure Total: ${{get-azure-costs.total_cost}} | Top Service: {{get-azure-costs.top_service}} (${{get-azure-costs.top_service_cost}})\n- Combined: ${{get-aws-costs.total_cost + get-azure-costs.total_cost}}"
consumes:
- type: http
namespace: aws
baseUri: "https://ce.us-east-1.amazonaws.com"
authentication:
type: aws-sigv4
access_key: "$secrets.aws_access_key"
secret_key: "$secrets.aws_secret_key"
resources:
- name: cost-usage
path: "/"
operations:
- name: get-cost-and-usage
method: POST
- type: http
namespace: azure
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: cost-management
path: "/subscriptions/{{subscription_id}}/providers/Microsoft.CostManagement/query?api-version=2023-03-01"
inputParameters:
- name: subscription_id
in: path
operations:
- name: get-cost-management
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Scans on-prem infrastructure, assesses cloud readiness in Snowflake, generates migration plan in Confluence, creates tasks in Jira, and notifies the migration team.
naftiko: "0.5"
info:
label: "Cloud Migration Assessment Pipeline"
description: "Scans on-prem infrastructure, assesses cloud readiness in Snowflake, generates migration plan in Confluence, creates tasks in Jira, and notifies the migration team."
tags:
- cloud-migration
- snowflake
- confluence
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: cloud-migration
port: 8080
tools:
- name: cloud_migration_assessment_pipeline
description: "Orchestrate cloud migration assessment pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: scan-infra
type: call
call: "servicenow.get-cmdb-assets"
with:
filter: "{{resource_id}}"
- name: assess-readiness
type: call
call: "snowflake.run-query"
with:
sql_query: "CALL assess_cloud_readiness('{{resource_id}}')"
warehouse: "MIGRATION_WH"
- name: create-plan
type: call
call: "confluence.create-page"
with:
space: "MIGRATION"
title: "Migration plan: {{resource_id}}"
- name: create-tasks
type: call
call: "jira.create-issue"
with:
project: "MIG"
summary: "Migration: {{resource_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
Collects SonarQube metrics, tracks quality trends in Snowflake, creates improvement tasks in Jira, and notifies engineering leads.
naftiko: "0.5"
info:
label: "Code Quality Governance Pipeline"
description: "Collects SonarQube metrics, tracks quality trends in Snowflake, creates improvement tasks in Jira, and notifies engineering leads."
tags:
- quality
- sonarqube
- snowflake
- jira
capability:
exposes:
- type: mcp
namespace: quality
port: 8080
tools:
- name: code_quality_governance_pipeline
description: "Orchestrate code quality governance pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Retrieves a specific Confluence page by ID from Accenture knowledge base.
naftiko: "0.5"
info:
label: "Confluence Document Retrieval"
description: "Retrieves a specific Confluence page by ID from Accenture knowledge base."
tags:
- collaboration
- confluence
- documentation
capability:
exposes:
- type: mcp
namespace: knowledge
port: 8080
tools:
- name: get-page
description: "Retrieve Confluence page by ID."
inputParameters:
- name: page_id
in: body
type: string
description: "The page_id to look up."
call: "confluence.get-page_id"
with:
page_id: "{{page_id}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence_document_retrieval
method: GET
Searches Confluence for knowledge base articles, extracts the top result, and shares it with the requester via Microsoft Teams message.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Search and Share"
description: "Searches Confluence for knowledge base articles, extracts the top result, and shares it with the requester via Microsoft Teams message."
tags:
- knowledge-management
- documentation
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: km-search
port: 8080
tools:
- name: search-and-share-knowledge
description: "Search Confluence for articles matching a query and share the top result via Teams."
inputParameters:
- name: query
in: body
type: string
description: "The search query string."
- name: space_key
in: body
type: string
description: "Optional Confluence space key to narrow the search."
- name: requester_upn
in: body
type: string
description: "The Microsoft UPN of the person requesting information."
steps:
- name: search-articles
type: call
call: "confluence.search"
with:
cql: "text ~ '{{query}}' and space = '{{space_key}}'"
- name: share-result
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{requester_upn}}"
text: "Knowledge Base Result for '{{query}}': {{search-articles.results[0].title}} — {{search-articles.results[0].url}} ({{search-articles.total_size}} total results found)"
consumes:
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/search?cql={{cql}}"
inputParameters:
- name: cql
in: query
operations:
- name: search
method: GET
- 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
On new consultant creation in Workday, provisions a SharePoint project folder, creates a ServiceNow onboarding request, and sends a Microsoft Teams welcome message with first-day logistics.
naftiko: "0.5"
info:
label: "Consultant Onboarding Orchestrator"
description: "On new consultant creation in Workday, provisions a SharePoint project folder, creates a ServiceNow onboarding request, and sends a Microsoft Teams welcome message with first-day logistics."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-consultant-onboarding
description: "Given a Workday employee ID and project assignment, orchestrate the full onboarding sequence across ServiceNow, SharePoint, and Microsoft Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the new consultant."
- name: start_date
in: body
type: string
description: "The consultant start date in YYYY-MM-DD format."
- name: project_code
in: body
type: string
description: "The engagement or project code the consultant is joining."
steps:
- name: get-consultant
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Consultant onboarding: {{get-consultant.full_name}} — {{project_code}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
description: "Onboarding for {{get-consultant.full_name}} starting {{start_date}} on project {{project_code}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "engagement_sites"
folder_path: "Onboarding/{{get-consultant.full_name}}_{{project_code}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-consultant.work_email}}"
text: "Welcome to Accenture, {{get-consultant.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Project docs are at {{provision-folder.url}}. Your project code is {{project_code}}."
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://accenture.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
Aggregates timesheet data from Workday, calculates utilization in Snowflake, updates Power BI dashboards, and alerts managers about under-utilization.
naftiko: "0.5"
info:
label: "Consultant Utilization Tracker"
description: "Aggregates timesheet data from Workday, calculates utilization in Snowflake, updates Power BI dashboards, and alerts managers about under-utilization."
tags:
- workforce
- workday
- snowflake
- power-bi
- slack
capability:
exposes:
- type: mcp
namespace: workforce
port: 8080
tools:
- name: consultant_utilization_tracker
description: "Orchestrate consultant utilization tracker workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-timesheets
type: call
call: "workday.get-timesheets"
with:
period: "{{resource_id}}"
- name: calculate-util
type: call
call: "snowflake.run-query"
with:
sql_query: "CALL calc_utilization('{{resource_id}}')"
warehouse: "HR_WH"
- name: refresh-bi
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "consultant_utilization"
- name: notify
type: call
call: "slack.send-message"
with:
channel: "workforce-mgmt"
text: "Utilization report for {{resource_id}}: avg {{calculate-util.avg_util}}%"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/accenture"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: powerbi-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Checks contract deliverables against milestones in Jira, validates SLAs from ServiceNow, calculates penalties in Snowflake, and reports to account management.
naftiko: "0.5"
info:
label: "Contract Compliance Monitor"
description: "Checks contract deliverables against milestones in Jira, validates SLAs from ServiceNow, calculates penalties in Snowflake, and reports to account management."
tags:
- compliance
- jira
- servicenow
- snowflake
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: contract_compliance_monitor
description: "Orchestrate contract compliance monitor workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-milestones
type: call
call: "jira.get-project-milestones"
with:
project_key: "{{resource_id}}"
- name: check-slas
type: call
call: "servicenow.get-sla-status"
with:
contract_id: "{{resource_id}}"
- name: calculate-penalties
type: call
call: "snowflake.run-query"
with:
sql_query: "CALL calc_sla_penalties('{{resource_id}}')"
warehouse: "COMPLIANCE_WH"
- name: notify
type: call
call: "msteams.send-message"
with:
channel: "account-mgmt"
text: "SLA report for {{resource_id}}: {{check-slas.met_count}}/{{check-slas.total}} met"
consumes:
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: msteams-op
method: POST
Identifies cross-practice opportunities from Salesforce, matches expertise in Workday, creates collaboration proposals, and notifies practice leads.
naftiko: "0.5"
info:
label: "Cross-Practice Collaboration Pipeline"
description: "Identifies cross-practice opportunities from Salesforce, matches expertise in Workday, creates collaboration proposals, and notifies practice leads."
tags:
- collaboration
- cross-practice
- salesforce
- workday
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: cross_practice_collaboration_pipeline
description: "Orchestrate cross-practice collaboration pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Runs data quality rules in Snowflake, logs results in Grafana, creates alerts for violations in PagerDuty, and publishes scorecard to Confluence.
naftiko: "0.5"
info:
label: "Data Quality Monitoring Pipeline"
description: "Runs data quality rules in Snowflake, logs results in Grafana, creates alerts for violations in PagerDuty, and publishes scorecard to Confluence."
tags:
- data-quality
- snowflake
- grafana
- pagerduty
- confluence
capability:
exposes:
- type: mcp
namespace: data-quality
port: 8080
tools:
- name: data_quality_monitoring_pipeline
description: "Orchestrate data quality monitoring pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: run-dq-rules
type: call
call: "snowflake.run-query"
with:
sql_query: "CALL run_dq_checks('{{resource_id}}')"
warehouse: "DQ_WH"
- name: log-metrics
type: call
call: "grafana.push-metrics"
with:
dashboard_uid: "data-quality"
scores: "{{run-dq-rules.scores}}"
- name: create-alerts
type: call
call: "pagerduty.create-incident"
with:
title: "DQ violation: {{resource_id}}"
severity: "{{run-dq-rules.severity}}"
- name: update-scorecard
type: call
call: "confluence.update-page"
with:
page_id: "dq_scorecard"
content: "{{run-dq-rules.summary}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: grafana
baseUri: "https://accenture-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: pagerduty-op
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
Fetches a Databricks job run status, and if the run failed, creates a Jira bug and notifies the data engineering team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Databricks Job Failure Handler"
description: "Fetches a Databricks job run status, and if the run failed, creates a Jira bug and notifies the data engineering team in Microsoft Teams."
tags:
- data
- etl
- databricks
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: data-etl
port: 8080
tools:
- name: handle-databricks-job-result
description: "Check a Databricks job run status and create a Jira bug and Teams alert if it failed."
inputParameters:
- name: run_id
in: body
type: string
description: "The Databricks job run ID."
- name: jira_project_key
in: body
type: string
description: "The Jira project key for data issues."
- name: teams_channel
in: body
type: string
description: "The Teams channel for data engineering alerts."
steps:
- name: get-run
type: call
call: "databricks.get-run"
with:
run_id: "{{run_id}}"
- name: create-bug
type: call
call: "jira.create-issue"
with:
project_key: "{{jira_project_key}}"
issuetype: "Bug"
summary: "[Databricks] Job run {{run_id}} — {{get-run.state.result_state}}"
description: "Run ID: {{run_id}}\nState: {{get-run.state.life_cycle_state}}\nResult: {{get-run.state.result_state}}\nStart: {{get-run.start_time}}\nCluster: {{get-run.cluster_instance.cluster_id}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Databricks Job Alert: Run {{run_id}} — {{get-run.state.result_state}}. Jira: {{create-bug.key}}."
consumes:
- type: http
namespace: databricks
baseUri: "https://accenture.cloud.databricks.com/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: runs
path: "/jobs/runs/get?run_id={{run_id}}"
inputParameters:
- name: run_id
in: query
operations:
- name: get-run
method: GET
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Retrieves APM service health from Datadog for Accenture managed applications.
naftiko: "0.5"
info:
label: "Datadog APM Service Status"
description: "Retrieves APM service health from Datadog for Accenture managed applications."
tags:
- observability
- datadog
- apm
capability:
exposes:
- type: mcp
namespace: observability
port: 8080
tools:
- name: get-service-health
description: "Get service APM status."
inputParameters:
- name: service_name
in: body
type: string
description: "The service_name to look up."
call: "datadog.get-service_name"
with:
service_name: "{{service_name}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog_apm_service_status
method: GET
Fetches a Datadog monitor by ID and returns current status, last triggered time, and alert message. Used by operations consultants monitoring client infrastructure.
naftiko: "0.5"
info:
label: "Datadog Monitor Alert Lookup"
description: "Fetches a Datadog monitor by ID and returns current status, last triggered time, and alert message. Used by operations consultants monitoring client infrastructure."
tags:
- observability
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: observability-alerts
port: 8080
tools:
- name: get-monitor-status
description: "Look up a Datadog monitor by ID and return its current state."
inputParameters:
- name: monitor_id
in: body
type: string
description: "The Datadog monitor ID."
call: "datadog.get-monitor"
with:
monitor_id: "{{monitor_id}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: overall_state
type: string
mapping: "$.overall_state"
- name: message
type: string
mapping: "$.message"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
header: "DD-API-KEY"
key: "$secrets.datadog_api_key"
resources:
- name: monitors
path: "/monitor/{{monitor_id}}"
inputParameters:
- name: monitor_id
in: path
operations:
- name: get-monitor
method: GET
Collects CI/CD metrics from GitHub, incident data from PagerDuty, deployment frequency from Datadog, scores maturity, and generates report in Confluence.
naftiko: "0.5"
info:
label: "DevOps Maturity Assessment"
description: "Collects CI/CD metrics from GitHub, incident data from PagerDuty, deployment frequency from Datadog, scores maturity, and generates report in Confluence."
tags:
- devops
- github
- pagerduty
- datadog
- confluence
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: devops_maturity_assessment
description: "Orchestrate devops maturity assessment workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-cicd-metrics
type: call
call: "github.get-workflow-metrics"
with:
org: "{{resource_id}}"
- name: get-incidents
type: call
call: "pagerduty.get-analytics"
with:
service: "{{resource_id}}"
- name: get-deployments
type: call
call: "datadog.get-deployment-frequency"
with:
service: "{{resource_id}}"
- name: create-report
type: call
call: "confluence.create-page"
with:
space: "DEVOPS"
title: "Maturity: {{resource_id}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: github-op
method: POST
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: pagerduty-op
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
Searches audit logs in Elasticsearch for Accenture compliance reviews.
naftiko: "0.5"
info:
label: "Elasticsearch Audit Log Search"
description: "Searches audit logs in Elasticsearch for Accenture compliance reviews."
tags:
- compliance
- elasticsearch
- audit
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: search-audit-logs
description: "Search audit logs."
inputParameters:
- name: query
in: body
type: string
description: "The query to look up."
call: "elasticsearch.get-query"
with:
query: "{{query}}"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://accenture-es.com:9200"
authentication:
type: bearer
token: "$secrets.elasticsearch_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: elasticsearch_audit_log_search
method: GET
Monitors consultant certifications from Workday, identifies expirations, creates renewal tasks, and notifies learning team.
naftiko: "0.5"
info:
label: "Employee Certification Tracker"
description: "Monitors consultant certifications from Workday, identifies expirations, creates renewal tasks, and notifies learning team."
tags:
- learning
- certifications
- workday
- slack
capability:
exposes:
- type: mcp
namespace: learning
port: 8080
tools:
- name: employee_certification_tracker
description: "Orchestrate employee certification tracker workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Retrieves submitted expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for finance review when policy exceptions are detected.
naftiko: "0.5"
info:
label: "Expense Report Compliance Pipeline"
description: "Retrieves submitted expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for finance review when policy exceptions are detected."
tags:
- finance
- expense
- sap-concur
- workday
- servicenow
capability:
exposes:
- type: mcp
namespace: finance-expense
port: 8080
tools:
- name: review-expense-report
description: "Given a Concur expense report ID and employee ID, fetch the report, validate cost center against Workday, and flag policy violations to ServiceNow."
inputParameters:
- name: expense_report_id
in: body
type: string
description: "The SAP Concur expense report ID."
- name: employee_id
in: body
type: string
description: "The Workday employee ID of the expense submitter."
steps:
- name: get-expense-report
type: call
call: "concur.get-expense-report"
with:
report_id: "{{expense_report_id}}"
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: open-review-task
type: call
call: "servicenow.create-task"
with:
short_description: "Expense policy review: {{get-expense-report.report_name}} — {{get-employee.full_name}}"
description: "Report {{expense_report_id}} total: {{get-expense-report.total_amount}} {{get-expense-report.currency}}. Cost center: {{get-employee.cost_center}}. Submitted: {{get-expense-report.submit_date}}."
assigned_group: "Finance_Audit"
category: "expense_review"
consumes:
- type: http
namespace: concur
baseUri: "https://www.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-expense-report
method: GET
- type: http
namespace: 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://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
Exports a Figma design file, uploads assets to SharePoint, creates a Jira development task with design links, and notifies the dev team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Figma Design Handoff Orchestrator"
description: "Exports a Figma design file, uploads assets to SharePoint, creates a Jira development task with design links, and notifies the dev team in Microsoft Teams."
tags:
- design
- handoff
- figma
- sharepoint
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: design-handoff
port: 8080
tools:
- name: handoff-design-to-dev
description: "Given a Figma file key and Jira project, export designs, upload to SharePoint, create a dev task, and notify the team."
inputParameters:
- name: figma_file_key
in: body
type: string
description: "The Figma file key."
- name: jira_project_key
in: body
type: string
description: "The Jira project key for development tasks."
- name: sharepoint_site_id
in: body
type: string
description: "The SharePoint site ID for design assets."
- name: teams_channel
in: body
type: string
description: "The Microsoft Teams channel for design notifications."
steps:
- name: get-figma-file
type: call
call: "figma.get-file"
with:
file_key: "{{figma_file_key}}"
- name: upload-assets
type: call
call: "sharepoint.create-folder"
with:
site_id: "{{sharepoint_site_id}}"
folder_path: "DesignAssets/{{get-figma-file.name}}"
- name: create-dev-task
type: call
call: "jira.create-issue"
with:
project_key: "{{jira_project_key}}"
issuetype: "Story"
summary: "Implement design: {{get-figma-file.name}}"
description: "Figma file: https://www.figma.com/file/{{figma_file_key}}\nAssets: {{upload-assets.url}}\nLast modified: {{get-figma-file.last_modified}}"
- name: notify-dev-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Design Handoff: {{get-figma-file.name}} | Jira: {{create-dev-task.key}} | Figma: https://www.figma.com/file/{{figma_file_key}} | Assets: {{upload-assets.url}}"
consumes:
- type: http
namespace: figma
baseUri: "https://api.figma.com/v1"
authentication:
type: bearer
token: "$secrets.figma_token"
resources:
- name: files
path: "/files/{{file_key}}"
inputParameters:
- name: file_key
in: path
operations:
- name: get-file
method: GET
- 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: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Checks the status of a GitHub Actions workflow run for Accenture development projects.
naftiko: "0.5"
info:
label: "GitHub Actions Run Status"
description: "Checks the status of a GitHub Actions workflow run for Accenture development projects."
tags:
- devops
- github
- ci-cd
capability:
exposes:
- type: mcp
namespace: ci-cd
port: 8080
tools:
- name: get-run-status
description: "Get workflow run status."
inputParameters:
- name: run_id
in: body
type: string
description: "The run_id to look up."
call: "github.get-run_id"
with:
run_id: "{{run_id}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: github_actions_run_status
method: GET
When a GitHub pull request is approved, merges it, triggers an Azure DevOps release pipeline, and posts the deployment status to Microsoft Teams.
naftiko: "0.5"
info:
label: "GitHub Pull Request Merge and Deploy"
description: "When a GitHub pull request is approved, merges it, triggers an Azure DevOps release pipeline, and posts the deployment status to Microsoft Teams."
tags:
- devops
- cicd
- github
- azure-devops
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: devops-deploy
port: 8080
tools:
- name: merge-and-deploy
description: "Given a GitHub repo and PR number, merge the PR, trigger an Azure DevOps release, and notify the team in Microsoft Teams."
inputParameters:
- name: repo_owner
in: body
type: string
description: "The GitHub repository owner."
- name: repo_name
in: body
type: string
description: "The GitHub repository name."
- name: pr_number
in: body
type: string
description: "The pull request number."
- name: azdo_project
in: body
type: string
description: "The Azure DevOps project name."
- name: release_definition_id
in: body
type: string
description: "The Azure DevOps release definition ID."
steps:
- name: merge-pr
type: call
call: "github.merge-pr"
with:
owner: "{{repo_owner}}"
repo: "{{repo_name}}"
pull_number: "{{pr_number}}"
merge_method: "squash"
- name: trigger-release
type: call
call: "azuredevops.create-release"
with:
project: "{{azdo_project}}"
definition_id: "{{release_definition_id}}"
description: "Automated release from PR #{{pr_number}} merge"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "deployments"
text: "Deployment triggered: {{repo_owner}}/{{repo_name}} PR #{{pr_number}} merged. Release: {{trigger-release.id}} | Status: {{trigger-release.status}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: pull-requests
path: "/repos/{{owner}}/{{repo}}/pulls/{{pull_number}}/merge"
inputParameters:
- name: owner
in: path
- name: repo
in: path
- name: pull_number
in: path
operations:
- name: merge-pr
method: PUT
- type: http
namespace: azuredevops
baseUri: "https://vsrm.dev.azure.com/accenture"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: releases
path: "/{{project}}/_apis/release/releases?api-version=7.0"
inputParameters:
- name: project
in: path
operations:
- name: create-release
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Fetches a Google Analytics traffic summary for a given property and date range, logs the report in Salesforce as an activity, and notifies the marketing team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Google Analytics Traffic Report and Log"
description: "Fetches a Google Analytics traffic summary for a given property and date range, logs the report in Salesforce as an activity, and notifies the marketing team in Microsoft Teams."
tags:
- marketing
- analytics
- google-analytics
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: marketing-analytics
port: 8080
tools:
- name: get-traffic-summary-and-log
description: "Fetch a Google Analytics traffic summary, log in Salesforce, and notify Teams."
inputParameters:
- name: property_id
in: body
type: string
description: "The Google Analytics property ID."
- name: start_date
in: body
type: string
description: "Report start date (YYYY-MM-DD)."
- name: end_date
in: body
type: string
description: "Report end date (YYYY-MM-DD)."
- name: salesforce_account_id
in: body
type: string
description: "The Salesforce account ID for the client."
- name: teams_channel
in: body
type: string
description: "The Teams channel for marketing reports."
steps:
- name: run-report
type: call
call: "googleanalytics.run-report"
with:
property_id: "{{property_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: log-in-salesforce
type: call
call: "salesforce.create-task"
with:
account_id: "{{salesforce_account_id}}"
subject: "GA Traffic Report: {{start_date}} to {{end_date}}"
description: "Sessions: {{run-report.total_sessions}}. Users: {{run-report.total_users}}. Bounce Rate: {{run-report.bounce_rate}}%."
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "GA Report ({{start_date}} - {{end_date}}): Sessions: {{run-report.total_sessions}} | Users: {{run-report.total_users}} | Bounce Rate: {{run-report.bounce_rate}}%"
consumes:
- type: http
namespace: googleanalytics
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: run-report
method: POST
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Shares a Google Drive document with specified recipients. Used by consultants to share deliverables with client stakeholders in Google Workspace environments.
naftiko: "0.5"
info:
label: "Google Drive Document Sharing"
description: "Shares a Google Drive document with specified recipients. Used by consultants to share deliverables with client stakeholders in Google Workspace environments."
tags:
- collaboration
- content-management
- google-drive
capability:
exposes:
- type: mcp
namespace: collab-sharing
port: 8080
tools:
- name: share-document
description: "Share a Google Drive file with a list of email recipients."
inputParameters:
- name: file_id
in: body
type: string
description: "The Google Drive file ID."
- name: email
in: body
type: string
description: "The recipient email address."
- name: role
in: body
type: string
description: "The permission role (reader, writer, commenter)."
call: "googledrive.create-permission"
with:
file_id: "{{file_id}}"
email: "{{email}}"
role: "{{role}}"
consumes:
- type: http
namespace: googledrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: permissions
path: "/files/{{file_id}}/permissions"
inputParameters:
- name: file_id
in: path
operations:
- name: create-permission
method: POST
Creates a Grafana dashboard snapshot for sharing with client stakeholders. Used by SRE consultants to produce point-in-time observability views.
naftiko: "0.5"
info:
label: "Grafana Dashboard Snapshot"
description: "Creates a Grafana dashboard snapshot for sharing with client stakeholders. Used by SRE consultants to produce point-in-time observability views."
tags:
- observability
- monitoring
- grafana
capability:
exposes:
- type: mcp
namespace: observability-dashboards
port: 8080
tools:
- name: create-dashboard-snapshot
description: "Create a Grafana dashboard snapshot by dashboard UID."
inputParameters:
- name: dashboard_uid
in: body
type: string
description: "The Grafana dashboard UID."
- name: expires_seconds
in: body
type: number
description: "Snapshot expiry in seconds."
call: "grafana.create-snapshot"
with:
dashboard_uid: "{{dashboard_uid}}"
expires: "{{expires_seconds}}"
consumes:
- type: http
namespace: grafana
baseUri: "https://accenture.grafana.net/api"
authentication:
type: bearer
token: "$secrets.grafana_token"
resources:
- name: snapshots
path: "/snapshots"
operations:
- name: create-snapshot
method: POST
Queries specific panel data from Grafana dashboards at Accenture.
naftiko: "0.5"
info:
label: "Grafana Panel Data Query"
description: "Queries specific panel data from Grafana dashboards at Accenture."
tags:
- monitoring
- grafana
- metrics
capability:
exposes:
- type: mcp
namespace: monitoring
port: 8080
tools:
- name: query-panel
description: "Query Grafana panel data."
inputParameters:
- name: panel_id
in: body
type: string
description: "The panel_id to look up."
call: "grafana.get-panel_id"
with:
panel_id: "{{panel_id}}"
consumes:
- type: http
namespace: grafana
baseUri: "https://accenture-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana_panel_data_query
method: GET
Analyzes incident patterns from ServiceNow, identifies root causes in Snowflake, creates problem tickets, and notifies service delivery.
naftiko: "0.5"
info:
label: "Incident Trend Analysis Pipeline"
description: "Analyzes incident patterns from ServiceNow, identifies root causes in Snowflake, creates problem tickets, and notifies service delivery."
tags:
- incident-analysis
- servicenow
- snowflake
- jira
capability:
exposes:
- type: mcp
namespace: incident-analysis
port: 8080
tools:
- name: incident_trend_analysis_pipeline
description: "Orchestrate incident trend analysis pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Triggers an Informatica data quality job, fetches results, and creates a Jira task for any data quality exceptions that need manual remediation.
naftiko: "0.5"
info:
label: "Informatica Data Quality Pipeline"
description: "Triggers an Informatica data quality job, fetches results, and creates a Jira task for any data quality exceptions that need manual remediation."
tags:
- data
- data-quality
- informatica
- jira
capability:
exposes:
- type: mcp
namespace: data-quality
port: 8080
tools:
- name: run-data-quality-check
description: "Trigger an Informatica DQ job and create Jira tasks for quality exceptions."
inputParameters:
- name: job_name
in: body
type: string
description: "The Informatica job name."
- name: connection_name
in: body
type: string
description: "The Informatica connection to use."
- name: jira_project_key
in: body
type: string
description: "The Jira project key for data quality issues."
steps:
- name: trigger-job
type: call
call: "informatica.start-job"
with:
job_name: "{{job_name}}"
connection: "{{connection_name}}"
- name: create-dq-ticket
type: call
call: "jira.create-issue"
with:
project_key: "{{jira_project_key}}"
issuetype: "Task"
summary: "[Data Quality] Exceptions in {{job_name}}"
description: "Informatica job {{trigger-job.job_id}} completed. Status: {{trigger-job.status}}. Exception count: {{trigger-job.exception_count}}. Review results at {{trigger-job.results_url}}."
consumes:
- type: http
namespace: informatica
baseUri: "https://dm-us.informaticacloud.com/saas/api/v2"
authentication:
type: bearer
token: "$secrets.informatica_token"
resources:
- name: jobs
path: "/job"
operations:
- name: start-job
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Collects cloud costs from AWS and Azure, allocates to projects in Snowflake, generates chargeback reports in Power BI, and notifies project leads.
naftiko: "0.5"
info:
label: "Infrastructure Cost Chargeback Pipeline"
description: "Collects cloud costs from AWS and Azure, allocates to projects in Snowflake, generates chargeback reports in Power BI, and notifies project leads."
tags:
- finops
- snowflake
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: finops
port: 8080
tools:
- name: infrastructure_cost_chargeback_pipeline
description: "Orchestrate infrastructure cost chargeback pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-cloud-costs
type: call
call: "snowflake.run-query"
with:
sql_query: "SELECT * FROM cloud_costs WHERE period = '{{resource_id}}'"
warehouse: "FINOPS_WH"
- name: allocate-costs
type: call
call: "snowflake.run-query"
with:
sql_query: "CALL allocate_chargeback('{{resource_id}}')"
warehouse: "FINOPS_WH"
- name: refresh-reports
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "cost_chargeback"
- name: notify
type: call
call: "msteams.send-message"
with:
channel: "finops"
text: "Chargeback report for {{resource_id}} published. Total: {{allocate-costs.total}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: powerbi-op
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: msteams-op
method: POST
Receives invoice dispute from client portal, validates against SAP records, creates resolution workflow in ServiceNow, notifies finance, and updates Salesforce.
naftiko: "0.5"
info:
label: "Invoice Dispute Resolution Pipeline"
description: "Receives invoice dispute from client portal, validates against SAP records, creates resolution workflow in ServiceNow, notifies finance, and updates Salesforce."
tags:
- finance
- sap
- servicenow
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: finance
port: 8080
tools:
- name: invoice_dispute_resolution_pipeline
description: "Orchestrate invoice dispute resolution pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-dispute
type: call
call: "salesforce.get-case"
with:
case_id: "{{resource_id}}"
- name: validate-invoice
type: call
call: "sap.get-invoice"
with:
invoice_id: "{{get-dispute.invoice_id}}"
- name: create-resolution
type: call
call: "servicenow.create-request"
with:
short_description: "Invoice dispute: {{resource_id}}"
- name: notify
type: call
call: "msteams.send-message"
with:
channel: "finance-ops"
text: "Dispute {{resource_id}} for invoice {{get-dispute.invoice_id}}. Resolution: {{create-resolution.number}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: sap
baseUri: "https://accenture-sap.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: sap-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: msteams-op
method: POST
Queries the Jira backlog for unresolved items in an Accenture delivery project.
naftiko: "0.5"
info:
label: "Jira Backlog Query"
description: "Queries the Jira backlog for unresolved items in an Accenture delivery project."
tags:
- agile
- jira
- backlog
capability:
exposes:
- type: mcp
namespace: delivery
port: 8080
tools:
- name: query-backlog
description: "Get backlog items by project."
inputParameters:
- name: project_key
in: body
type: string
description: "The project_key to look up."
call: "jira.get-project_key"
with:
project_key: "{{project_key}}"
consumes:
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira_backlog_query
method: GET
Retrieves a Jira issue by key and returns summary, status, assignee, and priority. Used by project managers to quickly check issue status.
naftiko: "0.5"
info:
label: "Jira Issue Lookup"
description: "Retrieves a Jira issue by key and returns summary, status, assignee, and priority. Used by project managers to quickly check issue status."
tags:
- project-management
- agile
- jira
capability:
exposes:
- type: mcp
namespace: pm-agile
port: 8080
tools:
- name: get-jira-issue
description: "Look up a Jira issue by key. Returns summary, status, assignee, and priority."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key (e.g., ENG-1234)."
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
outputParameters:
- name: summary
type: string
mapping: "$.fields.summary"
- name: status
type: string
mapping: "$.fields.status.name"
- name: assignee
type: string
mapping: "$.fields.assignee.displayName"
- name: priority
type: string
mapping: "$.fields.priority.name"
consumes:
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue/{{issue_key}}"
inputParameters:
- name: issue_key
in: path
operations:
- name: get-issue
method: GET
Extracts project learnings from Confluence, classifies using AI, tags in the knowledge base, creates reusable assets, and notifies the CoE team in Slack.
naftiko: "0.5"
info:
label: "Knowledge Harvesting Pipeline"
description: "Extracts project learnings from Confluence, classifies using AI, tags in the knowledge base, creates reusable assets, and notifies the CoE team in Slack."
tags:
- knowledge-mgmt
- confluence
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: knowledge-mgmt
port: 8080
tools:
- name: knowledge_harvesting_pipeline
description: "Orchestrate knowledge harvesting pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: extract-learnings
type: call
call: "confluence.search-pages"
with:
query: "lessons learned {{resource_id}}"
- name: classify
type: call
call: "snowflake.run-query"
with:
sql_query: "CALL classify_knowledge('{{resource_id}}')"
warehouse: "KM_WH"
- name: tag-assets
type: call
call: "confluence.update-labels"
with:
page_ids: "{{extract-learnings.page_ids}}"
labels: "{{classify.tags}}"
- name: notify
type: call
call: "slack.send-message"
with:
channel: "knowledge-coe"
text: "Knowledge harvested for {{resource_id}}: {{extract-learnings.count}} items classified"
consumes:
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Queries Azure Kubernetes Service for node and pod health status. Used by cloud engineers to monitor managed Kubernetes clusters for client workloads.
naftiko: "0.5"
info:
label: "Kubernetes Cluster Health Check"
description: "Queries Azure Kubernetes Service for node and pod health status. Used by cloud engineers to monitor managed Kubernetes clusters for client workloads."
tags:
- cloud
- infrastructure
- azure-kubernetes-service
capability:
exposes:
- type: mcp
namespace: cloud-k8s
port: 8080
tools:
- name: get-cluster-health
description: "Fetch AKS cluster health by subscription, resource group, and cluster name."
inputParameters:
- name: subscription_id
in: body
type: string
description: "The Azure subscription ID."
- name: resource_group
in: body
type: string
description: "The Azure resource group name."
- name: cluster_name
in: body
type: string
description: "The AKS cluster name."
call: "aks.get-cluster"
with:
subscription_id: "{{subscription_id}}"
resource_group: "{{resource_group}}"
cluster_name: "{{cluster_name}}"
outputParameters:
- name: provisioning_state
type: string
mapping: "$.properties.provisioningState"
- name: kubernetes_version
type: string
mapping: "$.properties.kubernetesVersion"
- name: node_count
type: string
mapping: "$.properties.agentPoolProfiles[0].count"
consumes:
- type: http
namespace: aks
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: clusters
path: "/subscriptions/{{subscription_id}}/resourceGroups/{{resource_group}}/providers/Microsoft.ContainerService/managedClusters/{{cluster_name}}?api-version=2023-10-01"
inputParameters:
- name: subscription_id
in: path
- name: resource_group
in: path
- name: cluster_name
in: path
operations:
- name: get-cluster
method: GET
Aggregates service health from Datadog, SLA metrics from ServiceNow, generates reports in Power BI, and notifies delivery leads.
naftiko: "0.5"
info:
label: "Managed Services Health Dashboard"
description: "Aggregates service health from Datadog, SLA metrics from ServiceNow, generates reports in Power BI, and notifies delivery leads."
tags:
- managed-services
- datadog
- servicenow
- power-bi
capability:
exposes:
- type: mcp
namespace: managed-services
port: 8080
tools:
- name: managed_services_health_dashboard
description: "Orchestrate managed services health dashboard workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Creates an Adobe Campaign workflow, sets up Google Tag Manager tracking, configures Salesforce Marketing Cloud email send, and posts the launch status to Microsoft Teams.
naftiko: "0.5"
info:
label: "Marketing Campaign Launch Orchestrator"
description: "Creates an Adobe Campaign workflow, sets up Google Tag Manager tracking, configures Salesforce Marketing Cloud email send, and posts the launch status to Microsoft Teams."
tags:
- marketing
- campaign
- adobe-campaign
- google-tag-manager
- salesforce-marketing-cloud
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: marketing-launch
port: 8080
tools:
- name: launch-marketing-campaign
description: "Given campaign details, orchestrate the launch across Adobe Campaign, Google Tag Manager, Salesforce Marketing Cloud, and notify via Teams."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The marketing campaign name."
- name: target_audience
in: body
type: string
description: "The target audience segment identifier."
- name: gtm_container_id
in: body
type: string
description: "The Google Tag Manager container ID."
- name: teams_channel
in: body
type: string
description: "The Microsoft Teams channel for marketing updates."
steps:
- name: create-adobe-workflow
type: call
call: "adobecampaign.create-workflow"
with:
name: "{{campaign_name}}"
audience_segment: "{{target_audience}}"
- name: create-gtm-tag
type: call
call: "gtm.create-tag"
with:
container_id: "{{gtm_container_id}}"
tag_name: "{{campaign_name}}_tracking"
event_name: "campaign_{{campaign_name}}"
- name: create-sfmc-send
type: call
call: "sfmc.create-email-send"
with:
campaign_name: "{{campaign_name}}"
audience: "{{target_audience}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Campaign Launched: {{campaign_name}}\n- Adobe workflow: {{create-adobe-workflow.workflow_id}}\n- GTM tag: {{create-gtm-tag.tag_id}}\n- SFMC send: {{create-sfmc-send.send_id}}"
consumes:
- type: http
namespace: adobecampaign
baseUri: "https://mc.adobe.io/accenture/campaign"
authentication:
type: bearer
token: "$secrets.adobe_campaign_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: workflows
path: "/workflow/create"
operations:
- name: create-workflow
method: POST
- type: http
namespace: gtm
baseUri: "https://www.googleapis.com/tagmanager/v2"
authentication:
type: bearer
token: "$secrets.google_tagmanager_token"
resources:
- name: tags
path: "/accounts/accenture/containers/{{container_id}}/workspaces/default/tags"
inputParameters:
- name: container_id
in: path
operations:
- name: create-tag
method: POST
- type: http
namespace: sfmc
baseUri: "https://accenture.rest.marketingcloudapis.com/messaging/v1"
authentication:
type: bearer
token: "$secrets.sfmc_token"
resources:
- name: email-sends
path: "/messageDefinitionSends"
operations:
- name: create-email-send
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Creates a Microsoft Teams meeting, adds participants from Workday org data, and sends a calendar invite via Microsoft Outlook. Used for automated client meeting scheduling.
naftiko: "0.5"
info:
label: "Microsoft Teams Meeting Scheduler"
description: "Creates a Microsoft Teams meeting, adds participants from Workday org data, and sends a calendar invite via Microsoft Outlook. Used for automated client meeting scheduling."
tags:
- collaboration
- scheduling
- microsoft-teams
- workday
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: collab-scheduling
port: 8080
tools:
- name: schedule-client-meeting
description: "Given a list of participant worker IDs, create a Teams meeting and send Outlook invites."
inputParameters:
- name: meeting_subject
in: body
type: string
description: "The meeting subject line."
- name: start_time
in: body
type: string
description: "Meeting start time (ISO 8601)."
- name: end_time
in: body
type: string
description: "Meeting end time (ISO 8601)."
- name: organizer_worker_id
in: body
type: string
description: "The Workday worker ID of the organizer."
- name: participant_emails
in: body
type: string
description: "Comma-separated participant email addresses."
steps:
- name: get-organizer
type: call
call: "workday.get-worker"
with:
worker_id: "{{organizer_worker_id}}"
- name: create-meeting
type: call
call: "msteams.create-online-meeting"
with:
subject: "{{meeting_subject}}"
startDateTime: "{{start_time}}"
endDateTime: "{{end_time}}"
organizer: "{{get-organizer.work_email}}"
- name: send-invite
type: call
call: "outlook.send-mail"
with:
to: "{{participant_emails}}"
subject: "Meeting Invite: {{meeting_subject}}"
body: "You are invited to: {{meeting_subject}}\nTime: {{start_time}} - {{end_time}}\nJoin link: {{create-meeting.join_url}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: online-meetings
path: "/users/{{organizer}}/onlineMeetings"
inputParameters:
- name: organizer
in: path
operations:
- name: create-online-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
Deploys a MuleSoft API to CloudHub, registers it in the API Manager, and posts the deployment status to Microsoft Teams.
naftiko: "0.5"
info:
label: "MuleSoft API Deployment Pipeline"
description: "Deploys a MuleSoft API to CloudHub, registers it in the API Manager, and posts the deployment status to Microsoft Teams."
tags:
- integration
- api-management
- mulesoft
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: integration-deploy
port: 8080
tools:
- name: deploy-mulesoft-api
description: "Given an application name and environment, deploy to CloudHub and register in API Manager."
inputParameters:
- name: app_name
in: body
type: string
description: "The MuleSoft application name."
- name: environment
in: body
type: string
description: "The target environment (e.g., sandbox, production)."
- name: api_version
in: body
type: string
description: "The API version to register."
- name: teams_channel
in: body
type: string
description: "The Microsoft Teams channel for deployment notifications."
steps:
- name: deploy-app
type: call
call: "mulesoft.deploy-application"
with:
app_name: "{{app_name}}"
environment: "{{environment}}"
- name: register-api
type: call
call: "mulesoft.register-api"
with:
api_name: "{{app_name}}"
version: "{{api_version}}"
environment: "{{environment}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "MuleSoft Deployment: {{app_name}} v{{api_version}} deployed to {{environment}}. App status: {{deploy-app.status}}. API ID: {{register-api.api_id}}"
consumes:
- type: http
namespace: mulesoft
baseUri: "https://anypoint.mulesoft.com/accounts/api"
authentication:
type: bearer
token: "$secrets.mulesoft_token"
resources:
- name: applications
path: "/v2/applications"
operations:
- name: deploy-application
method: POST
- name: apis
path: "/v1/organizations/accenture/environments/{{environment}}/apis"
inputParameters:
- name: environment
in: path
operations:
- name: register-api
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Initiates DR failover test, validates services in target region, runs health checks via Datadog, generates report in Confluence, and notifies SRE team.
naftiko: "0.5"
info:
label: "Multi-Cloud Disaster Recovery Test"
description: "Initiates DR failover test, validates services in target region, runs health checks via Datadog, generates report in Confluence, and notifies SRE team."
tags:
- disaster-recovery
- datadog
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: disaster-recovery
port: 8080
tools:
- name: multi_cloud_disaster_recovery_test
description: "Orchestrate multi-cloud disaster recovery test workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: initiate-failover
type: call
call: "terraform.apply-plan"
with:
workspace: "dr_{{resource_id}}"
- name: validate-services
type: call
call: "datadog.get-service-checks"
with:
tag: "dr:{{resource_id}}"
- name: generate-report
type: call
call: "confluence.create-page"
with:
space: "SRE"
title: "DR test: {{resource_id}}"
- name: notify
type: call
call: "msteams.send-message"
with:
channel: "sre-team"
text: "DR test {{resource_id}}: {{validate-services.healthy_count}}/{{validate-services.total}} services healthy"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: msteams-op
method: POST
Checks Okta group membership for access verification at Accenture.
naftiko: "0.5"
info:
label: "Okta Group Membership Check"
description: "Checks Okta group membership for access verification at Accenture."
tags:
- security
- okta
- access-control
capability:
exposes:
- type: mcp
namespace: identity
port: 8080
tools:
- name: check-group
description: "Check user group membership."
inputParameters:
- name: user_email
in: body
type: string
description: "The user_email to look up."
call: "okta.get-user_email"
with:
user_email: "{{user_email}}"
consumes:
- type: http
namespace: okta
baseUri: "https://accenture.okta.com/api/v1"
authentication:
type: apiKey
key: "$secrets.okta_api_token"
header: "Authorization"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: okta_group_membership_check
method: GET
Retrieves an Oracle Financials journal entry by batch name. Used by finance transformation consultants to audit GL postings.
naftiko: "0.5"
info:
label: "Oracle Cloud ERP Journal Entry Lookup"
description: "Retrieves an Oracle Financials journal entry by batch name. Used by finance transformation consultants to audit GL postings."
tags:
- finance
- erp
- oracle
capability:
exposes:
- type: mcp
namespace: finance-erp
port: 8080
tools:
- name: get-journal-entry
description: "Look up an Oracle Financials journal entry by batch name."
inputParameters:
- name: journal_batch_name
in: body
type: string
description: "The GL journal batch name."
call: "oracle.get-journal"
with:
batch_name: "{{journal_batch_name}}"
outputParameters:
- name: status
type: string
mapping: "$.Status"
- name: total_debit
type: string
mapping: "$.TotalDebit"
- name: total_credit
type: string
mapping: "$.TotalCredit"
- name: period
type: string
mapping: "$.AccountingPeriod"
consumes:
- type: http
namespace: oracle
baseUri: "https://accenture.oraclecloud.com/fscmRestApi/resources/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: journals
path: "/generalLedgerJournals?q=JournalBatchName={{batch_name}}"
inputParameters:
- name: batch_name
in: query
operations:
- name: get-journal
method: GET
Retrieves the operational status of a PagerDuty service at Accenture.
naftiko: "0.5"
info:
label: "PagerDuty Service Status"
description: "Retrieves the operational status of a PagerDuty service at Accenture."
tags:
- devops
- pagerduty
- operational-status
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: get-service-status
description: "Get service operational status."
inputParameters:
- name: service_id
in: body
type: string
description: "The service_id to look up."
call: "pagerduty.get-service_id"
with:
service_id: "{{service_id}}"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: pagerduty_service_status
method: GET
Identifies repetitive ops tasks from ServiceNow, measures toil in Snowflake, creates automation tasks in Jira, and tracks reduction.
naftiko: "0.5"
info:
label: "Platform SRE Toil Reducer"
description: "Identifies repetitive ops tasks from ServiceNow, measures toil in Snowflake, creates automation tasks in Jira, and tracks reduction."
tags:
- sre
- automation
- servicenow
- jira
capability:
exposes:
- type: mcp
namespace: sre
port: 8080
tools:
- name: platform_sre_toil_reducer
description: "Orchestrate platform sre toil reducer workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Triggers a dataset refresh in Power BI and notifies the analytics team in Microsoft Teams when the refresh completes. Used by analytics consultants to ensure dashboards have current data before client presentations.
naftiko: "0.5"
info:
label: "Power BI Report Refresh and Notify"
description: "Triggers a dataset refresh in Power BI and notifies the analytics team in Microsoft Teams when the refresh completes. Used by analytics consultants to ensure dashboards have current data before client presentations."
tags:
- analytics
- bi
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: analytics-bi
port: 8080
tools:
- name: refresh-dataset-and-notify
description: "Trigger a Power BI dataset refresh and notify the analytics team in Microsoft Teams."
inputParameters:
- name: group_id
in: body
type: string
description: "The Power BI workspace (group) ID."
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
- name: teams_channel
in: body
type: string
description: "The Microsoft Teams channel for analytics updates."
steps:
- name: trigger-refresh
type: call
call: "powerbi.trigger-refresh"
with:
group_id: "{{group_id}}"
dataset_id: "{{dataset_id}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Power BI dataset {{dataset_id}} refresh triggered. Request ID: {{trigger-refresh.request_id}}. Status: {{trigger-refresh.status}}."
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: group_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Triggers a refresh of a Power BI dataset for Accenture client reporting.
naftiko: "0.5"
info:
label: "Power BI Report Refresh Trigger"
description: "Triggers a refresh of a Power BI dataset for Accenture client reporting."
tags:
- analytics
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: trigger-refresh
description: "Trigger dataset refresh."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The dataset_id to look up."
call: "powerbi.get-dataset_id"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: power_bi_report_refresh
method: GET
When a SAP Ariba requisition exceeds a spend threshold, routes for manager approval via Workday and notifies the requestor in Microsoft Teams with approval status.
naftiko: "0.5"
info:
label: "Procurement Requisition Approval Router"
description: "When a SAP Ariba requisition exceeds a spend threshold, routes for manager approval via Workday and notifies the requestor in Microsoft Teams with approval status."
tags:
- procurement
- sap-ariba
- workday
- microsoft-teams
- approval
capability:
exposes:
- type: mcp
namespace: procurement-approval
port: 8080
tools:
- name: route-requisition-approval
description: "Given an Ariba requisition ID, resolve the approver from Workday, and notify both parties in Microsoft Teams."
inputParameters:
- name: requisition_id
in: body
type: string
description: "The SAP Ariba requisition identifier."
- name: requestor_employee_id
in: body
type: string
description: "The Workday employee ID of the requestor."
- name: spend_amount
in: body
type: number
description: "The total spend amount on the requisition."
steps:
- name: get-requisition
type: call
call: "ariba.get-requisition"
with:
requisition_id: "{{requisition_id}}"
- name: get-requestor
type: call
call: "workday.get-worker"
with:
worker_id: "{{requestor_employee_id}}"
- name: get-manager
type: call
call: "workday.get-worker"
with:
worker_id: "{{get-requestor.manager_id}}"
- name: notify-approver
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-manager.work_email}}"
text: "Approval Required: Ariba requisition {{requisition_id}} from {{get-requestor.full_name}} for ${{spend_amount}}. Vendor: {{get-requisition.vendor_name}}. Please review: {{get-requisition.approval_url}}"
- name: notify-requestor
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-requestor.work_email}}"
text: "Your requisition {{requisition_id}} (${{spend_amount}}) has been routed to {{get-manager.full_name}} for approval."
consumes:
- type: http
namespace: ariba
baseUri: "https://openapi.ariba.com/api/purchase-req/v1"
authentication:
type: bearer
token: "$secrets.ariba_token"
resources:
- name: requisitions
path: "/requisitions/{{requisition_id}}"
inputParameters:
- name: requisition_id
in: path
operations:
- name: get-requisition
method: GET
- 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: 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
Analyzes project portfolio metrics from Salesforce, calculates ROI in Snowflake, identifies optimization opportunities, and notifies PMO.
naftiko: "0.5"
info:
label: "Project Portfolio Optimization Pipeline"
description: "Analyzes project portfolio metrics from Salesforce, calculates ROI in Snowflake, identifies optimization opportunities, and notifies PMO."
tags:
- portfolio
- optimization
- salesforce
- snowflake
capability:
exposes:
- type: mcp
namespace: portfolio
port: 8080
tools:
- name: project_portfolio_optimization_pipeline
description: "Orchestrate project portfolio optimization pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Retrieves client account data from Salesforce, pulls a proposal template from SharePoint, generates a draft in Microsoft Word via Graph API, and uploads to Box for client review.
naftiko: "0.5"
info:
label: "Proposal Document Assembly Pipeline"
description: "Retrieves client account data from Salesforce, pulls a proposal template from SharePoint, generates a draft in Microsoft Word via Graph API, and uploads to Box for client review."
tags:
- sales
- proposals
- salesforce
- sharepoint
- microsoft-word
- box
capability:
exposes:
- type: mcp
namespace: sales-proposals
port: 8080
tools:
- name: assemble-proposal
description: "Given a Salesforce account ID and template path, assemble a proposal document and upload to Box."
inputParameters:
- name: salesforce_account_id
in: body
type: string
description: "The Salesforce account record ID."
- name: template_path
in: body
type: string
description: "The SharePoint path to the proposal template."
- name: box_folder_id
in: body
type: string
description: "The Box folder ID for the completed proposal."
steps:
- name: get-account
type: call
call: "salesforce.get-account"
with:
account_id: "{{salesforce_account_id}}"
- name: get-template
type: call
call: "sharepoint.get-file"
with:
file_path: "{{template_path}}"
- name: upload-proposal
type: call
call: "box.upload-file"
with:
folder_id: "{{box_folder_id}}"
file_name: "Proposal_{{get-account.Name}}_{{get-account.Industry}}.docx"
content: "{{get-template.content}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.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
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites/accenture.sharepoint.com"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/drive/root:/{{file_path}}:/content"
inputParameters:
- name: file_path
in: path
operations:
- name: get-file
method: GET
- type: http
namespace: box
baseUri: "https://upload.box.com/api/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files/content"
operations:
- name: upload-file
method: POST
Pulls client requirements from Salesforce, retrieves templates from SharePoint, generates cost estimates from SAP, assembles in Confluence, and notifies the bid team.
naftiko: "0.5"
info:
label: "Proposal Generation Orchestrator"
description: "Pulls client requirements from Salesforce, retrieves templates from SharePoint, generates cost estimates from SAP, assembles in Confluence, and notifies the bid team."
tags:
- sales
- salesforce
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: proposal_generation_orchestrator
description: "Orchestrate proposal generation orchestrator workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-requirements
type: call
call: "salesforce.get-opportunity"
with:
opp_id: "{{resource_id}}"
- name: get-template
type: call
call: "sharepoint.get-template"
with:
template_type: "proposal"
- name: create-proposal
type: call
call: "confluence.create-page"
with:
space: "PROPOSALS"
title: "Proposal: {{get-requirements.name}}"
- name: notify
type: call
call: "msteams.send-message"
with:
channel: "bid-team"
text: "Proposal draft created for {{resource_id}}: {{create-proposal.url}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: msteams-op
method: POST
Collects merged PRs from GitHub, maps to Jira stories, generates formatted release notes in Confluence, notifies stakeholders, and updates Salesforce project status.
naftiko: "0.5"
info:
label: "Release Notes Generator"
description: "Collects merged PRs from GitHub, maps to Jira stories, generates formatted release notes in Confluence, notifies stakeholders, and updates Salesforce project status."
tags:
- devops
- github
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: release_notes_generator
description: "Orchestrate release notes generator workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-prs
type: call
call: "github.get-merged-prs"
with:
repo: "{{resource_id}}"
since: "last_release"
- name: get-stories
type: call
call: "jira.get-linked-issues"
with:
pr_ids: "{{get-prs.ids}}"
- name: create-notes
type: call
call: "confluence.create-page"
with:
space: "RELEASES"
title: "Release notes: {{resource_id}}"
- name: notify
type: call
call: "slack.send-message"
with:
channel: "releases"
text: "Release notes published for {{resource_id}}: {{get-prs.count}} changes"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: github-op
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
When a project staffing request arrives, queries Workday for consultant availability, checks Microsoft Project schedule conflicts, and notifies the resource manager in Microsoft Teams with a staffing recommendation.
naftiko: "0.5"
info:
label: "Resource Allocation Tracker"
description: "When a project staffing request arrives, queries Workday for consultant availability, checks Microsoft Project schedule conflicts, and notifies the resource manager in Microsoft Teams with a staffing recommendation."
tags:
- resource-management
- staffing
- workday
- microsoft-project
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: resource-mgmt
port: 8080
tools:
- name: check-resource-availability
description: "Given a consultant worker ID and requested engagement dates, check Workday assignment status and Microsoft Project conflicts, then notify the resource manager."
inputParameters:
- name: consultant_worker_id
in: body
type: string
description: "The Workday worker ID for the consultant."
- name: engagement_start
in: body
type: string
description: "Requested engagement start date (YYYY-MM-DD)."
- name: engagement_end
in: body
type: string
description: "Requested engagement end date (YYYY-MM-DD)."
- name: resource_manager_upn
in: body
type: string
description: "The Microsoft UPN of the resource manager."
steps:
- name: get-consultant
type: call
call: "workday.get-worker"
with:
worker_id: "{{consultant_worker_id}}"
- name: check-schedule
type: call
call: "msproject.get-assignments"
with:
resource_id: "{{consultant_worker_id}}"
start_date: "{{engagement_start}}"
end_date: "{{engagement_end}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{resource_manager_upn}}"
text: "Staffing Check: {{get-consultant.full_name}} ({{get-consultant.business_title}}) requested for {{engagement_start}} to {{engagement_end}}. Current assignments: {{check-schedule.assignment_count}}. Availability: {{check-schedule.available_pct}}%."
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: msproject
baseUri: "https://graph.microsoft.com/v1.0/sites/accenture.sharepoint.com/lists"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: assignments
path: "/ProjectAssignments/items?$filter=ResourceId eq '{{resource_id}}' and Start ge '{{start_date}}' and Finish le '{{end_date}}'"
inputParameters:
- name: resource_id
in: query
- name: start_date
in: query
- name: end_date
in: query
operations:
- name: get-assignments
method: GET
- 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
Tracks bench consultants in Workday, matches to open requirements from Salesforce, creates proposals, and notifies resource managers.
naftiko: "0.5"
info:
label: "Resource Bench Management Pipeline"
description: "Tracks bench consultants in Workday, matches to open requirements from Salesforce, creates proposals, and notifies resource managers."
tags:
- workforce
- bench
- workday
- salesforce
capability:
exposes:
- type: mcp
namespace: workforce
port: 8080
tools:
- name: resource_bench_management_pipeline
description: "Orchestrate resource bench management pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Triggers a SailPoint identity access review, fetches results, and creates a ServiceNow change request for any access that needs remediation.
naftiko: "0.5"
info:
label: "SailPoint Access Certification Pipeline"
description: "Triggers a SailPoint identity access review, fetches results, and creates a ServiceNow change request for any access that needs remediation."
tags:
- security
- identity
- sailpoint
- servicenow
capability:
exposes:
- type: mcp
namespace: identity-governance
port: 8080
tools:
- name: run-access-certification
description: "Trigger a SailPoint access certification campaign and create ServiceNow change requests for flagged access."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The SailPoint certification campaign name."
- name: identity_id
in: body
type: string
description: "The SailPoint identity ID to certify."
steps:
- name: trigger-certification
type: call
call: "sailpoint.create-campaign"
with:
name: "{{campaign_name}}"
identity_id: "{{identity_id}}"
- name: create-change-request
type: call
call: "servicenow.create-change"
with:
short_description: "Access certification remediation: {{campaign_name}}"
description: "SailPoint campaign {{trigger-certification.campaign_id}} flagged access for identity {{identity_id}}. Review and remediate."
assigned_group: "Identity_Governance"
category: "access_review"
consumes:
- type: http
namespace: sailpoint
baseUri: "https://accenture.api.identitynow.com/v3"
authentication:
type: bearer
token: "$secrets.sailpoint_token"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: create-campaign
method: POST
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: changes
path: "/table/change_request"
operations:
- name: create-change
method: POST
When a qualifying LinkedIn signal occurs, enriches the Salesforce contact record with current profile data, syncs to HubSpot, and alerts the owning business development rep in Microsoft Teams.
naftiko: "0.5"
info:
label: "Sales Lead Enrichment Pipeline"
description: "When a qualifying LinkedIn signal occurs, enriches the Salesforce contact record with current profile data, syncs to HubSpot, and alerts the owning business development rep in Microsoft Teams."
tags:
- sales
- crm
- salesforce
- hubspot
- linkedin
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: sales-intelligence
port: 8080
tools:
- name: enrich-lead-from-linkedin
description: "Given a LinkedIn member URN and Salesforce contact ID, enrich the Salesforce record, sync to HubSpot, and notify the owning rep."
inputParameters:
- name: linkedin_member_urn
in: body
type: string
description: "The LinkedIn member URN for the contact."
- name: salesforce_contact_id
in: body
type: string
description: "The Salesforce contact record ID to enrich."
- name: signal_type
in: body
type: string
description: "The LinkedIn signal type (e.g., job_change, content_share)."
- name: rep_upn
in: body
type: string
description: "The Microsoft UPN of the owning sales rep."
steps:
- name: get-linkedin-profile
type: call
call: "linkedin.get-profile"
with:
member_urn: "{{linkedin_member_urn}}"
- name: update-salesforce
type: call
call: "salesforce.update-contact"
with:
contact_id: "{{salesforce_contact_id}}"
title: "{{get-linkedin-profile.headline}}"
company: "{{get-linkedin-profile.current_company}}"
linkedin_url: "{{get-linkedin-profile.profile_url}}"
- name: sync-hubspot
type: call
call: "hubspot.update-contact"
with:
email: "{{update-salesforce.email}}"
jobtitle: "{{get-linkedin-profile.headline}}"
company: "{{get-linkedin-profile.current_company}}"
hs_lead_status: "OPEN_DEAL"
- name: alert-rep
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{rep_upn}}"
text: "Warm Lead Signal: {{get-linkedin-profile.first_name}} {{get-linkedin-profile.last_name}} | Signal: {{signal_type}} | Title: {{get-linkedin-profile.headline}} | Company: {{get-linkedin-profile.current_company}} | Salesforce updated."
consumes:
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: profiles
path: "/people/{{member_urn}}"
inputParameters:
- name: member_urn
in: path
operations:
- name: get-profile
method: GET
- type: http
namespace: salesforce
baseUri: "https://accenture.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: update-contact
method: PATCH
- 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}}"
inputParameters:
- name: email
in: path
operations:
- name: update-contact
method: PATCH
- 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
Retrieves client account details from Accenture Salesforce instance.
naftiko: "0.5"
info:
label: "Salesforce Account Lookup"
description: "Retrieves client account details from Accenture Salesforce instance."
tags:
- crm
- salesforce
- accounts
capability:
exposes:
- type: mcp
namespace: crm
port: 8080
tools:
- name: get-account
description: "Look up Salesforce account by ID."
inputParameters:
- name: account_id
in: body
type: string
description: "The account_id to look up."
call: "salesforce.get-account_id"
with:
account_id: "{{account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce_account_lookup
method: GET
Retrieves a Salesforce opportunity by ID and returns stage, amount, close date, and account name. Used by engagement leads to check deal health without logging into Salesforce.
naftiko: "0.5"
info:
label: "Salesforce Opportunity Lookup"
description: "Retrieves a Salesforce opportunity by ID and returns stage, amount, close date, and account name. Used by engagement leads to check deal health without logging into Salesforce."
tags:
- sales
- crm
- salesforce
capability:
exposes:
- type: mcp
namespace: sales-crm
port: 8080
tools:
- name: get-opportunity
description: "Look up a Salesforce opportunity by record ID. Returns stage, amount, close date, and account name."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The Salesforce opportunity record ID."
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
outputParameters:
- name: stage
type: string
mapping: "$.StageName"
- name: amount
type: string
mapping: "$.Amount"
- name: close_date
type: string
mapping: "$.CloseDate"
- name: account_name
type: string
mapping: "$.Account.Name"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.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
Executes a query against SAP HANA, stages the result in Amazon S3, and triggers a Databricks notebook for downstream processing.
naftiko: "0.5"
info:
label: "SAP HANA Data Extraction Pipeline"
description: "Executes a query against SAP HANA, stages the result in Amazon S3, and triggers a Databricks notebook for downstream processing."
tags:
- data
- etl
- sap-hana
- amazon-s3
- databricks
capability:
exposes:
- type: mcp
namespace: data-extraction
port: 8080
tools:
- name: extract-hana-to-databricks
description: "Given a HANA SQL query, extract data to S3 and trigger a Databricks processing notebook."
inputParameters:
- name: hana_query
in: body
type: string
description: "The SAP HANA SQL query to execute."
- name: s3_bucket
in: body
type: string
description: "The target S3 bucket name."
- name: s3_key
in: body
type: string
description: "The S3 object key for the extract."
- name: databricks_notebook_path
in: body
type: string
description: "The Databricks notebook path to trigger."
steps:
- name: extract-data
type: call
call: "hana.execute-query"
with:
query: "{{hana_query}}"
- name: upload-to-s3
type: call
call: "s3.put-object"
with:
bucket: "{{s3_bucket}}"
key: "{{s3_key}}"
body: "{{extract-data.result_csv}}"
- name: trigger-notebook
type: call
call: "databricks.run-notebook"
with:
notebook_path: "{{databricks_notebook_path}}"
base_parameters: "{\"s3_path\": \"s3://{{s3_bucket}}/{{s3_key}}\"}"
consumes:
- type: http
namespace: hana
baseUri: "https://accenture-hana.sap.com/api/v1"
authentication:
type: basic
username: "$secrets.hana_user"
password: "$secrets.hana_password"
resources:
- name: sql
path: "/sql"
operations:
- name: execute-query
method: POST
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: aws-sigv4
access_key: "$secrets.aws_access_key"
secret_key: "$secrets.aws_secret_key"
resources:
- name: objects
path: "/{{bucket}}/{{key}}"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: put-object
method: PUT
- type: http
namespace: databricks
baseUri: "https://accenture.cloud.databricks.com/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: jobs
path: "/jobs/runs/submit"
operations:
- name: run-notebook
method: POST
Retrieves a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and currency. Used by procurement consultants to audit client PO data.
naftiko: "0.5"
info:
label: "SAP S/4HANA Purchase Order Lookup"
description: "Retrieves a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and currency. Used by procurement consultants to audit client PO data."
tags:
- procurement
- erp
- sap
- sap-s4hana
capability:
exposes:
- type: mcp
namespace: erp-procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP S/4HANA purchase order by PO number. Returns header status, vendor, total value, and currency."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number (10-digit)."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OverallStatus"
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: total_value
type: string
mapping: "$.d.TotalAmount"
- name: currency
type: string
mapping: "$.d.TransactionCurrency"
consumes:
- type: http
namespace: sap
baseUri: "https://accenture-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
- name: sap-client
in: header
value: "100"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
outputRawFormat: xml
Runs vulnerability scans, checks compliance posture in Datadog, creates remediation tickets in Jira, updates compliance dashboard, and notifies security team.
naftiko: "0.5"
info:
label: "Security Compliance Scan Pipeline"
description: "Runs vulnerability scans, checks compliance posture in Datadog, creates remediation tickets in Jira, updates compliance dashboard, and notifies security team."
tags:
- security
- compliance
- datadog
- jira
- grafana
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: security_compliance_scan_pipeline
description: "Orchestrate security compliance scan pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: run-scan
type: call
call: "qualys.launch-scan"
with:
target: "{{resource_id}}"
- name: check-compliance
type: call
call: "datadog.get-compliance-status"
with:
service: "{{resource_id}}"
- name: create-tickets
type: call
call: "jira.create-issue"
with:
project: "SEC"
summary: "Compliance: {{resource_id}}"
- name: update-dashboard
type: call
call: "grafana.annotate"
with:
dashboard_uid: "compliance"
text: "Scan: {{resource_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: grafana
baseUri: "https://accenture-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
Triggers a Checkmarx scan on a GitHub repository, waits for results, and creates a Jira security issue with findings summary. Used by AppSec consultants.
naftiko: "0.5"
info:
label: "Security Vulnerability Scan Pipeline"
description: "Triggers a Checkmarx scan on a GitHub repository, waits for results, and creates a Jira security issue with findings summary. Used by AppSec consultants."
tags:
- security
- appsec
- checkmarx
- github
- jira
capability:
exposes:
- type: mcp
namespace: security-scan
port: 8080
tools:
- name: trigger-security-scan
description: "Given a GitHub repo and Checkmarx project ID, trigger a scan and create a Jira issue with findings."
inputParameters:
- name: checkmarx_project_id
in: body
type: string
description: "The Checkmarx project ID."
- name: repo_url
in: body
type: string
description: "The GitHub repository URL to scan."
- name: jira_project_key
in: body
type: string
description: "The Jira project key for security issues."
steps:
- name: trigger-scan
type: call
call: "checkmarx.create-scan"
with:
project_id: "{{checkmarx_project_id}}"
source_url: "{{repo_url}}"
- name: create-security-issue
type: call
call: "jira.create-issue"
with:
project_key: "{{jira_project_key}}"
issuetype: "Bug"
summary: "[Security Scan] Checkmarx results for {{repo_url}}"
description: "Scan ID: {{trigger-scan.scan_id}}. Status: {{trigger-scan.status}}. Review findings at {{trigger-scan.results_url}}."
priority: "High"
consumes:
- type: http
namespace: checkmarx
baseUri: "https://accenture.checkmarx.net/cxrestapi"
authentication:
type: bearer
token: "$secrets.checkmarx_token"
resources:
- name: scans
path: "/sast/scans"
operations:
- name: create-scan
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Retrieves IT asset details from Accenture ServiceNow CMDB.
naftiko: "0.5"
info:
label: "ServiceNow Asset Lookup"
description: "Retrieves IT asset details from Accenture ServiceNow CMDB."
tags:
- itsm
- servicenow
- asset-management
capability:
exposes:
- type: mcp
namespace: itsm
port: 8080
tools:
- name: get-asset
description: "Look up IT asset by tag."
inputParameters:
- name: asset_tag
in: body
type: string
description: "The asset_tag to look up."
call: "servicenow.get-asset_tag"
with:
asset_tag: "{{asset_tag}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow_asset_lookup
method: GET
Fetches a ServiceNow incident by number and returns state, priority, assigned group, and short description. Used by project managers to check incident progress.
naftiko: "0.5"
info:
label: "ServiceNow Incident Status"
description: "Fetches a ServiceNow incident by number and returns state, priority, assigned group, and short description. Used by project managers to check incident progress."
tags:
- operations
- itsm
- servicenow
capability:
exposes:
- type: mcp
namespace: itsm-ops
port: 8080
tools:
- name: get-incident-status
description: "Look up a ServiceNow incident by number. Returns state, priority, assigned group, and short description."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number (e.g., INC0012345)."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
- name: assigned_group
type: string
mapping: "$.result.assignment_group.display_value"
- name: short_description
type: string
mapping: "$.result.short_description"
consumes:
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: query
operations:
- name: get-incident
method: GET
Looks up table metadata from Accenture Snowflake data catalog.
naftiko: "0.5"
info:
label: "Snowflake Data Catalog Lookup"
description: "Looks up table metadata from Accenture Snowflake data catalog."
tags:
- data
- snowflake
- data-catalog
capability:
exposes:
- type: mcp
namespace: data-mgmt
port: 8080
tools:
- name: get-table-info
description: "Look up table metadata."
inputParameters:
- name: table_name
in: body
type: string
description: "The table_name to look up."
call: "snowflake.get-table_name"
with:
table_name: "{{table_name}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake_data_catalog_lookup
method: GET
Executes a SQL query against Snowflake, exports results to Amazon S3, and notifies the data team in Microsoft Teams with the export location.
naftiko: "0.5"
info:
label: "Snowflake Query and Export Pipeline"
description: "Executes a SQL query against Snowflake, exports results to Amazon S3, and notifies the data team in Microsoft Teams with the export location."
tags:
- data
- analytics
- snowflake
- amazon-s3
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: data-warehouse
port: 8080
tools:
- name: run-snowflake-query-and-export
description: "Execute a SQL query against Snowflake, export results to S3, and notify the team."
inputParameters:
- name: warehouse
in: body
type: string
description: "The Snowflake warehouse name."
- name: database
in: body
type: string
description: "The target database."
- name: sql_statement
in: body
type: string
description: "The SQL statement to execute."
- name: s3_bucket
in: body
type: string
description: "The S3 bucket for the export."
- name: teams_channel
in: body
type: string
description: "The Teams channel for data notifications."
steps:
- name: execute-query
type: call
call: "snowflake.execute-statement"
with:
warehouse: "{{warehouse}}"
database: "{{database}}"
statement: "{{sql_statement}}"
- name: export-to-s3
type: call
call: "s3.put-object"
with:
bucket: "{{s3_bucket}}"
key: "exports/{{database}}/{{execute-query.statement_handle}}.csv"
body: "{{execute-query.result_csv}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Snowflake export complete. Query handle: {{execute-query.statement_handle}}. Rows: {{execute-query.row_count}}. S3: s3://{{s3_bucket}}/exports/{{database}}/{{execute-query.statement_handle}}.csv"
consumes:
- type: http
namespace: snowflake
baseUri: "https://accenture.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-statement
method: POST
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: aws-sigv4
access_key: "$secrets.aws_access_key"
secret_key: "$secrets.aws_secret_key"
resources:
- name: objects
path: "/{{bucket}}/{{key}}"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: put-object
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Tracks SOW expiration in Salesforce, collects delivery metrics from Jira, generates renewal proposal in Confluence, routes for approval in ServiceNow, and notifies the account team.
naftiko: "0.5"
info:
label: "SOW Renewal Orchestrator"
description: "Tracks SOW expiration in Salesforce, collects delivery metrics from Jira, generates renewal proposal in Confluence, routes for approval in ServiceNow, and notifies the account team."
tags:
- commercial
- salesforce
- jira
- confluence
- servicenow
capability:
exposes:
- type: mcp
namespace: commercial
port: 8080
tools:
- name: sow_renewal_orchestrator
description: "Orchestrate sow renewal orchestrator workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-sow
type: call
call: "salesforce.get-contract"
with:
contract_id: "{{resource_id}}"
- name: get-delivery-metrics
type: call
call: "jira.get-project-metrics"
with:
project_key: "{{get-sow.project_code}}"
- name: create-proposal
type: call
call: "confluence.create-page"
with:
space: "COMMERCIAL"
title: "SOW renewal: {{resource_id}}"
- name: create-approval
type: call
call: "servicenow.create-request"
with:
short_description: "SOW renewal: {{resource_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: confluence
baseUri: "https://accenture.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Searches Splunk for application logs at Accenture managed services environments.
naftiko: "0.5"
info:
label: "Splunk Application Log Search"
description: "Searches Splunk for application logs at Accenture managed services environments."
tags:
- devops
- splunk
- logging
capability:
exposes:
- type: mcp
namespace: logging
port: 8080
tools:
- name: search-app-logs
description: "Search application logs."
inputParameters:
- name: query
in: body
type: string
description: "The query to look up."
call: "splunk.get-query"
with:
query: "{{query}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://accenture-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: splunk_application_log_search
method: GET
Executes a Splunk search query, creates a Jira issue if critical events are found, and notifies the security team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Splunk Log Search and Alert Pipeline"
description: "Executes a Splunk search query, creates a Jira issue if critical events are found, and notifies the security team in Microsoft Teams."
tags:
- security
- observability
- splunk
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: security-logs
port: 8080
tools:
- name: search-and-alert-logs
description: "Execute a Splunk search, create a Jira issue for findings, and alert the security team."
inputParameters:
- name: search_query
in: body
type: string
description: "The Splunk SPL search query."
- name: earliest_time
in: body
type: string
description: "Search window start (e.g., -24h)."
- name: latest_time
in: body
type: string
description: "Search window end (e.g., now)."
- name: jira_project_key
in: body
type: string
description: "The Jira project key for security issues."
- name: teams_channel
in: body
type: string
description: "The Teams channel for security alerts."
steps:
- name: run-search
type: call
call: "splunk.create-search"
with:
search: "{{search_query}}"
earliest_time: "{{earliest_time}}"
latest_time: "{{latest_time}}"
- name: create-issue
type: call
call: "jira.create-issue"
with:
project_key: "{{jira_project_key}}"
issuetype: "Bug"
summary: "[Security] Splunk alert: {{run-search.event_count}} events found"
description: "Search: {{search_query}}\nTime range: {{earliest_time}} to {{latest_time}}\nEvents found: {{run-search.event_count}}\nSearch ID: {{run-search.sid}}"
- name: notify-security
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Security Alert: Splunk found {{run-search.event_count}} events. Jira: {{create-issue.key}}. Search ID: {{run-search.sid}}."
consumes:
- type: http
namespace: splunk
baseUri: "https://accenture-splunk.splunkcloud.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: searches
path: "/search/jobs"
operations:
- name: create-search
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Collects ESG metrics from client systems, aggregates in Snowflake, generates sustainability reports, and publishes to stakeholders.
naftiko: "0.5"
info:
label: "Sustainability Reporting Pipeline"
description: "Collects ESG metrics from client systems, aggregates in Snowflake, generates sustainability reports, and publishes to stakeholders."
tags:
- sustainability
- esg
- snowflake
- confluence
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: sustainability_reporting_pipeline
description: "Orchestrate sustainability reporting pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Triggers a Tableau workbook extract refresh and notifies the analytics team in Microsoft Teams when complete. Used by analytics consultants to ensure client dashboards display the latest data.
naftiko: "0.5"
info:
label: "Tableau Dashboard Refresh and Notify"
description: "Triggers a Tableau workbook extract refresh and notifies the analytics team in Microsoft Teams when complete. Used by analytics consultants to ensure client dashboards display the latest data."
tags:
- analytics
- bi
- tableau
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: analytics-tableau
port: 8080
tools:
- name: refresh-workbook-and-notify
description: "Trigger a Tableau workbook extract refresh and notify the analytics team."
inputParameters:
- name: site_id
in: body
type: string
description: "The Tableau site ID."
- name: workbook_id
in: body
type: string
description: "The Tableau workbook ID."
- name: teams_channel
in: body
type: string
description: "The Teams channel for analytics alerts."
steps:
- name: trigger-refresh
type: call
call: "tableau.refresh-workbook"
with:
site_id: "{{site_id}}"
workbook_id: "{{workbook_id}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "{{teams_channel}}"
text: "Tableau refresh triggered for workbook {{workbook_id}}. Job ID: {{trigger-refresh.job_id}}. Status: {{trigger-refresh.status}}."
consumes:
- type: http
namespace: tableau
baseUri: "https://accenture.online.tableau.com/api/3.22"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: workbooks
path: "/sites/{{site_id}}/workbooks/{{workbook_id}}/refresh"
inputParameters:
- name: site_id
in: path
- name: workbook_id
in: path
operations:
- name: refresh-workbook
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/General/messages"
inputParameters:
- name: channel
in: path
operations:
- name: send-message
method: POST
Searches consultant skills in Workday, matches against project requirements from Salesforce, creates staffing proposals, notifies resource managers.
naftiko: "0.5"
info:
label: "Talent Matching Orchestrator"
description: "Searches consultant skills in Workday, matches against project requirements from Salesforce, creates staffing proposals, notifies resource managers."
tags:
- workforce
- workday
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: workforce
port: 8080
tools:
- name: talent_matching_orchestrator
description: "Orchestrate talent matching orchestrator workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-requirements
type: call
call: "salesforce.get-staffing-needs"
with:
project_id: "{{resource_id}}"
- name: search-talent
type: call
call: "workday.search-by-skills"
with:
skills: "{{get-requirements.required_skills}}"
- name: create-proposal
type: call
call: "servicenow.create-record"
with:
table: "staffing_proposals"
project: "{{resource_id}}"
- name: notify
type: call
call: "slack.send-message"
with:
channel: "resource-mgmt"
text: "Staffing proposal for {{resource_id}}: {{search-talent.match_count}} candidates"
consumes:
- type: http
namespace: salesforce
baseUri: "https://accenture.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/accenture"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Fetches employee skill profiles from Workday, cross-references with Pluralsight learning progress, and creates a Jira improvement task when certification gaps are found.
naftiko: "0.5"
info:
label: "Talent Skills Gap Analysis Pipeline"
description: "Fetches employee skill profiles from Workday, cross-references with Pluralsight learning progress, and creates a Jira improvement task when certification gaps are found."
tags:
- talent
- learning
- workday
- pluralsight
- jira
capability:
exposes:
- type: mcp
namespace: talent-development
port: 8080
tools:
- name: analyze-skills-gap
description: "Given an employee ID and required skill list, check Workday skills and Pluralsight progress, then create a Jira task for any gaps."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee ID."
- name: required_skills
in: body
type: string
description: "Comma-separated list of required skill tags."
- name: project_key
in: body
type: string
description: "The Jira project key for talent tasks."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: get-learning-progress
type: call
call: "pluralsight.get-user-progress"
with:
email: "{{get-employee.work_email}}"
- name: create-gap-task
type: call
call: "jira.create-issue"
with:
project_key: "{{project_key}}"
issuetype: "Task"
summary: "Skills gap: {{get-employee.full_name}} — missing certifications"
description: "Employee: {{get-employee.full_name}}\nRequired: {{required_skills}}\nCompleted courses: {{get-learning-progress.completed_count}}\nIn progress: {{get-learning-progress.in_progress_count}}"
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: pluralsight
baseUri: "https://api.pluralsight.com/api-v0.9"
authentication:
type: bearer
token: "$secrets.pluralsight_token"
resources:
- name: user-progress
path: "/users/{{email}}/course-progress"
inputParameters:
- name: email
in: path
operations:
- name: get-user-progress
method: GET
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Runs a Terraform plan via GitHub Actions, parses drift output, and creates a Jira ticket with remediation details if drift is detected.
naftiko: "0.5"
info:
label: "Terraform Infrastructure Drift Detection"
description: "Runs a Terraform plan via GitHub Actions, parses drift output, and creates a Jira ticket with remediation details if drift is detected."
tags:
- devops
- infrastructure
- github
- github-actions
- jira
capability:
exposes:
- type: mcp
namespace: infra-drift
port: 8080
tools:
- name: detect-infrastructure-drift
description: "Trigger a Terraform plan workflow in GitHub Actions and create a Jira ticket if drift is found."
inputParameters:
- name: repo_owner
in: body
type: string
description: "The GitHub repository owner."
- name: repo_name
in: body
type: string
description: "The GitHub repository name."
- name: workflow_id
in: body
type: string
description: "The GitHub Actions workflow file name."
- name: jira_project_key
in: body
type: string
description: "The Jira project key for infrastructure tasks."
steps:
- name: trigger-plan
type: call
call: "github.dispatch-workflow"
with:
owner: "{{repo_owner}}"
repo: "{{repo_name}}"
workflow_id: "{{workflow_id}}"
ref: "main"
- name: create-drift-ticket
type: call
call: "jira.create-issue"
with:
project_key: "{{jira_project_key}}"
issuetype: "Task"
summary: "[Drift] Infrastructure drift detected in {{repo_owner}}/{{repo_name}}"
description: "Terraform plan workflow {{workflow_id}} triggered. Run ID: {{trigger-plan.run_id}}. Review the plan output and remediate."
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: workflows
path: "/repos/{{owner}}/{{repo}}/actions/workflows/{{workflow_id}}/dispatches"
inputParameters:
- name: owner
in: path
- name: repo
in: path
- name: workflow_id
in: path
operations:
- name: dispatch-workflow
method: POST
- type: http
namespace: jira
baseUri: "https://accenture.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Monitors timesheet submission from Workday, identifies late entries, sends reminders, escalates to managers, and reports compliance.
naftiko: "0.5"
info:
label: "Timesheet Compliance Enforcer"
description: "Monitors timesheet submission from Workday, identifies late entries, sends reminders, escalates to managers, and reports compliance."
tags:
- compliance
- timesheet
- workday
- slack
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: timesheet_compliance_enforcer
description: "Orchestrate timesheet compliance enforcer workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
Analyzes skill gaps from Workday, maps to available Pluralsight courses, creates learning plans, assigns in LMS, and notifies managers.
naftiko: "0.5"
info:
label: "Training Needs Analysis Pipeline"
description: "Analyzes skill gaps from Workday, maps to available Pluralsight courses, creates learning plans, assigns in LMS, and notifies managers."
tags:
- learning
- workday
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: learning
port: 8080
tools:
- name: training_needs_analysis_pipeline
description: "Orchestrate training needs analysis pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-skill-gaps
type: call
call: "workday.get-skill-assessment"
with:
team_id: "{{resource_id}}"
- name: find-courses
type: call
call: "pluralsight.search-courses"
with:
skills: "{{get-skill-gaps.missing_skills}}"
- name: create-plan
type: call
call: "servicenow.create-record"
with:
table: "learning_plans"
team: "{{resource_id}}"
- name: notify
type: call
call: "msteams.send-message"
with:
channel: "learning-dev"
text: "Training plan for {{resource_id}}: {{get-skill-gaps.gap_count}} gaps, {{find-courses.count}} courses"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/accenture"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://accenture.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: msteams-op
method: POST
Tracks vendor performance in ServiceNow, calculates scores in Snowflake, creates reviews in Jira, and notifies procurement.
naftiko: "0.5"
info:
label: "Vendor Management Pipeline"
description: "Tracks vendor performance in ServiceNow, calculates scores in Snowflake, creates reviews in Jira, and notifies procurement."
tags:
- procurement
- vendor
- servicenow
- jira
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: vendor_management_pipeline
description: "Orchestrate vendor management pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: fetch-data
type: call
call: "primary.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-data
type: call
call: "processor.transform"
with:
input: "{{fetch-data.result}}"
- name: create-record
type: call
call: "servicenow.create-record"
with:
table: "records"
data: "{{process-data.output}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel: "operations"
text: "Workflow {{resource_id}} complete. Record: {{create-record.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://co.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/records"
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/{{channel}}/channels/general/messages"
operations:
- name: send-message
method: POST
When a compensation change is approved in Workday, retrieves the updated salary data, logs it in Oracle Financials for budget tracking, and notifies HR Business Partner in Microsoft Teams.
naftiko: "0.5"
info:
label: "Workday Compensation Change Notification"
description: "When a compensation change is approved in Workday, retrieves the updated salary data, logs it in Oracle Financials for budget tracking, and notifies HR Business Partner in Microsoft Teams."
tags:
- hr
- compensation
- workday
- oracle
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-compensation
port: 8080
tools:
- name: process-compensation-change
description: "Given an employee ID and compensation change ID, fetch the new salary, log in Oracle, and notify HR."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee ID."
- name: compensation_change_id
in: body
type: string
description: "The Workday compensation change event ID."
- name: hrbp_upn
in: body
type: string
description: "The Microsoft UPN of the HR Business Partner."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: get-compensation
type: call
call: "workday.get-compensation"
with:
worker_id: "{{employee_id}}"
change_id: "{{compensation_change_id}}"
- name: log-budget-entry
type: call
call: "oracle.create-journal"
with:
description: "Compensation change: {{get-employee.full_name}} — {{get-compensation.new_salary}} {{get-compensation.currency}}"
amount: "{{get-compensation.new_salary}}"
cost_center: "{{get-employee.cost_center}}"
- name: notify-hrbp
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{hrbp_upn}}"
text: "Compensation Change Processed: {{get-employee.full_name}} | New salary: {{get-compensation.new_salary}} {{get-compensation.currency}} | Effective: {{get-compensation.effective_date}} | Oracle journal: {{log-budget-entry.journal_id}}"
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
- name: compensation
path: "/workers/{{worker_id}}/compensationPlans/{{change_id}}"
inputParameters:
- name: worker_id
in: path
- name: change_id
in: path
operations:
- name: get-compensation
method: GET
- type: http
namespace: oracle
baseUri: "https://accenture.oraclecloud.com/fscmRestApi/resources/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: journals
path: "/generalLedgerJournals"
operations:
- name: create-journal
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
Retrieves a Workday employee record by worker ID. Returns name, title, department, manager, and location for talent management queries.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Retrieves a Workday employee record by worker ID. Returns name, title, department, manager, and location for talent management queries."
tags:
- hr
- talent
- workday
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee
description: "Look up a Workday employee by worker ID. Returns name, title, department, manager, and office location."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.full_name"
- name: title
type: string
mapping: "$.business_title"
- name: department
type: string
mapping: "$.supervisory_organization"
- name: manager
type: string
mapping: "$.manager.full_name"
- name: location
type: string
mapping: "$.primary_work_location"
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 timesheet entries from Workday by employee ID for Accenture consultants.
naftiko: "0.5"
info:
label: "Workday Timesheet Lookup"
description: "Retrieves timesheet entries from Workday by employee ID for Accenture consultants."
tags:
- hr
- workday
- time-tracking
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-timesheet
description: "Look up timesheet by employee ID."
inputParameters:
- name: employee_id
in: body
type: string
description: "The employee_id to look up."
call: "workday.get-employee_id"
with:
employee_id: "{{employee_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/accenture"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday_timesheet_lookup
method: GET
When a Zendesk ticket priority is set to urgent, creates a ServiceNow incident, assigns it based on Workday org data, and notifies the on-call manager in Microsoft Teams.
naftiko: "0.5"
info:
label: "Zendesk Ticket Escalation Pipeline"
description: "When a Zendesk ticket priority is set to urgent, creates a ServiceNow incident, assigns it based on Workday org data, and notifies the on-call manager in Microsoft Teams."
tags:
- support
- escalation
- zendesk
- servicenow
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: support-escalation
port: 8080
tools:
- name: escalate-urgent-ticket
description: "Given a Zendesk ticket ID and assigned team, escalate to ServiceNow and notify the on-call manager."
inputParameters:
- name: zendesk_ticket_id
in: body
type: string
description: "The Zendesk ticket ID."
- name: assigned_team
in: body
type: string
description: "The team slug responsible for the ticket."
- name: oncall_manager_id
in: body
type: string
description: "The Workday worker ID of the on-call manager."
steps:
- name: get-ticket
type: call
call: "zendesk.get-ticket"
with:
ticket_id: "{{zendesk_ticket_id}}"
- name: get-manager
type: call
call: "workday.get-worker"
with:
worker_id: "{{oncall_manager_id}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Escalation: {{get-ticket.subject}}"
priority: "1"
assigned_group: "{{assigned_team}}"
description: "Zendesk #{{zendesk_ticket_id}}: {{get-ticket.description}}. Requestor: {{get-ticket.requester_name}}."
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-manager.work_email}}"
text: "URGENT Escalation: Zendesk #{{zendesk_ticket_id}} — {{get-ticket.subject}}. ServiceNow: {{create-incident.number}}. Please review immediately."
consumes:
- type: http
namespace: zendesk
baseUri: "https://accenture.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
- 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://accenture.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: 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
Fetches the recording URL for a completed Zoom meeting. Used by consultants to retrieve client workshop recordings for documentation.
naftiko: "0.5"
info:
label: "Zoom Meeting Recording Retrieval"
description: "Fetches the recording URL for a completed Zoom meeting. Used by consultants to retrieve client workshop recordings for documentation."
tags:
- collaboration
- meetings
- zoom
capability:
exposes:
- type: mcp
namespace: collab-recordings
port: 8080
tools:
- name: get-meeting-recording
description: "Retrieve Zoom meeting recording URLs by meeting ID."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting ID."
call: "zoom.get-recordings"
with:
meeting_id: "{{meeting_id}}"
outputParameters:
- name: recording_count
type: string
mapping: "$.recording_count"
- name: download_url
type: string
mapping: "$.recording_files[0].download_url"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: recordings
path: "/meetings/{{meeting_id}}/recordings"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-recordings
method: GET