Atlassian Capabilities
Naftiko 0.5 capability definitions for Atlassian - 100 capabilities showing integration workflows and service orchestrations.
Collects access entitlements, routes for review, revokes expired access, and creates audit records.
naftiko: "0.5"
info:
label: "Access Review Certification Pipeline"
description: "Collects access entitlements, routes for review, revokes expired access, and creates audit records."
tags:
- security
- okta
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: access_review_certification_pipeline
description: "Orchestrate access review certification pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Access Review Certification Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
Identifies deprecated API consumers, sends migration notices, tracks adoption, and reports progress.
naftiko: "0.5"
info:
label: "API Deprecation Notice Pipeline"
description: "Identifies deprecated API consumers, sends migration notices, tracks adoption, and reports progress."
tags:
- engineering
- datadog
- jira
- slack
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: api_deprecation_notice_pipeline
description: "Orchestrate api deprecation notice pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-datadog
type: call
call: "datadog.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-datadog.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "API Deprecation Notice Pipeline step 3 complete."
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://atlassian.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
Creates a numbered ADR page in Confluence, links it to a Jira architecture decision ticket, and posts the ADR summary to a Slack architecture channel.
naftiko: "0.5"
info:
label: "Architecture Decision Record Publisher"
description: "Creates a numbered ADR page in Confluence, links it to a Jira architecture decision ticket, and posts the ADR summary to a Slack architecture channel."
tags:
- architecture
- documentation
- confluence
- jira
- slack
capability:
exposes:
- type: mcp
namespace: adr-publishing
port: 8080
tools:
- name: publish-adr
description: "Publish an Architecture Decision Record to Confluence, link to Jira, and notify Slack."
inputParameters:
- name: adr_number
in: body
type: string
description: "ADR sequential number."
- name: title
in: body
type: string
description: "ADR title."
- name: context
in: body
type: string
description: "Context and problem statement."
- name: decision
in: body
type: string
description: "The decision made."
- name: space_key
in: body
type: string
description: "Confluence space key."
- name: issue_key
in: body
type: string
description: "Related Jira issue key."
- name: slack_channel
in: body
type: string
description: "Architecture Slack channel."
steps:
- name: create-adr-page
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "ADR-{{adr_number}}: {{title}}"
body:
representation: "storage"
value: "<h2>Context</h2><p>{{context}}</p><h2>Decision</h2><p>{{decision}}</p>"
- name: link-to-jira
type: call
call: "jira.add-comment"
with:
issue_key: "{{issue_key}}"
body: "ADR-{{adr_number}} published: {{title}}"
- name: notify-architects
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "New ADR published: ADR-{{adr_number}} - {{title}}. Decision: {{decision}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: comments
path: "/issue/{{issue_key}}/comment"
inputParameters:
- name: issue_key
in: path
operations:
- name: add-comment
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves current monitoring alert status. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Alert Status Check"
description: "Retrieves current monitoring alert status. Used by Atlassian teams."
tags:
- software
- pagerduty
capability:
exposes:
- type: mcp
namespace: pagerduty
port: 8080
tools:
- name: get-alert_status_check
description: "Retrieves current monitoring alert status. Used by Atlassian teams."
inputParameters:
- name: alert_id
in: body
type: string
description: "The alert_id to look up."
call: "pagerduty.get-alert_id"
with:
alert_id: "{{alert_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: atlassian_alert_status_check
method: GET
Checks availability of an API endpoint. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian API Endpoint Status"
description: "Checks availability of an API endpoint. Used by Atlassian teams."
tags:
- software
- splunk
capability:
exposes:
- type: mcp
namespace: splunk
port: 8080
tools:
- name: get-api_endpoint_status
description: "Checks availability of an API endpoint. Used by Atlassian teams."
inputParameters:
- name: endpoint_url
in: body
type: string
description: "The endpoint_url to look up."
call: "splunk.get-endpoint_url"
with:
endpoint_url: "{{endpoint_url}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://atlassian-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: atlassian_api_endpoint_status
method: GET
Retrieves compliance check status. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Compliance Check Status"
description: "Retrieves compliance check status. Used by Atlassian teams."
tags:
- software
- docker
capability:
exposes:
- type: mcp
namespace: docker
port: 8080
tools:
- name: get-compliance_check_status
description: "Retrieves compliance check status. Used by Atlassian teams."
inputParameters:
- name: check_id
in: body
type: string
description: "The check_id to look up."
call: "docker.get-check_id"
with:
check_id: "{{check_id}}"
consumes:
- type: http
namespace: docker
baseUri: "https://hub.docker.com/v2"
authentication:
type: bearer
token: "$secrets.docker_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: atlassian_compliance_check_sta
method: GET
Searches application logs for matching patterns. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Log Search Query"
description: "Searches application logs for matching patterns. Used by Atlassian teams."
tags:
- software
- confluence
capability:
exposes:
- type: mcp
namespace: confluence
port: 8080
tools:
- name: get-log_search_query
description: "Searches application logs for matching patterns. Used by Atlassian teams."
inputParameters:
- name: search_query
in: body
type: string
description: "The search_query to look up."
call: "confluence.get-search_query"
with:
search_query: "{{search_query}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian.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: atlassian_confluence_log_searc
method: GET
Queries cost and spending data. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Cost Report Query"
description: "Queries cost and spending data. Used by Atlassian teams."
tags:
- software
- powerbi
capability:
exposes:
- type: mcp
namespace: powerbi
port: 8080
tools:
- name: get-cost_report_query
description: "Queries cost and spending data. Used by Atlassian teams."
inputParameters:
- name: cost_center
in: body
type: string
description: "The cost_center to look up."
call: "powerbi.get-cost_center"
with:
cost_center: "{{cost_center}}"
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: atlassian_cost_report_query
method: GET
Detects SLA breaches, escalates to engineering, creates priority tickets, and notifies account managers.
naftiko: "0.5"
info:
label: "Customer Issue Escalation Pipeline"
description: "Detects SLA breaches, escalates to engineering, creates priority tickets, and notifies account managers."
tags:
- support
- jira
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: support
port: 8080
tools:
- name: atlassian_customer_issue_escalation_pipe
description: "Orchestrate customer issue escalation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Customer Issue Escalation Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
Executes a read-only analytics query. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Database Query Runner"
description: "Executes a read-only analytics query. Used by Atlassian teams."
tags:
- software
- slack
capability:
exposes:
- type: mcp
namespace: slack
port: 8080
tools:
- name: get-database_query_runner
description: "Executes a read-only analytics query. Used by Atlassian teams."
inputParameters:
- name: sql_query
in: body
type: string
description: "The sql_query to look up."
call: "slack.get-sql_query"
with:
sql_query: "{{sql_query}}"
consumes:
- 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: atlassian_database_query_runne
method: GET
Checks status of a recent deployment. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Deployment Status Check"
description: "Checks status of a recent deployment. Used by Atlassian teams."
tags:
- software
- snowflake
capability:
exposes:
- type: mcp
namespace: snowflake
port: 8080
tools:
- name: get-deployment_status_check
description: "Checks status of a recent deployment. Used by Atlassian teams."
inputParameters:
- name: deployment_id
in: body
type: string
description: "The deployment_id to look up."
call: "snowflake.get-deployment_id"
with:
deployment_id: "{{deployment_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://atlassian.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: atlassian_deployment_status_ch
method: GET
Collects development metrics, analyzes trends, generates reports, and distributes to engineering leads.
naftiko: "0.5"
info:
label: "Developer Productivity Metrics Pipeline"
description: "Collects development metrics, analyzes trends, generates reports, and distributes to engineering leads."
tags:
- engineering
- github
- snowflake
- powerbi
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: atlassian_developer_productivity_metrics
description: "Orchestrate developer productivity metrics pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-github
type: call
call: "github.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
data: "{{get-github.result}}"
- name: create-powerbi
type: call
call: "powerbi.create-resource"
with:
channel: "{{notification_channel}}"
text: "Developer Productivity Metrics Pipeline step 3 complete."
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: snowflake
baseUri: "https://atlassian.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
Retrieves a document from knowledge management. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Document Retrieval"
description: "Retrieves a document from knowledge management. Used by Atlassian teams."
tags:
- software
- elasticsearch
capability:
exposes:
- type: mcp
namespace: elasticsearc
port: 8080
tools:
- name: get-document_retrieval
description: "Retrieves a document from knowledge management. Used by Atlassian teams."
inputParameters:
- name: document_id
in: body
type: string
description: "The document_id to look up."
call: "elasticsearch.get-document_id"
with:
document_id: "{{document_id}}"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://atlassian-es.com:9200"
authentication:
type: bearer
token: "$secrets.elasticsearch_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: atlassian_document_retrieval
method: GET
Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers.
naftiko: "0.5"
info:
label: "Employee Onboarding Automation Pipeline"
description: "Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers."
tags:
- hr
- workday
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: atlassian_employee_onboarding_automation
description: "Orchestrate employee onboarding automation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Employee Onboarding Automation Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
Queries metric values from a monitoring dashboard. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Metric Dashboard Query"
description: "Queries metric values from a monitoring dashboard. Used by Atlassian teams."
tags:
- software
- github
capability:
exposes:
- type: mcp
namespace: github
port: 8080
tools:
- name: get-metric_dashboard_query
description: "Queries metric values from a monitoring dashboard. Used by Atlassian teams."
inputParameters:
- name: metric_name
in: body
type: string
description: "The metric_name to look up."
call: "github.get-metric_name"
with:
metric_name: "{{metric_name}}"
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: atlassian_github_metric_dashbo
method: GET
Collects incident data, generates timeline, creates postmortem document, and schedules review meeting.
naftiko: "0.5"
info:
label: "Incident Postmortem Pipeline"
description: "Collects incident data, generates timeline, creates postmortem document, and schedules review meeting."
tags:
- sre
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: sre
port: 8080
tools:
- name: atlassian_incident_postmortem_pipeline
description: "Orchestrate incident postmortem pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Incident Postmortem Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
Attributes cloud costs to teams, generates chargeback reports, and distributes to engineering managers.
naftiko: "0.5"
info:
label: "Infrastructure Cost Allocation Pipeline"
description: "Attributes cloud costs to teams, generates chargeback reports, and distributes to engineering managers."
tags:
- finops
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: finops
port: 8080
tools:
- name: atlassian_infrastructure_cost_allocation
description: "Orchestrate infrastructure cost allocation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-powerbi
type: call
call: "powerbi.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Infrastructure Cost Allocation Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://atlassian.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 the health status of a monitored service. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Service Health Check"
description: "Checks the health status of a monitored service. Used by Atlassian teams."
tags:
- software
- jira
capability:
exposes:
- type: mcp
namespace: jira
port: 8080
tools:
- name: get-service_health_check
description: "Checks the health status of a monitored service. Used by Atlassian teams."
inputParameters:
- name: health_target
in: body
type: string
description: "The health_target to look up."
call: "jira.get-health_target"
with:
health_target: "{{health_target}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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: atlassian_jira_service_health_
method: GET
Searches application logs for matching patterns. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Log Search Query"
description: "Searches application logs for matching patterns. Used by Atlassian teams."
tags:
- software
- confluence
capability:
exposes:
- type: mcp
namespace: confluence
port: 8080
tools:
- name: get-log_search_query
description: "Searches application logs for matching patterns. Used by Atlassian teams."
inputParameters:
- name: search_query
in: body
type: string
description: "The search_query to look up."
call: "confluence.get-search_query"
with:
search_query: "{{search_query}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian.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: atlassian_log_search_query
method: GET
Queries metric values from a monitoring dashboard. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Metric Dashboard Query"
description: "Queries metric values from a monitoring dashboard. Used by Atlassian teams."
tags:
- software
- github
capability:
exposes:
- type: mcp
namespace: github
port: 8080
tools:
- name: get-metric_dashboard_query
description: "Queries metric values from a monitoring dashboard. Used by Atlassian teams."
inputParameters:
- name: metric_name
in: body
type: string
description: "The metric_name to look up."
call: "github.get-metric_name"
with:
metric_name: "{{metric_name}}"
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: atlassian_metric_dashboard_que
method: GET
Checks the current status of a project. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Project Status Check"
description: "Checks the current status of a project. Used by Atlassian teams."
tags:
- software
- grafana
capability:
exposes:
- type: mcp
namespace: grafana
port: 8080
tools:
- name: get-project_status_check
description: "Checks the current status of a project. Used by Atlassian teams."
inputParameters:
- name: project_key
in: body
type: string
description: "The project_key to look up."
call: "grafana.get-project_key"
with:
project_key: "{{project_key}}"
consumes:
- type: http
namespace: grafana
baseUri: "https://atlassian-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: atlassian_project_status_check
method: GET
Validates release criteria, checks test coverage, verifies documentation, and approves deployment.
naftiko: "0.5"
info:
label: "Release Readiness Checklist Pipeline"
description: "Validates release criteria, checks test coverage, verifies documentation, and approves deployment."
tags:
- devops
- jira
- github
- confluence
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: atlassian_release_readiness_checklist_pi
description: "Orchestrate release readiness checklist pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-github
type: call
call: "github.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-confluence
type: call
call: "confluence.create-resource"
with:
channel: "{{notification_channel}}"
text: "Release Readiness Checklist Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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: 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: confluence
baseUri: "https://atlassian.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 code repository information. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Repository Info Lookup"
description: "Retrieves code repository information. Used by Atlassian teams."
tags:
- software
- prometheus
capability:
exposes:
- type: mcp
namespace: prometheus
port: 8080
tools:
- name: get-repository_info_lookup
description: "Retrieves code repository information. Used by Atlassian teams."
inputParameters:
- name: repo_name
in: body
type: string
description: "The repo_name to look up."
call: "prometheus.get-repo_name"
with:
repo_name: "{{repo_name}}"
consumes:
- type: http
namespace: prometheus
baseUri: "https://atlassian-prometheus.com/api/v1"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: atlassian_repository_info_look
method: GET
Detects security incidents, enriches with context, creates response tickets, and notifies the SOC.
naftiko: "0.5"
info:
label: "Security Incident Response Pipeline"
description: "Detects security incidents, enriches with context, creates response tickets, and notifies the SOC."
tags:
- security
- splunk
- servicenow
- pagerduty
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: atlassian_security_incident_response_pip
description: "Orchestrate security incident response pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-splunk
type: call
call: "splunk.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-splunk.result}}"
- name: create-pagerduty
type: call
call: "pagerduty.create-resource"
with:
channel: "{{notification_channel}}"
text: "Security Incident Response Pipeline step 3 complete."
consumes:
- type: http
namespace: splunk
baseUri: "https://atlassian-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: splunk-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://atlassian.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: 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
Retrieves vulnerability scan results. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Security Scan Results"
description: "Retrieves vulnerability scan results. Used by Atlassian teams."
tags:
- software
- servicenow
capability:
exposes:
- type: mcp
namespace: servicenow
port: 8080
tools:
- name: get-security_scan_results
description: "Retrieves vulnerability scan results. Used by Atlassian teams."
inputParameters:
- name: scan_id
in: body
type: string
description: "The scan_id to look up."
call: "servicenow.get-scan_id"
with:
scan_id: "{{scan_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://atlassian.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: atlassian_security_scan_result
method: GET
Checks the health status of a monitored service. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Service Health Check"
description: "Checks the health status of a monitored service. Used by Atlassian teams."
tags:
- software
- jira
capability:
exposes:
- type: mcp
namespace: jira
port: 8080
tools:
- name: get-service_health_check
description: "Checks the health status of a monitored service. Used by Atlassian teams."
inputParameters:
- name: health_target
in: body
type: string
description: "The health_target to look up."
call: "jira.get-health_target"
with:
health_target: "{{health_target}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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: atlassian_service_health_check
method: GET
Retrieves the details of a support ticket. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian Ticket Details Lookup"
description: "Retrieves the details of a support ticket. Used by Atlassian teams."
tags:
- software
- kubernetes
capability:
exposes:
- type: mcp
namespace: kubernetes
port: 8080
tools:
- name: get-ticket_details_lookup
description: "Retrieves the details of a support ticket. Used by Atlassian teams."
inputParameters:
- name: ticket_id
in: body
type: string
description: "The ticket_id to look up."
call: "kubernetes.get-ticket_id"
with:
ticket_id: "{{ticket_id}}"
consumes:
- type: http
namespace: k8s
baseUri: "https://atlassian-k8s.com/api/v1"
authentication:
type: bearer
token: "$secrets.k8s_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: atlassian_ticket_details_looku
method: GET
Retrieves user account details from the directory. Used by Atlassian teams.
naftiko: "0.5"
info:
label: "Atlassian User Account Lookup"
description: "Retrieves user account details from the directory. Used by Atlassian teams."
tags:
- software
- datadog
capability:
exposes:
- type: mcp
namespace: datadog
port: 8080
tools:
- name: get-user_account_lookup
description: "Retrieves user account details from the directory. Used by Atlassian teams."
inputParameters:
- name: user_id
in: body
type: string
description: "The user_id to look up."
call: "datadog.get-user_id"
with:
user_id: "{{user_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: atlassian_user_account_lookup
method: GET
Searches code across Bitbucket repositories in a workspace using a query string. Returns matching file paths and snippets.
naftiko: "0.5"
info:
label: "Bitbucket Code Search"
description: "Searches code across Bitbucket repositories in a workspace using a query string. Returns matching file paths and snippets."
tags:
- source-code-management
- search
- bitbucket
capability:
exposes:
- type: mcp
namespace: bitbucket-search
port: 8080
tools:
- name: search-code
description: "Search code across Bitbucket repositories by query string."
inputParameters:
- name: workspace
in: body
type: string
description: "Bitbucket workspace slug."
- name: search_query
in: body
type: string
description: "Code search query."
call: "bitbucket.search-code"
with:
workspace: "{{workspace}}"
search_query: "{{search_query}}"
outputParameters:
- name: results
type: string
mapping: "$.values"
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: code-search
path: "/workspaces/{{workspace}}/search/code"
inputParameters:
- name: workspace
in: path
- name: search_query
in: query
operations:
- name: search-code
method: GET
Checks the latest pipeline run status for a Bitbucket repository. Returns build state, result, duration, and trigger type.
naftiko: "0.5"
info:
label: "Bitbucket Pipeline Status"
description: "Checks the latest pipeline run status for a Bitbucket repository. Returns build state, result, duration, and trigger type."
tags:
- ci-cd
- pipelines
- bitbucket
capability:
exposes:
- type: mcp
namespace: bitbucket-pipelines
port: 8080
tools:
- name: get-latest-pipeline
description: "Get the latest Bitbucket Pipeline run for a repository."
inputParameters:
- name: workspace
in: body
type: string
description: "The Bitbucket workspace slug."
- name: repo_slug
in: body
type: string
description: "The repository slug."
call: "bitbucket.get-pipelines"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
outputParameters:
- name: state
type: string
mapping: "$.values[0].state.name"
- name: result
type: string
mapping: "$.values[0].state.result.name"
- name: duration
type: string
mapping: "$.values[0].duration_in_seconds"
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: pipelines
path: "/repositories/{{workspace}}/{{repo_slug}}/pipelines/"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
operations:
- name: get-pipelines
method: GET
Retrieves details for a specific Bitbucket pull request including title, state, reviewers, and merge status.
naftiko: "0.5"
info:
label: "Bitbucket Pull Request Details"
description: "Retrieves details for a specific Bitbucket pull request including title, state, reviewers, and merge status."
tags:
- code-review
- version-control
- bitbucket
capability:
exposes:
- type: mcp
namespace: bitbucket-prs
port: 8080
tools:
- name: get-pull-request
description: "Fetch a Bitbucket pull request by workspace, repo slug, and PR ID."
inputParameters:
- name: workspace
in: body
type: string
description: "The Bitbucket workspace slug."
- name: repo_slug
in: body
type: string
description: "The repository slug."
- name: pr_id
in: body
type: string
description: "The pull request ID."
call: "bitbucket.get-pr"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
pr_id: "{{pr_id}}"
outputParameters:
- name: title
type: string
mapping: "$.title"
- name: state
type: string
mapping: "$.state"
- name: author
type: string
mapping: "$.author.display_name"
- name: reviewers
type: string
mapping: "$.reviewers"
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: pull-requests
path: "/repositories/{{workspace}}/{{repo_slug}}/pullrequests/{{pr_id}}"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
- name: pr_id
in: path
operations:
- name: get-pr
method: GET
Retrieves metadata for a Bitbucket Cloud repository including default branch, language, and last updated timestamp.
naftiko: "0.5"
info:
label: "Bitbucket Repository Info"
description: "Retrieves metadata for a Bitbucket Cloud repository including default branch, language, and last updated timestamp."
tags:
- source-code-management
- version-control
- bitbucket
capability:
exposes:
- type: mcp
namespace: bitbucket-repos
port: 8080
tools:
- name: get-repository
description: "Get Bitbucket repository metadata by workspace and repo slug."
inputParameters:
- name: workspace
in: body
type: string
description: "The Bitbucket workspace slug."
- name: repo_slug
in: body
type: string
description: "The repository slug."
call: "bitbucket.get-repo"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
outputParameters:
- name: full_name
type: string
mapping: "$.full_name"
- name: default_branch
type: string
mapping: "$.mainbranch.name"
- name: language
type: string
mapping: "$.language"
- name: updated_on
type: string
mapping: "$.updated_on"
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: repositories
path: "/repositories/{{workspace}}/{{repo_slug}}"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
operations:
- name: get-repo
method: GET
Creates a Jira bug issue from a structured report and posts a notification to a designated Slack channel with the new issue link.
naftiko: "0.5"
info:
label: "Bug Report to Jira with Slack Notification"
description: "Creates a Jira bug issue from a structured report and posts a notification to a designated Slack channel with the new issue link."
tags:
- bug-tracking
- project-management
- jira
- slack
- notifications
capability:
exposes:
- type: mcp
namespace: bug-reporting
port: 8080
tools:
- name: file-bug-report
description: "Create a Jira bug from a report summary and severity, then notify a Slack channel."
inputParameters:
- name: project_key
in: body
type: string
description: "The Jira project key."
- name: summary
in: body
type: string
description: "Bug summary."
- name: description
in: body
type: string
description: "Detailed bug description."
- name: priority
in: body
type: string
description: "Priority name (e.g. High, Medium, Low)."
- name: slack_channel
in: body
type: string
description: "Slack channel ID for notification."
steps:
- name: create-bug
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "{{project_key}}"
summary: "{{summary}}"
description: "{{description}}"
issuetype:
name: "Bug"
priority:
name: "{{priority}}"
- name: notify-channel
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "New bug filed: [{{create-bug.key}}] {{summary}} - Priority: {{priority}}. View: https://atlassian-corp.atlassian.net/browse/{{create-bug.key}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Collects Prometheus resource metrics and Jira workload data, then publishes an updated capacity planning page in Confluence for engineering leadership.
naftiko: "0.5"
info:
label: "Capacity Planning Dashboard Updater"
description: "Collects Prometheus resource metrics and Jira workload data, then publishes an updated capacity planning page in Confluence for engineering leadership."
tags:
- capacity-planning
- monitoring
- prometheus
- jira
- confluence
capability:
exposes:
- type: mcp
namespace: capacity-planning
port: 8080
tools:
- name: update-capacity-dashboard
description: "Gather resource metrics from Prometheus and workload from Jira, then update Confluence capacity page."
inputParameters:
- name: promql_cpu
in: body
type: string
description: "PromQL query for CPU utilization."
- name: promql_memory
in: body
type: string
description: "PromQL query for memory utilization."
- name: project_key
in: body
type: string
description: "Jira project key for workload."
- name: page_id
in: body
type: string
description: "Confluence capacity page ID."
steps:
- name: query-cpu
type: call
call: "prometheus.instant-query"
with:
query: "{{promql_cpu}}"
- name: query-memory
type: call
call: "prometheus.instant-query"
with:
query: "{{promql_memory}}"
- name: query-workload
type: call
call: "jira.search-issues"
with:
jql: "project = {{project_key}} AND status != Done"
maxResults: "1"
- name: update-page
type: call
call: "confluence.update-page"
with:
page_id: "{{page_id}}"
title: "Capacity Planning Dashboard"
body:
representation: "storage"
value: "<h2>Resource Utilization</h2><p>CPU: {{query-cpu.data.result}}</p><p>Memory: {{query-memory.data.result}}</p><h2>Workload</h2><p>Open issues: {{query-workload.total}}</p>"
consumes:
- type: http
namespace: prometheus
baseUri: "https://prometheus.atlassian-corp.com/api/v1"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: query
path: "/query"
inputParameters:
- name: query
in: query
operations:
- name: instant-query
method: GET
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search"
operations:
- name: search-issues
method: POST
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: update-page
method: PUT
Analyzes resource utilization trends, forecasts capacity needs, creates procurement requests, and reports.
naftiko: "0.5"
info:
label: "Capacity Planning Forecast Pipeline"
description: "Analyzes resource utilization trends, forecasts capacity needs, creates procurement requests, and reports."
tags:
- infrastructure
- grafana
- snowflake
- powerbi
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: capacity_planning_forecast_pipeline
description: "Orchestrate capacity planning forecast pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-grafana
type: call
call: "grafana.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
data: "{{get-grafana.result}}"
- name: create-powerbi
type: call
call: "powerbi.create-resource"
with:
channel: "{{notification_channel}}"
text: "Capacity Planning Forecast Pipeline step 3 complete."
consumes:
- type: http
namespace: grafana
baseUri: "https://atlassian-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: snowflake
baseUri: "https://atlassian.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
Validates change requests, routes for approval, schedules implementation, and notifies stakeholders.
naftiko: "0.5"
info:
label: "Change Management Approval Pipeline"
description: "Validates change requests, routes for approval, schedules implementation, and notifies stakeholders."
tags:
- itsm
- servicenow
- jira
- slack
capability:
exposes:
- type: mcp
namespace: itsm
port: 8080
tools:
- name: change_management_approval_pipeline
description: "Orchestrate change management approval pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Change Management Approval Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://atlassian.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: jira
baseUri: "https://atlassian.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
Creates a Jira change request issue, attaches a Confluence impact assessment page, obtains approval comments, and notifies the release channel on Slack.
naftiko: "0.5"
info:
label: "Change Request Workflow"
description: "Creates a Jira change request issue, attaches a Confluence impact assessment page, obtains approval comments, and notifies the release channel on Slack."
tags:
- change-management
- devops
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: change-management
port: 8080
tools:
- name: submit-change-request
description: "Submit a change request through Jira, document impact in Confluence, and notify on Slack."
inputParameters:
- name: summary
in: body
type: string
description: "Change request summary."
- name: impact_description
in: body
type: string
description: "Detailed impact assessment."
- name: project_key
in: body
type: string
description: "Jira project key."
- name: space_key
in: body
type: string
description: "Confluence space key for impact docs."
- name: slack_channel
in: body
type: string
description: "Slack release channel ID."
steps:
- name: create-change-request
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "{{project_key}}"
summary: "CR: {{summary}}"
issuetype:
name: "Change Request"
description: "{{impact_description}}"
- name: create-impact-page
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "Impact Assessment: {{summary}}"
body:
representation: "storage"
value: "<h2>Change Request: {{create-change-request.key}}</h2><p>{{impact_description}}</p>"
- name: notify-release-channel
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Change Request submitted: {{create-change-request.key}} - {{summary}}. Impact doc: https://atlassian-corp.atlassian.net/wiki/spaces/{{space_key}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Triggers a Bitbucket Pipeline build, waits for SonarQube quality gate results, and posts the combined status to Jira and Slack.
naftiko: "0.5"
info:
label: "CI/CD Pipeline with Quality Gate"
description: "Triggers a Bitbucket Pipeline build, waits for SonarQube quality gate results, and posts the combined status to Jira and Slack."
tags:
- ci-cd
- code-quality
- bitbucket
- sonarqube
- jira
- slack
capability:
exposes:
- type: mcp
namespace: cicd-quality
port: 8080
tools:
- name: run-pipeline-with-gate
description: "Trigger a Bitbucket Pipeline, check SonarQube quality gate, and report status to Jira and Slack."
inputParameters:
- name: workspace
in: body
type: string
description: "Bitbucket workspace slug."
- name: repo_slug
in: body
type: string
description: "Repository slug."
- name: branch
in: body
type: string
description: "Branch to build."
- name: sonar_project_key
in: body
type: string
description: "SonarQube project key."
- name: issue_key
in: body
type: string
description: "Associated Jira issue key."
- name: slack_channel
in: body
type: string
description: "Slack channel for build notifications."
steps:
- name: trigger-pipeline
type: call
call: "bitbucket.trigger-pipeline"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
target:
ref_type: "branch"
ref_name: "{{branch}}"
- name: check-quality-gate
type: call
call: "sonarqube.get-quality-gate"
with:
project_key: "{{sonar_project_key}}"
- name: comment-on-jira
type: call
call: "jira.add-comment"
with:
issue_key: "{{issue_key}}"
body: "Build triggered for {{branch}}. Pipeline: {{trigger-pipeline.uuid}}. SonarQube gate: {{check-quality-gate.projectStatus.status}}."
- name: notify-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Build for {{repo_slug}}/{{branch}}: Pipeline {{trigger-pipeline.uuid}}. Quality gate: {{check-quality-gate.projectStatus.status}}. Jira: {{issue_key}}."
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: pipelines
path: "/repositories/{{workspace}}/{{repo_slug}}/pipelines/"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
operations:
- name: trigger-pipeline
method: POST
- type: http
namespace: sonarqube
baseUri: "https://sonarqube.atlassian-corp.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: quality-gate
path: "/qualitygates/project_status"
inputParameters:
- name: project_key
in: query
operations:
- name: get-quality-gate
method: GET
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: comments
path: "/issue/{{issue_key}}/comment"
inputParameters:
- name: issue_key
in: path
operations:
- name: add-comment
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Collects audit events, validates against policies, generates compliance reports, and notifies auditors.
naftiko: "0.5"
info:
label: "Compliance Audit Trail Pipeline"
description: "Collects audit events, validates against policies, generates compliance reports, and notifies auditors."
tags:
- compliance
- elasticsearch
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: compliance_audit_trail_pipeline
description: "Orchestrate compliance audit trail pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-elasticsearch
type: call
call: "elasticsearch.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-elasticsearch.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Compliance Audit Trail Pipeline step 3 complete."
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://atlassian-es.com:9200"
authentication:
type: bearer
token: "$secrets.elasticsearch_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: elasticsearch-op
method: POST
- type: http
namespace: confluence
baseUri: "https://atlassian.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
Retrieves all inline and footer comments on a Confluence page. Used by content reviewers to audit feedback.
naftiko: "0.5"
info:
label: "Confluence Page Comment Thread"
description: "Retrieves all inline and footer comments on a Confluence page. Used by content reviewers to audit feedback."
tags:
- knowledge-base
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: confluence-comments
port: 8080
tools:
- name: get-page-comments
description: "List all comments on a Confluence page by page ID."
inputParameters:
- name: page_id
in: body
type: string
description: "The Confluence page ID."
call: "confluence.get-comments"
with:
page_id: "{{page_id}}"
outputParameters:
- name: comments
type: string
mapping: "$.results"
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: comments
path: "/pages/{{page_id}}/footer-comments"
inputParameters:
- name: page_id
in: path
operations:
- name: get-comments
method: GET
Fetches a Confluence page by ID and returns the title, body content, version, and last modifier. Used by knowledge management teams to surface documentation.
naftiko: "0.5"
info:
label: "Confluence Page Retrieval"
description: "Fetches a Confluence page by ID and returns the title, body content, version, and last modifier. Used by knowledge management teams to surface documentation."
tags:
- knowledge-base
- documentation
- confluence
capability:
exposes:
- type: mcp
namespace: confluence-pages
port: 8080
tools:
- name: get-page
description: "Retrieve a Confluence page by ID. Returns title, body HTML, version number, and last editor."
inputParameters:
- name: page_id
in: body
type: string
description: "The Confluence page ID."
call: "confluence.get-page"
with:
page_id: "{{page_id}}"
outputParameters:
- name: title
type: string
mapping: "$.title"
- name: body
type: string
mapping: "$.body.storage.value"
- name: version
type: string
mapping: "$.version.number"
- name: last_modified_by
type: string
mapping: "$.version.by.displayName"
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
Searches Confluence content using CQL and returns page titles, space keys, and URLs. Used for knowledge discovery across documentation.
naftiko: "0.5"
info:
label: "Confluence Search"
description: "Searches Confluence content using CQL and returns page titles, space keys, and URLs. Used for knowledge discovery across documentation."
tags:
- knowledge-base
- search
- confluence
capability:
exposes:
- type: mcp
namespace: confluence-search
port: 8080
tools:
- name: search-content
description: "Search Confluence content using CQL (Confluence Query Language)."
inputParameters:
- name: cql
in: body
type: string
description: "The CQL query string."
call: "confluence.search"
with:
cql: "{{cql}}"
outputParameters:
- name: results
type: string
mapping: "$.results"
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/search"
inputParameters:
- name: cql
in: query
operations:
- name: search
method: GET
Lists all Confluence spaces accessible to the authenticated user. Returns space keys, names, and types for navigation and discovery.
naftiko: "0.5"
info:
label: "Confluence Space List"
description: "Lists all Confluence spaces accessible to the authenticated user. Returns space keys, names, and types for navigation and discovery."
tags:
- knowledge-base
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: confluence-spaces
port: 8080
tools:
- name: list-spaces
description: "List all Confluence spaces. Returns space key, name, and type."
inputParameters: []
call: "confluence.list-spaces"
with: {}
outputParameters:
- name: spaces
type: string
mapping: "$.results"
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: spaces
path: "/spaces"
operations:
- name: list-spaces
method: GET
Tracks spending against budgets, forecasts overruns, creates alerts, and notifies finance leaders.
naftiko: "0.5"
info:
label: "Cost Center Budget Tracking Pipeline"
description: "Tracks spending against budgets, forecasts overruns, creates alerts, and notifies finance leaders."
tags:
- finance
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: finance
port: 8080
tools:
- name: cost_center_budget_tracking
description: "Orchestrate cost center budget tracking pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-powerbi
type: call
call: "powerbi.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Cost Center Budget Tracking Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://atlassian.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
Pings Jira, Confluence, Bitbucket, and Slack API health endpoints and compiles a unified status report for platform reliability monitoring.
naftiko: "0.5"
info:
label: "Cross-Service Health Check"
description: "Pings Jira, Confluence, Bitbucket, and Slack API health endpoints and compiles a unified status report for platform reliability monitoring."
tags:
- monitoring
- platform-health
- jira
- confluence
- bitbucket
- slack
capability:
exposes:
- type: mcp
namespace: platform-health
port: 8080
tools:
- name: check-platform-health
description: "Check health status of Jira, Confluence, Bitbucket, and Slack APIs."
inputParameters: []
steps:
- name: check-jira
type: call
call: "jira.server-info"
with: {}
- name: check-confluence
type: call
call: "confluence.health"
with: {}
- name: check-bitbucket
type: call
call: "bitbucket.user"
with: {}
- name: check-slack
type: call
call: "slack.auth-test"
with: {}
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: server-info
path: "/serverInfo"
operations:
- name: server-info
method: GET
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: health
path: "/spaces?limit=1"
operations:
- name: health
method: GET
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: user
path: "/user"
operations:
- name: user
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: auth
path: "/auth.test"
operations:
- name: auth-test
method: POST
Aggregates customer data from multiple sources, deduplicates, enriches profiles, and syncs to CRM.
naftiko: "0.5"
info:
label: "Customer 360 Data Sync Pipeline"
description: "Aggregates customer data from multiple sources, deduplicates, enriches profiles, and syncs to CRM."
tags:
- data
- snowflake
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: data
port: 8080
tools:
- name: customer_360_data_sync_pipeline
description: "Orchestrate customer 360 data sync pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Customer 360 Data Sync Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://atlassian.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://atlassian.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
Detects SLA breaches, escalates to engineering, creates priority tickets, and notifies account managers.
naftiko: "0.5"
info:
label: "Customer Issue Escalation Pipeline"
description: "Detects SLA breaches, escalates to engineering, creates priority tickets, and notifies account managers."
tags:
- support
- jira
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: support
port: 8080
tools:
- name: customer_issue_escalation_pipeline
description: "Orchestrate customer issue escalation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Customer Issue Escalation Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
Runs data quality checks, scores datasets, creates remediation tickets, and publishes scorecards.
naftiko: "0.5"
info:
label: "Data Quality Monitoring Pipeline"
description: "Runs data quality checks, scores datasets, creates remediation tickets, and publishes scorecards."
tags:
- data-quality
- snowflake
- jira
- grafana
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: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-grafana
type: call
call: "grafana.create-resource"
with:
channel: "{{notification_channel}}"
text: "Data Quality Monitoring Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://atlassian.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://atlassian.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://atlassian-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
Scans Bitbucket repository dependencies via SonarQube, creates Jira security issues for critical findings, and alerts the security team on Slack.
naftiko: "0.5"
info:
label: "Dependency Vulnerability Alert Pipeline"
description: "Scans Bitbucket repository dependencies via SonarQube, creates Jira security issues for critical findings, and alerts the security team on Slack."
tags:
- security
- dependencies
- sonarqube
- jira
- slack
- bitbucket
capability:
exposes:
- type: mcp
namespace: dependency-security
port: 8080
tools:
- name: scan-dependencies
description: "Scan repo dependencies, create Jira tickets for vulnerabilities, and alert Slack."
inputParameters:
- name: sonar_project_key
in: body
type: string
description: "SonarQube project key."
- name: project_key
in: body
type: string
description: "Jira project key for security issues."
- name: slack_channel
in: body
type: string
description: "Security team Slack channel."
steps:
- name: get-vulnerabilities
type: call
call: "sonarqube.get-issues"
with:
componentKeys: "{{sonar_project_key}}"
types: "VULNERABILITY"
severities: "CRITICAL,BLOCKER"
- name: create-security-issue
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "{{project_key}}"
summary: "Critical vulnerabilities in {{sonar_project_key}}: {{get-vulnerabilities.total}} found"
issuetype:
name: "Bug"
priority:
name: "Highest"
labels:
- "security"
- "vulnerability"
- name: alert-team
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Security alert: {{get-vulnerabilities.total}} critical vulnerabilities found in {{sonar_project_key}}. Jira: {{create-security-issue.key}}"
consumes:
- type: http
namespace: sonarqube
baseUri: "https://sonarqube.atlassian-corp.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: issues
path: "/issues/search"
inputParameters:
- name: componentKeys
in: query
- name: types
in: query
- name: severities
in: query
operations:
- name: get-issues
method: GET
- type: http
namespace: jira
baseUri: "https://atlassian-corp.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
After a Bitbucket Pipeline completes, updates the Jira issue with deployment info, tags the Confluence release page, and notifies the team on Slack.
naftiko: "0.5"
info:
label: "Deployment Tracker"
description: "After a Bitbucket Pipeline completes, updates the Jira issue with deployment info, tags the Confluence release page, and notifies the team on Slack."
tags:
- ci-cd
- deployments
- bitbucket
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: deployment-tracking
port: 8080
tools:
- name: track-deployment
description: "Record a deployment by updating Jira, appending to Confluence release notes, and notifying Slack."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key tied to this deployment."
- name: environment
in: body
type: string
description: "Target environment (staging, production)."
- name: version
in: body
type: string
description: "The release version string."
- name: release_page_id
in: body
type: string
description: "Confluence release notes page ID."
- name: slack_channel
in: body
type: string
description: "Slack channel for deployment alerts."
steps:
- name: transition-issue
type: call
call: "jira.transition-issue"
with:
issue_key: "{{issue_key}}"
transition:
id: "31"
- name: add-comment
type: call
call: "jira.add-comment"
with:
issue_key: "{{issue_key}}"
body: "Deployed version {{version}} to {{environment}}."
- name: update-release-page
type: call
call: "confluence.update-page"
with:
page_id: "{{release_page_id}}"
title: "Release {{version}}"
body:
representation: "storage"
value: "<p>Version {{version}} deployed to {{environment}} on {{issue_key}}.</p>"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Deployed {{version}} to {{environment}}. Jira: {{issue_key}}. Release notes: https://atlassian-corp.atlassian.net/wiki/pages/viewpage.action?pageId={{release_page_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: transitions
path: "/issue/{{issue_key}}/transitions"
inputParameters:
- name: issue_key
in: path
operations:
- name: transition-issue
method: POST
- name: comments
path: "/issue/{{issue_key}}/comment"
inputParameters:
- name: issue_key
in: path
operations:
- name: add-comment
method: POST
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: update-page
method: PUT
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Collects development metrics, analyzes trends, generates reports, and distributes to engineering leads.
naftiko: "0.5"
info:
label: "Developer Productivity Metrics Pipeline"
description: "Collects development metrics, analyzes trends, generates reports, and distributes to engineering leads."
tags:
- engineering
- github
- snowflake
- powerbi
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: developer_productivity_metrics_pipeline
description: "Orchestrate developer productivity metrics pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-github
type: call
call: "github.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
data: "{{get-github.result}}"
- name: create-powerbi
type: call
call: "powerbi.create-resource"
with:
channel: "{{notification_channel}}"
text: "Developer Productivity Metrics Pipeline step 3 complete."
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: snowflake
baseUri: "https://atlassian.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
Tests DR procedures, validates backup integrity, generates readiness reports, and notifies leadership.
naftiko: "0.5"
info:
label: "Disaster Recovery Readiness Pipeline"
description: "Tests DR procedures, validates backup integrity, generates readiness reports, and notifies leadership."
tags:
- disaster-recovery
- servicenow
- confluence
- pagerduty
capability:
exposes:
- type: mcp
namespace: disaster-recovery
port: 8080
tools:
- name: disaster_recovery_readiness_pipeline
description: "Orchestrate disaster recovery readiness pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-pagerduty
type: call
call: "pagerduty.create-resource"
with:
channel: "{{notification_channel}}"
text: "Disaster Recovery Readiness Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://atlassian.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: confluence
baseUri: "https://atlassian.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: 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
Scans a Docker image for vulnerabilities, creates a Jira security ticket if critical findings exist, and alerts the security Slack channel.
naftiko: "0.5"
info:
label: "Docker Image Vulnerability Scanner"
description: "Scans a Docker image for vulnerabilities, creates a Jira security ticket if critical findings exist, and alerts the security Slack channel."
tags:
- security
- container-security
- docker
- jira
- slack
capability:
exposes:
- type: mcp
namespace: container-security
port: 8080
tools:
- name: scan-docker-image
description: "Scan a Docker image for vulnerabilities and report findings to Jira and Slack."
inputParameters:
- name: image_name
in: body
type: string
description: "Full Docker image name with tag."
- name: project_key
in: body
type: string
description: "Jira project key for security issues."
- name: slack_channel
in: body
type: string
description: "Security Slack channel ID."
steps:
- name: scan-image
type: call
call: "docker-registry.scan-image"
with:
image: "{{image_name}}"
- name: create-security-ticket
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "{{project_key}}"
summary: "Vulnerability scan: {{image_name}}"
issuetype:
name: "Bug"
priority:
name: "High"
description: "Scan results for {{image_name}}: {{scan-image.vulnerabilities}}"
labels:
- "security"
- "container"
- name: alert-security
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Container scan complete for {{image_name}}. Findings logged in {{create-security-ticket.key}}."
consumes:
- type: http
namespace: docker-registry
baseUri: "https://registry.atlassian-corp.com/v2"
authentication:
type: bearer
token: "$secrets.docker_registry_token"
resources:
- name: scan
path: "/{{image}}/scan"
inputParameters:
- name: image
in: path
operations:
- name: scan-image
method: POST
- type: http
namespace: jira
baseUri: "https://atlassian-corp.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Queries Elasticsearch for log entries matching a pattern within a time range. Returns matching documents for incident investigation.
naftiko: "0.5"
info:
label: "Elasticsearch Log Search"
description: "Queries Elasticsearch for log entries matching a pattern within a time range. Returns matching documents for incident investigation."
tags:
- observability
- logging
- elasticsearch
capability:
exposes:
- type: mcp
namespace: log-search
port: 8080
tools:
- name: search-logs
description: "Search Elasticsearch logs by query string and time range."
inputParameters:
- name: index_pattern
in: body
type: string
description: "Elasticsearch index pattern (e.g. logs-*)."
- name: query_string
in: body
type: string
description: "The search query."
- name: time_from
in: body
type: string
description: "Start time in ISO 8601."
- name: time_to
in: body
type: string
description: "End time in ISO 8601."
call: "elasticsearch.search"
with:
index: "{{index_pattern}}"
query: "{{query_string}}"
from: "{{time_from}}"
to: "{{time_to}}"
outputParameters:
- name: total_hits
type: string
mapping: "$.hits.total.value"
- name: hits
type: string
mapping: "$.hits.hits"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://elasticsearch.atlassian-corp.com"
authentication:
type: basic
username: "$secrets.elasticsearch_user"
password: "$secrets.elasticsearch_password"
resources:
- name: search
path: "/{{index}}/_search"
inputParameters:
- name: index
in: path
operations:
- name: search
method: POST
Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers.
naftiko: "0.5"
info:
label: "Employee Onboarding Automation Pipeline"
description: "Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers."
tags:
- hr
- workday
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: employee_onboarding_automation
description: "Orchestrate employee onboarding automation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Employee Onboarding Automation Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
Calculates Jira epic progress by counting completed vs total child issues, updates the epic description with progress, and posts a weekly summary to Slack.
naftiko: "0.5"
info:
label: "Epic Progress Tracker"
description: "Calculates Jira epic progress by counting completed vs total child issues, updates the epic description with progress, and posts a weekly summary to Slack."
tags:
- project-management
- agile
- jira
- slack
capability:
exposes:
- type: mcp
namespace: epic-tracking
port: 8080
tools:
- name: track-epic-progress
description: "Calculate epic progress from Jira, update the epic, and post summary to Slack."
inputParameters:
- name: epic_key
in: body
type: string
description: "The Jira epic issue key."
- name: slack_channel
in: body
type: string
description: "Team Slack channel."
steps:
- name: get-epic-issues
type: call
call: "jira.search-issues"
with:
jql: "'Epic Link' = {{epic_key}}"
maxResults: "200"
- name: get-done-issues
type: call
call: "jira.search-issues"
with:
jql: "'Epic Link' = {{epic_key}} AND status = Done"
maxResults: "200"
- name: update-epic
type: call
call: "jira.add-comment"
with:
issue_key: "{{epic_key}}"
body: "Progress update: {{get-done-issues.total}} / {{get-epic-issues.total}} issues completed."
- name: post-summary
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Epic {{epic_key}} progress: {{get-done-issues.total}}/{{get-epic-issues.total}} issues done."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search"
operations:
- name: search-issues
method: POST
- name: comments
path: "/issue/{{issue_key}}/comment"
inputParameters:
- name: issue_key
in: path
operations:
- name: add-comment
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Creates a Jira feature flag ticket, documents the rollout plan in Confluence, and announces the flag activation in Slack for team awareness.
naftiko: "0.5"
info:
label: "Feature Flag Rollout Pipeline"
description: "Creates a Jira feature flag ticket, documents the rollout plan in Confluence, and announces the flag activation in Slack for team awareness."
tags:
- feature-management
- devops
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: feature-flags
port: 8080
tools:
- name: rollout-feature-flag
description: "Create a Jira tracking ticket, document the rollout plan in Confluence, and notify Slack."
inputParameters:
- name: flag_name
in: body
type: string
description: "Feature flag identifier."
- name: rollout_percentage
in: body
type: string
description: "Initial rollout percentage."
- name: project_key
in: body
type: string
description: "Jira project key."
- name: space_key
in: body
type: string
description: "Confluence space key."
- name: slack_channel
in: body
type: string
description: "Team Slack channel."
steps:
- name: create-tracking-ticket
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "{{project_key}}"
summary: "Feature flag rollout: {{flag_name}} at {{rollout_percentage}}%"
issuetype:
name: "Task"
description: "Rolling out feature flag {{flag_name}} to {{rollout_percentage}}% of users."
- name: document-plan
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "Feature Flag Rollout: {{flag_name}}"
body:
representation: "storage"
value: "<h2>{{flag_name}}</h2><p>Rollout: {{rollout_percentage}}%</p><p>Tracking: {{create-tracking-ticket.key}}</p>"
- name: announce
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Feature flag {{flag_name}} rolling out to {{rollout_percentage}}%. Tracking: {{create-tracking-ticket.key}}."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Lists merged Bitbucket branches, deletes stale ones, updates the Jira issues associated with those branches, and posts a cleanup summary to Slack.
naftiko: "0.5"
info:
label: "Git Branch Cleanup Orchestrator"
description: "Lists merged Bitbucket branches, deletes stale ones, updates the Jira issues associated with those branches, and posts a cleanup summary to Slack."
tags:
- version-control
- devops
- bitbucket
- jira
- slack
capability:
exposes:
- type: mcp
namespace: branch-cleanup
port: 8080
tools:
- name: cleanup-merged-branches
description: "Delete merged branches in Bitbucket, update associated Jira issues, and notify Slack."
inputParameters:
- name: workspace
in: body
type: string
description: "Bitbucket workspace slug."
- name: repo_slug
in: body
type: string
description: "Repository slug."
- name: slack_channel
in: body
type: string
description: "Slack channel for cleanup reports."
steps:
- name: list-branches
type: call
call: "bitbucket.list-branches"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
- name: delete-merged
type: call
call: "bitbucket.delete-branch"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
branch_name: "{{list-branches.values[0].name}}"
- name: notify-cleanup
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Branch cleanup complete for {{workspace}}/{{repo_slug}}. Merged branches removed."
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: branches
path: "/repositories/{{workspace}}/{{repo_slug}}/refs/branches"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
operations:
- name: list-branches
method: GET
- name: branch
path: "/repositories/{{workspace}}/{{repo_slug}}/refs/branches/{{branch_name}}"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
- name: branch_name
in: path
operations:
- name: delete-branch
method: DELETE
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Collects incident data, generates timeline, creates postmortem document, and schedules review meeting.
naftiko: "0.5"
info:
label: "Incident Postmortem Pipeline"
description: "Collects incident data, generates timeline, creates postmortem document, and schedules review meeting."
tags:
- sre
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: sre
port: 8080
tools:
- name: incident_postmortem_pipeline
description: "Orchestrate incident postmortem pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Incident Postmortem Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
On alert trigger, creates a Jira incident ticket, posts to a Slack incident channel, and pages the on-call engineer via Opsgenie.
naftiko: "0.5"
info:
label: "Incident Response Orchestrator"
description: "On alert trigger, creates a Jira incident ticket, posts to a Slack incident channel, and pages the on-call engineer via Opsgenie."
tags:
- incident-management
- devops
- jira
- slack
- opsgenie
capability:
exposes:
- type: mcp
namespace: incident-response
port: 8080
tools:
- name: trigger-incident-response
description: "Given an alert description and severity, create a Jira incident, notify Slack, and page on-call via Opsgenie."
inputParameters:
- name: alert_name
in: body
type: string
description: "Name of the triggered alert."
- name: severity
in: body
type: string
description: "Incident severity (P1, P2, P3, P4)."
- name: description
in: body
type: string
description: "Alert description with context."
- name: slack_channel
in: body
type: string
description: "Slack incident channel ID."
steps:
- name: create-incident
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "INC"
summary: "[{{severity}}] {{alert_name}}"
description: "{{description}}"
issuetype:
name: "Incident"
priority:
name: "{{severity}}"
- name: notify-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Incident created: {{create-incident.key}} - [{{severity}}] {{alert_name}}. Paging on-call."
- name: page-oncall
type: call
call: "opsgenie.create-alert"
with:
message: "[{{severity}}] {{alert_name}} - Jira: {{create-incident.key}}"
priority: "{{severity}}"
description: "{{description}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: opsgenie
baseUri: "https://api.opsgenie.com/v2"
authentication:
type: bearer
token: "$secrets.opsgenie_api_key"
resources:
- name: alerts
path: "/alerts"
operations:
- name: create-alert
method: POST
Attributes cloud costs to teams, generates chargeback reports, and distributes to engineering managers.
naftiko: "0.5"
info:
label: "Infrastructure Cost Allocation Pipeline"
description: "Attributes cloud costs to teams, generates chargeback reports, and distributes to engineering managers."
tags:
- finops
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: finops
port: 8080
tools:
- name: infrastructure_cost_allocation_pipeline
description: "Orchestrate infrastructure cost allocation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-powerbi
type: call
call: "powerbi.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Infrastructure Cost Allocation Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://atlassian.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
Compares deployed state against desired config, identifies drift, creates remediation tickets, and alerts ops.
naftiko: "0.5"
info:
label: "Infrastructure Drift Detection Pipeline"
description: "Compares deployed state against desired config, identifies drift, creates remediation tickets, and alerts ops."
tags:
- devops
- github
- jira
- slack
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: infrastructure_drift_detection
description: "Orchestrate infrastructure drift detection pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-github
type: call
call: "github.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-github.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Infrastructure Drift Detection Pipeline step 3 complete."
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://atlassian.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
Tracks asset lifecycle stages, schedules replacements, manages disposal, and updates CMDB.
naftiko: "0.5"
info:
label: "IT Asset Lifecycle Pipeline"
description: "Tracks asset lifecycle stages, schedules replacements, manages disposal, and updates CMDB."
tags:
- operations
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: it_asset_lifecycle_pipeline
description: "Orchestrate it asset lifecycle pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "IT Asset Lifecycle Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://atlassian.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://atlassian.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 a Jenkins job for the latest build result, duration, and timestamp. Used by DevOps teams to monitor CI pipeline health.
naftiko: "0.5"
info:
label: "Jenkins Build Status Check"
description: "Queries a Jenkins job for the latest build result, duration, and timestamp. Used by DevOps teams to monitor CI pipeline health."
tags:
- ci-cd
- continuous-integration
- jenkins
capability:
exposes:
- type: mcp
namespace: jenkins-builds
port: 8080
tools:
- name: get-last-build
description: "Get the last build status for a Jenkins job."
inputParameters:
- name: job_name
in: body
type: string
description: "The Jenkins job name."
call: "jenkins.get-last-build"
with:
job_name: "{{job_name}}"
outputParameters:
- name: result
type: string
mapping: "$.result"
- name: duration
type: string
mapping: "$.duration"
- name: timestamp
type: string
mapping: "$.timestamp"
consumes:
- type: http
namespace: jenkins
baseUri: "https://jenkins.atlassian-corp.com"
authentication:
type: basic
username: "$secrets.jenkins_user"
password: "$secrets.jenkins_api_token"
resources:
- name: builds
path: "/job/{{job_name}}/lastBuild/api/json"
inputParameters:
- name: job_name
in: path
operations:
- name: get-last-build
method: GET
Triggers a Jenkins pipeline build for a branch, updates the associated Jira issue with build status, and posts results to Slack.
naftiko: "0.5"
info:
label: "Jenkins Pipeline Trigger with Jira Update"
description: "Triggers a Jenkins pipeline build for a branch, updates the associated Jira issue with build status, and posts results to Slack."
tags:
- ci-cd
- continuous-integration
- jenkins
- jira
- slack
capability:
exposes:
- type: mcp
namespace: jenkins-ci
port: 8080
tools:
- name: trigger-build-and-report
description: "Trigger a Jenkins build, update Jira with results, and notify Slack."
inputParameters:
- name: job_name
in: body
type: string
description: "Jenkins job name."
- name: branch
in: body
type: string
description: "Branch to build."
- name: issue_key
in: body
type: string
description: "Associated Jira issue key."
- name: slack_channel
in: body
type: string
description: "Build notification Slack channel."
steps:
- name: trigger-build
type: call
call: "jenkins.trigger-build"
with:
job_name: "{{job_name}}"
branch: "{{branch}}"
- name: comment-jira
type: call
call: "jira.add-comment"
with:
issue_key: "{{issue_key}}"
body: "Jenkins build triggered for {{job_name}}/{{branch}}. Build #{{trigger-build.nextBuildNumber}}."
- name: notify-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Build triggered: {{job_name}}/{{branch}} (#{{trigger-build.nextBuildNumber}}) for {{issue_key}}."
consumes:
- type: http
namespace: jenkins
baseUri: "https://jenkins.atlassian-corp.com"
authentication:
type: basic
username: "$secrets.jenkins_user"
password: "$secrets.jenkins_api_token"
resources:
- name: builds
path: "/job/{{job_name}}/buildWithParameters"
inputParameters:
- name: job_name
in: path
- name: branch
in: query
operations:
- name: trigger-build
method: POST
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: comments
path: "/issue/{{issue_key}}/comment"
inputParameters:
- name: issue_key
in: path
operations:
- name: add-comment
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves a Jira issue by key and returns summary, status, assignee, and priority. Used by support and engineering teams to quickly check ticket state.
naftiko: "0.5"
info:
label: "Jira Issue Lookup"
description: "Retrieves a Jira issue by key and returns summary, status, assignee, and priority. Used by support and engineering teams to quickly check ticket state."
tags:
- project-management
- issue-tracking
- jira
capability:
exposes:
- type: mcp
namespace: jira-issues
port: 8080
tools:
- name: get-issue
description: "Look up a Jira issue by key and return its summary, status, assignee, and priority."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key (e.g. PROJ-123)."
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://atlassian-corp.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
Transitions a Jira issue to a new status, adds a comment, and posts the status change to a Slack channel for team visibility.
naftiko: "0.5"
info:
label: "Jira Issue Transition with Slack Update"
description: "Transitions a Jira issue to a new status, adds a comment, and posts the status change to a Slack channel for team visibility."
tags:
- project-management
- workflow
- jira
- slack
capability:
exposes:
- type: mcp
namespace: issue-workflow
port: 8080
tools:
- name: transition-and-notify
description: "Transition a Jira issue and notify a Slack channel of the change."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key."
- name: transition_id
in: body
type: string
description: "The target transition ID."
- name: comment
in: body
type: string
description: "Comment to add to the issue."
- name: slack_channel
in: body
type: string
description: "Slack channel ID."
steps:
- name: transition
type: call
call: "jira.transition-issue"
with:
issue_key: "{{issue_key}}"
transition:
id: "{{transition_id}}"
- name: add-comment
type: call
call: "jira.add-comment"
with:
issue_key: "{{issue_key}}"
body: "{{comment}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Issue {{issue_key}} transitioned. Comment: {{comment}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: transitions
path: "/issue/{{issue_key}}/transitions"
inputParameters:
- name: issue_key
in: path
operations:
- name: transition-issue
method: POST
- name: comments
path: "/issue/{{issue_key}}/comment"
inputParameters:
- name: issue_key
in: path
operations:
- name: add-comment
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Executes a JQL query against Jira and returns matching issues. Used by teams to build custom dashboards and reporting workflows.
naftiko: "0.5"
info:
label: "Jira JQL Search"
description: "Executes a JQL query against Jira and returns matching issues. Used by teams to build custom dashboards and reporting workflows."
tags:
- project-management
- search
- jira
capability:
exposes:
- type: mcp
namespace: jira-search
port: 8080
tools:
- name: search-issues
description: "Run a JQL query and return matching Jira issues."
inputParameters:
- name: jql
in: body
type: string
description: "The JQL query string."
- name: max_results
in: body
type: string
description: "Maximum number of results to return (default 50)."
call: "jira.search-issues"
with:
jql: "{{jql}}"
maxResults: "{{max_results}}"
outputParameters:
- name: total
type: string
mapping: "$.total"
- name: issues
type: string
mapping: "$.issues"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search"
operations:
- name: search-issues
method: POST
Retrieves all components defined in a Jira project. Used by engineering leads to audit component ownership and assignment coverage.
naftiko: "0.5"
info:
label: "Jira Project Component List"
description: "Retrieves all components defined in a Jira project. Used by engineering leads to audit component ownership and assignment coverage."
tags:
- project-management
- issue-tracking
- jira
capability:
exposes:
- type: mcp
namespace: jira-components
port: 8080
tools:
- name: list-components
description: "List all components for a Jira project by project key."
inputParameters:
- name: project_key
in: body
type: string
description: "The Jira project key."
call: "jira.get-components"
with:
project_key: "{{project_key}}"
outputParameters:
- name: components
type: string
mapping: "$"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: components
path: "/project/{{project_key}}/components"
inputParameters:
- name: project_key
in: path
operations:
- name: get-components
method: GET
Lists all active sprints for a given Jira board and returns sprint names, start dates, and end dates. Used by scrum masters to monitor iteration progress.
naftiko: "0.5"
info:
label: "Jira Sprint Board Status"
description: "Lists all active sprints for a given Jira board and returns sprint names, start dates, and end dates. Used by scrum masters to monitor iteration progress."
tags:
- project-management
- agile
- jira
capability:
exposes:
- type: mcp
namespace: jira-agile
port: 8080
tools:
- name: list-active-sprints
description: "List all active sprints for a Jira Agile board by board ID."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira Agile board ID."
call: "jira-agile.get-sprints"
with:
board_id: "{{board_id}}"
outputParameters:
- name: sprints
type: string
mapping: "$.values"
consumes:
- type: http
namespace: jira-agile
baseUri: "https://atlassian-corp.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: board-sprints
path: "/board/{{board_id}}/sprint"
inputParameters:
- name: board_id
in: path
operations:
- name: get-sprints
method: GET
Searches for Jira users by display name or email. Returns account IDs, display names, and email addresses for assignment workflows.
naftiko: "0.5"
info:
label: "Jira User Search"
description: "Searches for Jira users by display name or email. Returns account IDs, display names, and email addresses for assignment workflows."
tags:
- project-management
- user-management
- jira
capability:
exposes:
- type: mcp
namespace: jira-users
port: 8080
tools:
- name: search-users
description: "Search for Jira users by query string (name or email)."
inputParameters:
- name: query
in: body
type: string
description: "The search query (display name or email)."
call: "jira.search-users"
with:
query: "{{query}}"
outputParameters:
- name: users
type: string
mapping: "$"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: user-search
path: "/user/search"
inputParameters:
- name: query
in: query
operations:
- name: search-users
method: GET
Creates a Confluence knowledge base article from structured content, links it to a Jira service desk ticket, and announces it on Slack.
naftiko: "0.5"
info:
label: "Knowledge Base Article Publisher"
description: "Creates a Confluence knowledge base article from structured content, links it to a Jira service desk ticket, and announces it on Slack."
tags:
- knowledge-base
- documentation
- confluence
- jira
- slack
capability:
exposes:
- type: mcp
namespace: kb-publishing
port: 8080
tools:
- name: publish-kb-article
description: "Create a Confluence KB article, link to Jira ticket, and notify Slack."
inputParameters:
- name: space_key
in: body
type: string
description: "Confluence space key."
- name: title
in: body
type: string
description: "Article title."
- name: content_html
in: body
type: string
description: "Article body in HTML."
- name: issue_key
in: body
type: string
description: "Related Jira Service Desk ticket key."
- name: slack_channel
in: body
type: string
description: "Slack channel for KB announcements."
steps:
- name: create-article
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "{{title}}"
body:
representation: "storage"
value: "{{content_html}}"
- name: link-to-jira
type: call
call: "jira.add-comment"
with:
issue_key: "{{issue_key}}"
body: "KB article published: {{title}} - https://atlassian-corp.atlassian.net/wiki/pages/viewpage.action?pageId={{create-article.id}}"
- name: announce
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "New KB article: {{title}}. Related to {{issue_key}}."
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: comments
path: "/issue/{{issue_key}}/comment"
inputParameters:
- name: issue_key
in: path
operations:
- name: add-comment
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Identifies stale articles, assigns review tasks, tracks updates, and publishes freshness reports.
naftiko: "0.5"
info:
label: "Knowledge Base Freshness Pipeline"
description: "Identifies stale articles, assigns review tasks, tracks updates, and publishes freshness reports."
tags:
- knowledge
- confluence
- jira
- slack
capability:
exposes:
- type: mcp
namespace: knowledge
port: 8080
tools:
- name: knowledge_base_freshness_pipeline
description: "Orchestrate knowledge base freshness pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-confluence
type: call
call: "confluence.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-confluence.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Knowledge Base Freshness Pipeline step 3 complete."
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian.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://atlassian.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
Retrieves collection statistics from MongoDB including document count, storage size, and index sizes for capacity monitoring.
naftiko: "0.5"
info:
label: "MongoDB Collection Stats"
description: "Retrieves collection statistics from MongoDB including document count, storage size, and index sizes for capacity monitoring."
tags:
- databases
- monitoring
- mongodb
capability:
exposes:
- type: mcp
namespace: mongodb-stats
port: 8080
tools:
- name: get-collection-stats
description: "Get MongoDB collection statistics by database and collection name."
inputParameters:
- name: database
in: body
type: string
description: "MongoDB database name."
- name: collection
in: body
type: string
description: "Collection name."
call: "mongodb.collection-stats"
with:
database: "{{database}}"
collection: "{{collection}}"
outputParameters:
- name: count
type: string
mapping: "$.count"
- name: size
type: string
mapping: "$.size"
- name: storageSize
type: string
mapping: "$.storageSize"
consumes:
- type: http
namespace: mongodb
baseUri: "https://mongodb-atlas.atlassian-corp.com/api/atlas/v1.0"
authentication:
type: basic
username: "$secrets.mongodb_public_key"
password: "$secrets.mongodb_private_key"
resources:
- name: collection-stats
path: "/groups/{{database}}/collStats/{{collection}}"
inputParameters:
- name: database
in: path
- name: collection
in: path
operations:
- name: collection-stats
method: GET
On new developer onboarding, provisions Bitbucket repo access, creates a Jira onboarding epic, adds Confluence getting-started page, and sends Slack welcome.
naftiko: "0.5"
info:
label: "New Hire Developer Onboarding"
description: "On new developer onboarding, provisions Bitbucket repo access, creates a Jira onboarding epic, adds Confluence getting-started page, and sends Slack welcome."
tags:
- onboarding
- devops
- bitbucket
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: dev-onboarding
port: 8080
tools:
- name: onboard-developer
description: "Orchestrate new developer onboarding across Bitbucket, Jira, Confluence, and Slack."
inputParameters:
- name: developer_name
in: body
type: string
description: "Full name of the new developer."
- name: developer_email
in: body
type: string
description: "Email address."
- name: team_workspace
in: body
type: string
description: "Bitbucket workspace to grant access."
- name: project_key
in: body
type: string
description: "Jira project key for onboarding epic."
- name: space_key
in: body
type: string
description: "Confluence space key."
- name: slack_channel
in: body
type: string
description: "Slack welcome channel ID."
steps:
- name: invite-to-workspace
type: call
call: "bitbucket.invite-user"
with:
workspace: "{{team_workspace}}"
email: "{{developer_email}}"
- name: create-onboarding-epic
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "{{project_key}}"
summary: "Onboarding: {{developer_name}}"
issuetype:
name: "Epic"
description: "Onboarding tasks for {{developer_name}} ({{developer_email}})."
- name: create-starter-page
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "Getting Started - {{developer_name}}"
body:
representation: "storage"
value: "<h2>Welcome {{developer_name}}</h2><p>Your onboarding epic: {{create-onboarding-epic.key}}</p>"
- name: send-welcome
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Welcome {{developer_name}}! Your onboarding epic is {{create-onboarding-epic.key}}. Check out your getting started page in Confluence."
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: workspace-members
path: "/workspaces/{{workspace}}/members"
inputParameters:
- name: workspace
in: path
operations:
- name: invite-user
method: POST
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves distributed trace data by trace ID from an OpenTelemetry-compatible backend. Used for debugging latency and error propagation.
naftiko: "0.5"
info:
label: "OpenTelemetry Trace Lookup"
description: "Retrieves distributed trace data by trace ID from an OpenTelemetry-compatible backend. Used for debugging latency and error propagation."
tags:
- observability
- tracing
- opentelemetry
capability:
exposes:
- type: mcp
namespace: otel-traces
port: 8080
tools:
- name: get-trace
description: "Retrieve a distributed trace by trace ID."
inputParameters:
- name: trace_id
in: body
type: string
description: "The 32-character hex trace ID."
call: "otel.get-trace"
with:
trace_id: "{{trace_id}}"
outputParameters:
- name: spans
type: string
mapping: "$.batches"
consumes:
- type: http
namespace: otel
baseUri: "https://tempo.atlassian-corp.com/api"
authentication:
type: bearer
token: "$secrets.tempo_token"
resources:
- name: traces
path: "/traces/{{trace_id}}"
inputParameters:
- name: trace_id
in: path
operations:
- name: get-trace
method: GET
Retrieves the current on-call engineer for an Opsgenie schedule. Used by incident coordinators to identify the responsible responder.
naftiko: "0.5"
info:
label: "Opsgenie On-Call Schedule Lookup"
description: "Retrieves the current on-call engineer for an Opsgenie schedule. Used by incident coordinators to identify the responsible responder."
tags:
- incident-management
- on-call
- opsgenie
capability:
exposes:
- type: mcp
namespace: opsgenie-oncall
port: 8080
tools:
- name: get-on-call
description: "Get the current on-call participant for an Opsgenie schedule."
inputParameters:
- name: schedule_id
in: body
type: string
description: "The Opsgenie schedule ID or name."
call: "opsgenie.get-on-call"
with:
schedule_id: "{{schedule_id}}"
outputParameters:
- name: on_call_participants
type: string
mapping: "$.data.onCallParticipants"
consumes:
- type: http
namespace: opsgenie
baseUri: "https://api.opsgenie.com/v2"
authentication:
type: bearer
token: "$secrets.opsgenie_api_key"
resources:
- name: schedules
path: "/schedules/{{schedule_id}}/on-calls"
inputParameters:
- name: schedule_id
in: path
operations:
- name: get-on-call
method: GET
Initiates review cycles, collects feedback, aggregates scores, and distributes to managers.
naftiko: "0.5"
info:
label: "Performance Review Cycle Pipeline"
description: "Initiates review cycles, collects feedback, aggregates scores, and distributes to managers."
tags:
- hr
- workday
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: performance_review_cycle_pipeline
description: "Orchestrate performance review cycle pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Performance Review Cycle Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
Queries PostgreSQL performance statistics for slow queries and returns execution times and query plans for database optimization.
naftiko: "0.5"
info:
label: "PostgreSQL Slow Query Report"
description: "Queries PostgreSQL performance statistics for slow queries and returns execution times and query plans for database optimization."
tags:
- databases
- performance
- postgresql
capability:
exposes:
- type: mcp
namespace: pg-performance
port: 8080
tools:
- name: get-slow-queries
description: "Retrieve PostgreSQL slow queries exceeding a duration threshold."
inputParameters:
- name: database_id
in: body
type: string
description: "The database cluster identifier."
- name: min_duration_ms
in: body
type: string
description: "Minimum query duration in milliseconds."
call: "postgresql.get-slow-queries"
with:
database_id: "{{database_id}}"
min_duration_ms: "{{min_duration_ms}}"
outputParameters:
- name: queries
type: string
mapping: "$.slow_queries"
consumes:
- type: http
namespace: postgresql
baseUri: "https://pgadmin.atlassian-corp.com/api/v1"
authentication:
type: bearer
token: "$secrets.pgadmin_token"
resources:
- name: slow-queries
path: "/clusters/{{database_id}}/slow-queries"
inputParameters:
- name: database_id
in: path
- name: min_duration_ms
in: query
operations:
- name: get-slow-queries
method: GET
After an incident is resolved, gathers Jira incident details, collects Opsgenie alert timeline, and publishes a postmortem page in Confluence.
naftiko: "0.5"
info:
label: "Postmortem Report Generator"
description: "After an incident is resolved, gathers Jira incident details, collects Opsgenie alert timeline, and publishes a postmortem page in Confluence."
tags:
- incident-management
- postmortem
- jira
- opsgenie
- confluence
capability:
exposes:
- type: mcp
namespace: postmortem
port: 8080
tools:
- name: generate-postmortem
description: "Compile incident data from Jira and Opsgenie, then publish a postmortem Confluence page."
inputParameters:
- name: incident_key
in: body
type: string
description: "The Jira incident issue key."
- name: alert_id
in: body
type: string
description: "The Opsgenie alert ID."
- name: space_key
in: body
type: string
description: "Confluence space key for postmortems."
steps:
- name: get-incident
type: call
call: "jira.get-issue"
with:
issue_key: "{{incident_key}}"
- name: get-alert
type: call
call: "opsgenie.get-alert"
with:
alert_id: "{{alert_id}}"
- name: publish-postmortem
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "Postmortem: {{get-incident.fields.summary}}"
body:
representation: "storage"
value: "<h2>Incident: {{incident_key}}</h2><p>Summary: {{get-incident.fields.summary}}</p><p>Alert: {{get-alert.data.message}}</p><p>Created: {{get-alert.data.createdAt}}</p><p>Acknowledged: {{get-alert.data.acknowledged}}</p>"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.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
- type: http
namespace: opsgenie
baseUri: "https://api.opsgenie.com/v2"
authentication:
type: bearer
token: "$secrets.opsgenie_api_key"
resources:
- name: alerts
path: "/alerts/{{alert_id}}"
inputParameters:
- name: alert_id
in: path
operations:
- name: get-alert
method: GET
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Queries Prometheus for active alerts and returns alert names, severity labels, and descriptions. Used by SRE teams to check current system health.
naftiko: "0.5"
info:
label: "Prometheus Alert Query"
description: "Queries Prometheus for active alerts and returns alert names, severity labels, and descriptions. Used by SRE teams to check current system health."
tags:
- monitoring
- observability
- prometheus
capability:
exposes:
- type: mcp
namespace: prometheus-alerts
port: 8080
tools:
- name: get-active-alerts
description: "Retrieve all currently firing alerts from Prometheus."
inputParameters: []
call: "prometheus.get-alerts"
with: {}
outputParameters:
- name: alerts
type: string
mapping: "$.data.alerts"
consumes:
- type: http
namespace: prometheus
baseUri: "https://prometheus.atlassian-corp.com/api/v1"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: alerts
path: "/alerts"
operations:
- name: get-alerts
method: GET
Executes a PromQL instant query against Prometheus and returns the result vector. Used for ad-hoc metric lookups during troubleshooting.
naftiko: "0.5"
info:
label: "Prometheus Metric Query"
description: "Executes a PromQL instant query against Prometheus and returns the result vector. Used for ad-hoc metric lookups during troubleshooting."
tags:
- monitoring
- observability
- prometheus
capability:
exposes:
- type: mcp
namespace: prometheus-query
port: 8080
tools:
- name: query-metric
description: "Execute a PromQL instant query."
inputParameters:
- name: promql
in: body
type: string
description: "The PromQL query expression."
call: "prometheus.instant-query"
with:
query: "{{promql}}"
outputParameters:
- name: result
type: string
mapping: "$.data.result"
consumes:
- type: http
namespace: prometheus
baseUri: "https://prometheus.atlassian-corp.com/api/v1"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: query
path: "/query"
inputParameters:
- name: query
in: query
operations:
- name: instant-query
method: GET
When a Bitbucket PR is opened, runs SonarQube analysis, creates a Jira code review subtask, and posts the review link to Slack.
naftiko: "0.5"
info:
label: "Pull Request Review Pipeline"
description: "When a Bitbucket PR is opened, runs SonarQube analysis, creates a Jira code review subtask, and posts the review link to Slack."
tags:
- code-review
- ci-cd
- bitbucket
- sonarqube
- jira
- slack
capability:
exposes:
- type: mcp
namespace: pr-review
port: 8080
tools:
- name: initiate-pr-review
description: "On PR open, trigger SonarQube scan, create a Jira review task, and notify Slack."
inputParameters:
- name: workspace
in: body
type: string
description: "Bitbucket workspace slug."
- name: repo_slug
in: body
type: string
description: "Bitbucket repository slug."
- name: pr_id
in: body
type: string
description: "Pull request ID."
- name: parent_issue_key
in: body
type: string
description: "The parent Jira issue key for the subtask."
- name: slack_channel
in: body
type: string
description: "Slack channel for code review notifications."
steps:
- name: get-pr
type: call
call: "bitbucket.get-pr"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
pr_id: "{{pr_id}}"
- name: trigger-scan
type: call
call: "sonarqube.trigger-analysis"
with:
project_key: "{{workspace}}_{{repo_slug}}"
- name: create-review-task
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "{{parent_issue_key}}"
summary: "Code Review: PR #{{pr_id}} - {{get-pr.title}}"
issuetype:
name: "Sub-task"
parent:
key: "{{parent_issue_key}}"
- name: notify-reviewers
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Code review needed: PR #{{pr_id}} in {{workspace}}/{{repo_slug}} - {{get-pr.title}}. Jira: {{create-review-task.key}}. SonarQube scan initiated."
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: pull-requests
path: "/repositories/{{workspace}}/{{repo_slug}}/pullrequests/{{pr_id}}"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
- name: pr_id
in: path
operations:
- name: get-pr
method: GET
- type: http
namespace: sonarqube
baseUri: "https://sonarqube.atlassian-corp.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: analysis
path: "/ce/submit"
inputParameters:
- name: project_key
in: query
operations:
- name: trigger-analysis
method: POST
- type: http
namespace: jira
baseUri: "https://atlassian-corp.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves Redis server info including memory usage, connected clients, and keyspace stats for capacity planning.
naftiko: "0.5"
info:
label: "Redis Cache Metrics Query"
description: "Retrieves Redis server info including memory usage, connected clients, and keyspace stats for capacity planning."
tags:
- monitoring
- caching
- redis
capability:
exposes:
- type: mcp
namespace: redis-monitoring
port: 8080
tools:
- name: get-redis-info
description: "Query Redis server info for memory, clients, and keyspace statistics."
inputParameters:
- name: section
in: body
type: string
description: "Redis INFO section (memory, clients, keyspace, all)."
call: "redis.get-info"
with:
section: "{{section}}"
outputParameters:
- name: info
type: string
mapping: "$"
consumes:
- type: http
namespace: redis
baseUri: "https://redis-admin.atlassian-corp.com/api/v1"
authentication:
type: bearer
token: "$secrets.redis_admin_token"
resources:
- name: info
path: "/info/{{section}}"
inputParameters:
- name: section
in: path
operations:
- name: get-info
method: GET
Gathers all resolved Jira issues for a release version, compiles release notes in Confluence, and announces the release in Slack.
naftiko: "0.5"
info:
label: "Release Notes Compiler"
description: "Gathers all resolved Jira issues for a release version, compiles release notes in Confluence, and announces the release in Slack."
tags:
- release-management
- documentation
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: release-notes
port: 8080
tools:
- name: compile-release-notes
description: "Query Jira for resolved issues in a version, create Confluence release notes, and post to Slack."
inputParameters:
- name: project_key
in: body
type: string
description: "Jira project key."
- name: fix_version
in: body
type: string
description: "The fix version string."
- name: space_key
in: body
type: string
description: "Confluence space key."
- name: slack_channel
in: body
type: string
description: "Slack channel for release announcements."
steps:
- name: query-resolved
type: call
call: "jira.search-issues"
with:
jql: "project = {{project_key}} AND fixVersion = '{{fix_version}}' AND status = Done"
maxResults: "200"
- name: create-release-page
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "Release Notes: {{fix_version}}"
body:
representation: "storage"
value: "<h2>Release {{fix_version}}</h2><p>Total resolved issues: {{query-resolved.total}}</p>"
- name: announce-release
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Release {{fix_version}} notes published. {{query-resolved.total}} issues resolved. View: https://atlassian-corp.atlassian.net/wiki/pages/viewpage.action?pageId={{create-release-page.id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search"
operations:
- name: search-issues
method: POST
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Validates release criteria, checks test coverage, verifies documentation, and approves deployment.
naftiko: "0.5"
info:
label: "Release Readiness Checklist Pipeline"
description: "Validates release criteria, checks test coverage, verifies documentation, and approves deployment."
tags:
- devops
- jira
- github
- confluence
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: release_readiness_checklist_pipeline
description: "Orchestrate release readiness checklist pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-github
type: call
call: "github.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-confluence
type: call
call: "confluence.create-resource"
with:
channel: "{{notification_channel}}"
text: "Release Readiness Checklist Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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: 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: confluence
baseUri: "https://atlassian.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
Links a Confluence runbook page to a Jira incident, logs execution steps as Jira comments, and broadcasts progress on Slack during incident remediation.
naftiko: "0.5"
info:
label: "Runbook Execution Tracker"
description: "Links a Confluence runbook page to a Jira incident, logs execution steps as Jira comments, and broadcasts progress on Slack during incident remediation."
tags:
- incident-management
- runbooks
- confluence
- jira
- slack
capability:
exposes:
- type: mcp
namespace: runbook-tracker
port: 8080
tools:
- name: track-runbook-execution
description: "Track runbook execution by linking Confluence runbook to Jira incident and posting progress to Slack."
inputParameters:
- name: runbook_page_id
in: body
type: string
description: "Confluence runbook page ID."
- name: incident_key
in: body
type: string
description: "Jira incident issue key."
- name: step_description
in: body
type: string
description: "Current step being executed."
- name: slack_channel
in: body
type: string
description: "Incident Slack channel."
steps:
- name: get-runbook
type: call
call: "confluence.get-page"
with:
page_id: "{{runbook_page_id}}"
- name: log-step
type: call
call: "jira.add-comment"
with:
issue_key: "{{incident_key}}"
body: "Runbook step: {{step_description}} (Runbook: {{get-runbook.title}})"
- name: broadcast-progress
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Runbook '{{get-runbook.title}}' - Executing: {{step_description}} for incident {{incident_key}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: comments
path: "/issue/{{issue_key}}/comment"
inputParameters:
- name: issue_key
in: path
operations:
- name: add-comment
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Detects security incidents, enriches with context, creates response tickets, and notifies the SOC.
naftiko: "0.5"
info:
label: "Security Incident Response Pipeline"
description: "Detects security incidents, enriches with context, creates response tickets, and notifies the SOC."
tags:
- security
- splunk
- servicenow
- pagerduty
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: security_incident_response_pipeline
description: "Orchestrate security incident response pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-splunk
type: call
call: "splunk.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-splunk.result}}"
- name: create-pagerduty
type: call
call: "pagerduty.create-resource"
with:
channel: "{{notification_channel}}"
text: "Security Incident Response Pipeline step 3 complete."
consumes:
- type: http
namespace: splunk
baseUri: "https://atlassian-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: splunk-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://atlassian.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: 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
Escalates a Jira Service Management ticket by raising priority, assigning to an escalation group, notifying on Slack, and paging via Opsgenie.
naftiko: "0.5"
info:
label: "Service Desk Ticket Escalation"
description: "Escalates a Jira Service Management ticket by raising priority, assigning to an escalation group, notifying on Slack, and paging via Opsgenie."
tags:
- incident-management
- service-desk
- jira
- slack
- opsgenie
capability:
exposes:
- type: mcp
namespace: service-desk-escalation
port: 8080
tools:
- name: escalate-ticket
description: "Escalate a service desk ticket: raise priority, reassign, notify Slack, and page on-call."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira Service Management ticket key."
- name: escalation_reason
in: body
type: string
description: "Reason for escalation."
- name: slack_channel
in: body
type: string
description: "Escalation Slack channel."
steps:
- name: get-issue
type: call
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
- name: raise-priority
type: call
call: "jira.update-issue"
with:
issue_key: "{{issue_key}}"
fields:
priority:
name: "High"
- name: notify-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "ESCALATION: {{issue_key}} - {{get-issue.fields.summary}}. Reason: {{escalation_reason}}"
- name: page-oncall
type: call
call: "opsgenie.create-alert"
with:
message: "Escalated: {{issue_key}} - {{get-issue.fields.summary}}"
priority: "P2"
description: "{{escalation_reason}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.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
- name: update-issue
method: PUT
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: opsgenie
baseUri: "https://api.opsgenie.com/v2"
authentication:
type: bearer
token: "$secrets.opsgenie_api_key"
resources:
- name: alerts
path: "/alerts"
operations:
- name: create-alert
method: POST
Monitors Jira Service Management for tickets approaching SLA breach, escalates in Jira, pages via Opsgenie, and alerts the support Slack channel.
naftiko: "0.5"
info:
label: "SLA Breach Alert Pipeline"
description: "Monitors Jira Service Management for tickets approaching SLA breach, escalates in Jira, pages via Opsgenie, and alerts the support Slack channel."
tags:
- service-desk
- sla-management
- jira
- opsgenie
- slack
capability:
exposes:
- type: mcp
namespace: sla-monitoring
port: 8080
tools:
- name: check-sla-breaches
description: "Query Jira for near-breach tickets, escalate, page on-call, and alert Slack."
inputParameters:
- name: project_key
in: body
type: string
description: "Jira Service Management project key."
- name: slack_channel
in: body
type: string
description: "Support Slack channel."
steps:
- name: find-at-risk
type: call
call: "jira.search-issues"
with:
jql: "project = {{project_key}} AND status != Done AND 'Time to resolution' < '30m'"
maxResults: "20"
- name: page-support
type: call
call: "opsgenie.create-alert"
with:
message: "SLA breach imminent: {{find-at-risk.total}} tickets at risk in {{project_key}}"
priority: "P2"
- name: notify-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "SLA Alert: {{find-at-risk.total}} tickets approaching breach in {{project_key}}. On-call paged."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search"
operations:
- name: search-issues
method: POST
- type: http
namespace: opsgenie
baseUri: "https://api.opsgenie.com/v2"
authentication:
type: bearer
token: "$secrets.opsgenie_api_key"
resources:
- name: alerts
path: "/alerts"
operations:
- name: create-alert
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Monitors service levels, detects SLA breaches, creates escalation tickets, and reports to management.
naftiko: "0.5"
info:
label: "SLA Compliance Monitoring Pipeline"
description: "Monitors service levels, detects SLA breaches, creates escalation tickets, and reports to management."
tags:
- operations
- datadog
- servicenow
- powerbi
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: sla_compliance_monitoring_pipeline
description: "Orchestrate sla compliance monitoring pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-datadog
type: call
call: "datadog.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-datadog.result}}"
- name: create-powerbi
type: call
call: "powerbi.create-resource"
with:
channel: "{{notification_channel}}"
text: "SLA Compliance Monitoring Pipeline step 3 complete."
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: servicenow
baseUri: "https://atlassian.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: 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
Posts a message to a specified Slack channel. Used by automation workflows to broadcast notifications, alerts, and status updates.
naftiko: "0.5"
info:
label: "Slack Channel Message Sender"
description: "Posts a message to a specified Slack channel. Used by automation workflows to broadcast notifications, alerts, and status updates."
tags:
- communications
- notifications
- slack
capability:
exposes:
- type: mcp
namespace: slack-messaging
port: 8080
tools:
- name: send-channel-message
description: "Post a text message to a Slack channel by channel ID."
inputParameters:
- name: channel_id
in: body
type: string
description: "The Slack channel ID."
- name: message_text
in: body
type: string
description: "The message text to post."
call: "slack.post-message"
with:
channel: "{{channel_id}}"
text: "{{message_text}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves a Slack user profile by user ID. Returns display name, email, title, and status text.
naftiko: "0.5"
info:
label: "Slack User Profile Lookup"
description: "Retrieves a Slack user profile by user ID. Returns display name, email, title, and status text."
tags:
- communications
- user-management
- slack
capability:
exposes:
- type: mcp
namespace: slack-users
port: 8080
tools:
- name: get-user-profile
description: "Look up a Slack user profile by user ID."
inputParameters:
- name: user_id
in: body
type: string
description: "The Slack user ID."
call: "slack.get-profile"
with:
user: "{{user_id}}"
outputParameters:
- name: display_name
type: string
mapping: "$.profile.display_name"
- name: email
type: string
mapping: "$.profile.email"
- name: title
type: string
mapping: "$.profile.title"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: users
path: "/users.profile.get"
inputParameters:
- name: user
in: query
operations:
- name: get-profile
method: GET
Audits license usage, identifies underutilized licenses, recommends optimization, and notifies IT.
naftiko: "0.5"
info:
label: "Software License Optimization Pipeline"
description: "Audits license usage, identifies underutilized licenses, recommends optimization, and notifies IT."
tags:
- operations
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: software_license_optimization
description: "Orchestrate software license optimization pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Software License Optimization Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://atlassian.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://atlassian.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
Collects completed sprint issues from Jira, summarizes velocity metrics, and publishes a retrospective page in Confluence for team review.
naftiko: "0.5"
info:
label: "Sprint Retrospective Report Generator"
description: "Collects completed sprint issues from Jira, summarizes velocity metrics, and publishes a retrospective page in Confluence for team review."
tags:
- agile
- project-management
- jira
- confluence
- reporting
capability:
exposes:
- type: mcp
namespace: sprint-retro
port: 8080
tools:
- name: generate-retro-report
description: "Given a sprint ID and Confluence space, gather sprint issues from Jira and publish a retro summary page."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board ID."
- name: sprint_id
in: body
type: string
description: "The Jira sprint ID."
- name: space_key
in: body
type: string
description: "The Confluence space key for the retro page."
steps:
- name: get-sprint
type: call
call: "jira-agile.get-sprint"
with:
sprint_id: "{{sprint_id}}"
- name: get-sprint-issues
type: call
call: "jira-agile.get-sprint-issues"
with:
sprint_id: "{{sprint_id}}"
- name: publish-retro
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "Sprint Retrospective: {{get-sprint.name}}"
body:
representation: "storage"
value: "<h2>Sprint: {{get-sprint.name}}</h2><p>Goal: {{get-sprint.goal}}</p><p>Total issues: {{get-sprint-issues.total}}</p><p>Completed: {{get-sprint-issues.total}}</p>"
consumes:
- type: http
namespace: jira-agile
baseUri: "https://atlassian-corp.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: sprints
path: "/sprint/{{sprint_id}}"
inputParameters:
- name: sprint_id
in: path
operations:
- name: get-sprint
method: GET
- name: sprint-issues
path: "/sprint/{{sprint_id}}/issue"
inputParameters:
- name: sprint_id
in: path
operations:
- name: get-sprint-issues
method: GET
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Collects in-progress Jira issues for a team, fetches recent Bitbucket commits, and posts a formatted standup summary to the team Slack channel.
naftiko: "0.5"
info:
label: "Standup Summary Bot"
description: "Collects in-progress Jira issues for a team, fetches recent Bitbucket commits, and posts a formatted standup summary to the team Slack channel."
tags:
- agile
- standups
- jira
- bitbucket
- slack
capability:
exposes:
- type: mcp
namespace: standup-bot
port: 8080
tools:
- name: generate-standup
description: "Generate a team standup summary from Jira in-progress issues and recent Bitbucket commits, and post to Slack."
inputParameters:
- name: project_key
in: body
type: string
description: "Jira project key."
- name: workspace
in: body
type: string
description: "Bitbucket workspace."
- name: repo_slug
in: body
type: string
description: "Bitbucket repository slug."
- name: slack_channel
in: body
type: string
description: "Team Slack channel."
steps:
- name: get-in-progress
type: call
call: "jira.search-issues"
with:
jql: "project = {{project_key}} AND status = 'In Progress'"
maxResults: "50"
- name: get-recent-commits
type: call
call: "bitbucket.list-commits"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
- name: post-standup
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Daily Standup Summary:\n- In Progress Issues: {{get-in-progress.total}}\n- Recent commits in {{repo_slug}}: {{get-recent-commits.values[0].message}}"
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian-corp.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search"
operations:
- name: search-issues
method: POST
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: commits
path: "/repositories/{{workspace}}/{{repo_slug}}/commits"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
operations:
- name: list-commits
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Runs a Terraform plan, posts the diff summary to a Confluence review page, creates a Jira approval task, and notifies the infrastructure Slack channel.
naftiko: "0.5"
info:
label: "Terraform Plan Review Pipeline"
description: "Runs a Terraform plan, posts the diff summary to a Confluence review page, creates a Jira approval task, and notifies the infrastructure Slack channel."
tags:
- infrastructure
- devops
- terraform
- confluence
- jira
- slack
capability:
exposes:
- type: mcp
namespace: infra-review
port: 8080
tools:
- name: review-terraform-plan
description: "Submit a Terraform plan for review across Confluence, Jira, and Slack."
inputParameters:
- name: workspace_name
in: body
type: string
description: "Terraform Cloud workspace name."
- name: run_id
in: body
type: string
description: "Terraform Cloud run ID."
- name: space_key
in: body
type: string
description: "Confluence space key for infra docs."
- name: project_key
in: body
type: string
description: "Jira project key."
- name: slack_channel
in: body
type: string
description: "Infrastructure Slack channel."
steps:
- name: get-plan
type: call
call: "terraform.get-run"
with:
run_id: "{{run_id}}"
- name: create-review-page
type: call
call: "confluence.create-page"
with:
spaceId: "{{space_key}}"
title: "Terraform Plan Review: {{workspace_name}} - {{run_id}}"
body:
representation: "storage"
value: "<h2>Plan Summary</h2><p>Workspace: {{workspace_name}}</p><p>Status: {{get-plan.data.attributes.status}}</p>"
- name: create-approval-task
type: call
call: "jira.create-issue"
with:
fields:
project:
key: "{{project_key}}"
summary: "Approve Terraform plan: {{workspace_name}}"
issuetype:
name: "Task"
description: "Review and approve Terraform plan run {{run_id}} for workspace {{workspace_name}}."
- name: notify-infra
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Terraform plan ready for review: {{workspace_name}}. Approval task: {{create-approval-task.key}}."
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_cloud_token"
resources:
- name: runs
path: "/runs/{{run_id}}"
inputParameters:
- name: run_id
in: path
operations:
- name: get-run
method: GET
- type: http
namespace: confluence
baseUri: "https://atlassian-corp.atlassian.net/wiki/api/v2"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
- type: http
namespace: jira
baseUri: "https://atlassian-corp.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: chat
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Monitors integration endpoints, detects failures, creates support tickets, and notifies integration team.
naftiko: "0.5"
info:
label: "Third-Party Integration Health Pipeline"
description: "Monitors integration endpoints, detects failures, creates support tickets, and notifies integration team."
tags:
- integrations
- datadog
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: integrations
port: 8080
tools:
- name: third_party_integration_health_pipeline
description: "Orchestrate third-party integration health pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-datadog
type: call
call: "datadog.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-datadog.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Third-Party Integration Health Pipeline step 3 complete."
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: servicenow
baseUri: "https://atlassian.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
Tracks mandatory training completion, sends reminders, escalates non-compliance, and reports status.
naftiko: "0.5"
info:
label: "Training Compliance Tracker Pipeline"
description: "Tracks mandatory training completion, sends reminders, escalates non-compliance, and reports status."
tags:
- compliance
- workday
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: training_compliance_tracker_pipeline
description: "Orchestrate training compliance tracker pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Training Compliance Tracker Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://atlassian.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://atlassian.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
Evaluates vendor security posture, scores risk, creates assessment records, and notifies procurement.
naftiko: "0.5"
info:
label: "Vendor Risk Assessment Pipeline"
description: "Evaluates vendor security posture, scores risk, creates assessment records, and notifies procurement."
tags:
- procurement
- servicenow
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: vendor_risk_assessment_pipeline
description: "Orchestrate vendor risk assessment pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Vendor Risk Assessment Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://atlassian.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: confluence
baseUri: "https://atlassian.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