T-Mobile Capabilities
Naftiko 0.5 capability definitions for T-Mobile - 100 capabilities showing integration workflows and service orchestrations.
Retrieves a 5G site deployment record from Salesforce, pulls infrastructure state from Terraform Cloud, and posts a status update to the deployment Teams channel.
naftiko: "0.5"
info:
label: "5G Deployment Tracker"
description: "Retrieves a 5G site deployment record from Salesforce, pulls infrastructure state from Terraform Cloud, and posts a status update to the deployment Teams channel."
tags:
- 5g
- deployment
- salesforce
- terraform
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: 5g-deployment
port: 8080
tools:
- name: track-5g-deployment
description: "Given a 5G deployment project ID, fetch the Salesforce project record, check Terraform workspace state, and post a combined status update to Teams."
inputParameters:
- name: project_id
in: body
type: string
description: "The Salesforce 5G deployment project ID."
steps:
- name: get-project
type: call
call: "salesforce.get-deployment-project"
with:
project_id: "{{project_id}}"
- name: get-infra-state
type: call
call: "terraform.get-workspace"
with:
workspace_name: "{{get-project.Terraform_Workspace__c}}"
- name: post-status
type: call
call: "msteams.post-channel"
with:
team_id: "5g-deployments"
channel_id: "status-updates"
text: "5G Deployment Update — {{get-project.Name}}: Market: {{get-project.Market__c}}, Phase: {{get-project.Phase__c}}, Infra Resources: {{get-infra-state.resource_count}}, Last Apply: {{get-infra-state.last_apply_status}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: deployment-projects
path: "/sobjects/Deployment_Project__c/{{project_id}}"
inputParameters:
- name: project_id
in: path
operations:
- name: get-deployment-project
method: GET
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_cloud_token"
inputParameters:
- name: Content-Type
in: header
value: "application/vnd.api+json"
resources:
- name: workspaces
path: "/organizations/t-mobile/workspaces/{{workspace_name}}"
inputParameters:
- name: workspace_name
in: path
operations:
- name: get-workspace
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a New Relic APM application summary, correlates with Dynatrace service data for the same application, and posts a combined health report to the SRE Teams channel.
naftiko: "0.5"
info:
label: "Application Performance Cross-Check"
description: "Retrieves a New Relic APM application summary, correlates with Dynatrace service data for the same application, and posts a combined health report to the SRE Teams channel."
tags:
- monitoring
- new-relic
- dynatrace
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: apm-crosscheck
port: 8080
tools:
- name: cross-check-app-health
description: "Pull application metrics from both New Relic and Dynatrace and post a correlated health summary to the SRE team."
inputParameters:
- name: app_name
in: body
type: string
description: "The application name as registered in both APM platforms."
steps:
- name: get-newrelic-data
type: call
call: "newrelic.get-application"
with:
app_name: "{{app_name}}"
- name: get-dynatrace-data
type: call
call: "dynatrace.get-service"
with:
service_name: "{{app_name}}"
- name: post-report
type: call
call: "msteams.post-channel"
with:
team_id: "sre-team"
channel_id: "app-health"
text: "App Health Cross-Check — {{app_name}}: New Relic: Response {{get-newrelic-data.response_time}}ms, Error rate {{get-newrelic-data.error_rate}}%, Throughput {{get-newrelic-data.throughput}} rpm. Dynatrace: Status {{get-dynatrace-data.health_status}}, Response {{get-dynatrace-data.response_time_ms}}ms, Failure {{get-dynatrace-data.failure_rate}}%."
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications.json?filter[name]={{app_name}}"
inputParameters:
- name: app_name
in: query
operations:
- name: get-application
method: GET
- type: http
namespace: dynatrace
baseUri: "https://tmobile.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: entities
path: "/entities?entitySelector=type(SERVICE),entityName({{service_name}})"
inputParameters:
- name: service_name
in: query
operations:
- name: get-service
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Retrieves the status of an AWS EC2 instance by instance ID, returning state, instance type, and availability zone for T-Mobile cloud infrastructure.
naftiko: "0.5"
info:
label: "AWS EC2 Instance Status"
description: "Retrieves the status of an AWS EC2 instance by instance ID, returning state, instance type, and availability zone for T-Mobile cloud infrastructure."
tags:
- infrastructure
- ec2
- amazon-web-services
capability:
exposes:
- type: mcp
namespace: aws-compute
port: 8080
tools:
- name: get-ec2-status
description: "Look up an EC2 instance by instance ID. Returns instance state, type, availability zone, and launch time."
inputParameters:
- name: instance_id
in: body
type: string
description: "The AWS EC2 instance ID (e.g., i-0abc123def456)."
call: "aws-ec2.describe-instance"
with:
instance_id: "{{instance_id}}"
outputParameters:
- name: state
type: string
mapping: "$.Reservations[0].Instances[0].State.Name"
- name: instance_type
type: string
mapping: "$.Reservations[0].Instances[0].InstanceType"
- name: availability_zone
type: string
mapping: "$.Reservations[0].Instances[0].Placement.AvailabilityZone"
consumes:
- type: http
namespace: aws-ec2
baseUri: "https://ec2.us-west-2.amazonaws.com"
authentication:
type: awsSigV4
accessKeyId: "$secrets.aws_access_key"
secretAccessKey: "$secrets.aws_secret_key"
region: "us-west-2"
service: "ec2"
resources:
- name: instances
path: "/?Action=DescribeInstances&InstanceId.1={{instance_id}}&Version=2016-11-15"
inputParameters:
- name: instance_id
in: query
operations:
- name: describe-instance
method: GET
Checks whether a user is a member of a specific Azure Active Directory group, used by T-Mobile IT for access verification and compliance checks.
naftiko: "0.5"
info:
label: "Azure AD Group Membership Check"
description: "Checks whether a user is a member of a specific Azure Active Directory group, used by T-Mobile IT for access verification and compliance checks."
tags:
- security
- azure-active-directory
capability:
exposes:
- type: mcp
namespace: identity-access
port: 8080
tools:
- name: check-group-membership
description: "Check if a user (by UPN) is a member of an Azure AD security group. Returns membership status and group details."
inputParameters:
- name: user_upn
in: body
type: string
description: "The user's Azure AD User Principal Name (email)."
- name: group_id
in: body
type: string
description: "The Azure AD group object ID."
call: "azuread.check-member"
with:
user_upn: "{{user_upn}}"
group_id: "{{group_id}}"
outputParameters:
- name: is_member
type: boolean
mapping: "$.value"
consumes:
- type: http
namespace: azuread
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: group-members
path: "/groups/{{group_id}}/members?$filter=userPrincipalName eq '{{user_upn}}'"
inputParameters:
- name: group_id
in: path
- name: user_upn
in: query
operations:
- name: check-member
method: GET
Checks the latest pipeline run status for a given Azure DevOps build definition, used by T-Mobile engineering teams to monitor CI/CD health.
naftiko: "0.5"
info:
label: "Azure DevOps Pipeline Status"
description: "Checks the latest pipeline run status for a given Azure DevOps build definition, used by T-Mobile engineering teams to monitor CI/CD health."
tags:
- ci-cd
- azure-devops
capability:
exposes:
- type: mcp
namespace: cicd-status
port: 8080
tools:
- name: get-pipeline-status
description: "Query Azure DevOps for the latest run of a build pipeline by definition ID. Returns run status, result, start time, and triggering branch."
inputParameters:
- name: project
in: body
type: string
description: "The Azure DevOps project name."
- name: definition_id
in: body
type: string
description: "The pipeline definition ID."
call: "azuredevops.get-builds"
with:
project: "{{project}}"
definition_id: "{{definition_id}}"
outputParameters:
- name: status
type: string
mapping: "$.value[0].status"
- name: result
type: string
mapping: "$.value[0].result"
- name: source_branch
type: string
mapping: "$.value[0].sourceBranch"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/tmobile"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?definitions={{definition_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: definition_id
in: query
operations:
- name: get-builds
method: GET
Resolves billing disputes by pulling usage records, comparing with billed amounts, and processing credits.
naftiko: "0.5"
info:
label: "Billing Dispute Orchestrator"
description: "Resolves billing disputes by pulling usage records, comparing with billed amounts, and processing credits."
tags:
- billing
- customer-service
- finance
capability:
exposes:
- type: mcp
namespace: billing
port: 8080
tools:
- name: run-billing-dispute-orchestrator
description: "Resolves billing disputes by pulling usage records, comparing with billed amounts, and processing credits."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Billing Dispute Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a billing dispute is filed, retrieves the customer account from Salesforce, pulls invoice details from Oracle E-Business Suite, creates a ServiceNow case, and notifies the billing ops team in Teams.
naftiko: "0.5"
info:
label: "Billing Dispute Resolution Orchestrator"
description: "When a billing dispute is filed, retrieves the customer account from Salesforce, pulls invoice details from Oracle E-Business Suite, creates a ServiceNow case, and notifies the billing ops team in Teams."
tags:
- billing
- dispute
- salesforce
- oracle-e-business-suite
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: billing-disputes
port: 8080
tools:
- name: process-billing-dispute
description: "Given a customer account ID and disputed invoice number, pull account and invoice details, open a dispute case, and notify the billing team."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce customer account ID."
- name: invoice_number
in: body
type: string
description: "The disputed invoice number from Oracle EBS."
- name: dispute_reason
in: body
type: string
description: "Customer-stated reason for the billing dispute."
steps:
- name: get-customer
type: call
call: "salesforce.get-account-by-id"
with:
account_id: "{{account_id}}"
- name: get-invoice
type: call
call: "oracle-ebs.get-invoice"
with:
invoice_number: "{{invoice_number}}"
- name: open-dispute-case
type: call
call: "servicenow.create-case"
with:
short_description: "Billing Dispute: {{get-customer.Name}} — Invoice {{invoice_number}}"
category: "billing_dispute"
assigned_group: "Billing_Operations"
description: "Customer: {{get-customer.Name}} ({{account_id}}). Invoice: {{invoice_number}}, Amount: ${{get-invoice.total_amount}}. Reason: {{dispute_reason}}. Due date: {{get-invoice.due_date}}."
- name: notify-billing-team
type: call
call: "msteams.post-channel"
with:
team_id: "billing-operations"
channel_id: "disputes"
text: "New Billing Dispute — {{get-customer.Name}}: Invoice {{invoice_number}} (${{get-invoice.total_amount}}). Reason: {{dispute_reason}}. Case: {{open-dispute-case.number}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account-by-id
method: GET
- type: http
namespace: oracle-ebs
baseUri: "https://ebs.tmobile-finance.com/webservices/rest/ar/v1"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: invoices
path: "/invoices/{{invoice_number}}"
inputParameters:
- name: invoice_number
in: path
operations:
- name: get-invoice
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: cases
path: "/table/sn_customerservice_case"
operations:
- name: create-case
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Pulls campaign metrics from Adobe Analytics and Google Analytics, merges results, and posts a consolidated performance summary to the marketing Teams channel.
naftiko: "0.5"
info:
label: "Campaign Performance Aggregator"
description: "Pulls campaign metrics from Adobe Analytics and Google Analytics, merges results, and posts a consolidated performance summary to the marketing Teams channel."
tags:
- marketing
- adobe-analytics
- google-analytics
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: marketing-campaigns
port: 8080
tools:
- name: aggregate-campaign-performance
description: "Given a campaign ID and date range, pull metrics from Adobe Analytics and Google Analytics and post a combined summary to Teams."
inputParameters:
- name: campaign_id
in: body
type: string
description: "The marketing campaign identifier."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
steps:
- name: get-adobe-metrics
type: call
call: "adobe-analytics.get-report"
with:
rsid: "tmobile-prod"
campaign_id: "{{campaign_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: get-ga-metrics
type: call
call: "google-analytics.run-report"
with:
property_id: "properties/123456789"
campaign_filter: "{{campaign_id}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: post-summary
type: call
call: "msteams.post-channel"
with:
team_id: "marketing-analytics"
channel_id: "campaign-reports"
text: "Campaign {{campaign_id}} ({{start_date}} to {{end_date}}): Adobe — Visits: {{get-adobe-metrics.total_visits}}, Conversions: {{get-adobe-metrics.conversions}}. GA — Sessions: {{get-ga-metrics.total_sessions}}, Bounce: {{get-ga-metrics.bounce_rate}}%."
consumes:
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api/tmobile/reports"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: reports
path: "/ranked"
operations:
- name: get-report
method: POST
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: run-report
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Queries a cell site by site ID from Ericsson ENM, checks for active alarms, and if alarms are present creates a ServiceNow incident for the NOC team.
naftiko: "0.5"
info:
label: "Cell Site Health and Alarm Sync"
description: "Queries a cell site by site ID from Ericsson ENM, checks for active alarms, and if alarms are present creates a ServiceNow incident for the NOC team."
tags:
- network-ops
- ericsson
- servicenow
capability:
exposes:
- type: mcp
namespace: network-ops
port: 8080
tools:
- name: check-cell-site-health
description: "Look up cell site operational status by site ID and create a ServiceNow incident if alarms are detected."
inputParameters:
- name: site_id
in: body
type: string
description: "The unique cell site identifier (e.g., SEA-5G-0042)."
steps:
- name: get-site
type: call
call: "ericsson.get-site"
with:
site_id: "{{site_id}}"
- name: create-alarm-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Cell Site Alarm: {{site_id}} — {{get-site.operational_status}}"
category: "network"
assigned_group: "NOC_Tier1"
description: "Site {{site_id}} has {{get-site.active_alarms}} active alarms. Status: {{get-site.operational_status}}. Type: {{get-site.site_type}}."
consumes:
- type: http
namespace: ericsson
baseUri: "https://enm.tmobile-network.com/oss/api/v1"
authentication:
type: bearer
token: "$secrets.ericsson_enm_token"
resources:
- name: managed-elements
path: "/managed-elements/{{site_id}}"
inputParameters:
- name: site_id
in: path
operations:
- name: get-site
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Retrieves signal strength data for a cell tower.
naftiko: "0.5"
info:
label: "Cell Tower Signal Strength Lookup"
description: "Retrieves signal strength data for a cell tower."
tags:
- network
- infrastructure
capability:
exposes:
- type: mcp
namespace: network
port: 8080
tools:
- name: get-cell
description: "Retrieves signal strength data for a cell tower."
inputParameters:
- name: entity_id
in: body
type: string
description: "The cell tower signal strength lookup identifier."
call: "network-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: network-api
baseUri: "https://api.t-mobile.com/network/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: cell
path: "/cell/tower/signal/strength/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-cell
method: GET
When a network change request is submitted in ServiceNow, validates the change window against the maintenance calendar, checks infrastructure state in Terraform, and notifies the CAB in Microsoft Teams.
naftiko: "0.5"
info:
label: "Change Request Approval Pipeline"
description: "When a network change request is submitted in ServiceNow, validates the change window against the maintenance calendar, checks infrastructure state in Terraform, and notifies the CAB in Microsoft Teams."
tags:
- change-management
- servicenow
- terraform
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: change-management
port: 8080
tools:
- name: process-change-request
description: "Given a ServiceNow change request number, validate the change window, check affected infrastructure state, and notify the Change Advisory Board."
inputParameters:
- name: change_number
in: body
type: string
description: "The ServiceNow change request number (e.g., CHG0012345)."
steps:
- name: get-change
type: call
call: "servicenow.get-change"
with:
change_number: "{{change_number}}"
- name: get-infra-state
type: call
call: "terraform.get-workspace"
with:
workspace_name: "{{get-change.configuration_item}}"
- name: notify-cab
type: call
call: "msteams.post-channel"
with:
team_id: "change-advisory-board"
channel_id: "pending-reviews"
text: "Change Request {{change_number}}: {{get-change.short_description}}. Window: {{get-change.start_date}} to {{get-change.end_date}}. Risk: {{get-change.risk}}. Infra resources affected: {{get-infra-state.resource_count}}. Requestor: {{get-change.requested_by}}."
consumes:
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: changes
path: "/table/change_request?sysparm_query=number={{change_number}}"
inputParameters:
- name: change_number
in: query
operations:
- name: get-change
method: GET
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_cloud_token"
inputParameters:
- name: Content-Type
in: header
value: "application/vnd.api+json"
resources:
- name: workspaces
path: "/organizations/t-mobile/workspaces/{{workspace_name}}"
inputParameters:
- name: workspace_name
in: path
operations:
- name: get-workspace
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Retrieves the running configuration from a Cisco network device via the Cisco DNA Center API, used by T-Mobile network engineering for config audit and backup.
naftiko: "0.5"
info:
label: "Cisco Network Device Config Backup"
description: "Retrieves the running configuration from a Cisco network device via the Cisco DNA Center API, used by T-Mobile network engineering for config audit and backup."
tags:
- network-ops
- cisco
capability:
exposes:
- type: mcp
namespace: network-config
port: 8080
tools:
- name: get-device-config
description: "Retrieve the running configuration for a Cisco network device by device ID from Cisco DNA Center."
inputParameters:
- name: device_id
in: body
type: string
description: "The Cisco DNA Center device UUID."
call: "cisco-dnac.get-config"
with:
device_id: "{{device_id}}"
outputParameters:
- name: running_config
type: string
mapping: "$.response[0].runningConfig"
- name: hostname
type: string
mapping: "$.response[0].hostname"
consumes:
- type: http
namespace: cisco-dnac
baseUri: "https://dnac.tmobile-network.com/dna/intent/api/v1"
authentication:
type: bearer
token: "$secrets.cisco_dnac_token"
resources:
- name: device-configs
path: "/network-device/{{device_id}}/config"
inputParameters:
- name: device_id
in: path
operations:
- name: get-config
method: GET
Queries Cloudflare for DNS records of a T-Mobile domain zone, returning record type, value, and TTL.
naftiko: "0.5"
info:
label: "Cloudflare DNS Record Lookup"
description: "Queries Cloudflare for DNS records of a T-Mobile domain zone, returning record type, value, and TTL."
tags:
- network-ops
- cloudflare
- dns
capability:
exposes:
- type: mcp
namespace: dns-management
port: 8080
tools:
- name: get-dns-records
description: "Look up Cloudflare DNS records by zone and record name. Returns matching records with type, content, TTL, and proxy status."
inputParameters:
- name: zone_id
in: body
type: string
description: "The Cloudflare zone ID for the domain."
- name: record_name
in: body
type: string
description: "The DNS record name to look up (e.g., api.t-mobile.com)."
call: "cloudflare.list-records"
with:
zone_id: "{{zone_id}}"
name: "{{record_name}}"
outputParameters:
- name: records
type: array
mapping: "$.result"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_api_token"
resources:
- name: dns-records
path: "/zones/{{zone_id}}/dns_records?name={{name}}"
inputParameters:
- name: zone_id
in: path
- name: name
in: query
operations:
- name: list-records
method: GET
For a compliance audit, pulls Azure AD sign-in logs, correlates with ServiceNow access requests, and generates an audit document in SharePoint for the compliance team.
naftiko: "0.5"
info:
label: "Compliance Audit Trail Orchestrator"
description: "For a compliance audit, pulls Azure AD sign-in logs, correlates with ServiceNow access requests, and generates an audit document in SharePoint for the compliance team."
tags:
- compliance
- security
- azure-active-directory
- servicenow
- sharepoint
capability:
exposes:
- type: mcp
namespace: compliance-audit
port: 8080
tools:
- name: generate-audit-trail
description: "Given a user UPN and date range, pull sign-in logs, correlate with access requests, and create an audit document."
inputParameters:
- name: user_upn
in: body
type: string
description: "The user's Azure AD User Principal Name."
- name: start_date
in: body
type: string
description: "Audit start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "Audit end date in YYYY-MM-DD format."
steps:
- name: get-sign-ins
type: call
call: "azuread.get-sign-in-logs"
with:
user_upn: "{{user_upn}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: get-access-requests
type: call
call: "servicenow.get-access-requests"
with:
user: "{{user_upn}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: create-audit-doc
type: call
call: "sharepoint.create-file"
with:
site_id: "compliance_audits"
file_path: "Audits/{{user_upn}}_{{start_date}}_{{end_date}}.md"
content: "# Access Audit: {{user_upn}}\nPeriod: {{start_date}} to {{end_date}}\n## Sign-In Activity\nTotal sign-ins: {{get-sign-ins.total_count}}. Unique locations: {{get-sign-ins.location_count}}. Failed attempts: {{get-sign-ins.failure_count}}.\n## Access Requests\nTotal requests: {{get-access-requests.total_count}}. Approved: {{get-access-requests.approved_count}}."
consumes:
- type: http
namespace: azuread
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: sign-in-logs
path: "/auditLogs/signIns?$filter=userPrincipalName eq '{{user_upn}}' and createdDateTime ge {{start_date}} and createdDateTime le {{end_date}}"
inputParameters:
- name: user_upn
in: query
- name: start_date
in: query
- name: end_date
in: query
operations:
- name: get-sign-in-logs
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: access-requests
path: "/table/sc_request?sysparm_query=requested_for.email={{user}}&opened_atBETWEEN{{start_date}}@{{end_date}}"
inputParameters:
- name: user
in: query
- name: start_date
in: query
- name: end_date
in: query
operations:
- name: get-access-requests
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: create-file
method: PUT
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.t-mobile.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Handles coverage complaints by investigating signal data, scheduling tower adjustments, and following up with customers.
naftiko: "0.5"
info:
label: "Coverage Complaint Orchestrator"
description: "Handles coverage complaints by investigating signal data, scheduling tower adjustments, and following up with customers."
tags:
- customer-service
- network
- operations
capability:
exposes:
- type: mcp
namespace: customer-service
port: 8080
tools:
- name: run-coverage-complaint-orchestrator
description: "Handles coverage complaints by investigating signal data, scheduling tower adjustments, and following up with customers."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Coverage Complaint Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a T-Mobile customer account by phone number from Salesforce, pulls recent billing details from Oracle EBS, and returns a combined account and billing view.
naftiko: "0.5"
info:
label: "Customer Account and Billing Summary"
description: "Retrieves a T-Mobile customer account by phone number from Salesforce, pulls recent billing details from Oracle EBS, and returns a combined account and billing view."
tags:
- customer-management
- billing
- salesforce
- oracle-e-business-suite
capability:
exposes:
- type: mcp
namespace: customer-account
port: 8080
tools:
- name: get-customer-account
description: "Look up a T-Mobile customer account by MSISDN and retrieve associated billing summary from Oracle EBS."
inputParameters:
- name: msisdn
in: body
type: string
description: "The customer mobile number (MSISDN) in E.164 format."
steps:
- name: get-account
type: call
call: "salesforce.get-account"
with:
msisdn: "{{msisdn}}"
- name: get-billing
type: call
call: "oracle-ebs.get-billing-summary"
with:
customer_number: "{{get-account.Customer_Number__c}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/query?q=SELECT+Id,Account_Status__c,Rate_Plan__c,Balance_Due__c,Customer_Number__c+FROM+Account+WHERE+MSISDN__c='{{msisdn}}'"
inputParameters:
- name: msisdn
in: query
operations:
- name: get-account
method: GET
- type: http
namespace: oracle-ebs
baseUri: "https://ebs.tmobile-finance.com/webservices/rest/billing/v1"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: billing-summary
path: "/customers/{{customer_number}}/billing-summary"
inputParameters:
- name: customer_number
in: path
operations:
- name: get-billing-summary
method: GET
Identifies a churn-risk customer in Salesforce, enriches with usage data from the billing platform, creates a retention case in ServiceNow, and notifies the assigned retention specialist via Microsoft Teams.
naftiko: "0.5"
info:
label: "Customer Churn Risk Orchestrator"
description: "Identifies a churn-risk customer in Salesforce, enriches with usage data from the billing platform, creates a retention case in ServiceNow, and notifies the assigned retention specialist via Microsoft Teams."
tags:
- customer-management
- retention
- salesforce
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: customer-retention
port: 8080
tools:
- name: handle-churn-risk
description: "Given a customer account ID and churn score, pull account details, create a retention case, and notify the assigned specialist."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account ID for the at-risk customer."
- name: churn_score
in: body
type: number
description: "The predicted churn probability score (0.0 to 1.0)."
steps:
- name: get-account
type: call
call: "salesforce.get-account-by-id"
with:
account_id: "{{account_id}}"
- name: create-retention-case
type: call
call: "servicenow.create-case"
with:
short_description: "Churn Risk: {{get-account.Name}} — Score {{churn_score}}"
category: "customer_retention"
assigned_group: "Retention_Team"
description: "Customer {{get-account.Name}} ({{account_id}}) flagged with churn score {{churn_score}}. Plan: {{get-account.Rate_Plan__c}}. Tenure: {{get-account.Tenure_Months__c}} months. Lines: {{get-account.Line_Count__c}}."
- name: notify-specialist
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-account.Owner_Email__c}}"
text: "Retention Alert: {{get-account.Name}} has a churn score of {{churn_score}}. Case {{create-retention-case.number}} created. {{get-account.Line_Count__c}} lines on {{get-account.Rate_Plan__c}}. Please reach out within 24 hours."
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account-by-id
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: cases
path: "/table/sn_customerservice_case"
operations:
- name: create-case
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Collects a customer NPS response from HubSpot, links it to the Salesforce account, opens a ServiceNow follow-up task for detractors, and notifies the CX team in Teams.
naftiko: "0.5"
info:
label: "Customer Feedback Loop Orchestrator"
description: "Collects a customer NPS response from HubSpot, links it to the Salesforce account, opens a ServiceNow follow-up task for detractors, and notifies the CX team in Teams."
tags:
- customer-experience
- hubspot
- salesforce
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: customer-feedback
port: 8080
tools:
- name: process-nps-response
description: "Given a HubSpot contact ID and NPS score, link to Salesforce, create follow-up for detractors, and notify the CX team."
inputParameters:
- name: hubspot_contact_id
in: body
type: string
description: "The HubSpot contact ID of the survey respondent."
- name: nps_score
in: body
type: integer
description: "The NPS score (0-10)."
- name: feedback_text
in: body
type: string
description: "The customer's open-ended feedback."
steps:
- name: get-contact
type: call
call: "hubspot.get-contact"
with:
contact_id: "{{hubspot_contact_id}}"
- name: update-salesforce
type: call
call: "salesforce.create-nps-record"
with:
email: "{{get-contact.email}}"
nps_score: "{{nps_score}}"
feedback: "{{feedback_text}}"
survey_date: "{{get-contact.lastmodifieddate}}"
- name: create-followup
type: call
call: "servicenow.create-task"
with:
short_description: "NPS Detractor Follow-up: {{get-contact.firstname}} {{get-contact.lastname}} (Score: {{nps_score}})"
assigned_group: "CX_Recovery"
description: "Customer {{get-contact.firstname}} {{get-contact.lastname}} ({{get-contact.email}}) gave NPS {{nps_score}}. Feedback: {{feedback_text}}."
category: "customer_feedback"
- name: notify-cx-team
type: call
call: "msteams.post-channel"
with:
team_id: "customer-experience"
channel_id: "nps-alerts"
text: "NPS Detractor — {{get-contact.firstname}} {{get-contact.lastname}}: Score {{nps_score}}/10. \"{{feedback_text}}\". Follow-up task: {{create-followup.number}}."
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/objects/contacts/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: nps-records
path: "/sobjects/NPS_Response__c"
operations:
- name: create-nps-record
method: POST
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Processes a customer plan upgrade by updating the account in Salesforce, adjusting billing in Oracle EBS, sending a confirmation via Adobe Campaign, and logging the change in ServiceNow.
naftiko: "0.5"
info:
label: "Customer Plan Upgrade Orchestrator"
description: "Processes a customer plan upgrade by updating the account in Salesforce, adjusting billing in Oracle EBS, sending a confirmation via Adobe Campaign, and logging the change in ServiceNow."
tags:
- customer-management
- billing
- salesforce
- oracle-e-business-suite
- adobe-campaign
- servicenow
capability:
exposes:
- type: mcp
namespace: plan-management
port: 8080
tools:
- name: process-plan-upgrade
description: "Given a customer account ID and target plan, update the CRM record, adjust billing, send confirmation, and log the change."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce customer account ID."
- name: new_plan
in: body
type: string
description: "The target rate plan name (e.g., Go5G Plus, Go5G Next)."
- name: effective_date
in: body
type: string
description: "The plan change effective date in YYYY-MM-DD format."
steps:
- name: get-account
type: call
call: "salesforce.get-account-by-id"
with:
account_id: "{{account_id}}"
- name: update-plan
type: call
call: "salesforce.update-account"
with:
account_id: "{{account_id}}"
rate_plan: "{{new_plan}}"
effective_date: "{{effective_date}}"
- name: adjust-billing
type: call
call: "oracle-ebs.update-billing"
with:
customer_number: "{{get-account.Customer_Number__c}}"
new_plan: "{{new_plan}}"
effective_date: "{{effective_date}}"
- name: send-confirmation
type: call
call: "adobe-campaign.trigger-message"
with:
email: "{{get-account.PersonEmail}}"
template: "plan_upgrade_confirmation"
params:
customer_name: "{{get-account.Name}}"
new_plan: "{{new_plan}}"
effective_date: "{{effective_date}}"
- name: log-change
type: call
call: "servicenow.create-change-task"
with:
short_description: "Plan upgrade: {{get-account.Name}} to {{new_plan}}"
description: "Customer {{get-account.Name}} ({{account_id}}) upgraded from {{get-account.Rate_Plan__c}} to {{new_plan}} effective {{effective_date}}."
category: "plan_change"
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account-by-id
method: GET
- name: update-account
method: PATCH
- type: http
namespace: oracle-ebs
baseUri: "https://ebs.tmobile-finance.com/webservices/rest/billing/v1"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: billing-plans
path: "/customers/{{customer_number}}/billing-plan"
inputParameters:
- name: customer_number
in: path
operations:
- name: update-billing
method: PUT
- type: http
namespace: adobe-campaign
baseUri: "https://mc.adobe.io/tmobile/campaign/v1"
authentication:
type: bearer
token: "$secrets.adobe_campaign_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: transactional-messages
path: "/messageCenter/{{template}}/send"
inputParameters:
- name: template
in: path
operations:
- name: trigger-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: change-tasks
path: "/table/change_task"
operations:
- name: create-change-task
method: POST
Executes customer retention workflows by identifying at-risk subscribers, generating offers, and tracking acceptance.
naftiko: "0.5"
info:
label: "Customer Retention Orchestrator"
description: "Executes customer retention workflows by identifying at-risk subscribers, generating offers, and tracking acceptance."
tags:
- customer-service
- analytics
- salesforce
capability:
exposes:
- type: mcp
namespace: customer-service
port: 8080
tools:
- name: run-customer-retention-orchestrator
description: "Executes customer retention workflows by identifying at-risk subscribers, generating offers, and tracking acceptance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Retention Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Looks up device information by IMEI number.
naftiko: "0.5"
info:
label: "Device IMEI Lookup"
description: "Looks up device information by IMEI number."
tags:
- device-management
- customer-service
capability:
exposes:
- type: mcp
namespace: device-management
port: 8080
tools:
- name: get-device
description: "Looks up device information by IMEI number."
inputParameters:
- name: entity_id
in: body
type: string
description: "The device imei lookup identifier."
call: "device-management-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: device-management-api
baseUri: "https://api.t-mobile.com/device-management/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: device
path: "/device/imei/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-device
method: GET
Manages device lifecycle from procurement through deployment and retirement.
naftiko: "0.5"
info:
label: "Device Lifecycle Orchestrator"
description: "Manages device lifecycle from procurement through deployment and retirement."
tags:
- device-management
- procurement
- operations
capability:
exposes:
- type: mcp
namespace: device-management
port: 8080
tools:
- name: run-device-lifecycle-orchestrator
description: "Manages device lifecycle from procurement through deployment and retirement."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Device Lifecycle Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Processes a device warranty claim by looking up the device in Salesforce, verifying warranty status, creating a ServiceNow case, and notifying the customer via Adobe Campaign.
naftiko: "0.5"
info:
label: "Device Warranty Claim Processor"
description: "Processes a device warranty claim by looking up the device in Salesforce, verifying warranty status, creating a ServiceNow case, and notifying the customer via Adobe Campaign."
tags:
- customer-management
- warranty
- salesforce
- servicenow
- adobe-campaign
capability:
exposes:
- type: mcp
namespace: warranty-claims
port: 8080
tools:
- name: process-warranty-claim
description: "Given a device IMEI and account ID, verify warranty eligibility, open a claim case, and send the customer a confirmation."
inputParameters:
- name: imei
in: body
type: string
description: "The device IMEI number (15 digits)."
- name: account_id
in: body
type: string
description: "The Salesforce customer account ID."
- name: issue_description
in: body
type: string
description: "Description of the device issue."
steps:
- name: get-device
type: call
call: "salesforce.get-device"
with:
imei: "{{imei}}"
- name: get-account
type: call
call: "salesforce.get-account-by-id"
with:
account_id: "{{account_id}}"
- name: create-claim
type: call
call: "servicenow.create-case"
with:
short_description: "Warranty Claim: {{get-device.Device_Model__c}} — {{get-account.Name}}"
category: "warranty_claim"
assigned_group: "Device_Support"
description: "Customer: {{get-account.Name}}. Device: {{get-device.Device_Model__c}} (IMEI: {{imei}}). Warranty expires: {{get-device.Warranty_End__c}}. Issue: {{issue_description}}."
- name: notify-customer
type: call
call: "adobe-campaign.trigger-message"
with:
template: "warranty_claim_received"
email: "{{get-account.PersonEmail}}"
params:
customer_name: "{{get-account.Name}}"
device: "{{get-device.Device_Model__c}}"
case_number: "{{create-claim.number}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: devices
path: "/query?q=SELECT+Device_Model__c,Warranty_End__c+FROM+Device__c+WHERE+IMEI__c='{{imei}}'"
inputParameters:
- name: imei
in: query
operations:
- name: get-device
method: GET
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account-by-id
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: cases
path: "/table/sn_customerservice_case"
operations:
- name: create-case
method: POST
- type: http
namespace: adobe-campaign
baseUri: "https://mc.adobe.io/tmobile/campaign/v1"
authentication:
type: bearer
token: "$secrets.adobe_campaign_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: transactional-messages
path: "/messageCenter/{{template}}/send"
inputParameters:
- name: template
in: path
operations:
- name: trigger-message
method: POST
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Searches Elasticsearch for log entries matching a query string and time range, used by T-Mobile SRE teams for incident investigation.
naftiko: "0.5"
info:
label: "Elasticsearch Log Search"
description: "Searches Elasticsearch for log entries matching a query string and time range, used by T-Mobile SRE teams for incident investigation."
tags:
- observability
- elasticsearch
capability:
exposes:
- type: mcp
namespace: log-search
port: 8080
tools:
- name: search-logs
description: "Search Elasticsearch logs by query string and index pattern. Returns matching log entries with timestamps, severity, and message content."
inputParameters:
- name: query
in: body
type: string
description: "The Elasticsearch query string (e.g., error AND service:billing-api)."
- name: index_pattern
in: body
type: string
description: "The Elasticsearch index pattern to search (e.g., logs-network-*)."
call: "elasticsearch.search"
with:
index: "{{index_pattern}}"
q: "{{query}}"
outputParameters:
- name: total_hits
type: integer
mapping: "$.hits.total.value"
- name: entries
type: array
mapping: "$.hits.hits[*]._source"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://es-cluster.tmobile-infra.com:9200"
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: GET
Creates and schedules a customer marketing email campaign in MailChimp, logs the campaign in Salesforce, and notifies the marketing team in Teams.
naftiko: "0.5"
info:
label: "Email Campaign Launcher"
description: "Creates and schedules a customer marketing email campaign in MailChimp, logs the campaign in Salesforce, and notifies the marketing team in Teams."
tags:
- marketing
- email
- mailchimp
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: email-campaigns
port: 8080
tools:
- name: launch-email-campaign
description: "Given campaign details and a MailChimp list ID, create the campaign, log it in Salesforce, and notify the marketing channel."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The campaign display name."
- name: list_id
in: body
type: string
description: "The MailChimp audience list ID."
- name: subject_line
in: body
type: string
description: "The email subject line."
- name: send_time
in: body
type: string
description: "Scheduled send time in ISO 8601 format."
steps:
- name: create-campaign
type: call
call: "mailchimp.create-campaign"
with:
name: "{{campaign_name}}"
list_id: "{{list_id}}"
subject_line: "{{subject_line}}"
send_time: "{{send_time}}"
- name: log-in-salesforce
type: call
call: "salesforce.create-campaign"
with:
name: "{{campaign_name}}"
type: "Email"
status: "Scheduled"
external_id: "{{create-campaign.id}}"
- name: notify-marketing
type: call
call: "msteams.post-channel"
with:
team_id: "marketing"
channel_id: "campaigns"
text: "Email Campaign Scheduled — {{campaign_name}}: Subject: \"{{subject_line}}\". Send time: {{send_time}}. MailChimp ID: {{create-campaign.id}}. SF Campaign: {{log-in-salesforce.id}}."
consumes:
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: create-campaign
method: POST
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: campaigns
path: "/sobjects/Campaign"
operations:
- name: create-campaign
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Routes emergency services calls by locating the caller, identifying nearest PSAP, and forwarding with location data.
naftiko: "0.5"
info:
label: "Emergency Services Routing Orchestrator"
description: "Routes emergency services calls by locating the caller, identifying nearest PSAP, and forwarding with location data."
tags:
- network
- emergency
- compliance
capability:
exposes:
- type: mcp
namespace: network
port: 8080
tools:
- name: run-emergency-services-routing-orchestrator
description: "Routes emergency services calls by locating the caller, identifying nearest PSAP, and forwarding with location data."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Emergency Services Routing Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
On new hire creation in Workday, provisions an Azure AD account, opens a ServiceNow onboarding ticket, creates a SharePoint document folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, provisions an Azure AD account, opens a ServiceNow onboarding ticket, creates a SharePoint document folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- azure-active-directory
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Given a Workday employee ID and start date, orchestrate account provisioning, ticket creation, document folder setup, and welcome notification."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the new hire."
- name: start_date
in: body
type: string
description: "The employee start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department the new hire is joining."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: provision-ad-account
type: call
call: "azuread.create-user"
with:
display_name: "{{get-employee.full_name}}"
mail_nickname: "{{get-employee.username}}"
department: "{{department}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{provision-ad-account.userPrincipalName}}"
text: "Welcome to T-Mobile, {{get-employee.first_name}}! Your IT onboarding ticket is {{open-ticket.number}}. Documents are ready at {{provision-folder.url}}. Your start date is {{start_date}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1/tmobile"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: azuread
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Checks device compliance status via Microsoft Endpoint Manager, correlates with Azure AD group policies, opens a ServiceNow remediation task for non-compliant devices, and notifies IT security.
naftiko: "0.5"
info:
label: "Endpoint Compliance Check Orchestrator"
description: "Checks device compliance status via Microsoft Endpoint Manager, correlates with Azure AD group policies, opens a ServiceNow remediation task for non-compliant devices, and notifies IT security."
tags:
- security
- compliance
- microsoft-endpoint-manager
- azure-active-directory
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: endpoint-compliance
port: 8080
tools:
- name: check-endpoint-compliance
description: "Given a device ID, check compliance status, verify group policies, create remediation tasks for violations, and notify security."
inputParameters:
- name: device_id
in: body
type: string
description: "The Microsoft Endpoint Manager device ID."
steps:
- name: get-compliance
type: call
call: "intune.get-device-compliance"
with:
device_id: "{{device_id}}"
- name: get-policies
type: call
call: "azuread.get-device-policies"
with:
device_id: "{{device_id}}"
- name: create-remediation
type: call
call: "servicenow.create-task"
with:
short_description: "Non-Compliant Endpoint: {{get-compliance.device_name}} — {{get-compliance.compliance_state}}"
assigned_group: "IT_Security"
category: "endpoint_remediation"
description: "Device: {{get-compliance.device_name}} ({{device_id}}). OS: {{get-compliance.os_version}}. Compliance state: {{get-compliance.compliance_state}}. Violations: {{get-compliance.violation_count}}. Owner: {{get-compliance.user_principal_name}}."
- name: notify-security
type: call
call: "msteams.post-channel"
with:
team_id: "it-security"
channel_id: "endpoint-alerts"
text: "Non-Compliant Endpoint — {{get-compliance.device_name}} ({{get-compliance.user_principal_name}}): State: {{get-compliance.compliance_state}}. Violations: {{get-compliance.violation_count}}. Remediation: {{create-remediation.number}}."
consumes:
- type: http
namespace: intune
baseUri: "https://graph.microsoft.com/v1.0/deviceManagement"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: managed-devices
path: "/managedDevices/{{device_id}}"
inputParameters:
- name: device_id
in: path
operations:
- name: get-device-compliance
method: GET
- type: http
namespace: azuread
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: device-policies
path: "/devices/{{device_id}}/memberOf"
inputParameters:
- name: device_id
in: path
operations:
- name: get-device-policies
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Generates a quarterly business review package for an enterprise customer by pulling the account from Salesforce, usage from Oracle EBS, open tickets from ServiceNow, and posting the summary to the account team channel.
naftiko: "0.5"
info:
label: "Enterprise Account Review Orchestrator"
description: "Generates a quarterly business review package for an enterprise customer by pulling the account from Salesforce, usage from Oracle EBS, open tickets from ServiceNow, and posting the summary to the account team channel."
tags:
- sales
- enterprise
- salesforce
- oracle-e-business-suite
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: enterprise-reviews
port: 8080
tools:
- name: generate-qbr-package
description: "Given an enterprise account ID and review quarter, compile account health, usage, and support metrics into a QBR summary."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce enterprise account ID."
- name: quarter
in: body
type: string
description: "The review quarter (e.g., 2026-Q1)."
steps:
- name: get-account
type: call
call: "salesforce.get-enterprise-account"
with:
account_id: "{{account_id}}"
- name: get-usage
type: call
call: "oracle-ebs.get-enterprise-usage"
with:
customer_number: "{{get-account.Customer_Number__c}}"
quarter: "{{quarter}}"
- name: get-tickets
type: call
call: "servicenow.get-account-tickets"
with:
account_id: "{{account_id}}"
quarter: "{{quarter}}"
- name: post-qbr
type: call
call: "msteams.post-channel"
with:
team_id: "enterprise-sales"
channel_id: "qbr-packages"
text: "QBR Ready — {{get-account.Name}} ({{quarter}}): Lines: {{get-usage.active_lines}}. MRC: ${{get-usage.monthly_recurring}}. Data usage: {{get-usage.data_gb}} GB avg/mo. Open tickets: {{get-tickets.open_count}}. SLA met: {{get-tickets.sla_pct}}%."
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: enterprise-accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-enterprise-account
method: GET
- type: http
namespace: oracle-ebs
baseUri: "https://ebs.tmobile-finance.com/webservices/rest/enterprise/v1"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: enterprise-usage
path: "/usage?customer={{customer_number}}&quarter={{quarter}}"
inputParameters:
- name: customer_number
in: query
- name: quarter
in: query
operations:
- name: get-enterprise-usage
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: account-tickets
path: "/table/incident?sysparm_query=account={{account_id}}&opened_atON{{quarter}}"
inputParameters:
- name: account_id
in: query
- name: quarter
in: query
operations:
- name: get-account-tickets
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries an F5 Networks load balancer for the health status of a virtual server pool, returning member availability and connection counts for T-Mobile infrastructure.
naftiko: "0.5"
info:
label: "F5 Load Balancer Pool Status"
description: "Queries an F5 Networks load balancer for the health status of a virtual server pool, returning member availability and connection counts for T-Mobile infrastructure."
tags:
- network-ops
- f5-networks
capability:
exposes:
- type: mcp
namespace: lb-monitoring
port: 8080
tools:
- name: get-pool-status
description: "Look up an F5 load balancer pool by name. Returns pool availability, active member count, and total connections."
inputParameters:
- name: pool_name
in: body
type: string
description: "The F5 pool name (e.g., pool_billing-api_443)."
call: "f5.get-pool"
with:
pool_name: "{{pool_name}}"
outputParameters:
- name: availability_state
type: string
mapping: "$.availabilityState"
- name: active_members
type: integer
mapping: "$.activeMemberCnt"
- name: total_connections
type: integer
mapping: "$.serverside.totConns"
consumes:
- type: http
namespace: f5
baseUri: "https://f5-ltm.tmobile-network.com/mgmt/tm/ltm"
authentication:
type: basic
username: "$secrets.f5_user"
password: "$secrets.f5_password"
resources:
- name: pools
path: "/pool/~Common~{{pool_name}}/stats"
inputParameters:
- name: pool_name
in: path
operations:
- name: get-pool
method: GET
Queries a Palo Alto Networks firewall rule by name, logs the audit result in ServiceNow as a compliance record, and notifies the security team in Teams.
naftiko: "0.5"
info:
label: "Firewall Rule Audit and Compliance Log"
description: "Queries a Palo Alto Networks firewall rule by name, logs the audit result in ServiceNow as a compliance record, and notifies the security team in Teams."
tags:
- security
- compliance
- palo-alto-networks
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: firewall-ops
port: 8080
tools:
- name: audit-firewall-rule
description: "Look up a firewall rule, log the audit finding in ServiceNow, and notify the security compliance team."
inputParameters:
- name: rule_name
in: body
type: string
description: "The firewall security rule name."
- name: audit_reason
in: body
type: string
description: "The reason for the audit (periodic_review, incident, change_request)."
steps:
- name: get-rule
type: call
call: "paloalto.get-rule"
with:
rule_name: "{{rule_name}}"
- name: log-audit
type: call
call: "servicenow.create-task"
with:
short_description: "Firewall Rule Audit: {{rule_name}}"
category: "security_audit"
assigned_group: "Security_Compliance"
description: "Rule: {{rule_name}}. Action: {{get-rule.action}}. Source zones: {{get-rule.source_zone}}. Dest zones: {{get-rule.destination_zone}}. Audit reason: {{audit_reason}}."
- name: notify-security
type: call
call: "msteams.post-channel"
with:
team_id: "security-compliance"
channel_id: "firewall-audits"
text: "Firewall Audit — Rule: {{rule_name}}. Action: {{get-rule.action}}. Reason: {{audit_reason}}. Task: {{log-audit.number}}."
consumes:
- type: http
namespace: paloalto
baseUri: "https://panorama.tmobile-security.com/restapi/v10.2"
authentication:
type: apiKey
key: "$secrets.paloalto_api_key"
resources:
- name: security-rules
path: "/Policies/SecurityRules?name={{rule_name}}"
inputParameters:
- name: rule_name
in: query
operations:
- name: get-rule
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/task"
operations:
- name: create-task
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
When a fraud signal is detected, pulls the subscriber profile from Salesforce, queries SIM swap history from the fraud platform, opens a security incident in ServiceNow, and alerts the fraud ops team in Teams.
naftiko: "0.5"
info:
label: "Fraud Alert Investigation Pipeline"
description: "When a fraud signal is detected, pulls the subscriber profile from Salesforce, queries SIM swap history from the fraud platform, opens a security incident in ServiceNow, and alerts the fraud ops team in Teams."
tags:
- fraud
- security
- salesforce
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: fraud-investigation
port: 8080
tools:
- name: investigate-fraud-alert
description: "Given a subscriber MSISDN and fraud alert type, pull subscriber details, check SIM swap history, open a security incident, and notify the fraud team."
inputParameters:
- name: msisdn
in: body
type: string
description: "The subscriber phone number in E.164 format."
- name: alert_type
in: body
type: string
description: "The type of fraud alert (sim_swap, account_takeover, device_fraud, subscription_fraud)."
- name: risk_score
in: body
type: number
description: "The fraud risk score (0-100)."
steps:
- name: get-subscriber
type: call
call: "salesforce.get-subscriber"
with:
msisdn: "{{msisdn}}"
- name: get-sim-history
type: call
call: "fraud-platform.get-sim-swaps"
with:
msisdn: "{{msisdn}}"
- name: open-security-incident
type: call
call: "servicenow.create-security-incident"
with:
short_description: "Fraud Alert: {{alert_type}} — {{msisdn}}"
category: "fraud"
severity: "2"
assigned_group: "Fraud_Operations"
description: "MSISDN: {{msisdn}}. Alert: {{alert_type}}. Risk score: {{risk_score}}. Customer: {{get-subscriber.Name}}. SIM swaps in last 90 days: {{get-sim-history.swap_count}}. Last swap: {{get-sim-history.last_swap_date}}."
- name: notify-fraud-team
type: call
call: "msteams.post-channel"
with:
team_id: "fraud-operations"
channel_id: "alerts"
text: "FRAUD ALERT — {{alert_type}} for {{msisdn}} ({{get-subscriber.Name}}). Risk: {{risk_score}}/100. SIM swaps: {{get-sim-history.swap_count}}. Incident: {{open-security-incident.number}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: subscribers
path: "/query?q=SELECT+Id,Name,MSISDN__c,Account_Status__c+FROM+Subscriber__c+WHERE+MSISDN__c='{{msisdn}}'"
inputParameters:
- name: msisdn
in: query
operations:
- name: get-subscriber
method: GET
- type: http
namespace: fraud-platform
baseUri: "https://fraud-api.tmobile-security.com/v1"
authentication:
type: bearer
token: "$secrets.fraud_platform_token"
resources:
- name: sim-swaps
path: "/sim-swaps?msisdn={{msisdn}}&days=90"
inputParameters:
- name: msisdn
in: query
operations:
- name: get-sim-swaps
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: security-incidents
path: "/table/sn_si_incident"
operations:
- name: create-security-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Retrieves the status of a GitLab merge request by project and MR ID, returning approval status, pipeline result, and merge readiness for T-Mobile engineering teams.
naftiko: "0.5"
info:
label: "GitLab Merge Request Status"
description: "Retrieves the status of a GitLab merge request by project and MR ID, returning approval status, pipeline result, and merge readiness for T-Mobile engineering teams."
tags:
- ci-cd
- gitlab
capability:
exposes:
- type: mcp
namespace: code-review
port: 8080
tools:
- name: get-merge-request-status
description: "Look up a GitLab merge request by project ID and MR IID. Returns title, approval status, pipeline status, and merge conflicts."
inputParameters:
- name: project_id
in: body
type: string
description: "The GitLab project ID."
- name: mr_iid
in: body
type: string
description: "The merge request internal ID."
call: "gitlab.get-mr"
with:
project_id: "{{project_id}}"
mr_iid: "{{mr_iid}}"
outputParameters:
- name: title
type: string
mapping: "$.title"
- name: state
type: string
mapping: "$.state"
- name: pipeline_status
type: string
mapping: "$.head_pipeline.status"
- name: has_conflicts
type: boolean
mapping: "$.has_conflicts"
consumes:
- type: http
namespace: gitlab
baseUri: "https://gitlab.tmobile.com/api/v4"
authentication:
type: bearer
token: "$secrets.gitlab_token"
resources:
- name: merge-requests
path: "/projects/{{project_id}}/merge_requests/{{mr_iid}}"
inputParameters:
- name: project_id
in: path
- name: mr_iid
in: path
operations:
- name: get-mr
method: GET
Pulls a traffic summary from Google Analytics for t-mobile.com, returning sessions, bounce rate, and top pages for a given date range.
naftiko: "0.5"
info:
label: "Google Analytics Traffic Snapshot"
description: "Pulls a traffic summary from Google Analytics for t-mobile.com, returning sessions, bounce rate, and top pages for a given date range."
tags:
- analytics
- google-analytics
- marketing
capability:
exposes:
- type: mcp
namespace: web-analytics
port: 8080
tools:
- name: get-traffic-snapshot
description: "Retrieve a Google Analytics traffic summary for a given date range. Returns total sessions, unique users, bounce rate, and top landing pages."
inputParameters:
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "google-analytics.run-report"
with:
property_id: "properties/123456789"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: total_sessions
type: integer
mapping: "$.rows[0].metricValues[0].value"
- name: bounce_rate
type: number
mapping: "$.rows[0].metricValues[1].value"
consumes:
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: run-report
method: POST
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.t-mobile.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
After a major incident is resolved, pulls the incident timeline from ServiceNow, gathers related metrics from Datadog, creates a post-mortem document in SharePoint, and notifies stakeholders in Teams.
naftiko: "0.5"
info:
label: "Incident Post-Mortem Generator"
description: "After a major incident is resolved, pulls the incident timeline from ServiceNow, gathers related metrics from Datadog, creates a post-mortem document in SharePoint, and notifies stakeholders in Teams."
tags:
- incident-management
- servicenow
- datadog
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: incident-postmortem
port: 8080
tools:
- name: generate-postmortem
description: "Given a resolved incident number, pull timeline and metrics, create a post-mortem document, and notify stakeholders."
inputParameters:
- name: incident_number
in: body
type: string
description: "The resolved ServiceNow incident number."
steps:
- name: get-incident
type: call
call: "servicenow.get-incident-full"
with:
incident_number: "{{incident_number}}"
- name: get-metrics
type: call
call: "datadog.query-metrics"
with:
query: "avg:system.cpu.idle{incident:{{incident_number}}}"
from: "{{get-incident.opened_at}}"
to: "{{get-incident.resolved_at}}"
- name: create-document
type: call
call: "sharepoint.create-file"
with:
site_id: "engineering_postmortems"
file_path: "PostMortems/{{incident_number}}_postmortem.md"
content: "# Post-Mortem: {{incident_number}}\n## Summary\n{{get-incident.short_description}}\n## Impact\nDuration: {{get-incident.business_duration}}. Priority: {{get-incident.priority}}.\n## Timeline\nOpened: {{get-incident.opened_at}}. Resolved: {{get-incident.resolved_at}}.\n## Resolution\n{{get-incident.close_notes}}"
- name: notify-stakeholders
type: call
call: "msteams.post-channel"
with:
team_id: "engineering"
channel_id: "post-mortems"
text: "Post-Mortem Ready — {{incident_number}}: {{get-incident.short_description}}. Duration: {{get-incident.business_duration}}. Document: {{create-document.url}}."
consumes:
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: query
operations:
- name: get-incident-full
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: create-file
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a Jira ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.t-mobile.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a new lead is captured in HubSpot, enriches with ZoomInfo company data, syncs to Salesforce, and alerts the sales team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Marketing Lead Enrichment Pipeline"
description: "When a new lead is captured in HubSpot, enriches with ZoomInfo company data, syncs to Salesforce, and alerts the sales team in Microsoft Teams."
tags:
- marketing
- lead-generation
- hubspot
- zoominfo
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: lead-enrichment
port: 8080
tools:
- name: enrich-and-route-lead
description: "Given a HubSpot contact ID, enrich with ZoomInfo data, create or update the Salesforce lead, and notify the assigned sales rep."
inputParameters:
- name: hubspot_contact_id
in: body
type: string
description: "The HubSpot contact ID for the new lead."
steps:
- name: get-contact
type: call
call: "hubspot.get-contact"
with:
contact_id: "{{hubspot_contact_id}}"
- name: enrich-company
type: call
call: "zoominfo.search-company"
with:
company_name: "{{get-contact.company}}"
domain: "{{get-contact.website}}"
- name: create-sf-lead
type: call
call: "salesforce.create-lead"
with:
first_name: "{{get-contact.firstname}}"
last_name: "{{get-contact.lastname}}"
company: "{{get-contact.company}}"
email: "{{get-contact.email}}"
employee_count: "{{enrich-company.employee_count}}"
industry: "{{enrich-company.industry}}"
revenue: "{{enrich-company.revenue}}"
- name: notify-sales
type: call
call: "msteams.post-channel"
with:
team_id: "b2b-sales"
channel_id: "new-leads"
text: "New Lead: {{get-contact.firstname}} {{get-contact.lastname}} at {{get-contact.company}}. Industry: {{enrich-company.industry}}. Employees: {{enrich-company.employee_count}}. Revenue: ${{enrich-company.revenue}}. SF Lead: {{create-sf-lead.id}}."
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/objects/contacts/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- type: http
namespace: zoominfo
baseUri: "https://api.zoominfo.com/search"
authentication:
type: bearer
token: "$secrets.zoominfo_token"
resources:
- name: companies
path: "/company"
operations:
- name: search-company
method: POST
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: leads
path: "/sobjects/Lead"
operations:
- name: create-lead
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.t-mobile.com/communications/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Pulls cell site traffic data from Ericsson ENM, correlates with Datadog infrastructure metrics, and generates a capacity report posted to the network planning Teams channel.
naftiko: "0.5"
info:
label: "Network Capacity Planning Orchestrator"
description: "Pulls cell site traffic data from Ericsson ENM, correlates with Datadog infrastructure metrics, and generates a capacity report posted to the network planning Teams channel."
tags:
- network-ops
- capacity-planning
- ericsson
- datadog
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: capacity-planning
port: 8080
tools:
- name: generate-capacity-report
description: "Given a market region code, pull cell site traffic, correlate with infrastructure metrics, and post a capacity summary."
inputParameters:
- name: market_code
in: body
type: string
description: "The T-Mobile market region code (e.g., SEA, LAX, NYC)."
- name: time_range
in: body
type: string
description: "The analysis time range (e.g., last_7d, last_30d)."
steps:
- name: get-traffic-data
type: call
call: "ericsson.get-market-traffic"
with:
market: "{{market_code}}"
period: "{{time_range}}"
- name: get-infra-metrics
type: call
call: "datadog.query-metrics"
with:
query: "avg:network.cell.utilization{market:{{market_code}}}"
from: "{{time_range}}"
- name: post-report
type: call
call: "msteams.post-channel"
with:
team_id: "network-planning"
channel_id: "capacity-reports"
text: "Capacity Report — Market {{market_code}} ({{time_range}}): Peak utilization: {{get-infra-metrics.avg_latency_ms}}%. Total sites: {{get-traffic-data.site_count}}. Sites above 80%: {{get-traffic-data.congested_count}}. Avg throughput: {{get-traffic-data.avg_throughput_mbps}} Mbps."
consumes:
- type: http
namespace: ericsson
baseUri: "https://enm.tmobile-network.com/oss/api/v1"
authentication:
type: bearer
token: "$secrets.ericsson_enm_token"
resources:
- name: market-traffic
path: "/performance/market/{{market}}?period={{period}}"
inputParameters:
- name: market
in: path
- name: period
in: query
operations:
- name: get-market-traffic
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Checks the operational status of a network element.
naftiko: "0.5"
info:
label: "Network Element Status"
description: "Checks the operational status of a network element."
tags:
- network
- monitoring
capability:
exposes:
- type: mcp
namespace: network
port: 8080
tools:
- name: get-network
description: "Checks the operational status of a network element."
inputParameters:
- name: entity_id
in: body
type: string
description: "The network element status identifier."
call: "network-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: network-api
baseUri: "https://api.t-mobile.com/network/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: network
path: "/network/element/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-network
method: GET
Queries Datadog for real-time network performance metrics by hostname, and if degradation is detected posts an alert to the NOC Microsoft Teams channel with metric details.
naftiko: "0.5"
info:
label: "Network Metrics Alert Pipeline"
description: "Queries Datadog for real-time network performance metrics by hostname, and if degradation is detected posts an alert to the NOC Microsoft Teams channel with metric details."
tags:
- monitoring
- datadog
- network-ops
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: network-monitoring
port: 8080
tools:
- name: check-network-metrics
description: "Query Datadog for network performance metrics by hostname and alert the NOC team in Teams if thresholds are breached."
inputParameters:
- name: hostname_pattern
in: body
type: string
description: "Hostname or wildcard pattern for the network device (e.g., core-rtr-sea-*)."
- name: time_range
in: body
type: string
description: "Time range for the query (e.g., last_1h, last_24h)."
steps:
- name: get-metrics
type: call
call: "datadog.query-metrics"
with:
query: "avg:system.net.bytes_rcvd{host:{{hostname_pattern}}}"
from: "{{time_range}}"
- name: notify-noc
type: call
call: "msteams.post-channel"
with:
team_id: "noc-operations"
channel_id: "metrics-alerts"
text: "Network Metrics Alert — Host: {{hostname_pattern}} ({{time_range}}): Avg latency: {{get-metrics.avg_latency_ms}}ms. Packet loss: {{get-metrics.packet_loss_pct}}%."
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
On detection of a network outage signal, fetches affected cell site status from Ericsson ENM, checks Datadog for correlated metrics, opens a ServiceNow P1 incident, and alerts the NOC channel in Microsoft Teams.
naftiko: "0.5"
info:
label: "Network Outage Triage Orchestrator"
description: "On detection of a network outage signal, fetches affected cell site status from Ericsson ENM, checks Datadog for correlated metrics, opens a ServiceNow P1 incident, and alerts the NOC channel in Microsoft Teams."
tags:
- network-ops
- incident-management
- ericsson
- datadog
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: network-triage
port: 8080
tools:
- name: triage-network-outage
description: "Given an affected cell site ID and outage description, pull site status, check monitoring metrics, open a P1 incident, and notify the NOC team."
inputParameters:
- name: site_id
in: body
type: string
description: "The affected cell site identifier."
- name: outage_description
in: body
type: string
description: "A brief description of the detected outage symptoms."
- name: severity
in: body
type: string
description: "Outage severity level (P1, P2, P3)."
steps:
- name: get-site-status
type: call
call: "ericsson.get-site"
with:
site_id: "{{site_id}}"
- name: get-site-metrics
type: call
call: "datadog.query-metrics"
with:
query: "avg:network.cell.availability{site_id:{{site_id}}}"
from: "last_1h"
- name: open-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Network Outage: Site {{site_id}} — {{outage_description}}"
urgency: "1"
impact: "1"
category: "network"
assigned_group: "NOC_Tier2"
description: "Site {{site_id}} reported outage. Status: {{get-site-status.operational_status}}. Availability metric: {{get-site-metrics.avg_latency_ms}}. Severity: {{severity}}."
- name: notify-noc
type: call
call: "msteams.post-channel"
with:
team_id: "noc-operations"
channel_id: "critical-alerts"
text: "P1 NETWORK OUTAGE — Site {{site_id}}: {{outage_description}}. Incident {{open-incident.number}} opened. Site status: {{get-site-status.operational_status}}. Alarms: {{get-site-status.active_alarms}}."
consumes:
- type: http
namespace: ericsson
baseUri: "https://enm.tmobile-network.com/oss/api/v1"
authentication:
type: bearer
token: "$secrets.ericsson_enm_token"
resources:
- name: managed-elements
path: "/managed-elements/{{site_id}}"
inputParameters:
- name: site_id
in: path
operations:
- name: get-site
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Generates network performance reviews by aggregating metrics, identifying degradations, and distributing reports.
naftiko: "0.5"
info:
label: "Network Performance Review Orchestrator"
description: "Generates network performance reviews by aggregating metrics, identifying degradations, and distributing reports."
tags:
- network
- analytics
- sharepoint
capability:
exposes:
- type: mcp
namespace: network
port: 8080
tools:
- name: run-network-performance-review-orchestrator
description: "Generates network performance reviews by aggregating metrics, identifying degradations, and distributing reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Network Performance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Handles network security incidents by detecting threats, isolating affected segments, and documenting response.
naftiko: "0.5"
info:
label: "Network Security Incident Orchestrator"
description: "Handles network security incidents by detecting threats, isolating affected segments, and documenting response."
tags:
- security
- network
- servicenow
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-network-security-incident-orchestrator
description: "Handles network security incidents by detecting threats, isolating affected segments, and documenting response."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Network Security Incident Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries SolarWinds Orion for a network node's health, and if CPU or memory exceeds thresholds creates a ServiceNow incident and alerts the network engineering team in Teams.
naftiko: "0.5"
info:
label: "Node Health Check and Escalation"
description: "Queries SolarWinds Orion for a network node's health, and if CPU or memory exceeds thresholds creates a ServiceNow incident and alerts the network engineering team in Teams."
tags:
- monitoring
- solarwinds
- network-ops
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: node-monitoring
port: 8080
tools:
- name: check-and-escalate-node
description: "Check a SolarWinds node by hostname, create a ServiceNow incident if degraded, and notify the network engineering team."
inputParameters:
- name: hostname
in: body
type: string
description: "The network device hostname as registered in SolarWinds."
steps:
- name: get-node
type: call
call: "solarwinds.get-node"
with:
hostname: "{{hostname}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Node Health Alert: {{hostname}} — CPU: {{get-node.cpu_load}}%, Memory: {{get-node.memory_used_pct}}%"
category: "network"
assigned_group: "Network_Engineering"
description: "Node {{hostname}} status: {{get-node.status}}. CPU load: {{get-node.cpu_load}}%. Memory used: {{get-node.memory_used_pct}}%."
- name: notify-team
type: call
call: "msteams.post-channel"
with:
team_id: "network-engineering"
channel_id: "node-alerts"
text: "Node Alert — {{hostname}}: Status: {{get-node.status}}. CPU: {{get-node.cpu_load}}%. Memory: {{get-node.memory_used_pct}}%. Incident: {{create-incident.number}}."
consumes:
- type: http
namespace: solarwinds
baseUri: "https://solarwinds.tmobile-network.com:17778/SolarWinds/InformationService/v3/Json"
authentication:
type: basic
username: "$secrets.solarwinds_user"
password: "$secrets.solarwinds_password"
resources:
- name: nodes
path: "/Query?query=SELECT+Status,CPULoad,PercentMemoryUsed+FROM+Orion.Nodes+WHERE+Caption='{{hostname}}'"
inputParameters:
- name: hostname
in: query
operations:
- name: get-node
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Processes a number port-in request by validating the number, creating the port order in the activation system, updating Salesforce, and notifying the customer and retail rep.
naftiko: "0.5"
info:
label: "Number Porting Request Orchestrator"
description: "Processes a number port-in request by validating the number, creating the port order in the activation system, updating Salesforce, and notifying the customer and retail rep."
tags:
- customer-management
- porting
- salesforce
- adobe-campaign
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: number-porting
port: 8080
tools:
- name: process-port-in
description: "Given a phone number, account ID, and carrier details, submit a port-in request, update CRM, and send notifications."
inputParameters:
- name: porting_number
in: body
type: string
description: "The phone number being ported in E.164 format."
- name: account_id
in: body
type: string
description: "The Salesforce customer account ID."
- name: losing_carrier
in: body
type: string
description: "The current carrier name."
- name: account_number
in: body
type: string
description: "The customer's account number with the losing carrier."
steps:
- name: submit-port-request
type: call
call: "activation-api.submit-port"
with:
msisdn: "{{porting_number}}"
losing_carrier: "{{losing_carrier}}"
losing_account: "{{account_number}}"
- name: get-account
type: call
call: "salesforce.get-account-by-id"
with:
account_id: "{{account_id}}"
- name: update-crm
type: call
call: "salesforce.create-port-record"
with:
account_id: "{{account_id}}"
msisdn: "{{porting_number}}"
port_order_id: "{{submit-port-request.order_id}}"
status: "submitted"
losing_carrier: "{{losing_carrier}}"
- name: send-confirmation
type: call
call: "adobe-campaign.trigger-message"
with:
template: "port_in_submitted"
email: "{{get-account.PersonEmail}}"
params:
customer_name: "{{get-account.Name}}"
porting_number: "{{porting_number}}"
order_id: "{{submit-port-request.order_id}}"
estimated_date: "{{submit-port-request.estimated_completion}}"
consumes:
- type: http
namespace: activation-api
baseUri: "https://activation-api.tmobile-network.com/v2"
authentication:
type: bearer
token: "$secrets.activation_api_token"
resources:
- name: port-requests
path: "/port-in"
operations:
- name: submit-port
method: POST
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account-by-id
method: GET
- name: port-records
path: "/sobjects/Port_Request__c"
operations:
- name: create-port-record
method: POST
- type: http
namespace: adobe-campaign
baseUri: "https://mc.adobe.io/tmobile/campaign/v1"
authentication:
type: bearer
token: "$secrets.adobe_campaign_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: transactional-messages
path: "/messageCenter/{{template}}/send"
inputParameters:
- name: template
in: path
operations:
- name: trigger-message
method: POST
Generates marketing copy using OpenAI GPT, reviews it against brand guidelines stored in SharePoint, and posts the draft to the marketing team's Teams channel for approval.
naftiko: "0.5"
info:
label: "OpenAI Content Generation for Marketing"
description: "Generates marketing copy using OpenAI GPT, reviews it against brand guidelines stored in SharePoint, and posts the draft to the marketing team's Teams channel for approval."
tags:
- marketing
- content
- openai
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: content-generation
port: 8080
tools:
- name: generate-marketing-copy
description: "Given a campaign brief, generate marketing copy with AI, cross-reference brand guidelines, and share for review."
inputParameters:
- name: campaign_brief
in: body
type: string
description: "A description of the campaign and target audience."
- name: content_type
in: body
type: string
description: "The type of content (email, social_post, landing_page, sms)."
- name: tone
in: body
type: string
description: "Desired tone (bold, friendly, professional, urgent)."
steps:
- name: generate-copy
type: call
call: "openai.create-completion"
with:
model: "gpt-4"
prompt: "Write T-Mobile {{content_type}} copy. Brief: {{campaign_brief}}. Tone: {{tone}}. Brand voice: bold, confident, customer-first. Include a clear call to action."
- name: get-guidelines
type: call
call: "sharepoint.get-file"
with:
site_id: "marketing_brand"
file_path: "Guidelines/brand-voice-guide.md"
- name: post-for-review
type: call
call: "msteams.post-channel"
with:
team_id: "marketing"
channel_id: "content-review"
text: "AI-Generated {{content_type}} Draft for Review:\n\nBrief: {{campaign_brief}}\nTone: {{tone}}\n\nGenerated Copy:\n{{generate-copy.text}}\n\nPlease review against brand guidelines and approve or suggest edits."
consumes:
- type: http
namespace: openai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: create-completion
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Onboards new technology partners by provisioning API access, configuring integrations, and validating connectivity.
naftiko: "0.5"
info:
label: "Partner Integration Orchestrator"
description: "Onboards new technology partners by provisioning API access, configuring integrations, and validating connectivity."
tags:
- partnerships
- engineering
- api
capability:
exposes:
- type: mcp
namespace: partnerships
port: 8080
tools:
- name: run-partner-integration-orchestrator
description: "Onboards new technology partners by provisioning API access, configuring integrations, and validating connectivity."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Partner Integration Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Assigns a Pluralsight learning path to a team by looking up members in Workday, creating assignments in Pluralsight, and notifying the team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Pluralsight Learning Path Assignment"
description: "Assigns a Pluralsight learning path to a team by looking up members in Workday, creating assignments in Pluralsight, and notifying the team in Microsoft Teams."
tags:
- learning
- pluralsight
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: learning-management
port: 8080
tools:
- name: assign-learning-path
description: "Given a Workday team ID and Pluralsight channel ID, assign the learning path to all team members and notify them."
inputParameters:
- name: team_id
in: body
type: string
description: "The Workday supervisory org ID for the team."
- name: channel_id
in: body
type: string
description: "The Pluralsight channel/path ID."
- name: due_date
in: body
type: string
description: "Assignment due date in YYYY-MM-DD format."
steps:
- name: get-team-members
type: call
call: "workday.get-team"
with:
org_id: "{{team_id}}"
- name: create-assignment
type: call
call: "pluralsight.assign-channel"
with:
channel_id: "{{channel_id}}"
user_emails: "{{get-team-members.emails}}"
due_date: "{{due_date}}"
- name: notify-team
type: call
call: "msteams.post-channel"
with:
team_id: "{{team_id}}"
channel_id: "general"
text: "New Learning Assignment: A Pluralsight learning path has been assigned to your team. Due by {{due_date}}. {{create-assignment.assigned_count}} team members enrolled. Start here: {{create-assignment.channel_url}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1/tmobile"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: teams
path: "/supervisoryOrganizations/{{org_id}}/workers"
inputParameters:
- name: org_id
in: path
operations:
- name: get-team
method: GET
- type: http
namespace: pluralsight
baseUri: "https://app.pluralsight.com/api/v1"
authentication:
type: bearer
token: "$secrets.pluralsight_token"
resources:
- name: channel-assignments
path: "/channels/{{channel_id}}/assignments"
inputParameters:
- name: channel_id
in: path
operations:
- name: assign-channel
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.t-mobile.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Fetches active Prometheus alerts filtered by severity, creates a ServiceNow incident for critical batches, and posts a digest summary to the NOC Teams channel.
naftiko: "0.5"
info:
label: "Prometheus Alert Digest and Notification"
description: "Fetches active Prometheus alerts filtered by severity, creates a ServiceNow incident for critical batches, and posts a digest summary to the NOC Teams channel."
tags:
- monitoring
- prometheus
- network-ops
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: alert-monitoring
port: 8080
tools:
- name: process-active-alerts
description: "Query Prometheus for active alerts by severity, batch-create a ServiceNow incident, and post a summary to the NOC channel."
inputParameters:
- name: severity
in: body
type: string
description: "Alert severity to filter (critical, warning, info)."
steps:
- name: get-alerts
type: call
call: "prometheus.get-alerts"
with:
filter: "severity={{severity}}"
- name: create-batch-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Prometheus Alert Batch: {{get-alerts.alert_count}} {{severity}} alerts"
category: "monitoring"
assigned_group: "NOC_Tier1"
description: "{{get-alerts.alert_count}} active {{severity}} alerts detected in Prometheus Alertmanager. Review and triage required."
- name: notify-noc
type: call
call: "msteams.post-channel"
with:
team_id: "noc-operations"
channel_id: "alert-digests"
text: "Prometheus Alert Digest — {{get-alerts.alert_count}} {{severity}} alerts active. Incident: {{create-batch-incident.number}}. Please review and assign."
consumes:
- type: http
namespace: prometheus
baseUri: "https://alertmanager.tmobile-infra.com/api/v2"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: alerts
path: "/alerts?filter={{filter}}"
inputParameters:
- name: filter
in: query
operations:
- name: get-alerts
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries SAP for real-time device inventory levels at a T-Mobile retail store by store code and SKU, used by retail operations to check stock availability.
naftiko: "0.5"
info:
label: "Retail Store Inventory Check"
description: "Queries SAP for real-time device inventory levels at a T-Mobile retail store by store code and SKU, used by retail operations to check stock availability."
tags:
- retail
- inventory
- sap
capability:
exposes:
- type: mcp
namespace: retail-inventory
port: 8080
tools:
- name: check-store-inventory
description: "Look up device inventory at a T-Mobile retail store by store code and SKU. Returns quantity on hand, reserved units, and reorder status."
inputParameters:
- name: store_code
in: body
type: string
description: "The T-Mobile retail store code (e.g., TMUS-SEA-0312)."
- name: sku
in: body
type: string
description: "The device SKU to check."
call: "sap.get-inventory"
with:
plant: "{{store_code}}"
material: "{{sku}}"
outputParameters:
- name: quantity_on_hand
type: integer
mapping: "$.d.AvailableStock"
- name: reserved_qty
type: integer
mapping: "$.d.ReservedStock"
- name: reorder_point
type: integer
mapping: "$.d.ReorderPoint"
consumes:
- type: http
namespace: sap
baseUri: "https://tmobile-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: sap-client
in: header
value: "100"
resources:
- name: material-stock
path: "/A_MatlStkInAcctMod(Plant='{{plant}}',Material='{{material}}')"
inputParameters:
- name: plant
in: path
- name: material
in: path
operations:
- name: get-inventory
method: GET
Aggregates retail store performance by pulling sales data from Salesforce, foot traffic from Google Analytics, and inventory levels from SAP, then posts a daily summary to the retail ops Teams channel.
naftiko: "0.5"
info:
label: "Retail Store Performance Dashboard Orchestrator"
description: "Aggregates retail store performance by pulling sales data from Salesforce, foot traffic from Google Analytics, and inventory levels from SAP, then posts a daily summary to the retail ops Teams channel."
tags:
- retail
- sales
- salesforce
- google-analytics
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retail-performance
port: 8080
tools:
- name: generate-store-dashboard
description: "Given a store code and date, aggregate sales, traffic, and inventory metrics and post a performance summary to Teams."
inputParameters:
- name: store_code
in: body
type: string
description: "The T-Mobile retail store code."
- name: report_date
in: body
type: string
description: "The report date in YYYY-MM-DD format."
steps:
- name: get-sales-data
type: call
call: "salesforce.get-store-sales"
with:
store_code: "{{store_code}}"
date: "{{report_date}}"
- name: get-traffic
type: call
call: "google-analytics.run-report"
with:
property_id: "properties/123456789"
store_filter: "{{store_code}}"
start_date: "{{report_date}}"
end_date: "{{report_date}}"
- name: get-inventory-snapshot
type: call
call: "sap.get-plant-inventory"
with:
plant: "{{store_code}}"
- name: post-dashboard
type: call
call: "msteams.post-channel"
with:
team_id: "retail-operations"
channel_id: "daily-dashboards"
text: "Store {{store_code}} — {{report_date}}: Activations: {{get-sales-data.activation_count}}, Upgrades: {{get-sales-data.upgrade_count}}, Revenue: ${{get-sales-data.total_revenue}}. Walk-ins: {{get-traffic.total_sessions}}. Top device in stock: {{get-inventory-snapshot.top_sku}} ({{get-inventory-snapshot.top_sku_qty}} units)."
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: store-sales
path: "/query?q=SELECT+Activation_Count__c,Upgrade_Count__c,Total_Revenue__c+FROM+Store_Sales__c+WHERE+Store_Code__c='{{store_code}}'+AND+Sale_Date__c={{date}}"
inputParameters:
- name: store_code
in: query
- name: date
in: query
operations:
- name: get-store-sales
method: GET
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: run-report
method: POST
- type: http
namespace: sap
baseUri: "https://tmobile-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: plant-inventory
path: "/A_MatlStkInAcctMod?$filter=Plant eq '{{plant}}'"
inputParameters:
- name: plant
in: query
operations:
- name: get-plant-inventory
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Manages roaming agreements by tracking partner usage, calculating settlements, and generating invoices.
naftiko: "0.5"
info:
label: "Roaming Agreement Orchestrator"
description: "Manages roaming agreements by tracking partner usage, calculating settlements, and generating invoices."
tags:
- partnerships
- finance
- billing
capability:
exposes:
- type: mcp
namespace: partnerships
port: 8080
tools:
- name: run-roaming-agreement-orchestrator
description: "Manages roaming agreements by tracking partner usage, calculating settlements, and generating invoices."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Roaming Agreement Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Processes roaming settlement by pulling inter-operator usage from the billing system, validating against partner rates in Salesforce, generating a settlement statement, and notifying the wholesale finance team.
naftiko: "0.5"
info:
label: "Roaming Partner Settlement Orchestrator"
description: "Processes roaming settlement by pulling inter-operator usage from the billing system, validating against partner rates in Salesforce, generating a settlement statement, and notifying the wholesale finance team."
tags:
- wholesale
- roaming
- oracle-e-business-suite
- salesforce
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: roaming-settlement
port: 8080
tools:
- name: process-roaming-settlement
description: "Given a roaming partner ID and settlement period, pull usage, validate rates, create the settlement document, and notify finance."
inputParameters:
- name: partner_id
in: body
type: string
description: "The Salesforce roaming partner account ID."
- name: settlement_period
in: body
type: string
description: "The settlement period in YYYY-MM format."
steps:
- name: get-partner
type: call
call: "salesforce.get-roaming-partner"
with:
partner_id: "{{partner_id}}"
- name: get-usage
type: call
call: "oracle-ebs.get-roaming-usage"
with:
partner_code: "{{get-partner.Partner_Code__c}}"
period: "{{settlement_period}}"
- name: create-statement
type: call
call: "sharepoint.create-file"
with:
site_id: "wholesale_finance"
file_path: "Settlements/{{get-partner.Name}}_{{settlement_period}}.md"
content: "# Roaming Settlement: {{get-partner.Name}}\nPeriod: {{settlement_period}}\nInbound Data: {{get-usage.inbound_data_gb}} GB\nOutbound Data: {{get-usage.outbound_data_gb}} GB\nInbound Voice: {{get-usage.inbound_voice_min}} min\nNet Settlement: ${{get-usage.net_amount}}"
- name: notify-finance
type: call
call: "msteams.post-channel"
with:
team_id: "wholesale-finance"
channel_id: "settlements"
text: "Roaming Settlement Ready — {{get-partner.Name}} ({{settlement_period}}): Net amount: ${{get-usage.net_amount}}. Document: {{create-statement.url}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: roaming-partners
path: "/sobjects/Roaming_Partner__c/{{partner_id}}"
inputParameters:
- name: partner_id
in: path
operations:
- name: get-roaming-partner
method: GET
- type: http
namespace: oracle-ebs
baseUri: "https://ebs.tmobile-finance.com/webservices/rest/roaming/v1"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: roaming-usage
path: "/usage?partner={{partner_code}}&period={{period}}"
inputParameters:
- name: partner_code
in: query
- name: period
in: query
operations:
- name: get-roaming-usage
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: create-file
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Retrieves a Salesforce account by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account by account ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: get-salesforce
description: "Retrieves a Salesforce account by account ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The salesforce account viewer identifier."
call: "sales-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sales-api
baseUri: "https://api.t-mobile.com/sales/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
Queries Salesforce for the current B2B sales pipeline by owner, returning total opportunities, weighted revenue, and stage distribution for T-Mobile enterprise sales.
naftiko: "0.5"
info:
label: "Salesforce Opportunity Pipeline Summary"
description: "Queries Salesforce for the current B2B sales pipeline by owner, returning total opportunities, weighted revenue, and stage distribution for T-Mobile enterprise sales."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales-pipeline
port: 8080
tools:
- name: get-pipeline-summary
description: "Query Salesforce for a sales rep's opportunity pipeline. Returns total open opportunities, weighted pipeline value, and stage breakdown."
inputParameters:
- name: owner_id
in: body
type: string
description: "The Salesforce user ID of the sales rep."
call: "salesforce.query-pipeline"
with:
owner_id: "{{owner_id}}"
outputParameters:
- name: total_opportunities
type: integer
mapping: "$.totalSize"
- name: records
type: array
mapping: "$.records"
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: pipeline-query
path: "/query?q=SELECT+StageName,Amount,CloseDate,Name+FROM+Opportunity+WHERE+OwnerId='{{owner_id}}'+AND+IsClosed=false"
inputParameters:
- name: owner_id
in: query
operations:
- name: query-pipeline
method: GET
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Triggers a vulnerability scan assessment, pulls findings from Palo Alto Prisma Cloud, opens ServiceNow security incidents for critical findings, and alerts the security ops team in Teams.
naftiko: "0.5"
info:
label: "Security Vulnerability Scan Orchestrator"
description: "Triggers a vulnerability scan assessment, pulls findings from Palo Alto Prisma Cloud, opens ServiceNow security incidents for critical findings, and alerts the security ops team in Teams."
tags:
- security
- vulnerability
- palo-alto-networks
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: vuln-management
port: 8080
tools:
- name: process-vuln-findings
description: "Given a cloud account ID, pull critical vulnerability findings, create security incidents, and notify the security operations team."
inputParameters:
- name: cloud_account_id
in: body
type: string
description: "The cloud account identifier to scan."
- name: severity_threshold
in: body
type: string
description: "Minimum severity to report (critical, high, medium)."
steps:
- name: get-findings
type: call
call: "prisma-cloud.get-alerts"
with:
account_id: "{{cloud_account_id}}"
severity: "{{severity_threshold}}"
- name: open-security-incident
type: call
call: "servicenow.create-security-incident"
with:
short_description: "Vuln Scan: {{get-findings.total_count}} {{severity_threshold}}+ findings in {{cloud_account_id}}"
category: "vulnerability"
severity: "2"
assigned_group: "Security_Operations"
description: "Cloud account {{cloud_account_id}} has {{get-findings.total_count}} findings at {{severity_threshold}} or above. Top finding: {{get-findings.top_alert_rule}}. Affected resources: {{get-findings.affected_resource_count}}."
- name: notify-secops
type: call
call: "msteams.post-channel"
with:
team_id: "security-operations"
channel_id: "vulnerability-alerts"
text: "Vuln Alert — Account {{cloud_account_id}}: {{get-findings.total_count}} {{severity_threshold}}+ findings. Top: {{get-findings.top_alert_rule}}. Incident: {{open-security-incident.number}}."
consumes:
- type: http
namespace: prisma-cloud
baseUri: "https://api.prismacloud.io"
authentication:
type: bearer
token: "$secrets.prisma_cloud_token"
resources:
- name: alerts
path: "/alert?alert.status=open&cloud.accountId={{account_id}}&policy.severity={{severity}}"
inputParameters:
- name: account_id
in: query
- name: severity
in: query
operations:
- name: get-alerts
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: security-incidents
path: "/table/sn_si_incident"
operations:
- name: create-security-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Queries Dynatrace for the health status of a named service, and if the service is degraded opens a ServiceNow incident and notifies the platform team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Service Health Check and Incident Creator"
description: "Queries Dynatrace for the health status of a named service, and if the service is degraded opens a ServiceNow incident and notifies the platform team in Microsoft Teams."
tags:
- monitoring
- dynatrace
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: apm-monitoring
port: 8080
tools:
- name: check-service-health
description: "Check a Dynatrace service by name, open a ServiceNow incident if degraded, and notify the platform team in Teams."
inputParameters:
- name: service_name
in: body
type: string
description: "The Dynatrace service display name (e.g., tmobile-app-gateway)."
steps:
- name: get-service
type: call
call: "dynatrace.get-service"
with:
service_name: "{{service_name}}"
- name: open-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Service Degradation: {{service_name}} — {{get-service.health_status}}"
category: "application"
assigned_group: "Platform_Engineering"
description: "Service {{service_name}} health: {{get-service.health_status}}. Response time: {{get-service.response_time_ms}}ms. Failure rate: {{get-service.failure_rate}}%."
- name: notify-team
type: call
call: "msteams.post-channel"
with:
team_id: "platform-engineering"
channel_id: "service-alerts"
text: "Service Alert — {{service_name}}: Status: {{get-service.health_status}}. Response time: {{get-service.response_time_ms}}ms. Failure rate: {{get-service.failure_rate}}%. Incident: {{open-incident.number}}."
consumes:
- type: http
namespace: dynatrace
baseUri: "https://tmobile.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: entities
path: "/entities?entitySelector=type(SERVICE),entityName({{service_name}})"
inputParameters:
- name: service_name
in: query
operations:
- name: get-service
method: GET
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.t-mobile.com/it/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Retrieves a ServiceNow incident by number, returning priority, assignment group, state, and resolution notes for T-Mobile IT operations.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number, returning priority, assignment group, state, and resolution notes for T-Mobile IT operations."
tags:
- it-ops
- servicenow
capability:
exposes:
- type: mcp
namespace: it-incidents
port: 8080
tools:
- name: get-incident
description: "Fetch a ServiceNow incident by incident number. Returns state, priority, assigned group, short description, and resolution notes."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number (e.g., INC0012345)."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: priority
type: string
mapping: "$.result.priority"
- name: assigned_to
type: string
mapping: "$.result.assigned_to.display_value"
- name: short_description
type: string
mapping: "$.result.short_description"
consumes:
- type: http
namespace: servicenow
baseUri: "https://tmobile.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: query
operations:
- name: get-incident
method: GET
Activates a new SIM card by provisioning the line in the network activation system, updating the customer record in Salesforce, adjusting billing in Oracle EBS, and sending an activation confirmation via Adobe Campaign.
naftiko: "0.5"
info:
label: "SIM Activation Orchestrator"
description: "Activates a new SIM card by provisioning the line in the network activation system, updating the customer record in Salesforce, adjusting billing in Oracle EBS, and sending an activation confirmation via Adobe Campaign."
tags:
- customer-management
- activation
- salesforce
- oracle-e-business-suite
- adobe-campaign
capability:
exposes:
- type: mcp
namespace: sim-activation
port: 8080
tools:
- name: activate-sim
description: "Given an ICCID, MSISDN, and account ID, provision the line, update CRM, set up billing, and send confirmation."
inputParameters:
- name: iccid
in: body
type: string
description: "The SIM card ICCID (19-20 digits)."
- name: msisdn
in: body
type: string
description: "The phone number to assign in E.164 format."
- name: account_id
in: body
type: string
description: "The Salesforce customer account ID."
- name: plan
in: body
type: string
description: "The rate plan to activate (e.g., Go5G Plus)."
steps:
- name: provision-line
type: call
call: "activation-api.provision"
with:
iccid: "{{iccid}}"
msisdn: "{{msisdn}}"
plan_code: "{{plan}}"
- name: update-crm
type: call
call: "salesforce.create-subscriber-line"
with:
account_id: "{{account_id}}"
msisdn: "{{msisdn}}"
iccid: "{{iccid}}"
plan: "{{plan}}"
activation_date: "{{provision-line.activation_date}}"
- name: setup-billing
type: call
call: "oracle-ebs.create-subscription"
with:
account_id: "{{account_id}}"
msisdn: "{{msisdn}}"
plan: "{{plan}}"
start_date: "{{provision-line.activation_date}}"
- name: send-confirmation
type: call
call: "adobe-campaign.trigger-message"
with:
template: "sim_activation_welcome"
email: "{{update-crm.contact_email}}"
params:
msisdn: "{{msisdn}}"
plan: "{{plan}}"
consumes:
- type: http
namespace: activation-api
baseUri: "https://activation-api.tmobile-network.com/v2"
authentication:
type: bearer
token: "$secrets.activation_api_token"
resources:
- name: provisions
path: "/lines/provision"
operations:
- name: provision
method: POST
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: subscriber-lines
path: "/sobjects/Subscriber_Line__c"
operations:
- name: create-subscriber-line
method: POST
- type: http
namespace: oracle-ebs
baseUri: "https://ebs.tmobile-finance.com/webservices/rest/billing/v1"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: subscriptions
path: "/subscriptions"
operations:
- name: create-subscription
method: POST
- type: http
namespace: adobe-campaign
baseUri: "https://mc.adobe.io/tmobile/campaign/v1"
authentication:
type: bearer
token: "$secrets.adobe_campaign_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: transactional-messages
path: "/messageCenter/{{template}}/send"
inputParameters:
- name: template
in: path
operations:
- name: trigger-message
method: POST
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.t-mobile.com/communications/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.t-mobile.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
When a negative social media mention is detected, retrieves the post from Twitter, logs it in Salesforce as a case, and notifies the social care team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Social Media Mention Monitor"
description: "When a negative social media mention is detected, retrieves the post from Twitter, logs it in Salesforce as a case, and notifies the social care team in Microsoft Teams."
tags:
- social-media
- customer-management
- twitter
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: social-care
port: 8080
tools:
- name: handle-negative-mention
description: "Given a tweet ID and sentiment score, fetch the tweet, create a Salesforce social care case, and alert the social team."
inputParameters:
- name: tweet_id
in: body
type: string
description: "The Twitter/X tweet ID."
- name: sentiment_score
in: body
type: number
description: "Sentiment score (-1.0 to 1.0, negative indicates negative sentiment)."
steps:
- name: get-tweet
type: call
call: "twitter.get-tweet"
with:
tweet_id: "{{tweet_id}}"
- name: create-social-case
type: call
call: "salesforce.create-case"
with:
subject: "Social Mention: @{{get-tweet.author_username}} — Sentiment {{sentiment_score}}"
description: "Tweet: {{get-tweet.text}}. Author: @{{get-tweet.author_username}} ({{get-tweet.author_followers}} followers). Sentiment: {{sentiment_score}}. URL: https://twitter.com/{{get-tweet.author_username}}/status/{{tweet_id}}."
type: "Social_Care"
priority: "High"
- name: notify-social-team
type: call
call: "msteams.post-channel"
with:
team_id: "social-care"
channel_id: "escalations"
text: "Negative Mention from @{{get-tweet.author_username}} ({{get-tweet.author_followers}} followers): \"{{get-tweet.text}}\". Sentiment: {{sentiment_score}}. Case: {{create-social-case.id}}."
consumes:
- type: http
namespace: twitter
baseUri: "https://api.twitter.com/2"
authentication:
type: bearer
token: "$secrets.twitter_bearer_token"
resources:
- name: tweets
path: "/tweets/{{tweet_id}}?expansions=author_id&tweet.fields=text,created_at&user.fields=username,public_metrics"
inputParameters:
- name: tweet_id
in: path
operations:
- name: get-tweet
method: GET
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-channel
method: POST
Views spectrum band allocation details.
naftiko: "0.5"
info:
label: "Spectrum Band Allocation Viewer"
description: "Views spectrum band allocation details."
tags:
- network
- spectrum
capability:
exposes:
- type: mcp
namespace: network
port: 8080
tools:
- name: get-spectrum
description: "Views spectrum band allocation details."
inputParameters:
- name: entity_id
in: body
type: string
description: "The spectrum band allocation viewer identifier."
call: "network-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: network-api
baseUri: "https://api.t-mobile.com/network/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: spectrum
path: "/spectrum/band/allocation/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-spectrum
method: GET
Plans spectrum refarming by analyzing usage patterns, modeling reallocation, and coordinating tower updates.
naftiko: "0.5"
info:
label: "Spectrum Refarming Orchestrator"
description: "Plans spectrum refarming by analyzing usage patterns, modeling reallocation, and coordinating tower updates."
tags:
- network
- spectrum
- planning
capability:
exposes:
- type: mcp
namespace: network
port: 8080
tools:
- name: run-spectrum-refarming-orchestrator
description: "Plans spectrum refarming by analyzing usage patterns, modeling reallocation, and coordinating tower updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Spectrum Refarming Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves data usage summary for a subscriber.
naftiko: "0.5"
info:
label: "Subscriber Usage Summary"
description: "Retrieves data usage summary for a subscriber."
tags:
- billing
- customer-service
capability:
exposes:
- type: mcp
namespace: billing
port: 8080
tools:
- name: get-subscriber
description: "Retrieves data usage summary for a subscriber."
inputParameters:
- name: entity_id
in: body
type: string
description: "The subscriber usage summary identifier."
call: "billing-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: billing-api
baseUri: "https://api.t-mobile.com/billing/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: subscriber
path: "/subscriber/usage/summary/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-subscriber
method: GET
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates telecom workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Telecom Workflow 1"
description: "Orchestrates telecom workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- telecom
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: telecom
port: 8080
tools:
- name: run-telecom-workflow-001
description: "Orchestrates telecom workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Telecom Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates telecom workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Telecom Workflow 2"
description: "Orchestrates telecom workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- telecom
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: telecom
port: 8080
tools:
- name: run-telecom-workflow-002
description: "Orchestrates telecom workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Telecom Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves telecom operational data for workflow 3.
naftiko: "0.5"
info:
label: "Telecom Data Query 3"
description: "Retrieves telecom operational data for workflow 3."
tags:
- telecom
- operations
capability:
exposes:
- type: mcp
namespace: telecom
port: 8080
tools:
- name: get-data-3
description: "Query telecom data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "telecom-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: telecom-api
baseUri: "https://api.t-mobile.com/telecom/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates telecom workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Telecom Workflow 4"
description: "Orchestrates telecom workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- telecom
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: telecom
port: 8080
tools:
- name: run-telecom-workflow-004
description: "Orchestrates telecom workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Telecom Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates telecom workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Telecom Workflow 5"
description: "Orchestrates telecom workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- telecom
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: telecom
port: 8080
tools:
- name: run-telecom-workflow-005
description: "Orchestrates telecom workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Telecom Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the current Terraform Cloud workspace state for a given workspace, showing resource counts and drift status for T-Mobile cloud infrastructure.
naftiko: "0.5"
info:
label: "Terraform Infrastructure State Query"
description: "Retrieves the current Terraform Cloud workspace state for a given workspace, showing resource counts and drift status for T-Mobile cloud infrastructure."
tags:
- infrastructure
- terraform
capability:
exposes:
- type: mcp
namespace: infra-state
port: 8080
tools:
- name: get-workspace-state
description: "Query Terraform Cloud for the current state of a workspace. Returns resource count, last apply status, and any detected drift."
inputParameters:
- name: workspace_name
in: body
type: string
description: "The Terraform Cloud workspace name (e.g., tmobile-5g-core-prod)."
call: "terraform.get-workspace"
with:
workspace_name: "{{workspace_name}}"
outputParameters:
- name: resource_count
type: integer
mapping: "$.data.attributes.resource-count"
- name: last_apply_status
type: string
mapping: "$.data.attributes.current-run.status"
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_cloud_token"
inputParameters:
- name: Content-Type
in: header
value: "application/vnd.api+json"
resources:
- name: workspaces
path: "/organizations/t-mobile/workspaces/{{workspace_name}}"
inputParameters:
- name: workspace_name
in: path
operations:
- name: get-workspace
method: GET
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.t-mobile.com/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.t-mobile.com/v2"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends a templated WhatsApp notification to a T-Mobile customer using the WhatsApp Business API, used for service alerts, appointment reminders, and delivery notifications.
naftiko: "0.5"
info:
label: "WhatsApp Customer Notification Sender"
description: "Sends a templated WhatsApp notification to a T-Mobile customer using the WhatsApp Business API, used for service alerts, appointment reminders, and delivery notifications."
tags:
- customer-management
- messaging
- whatsapp
capability:
exposes:
- type: mcp
namespace: customer-messaging
port: 8080
tools:
- name: send-whatsapp-notification
description: "Send a templated WhatsApp message to a customer phone number. Returns message ID and delivery status."
inputParameters:
- name: phone_number
in: body
type: string
description: "The recipient phone number in E.164 format."
- name: template_name
in: body
type: string
description: "The WhatsApp message template name."
- name: template_params
in: body
type: object
description: "Template parameter key-value pairs."
call: "whatsapp.send-template"
with:
phone_number: "{{phone_number}}"
template_name: "{{template_name}}"
template_params: "{{template_params}}"
outputParameters:
- name: message_id
type: string
mapping: "$.messages[0].id"
- name: status
type: string
mapping: "$.messages[0].message_status"
consumes:
- type: http
namespace: whatsapp
baseUri: "https://graph.facebook.com/v18.0/$secrets.whatsapp_phone_id"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-template
method: POST
Generates a wholesale MVNO partner usage report by pulling usage data from the billing platform, enriching with partner details from Salesforce, and sending the report via email through Adobe Campaign.
naftiko: "0.5"
info:
label: "Wholesale Partner Usage Report Orchestrator"
description: "Generates a wholesale MVNO partner usage report by pulling usage data from the billing platform, enriching with partner details from Salesforce, and sending the report via email through Adobe Campaign."
tags:
- wholesale
- billing
- oracle-e-business-suite
- salesforce
- adobe-campaign
capability:
exposes:
- type: mcp
namespace: wholesale-reporting
port: 8080
tools:
- name: generate-partner-usage-report
description: "Given a partner ID and billing period, pull usage data, enrich with partner details, and email the report."
inputParameters:
- name: partner_id
in: body
type: string
description: "The Salesforce wholesale partner account ID."
- name: billing_period
in: body
type: string
description: "The billing period in YYYY-MM format."
steps:
- name: get-partner
type: call
call: "salesforce.get-partner-account"
with:
partner_id: "{{partner_id}}"
- name: get-usage
type: call
call: "oracle-ebs.get-partner-usage"
with:
partner_code: "{{get-partner.Partner_Code__c}}"
period: "{{billing_period}}"
- name: send-report
type: call
call: "adobe-campaign.trigger-message"
with:
template: "wholesale_usage_report"
email: "{{get-partner.Billing_Contact_Email__c}}"
params:
partner_name: "{{get-partner.Name}}"
period: "{{billing_period}}"
total_lines: "{{get-usage.active_lines}}"
data_usage_gb: "{{get-usage.total_data_gb}}"
voice_minutes: "{{get-usage.total_voice_minutes}}"
total_amount: "{{get-usage.total_amount}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://tmobile.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: partner-accounts
path: "/sobjects/Partner_Account__c/{{partner_id}}"
inputParameters:
- name: partner_id
in: path
operations:
- name: get-partner-account
method: GET
- type: http
namespace: oracle-ebs
baseUri: "https://ebs.tmobile-finance.com/webservices/rest/wholesale/v1"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: partner-usage
path: "/usage?partner={{partner_code}}&period={{period}}"
inputParameters:
- name: partner_code
in: query
- name: period
in: query
operations:
- name: get-partner-usage
method: GET
- type: http
namespace: adobe-campaign
baseUri: "https://mc.adobe.io/tmobile/campaign/v1"
authentication:
type: bearer
token: "$secrets.adobe_campaign_token"
inputParameters:
- name: x-api-key
in: header
value: "$secrets.adobe_api_key"
resources:
- name: transactional-messages
path: "/messageCenter/{{template}}/send"
inputParameters:
- name: template
in: path
operations:
- name: trigger-message
method: POST
Retrieves T-Mobile employee profile information from Workday by worker ID, including department, manager, cost center, and job title.
naftiko: "0.5"
info:
label: "Workday Employee Lookup"
description: "Retrieves T-Mobile employee profile information from Workday by worker ID, including department, manager, cost center, and job title."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr-employee
port: 8080
tools:
- name: get-employee
description: "Look up a T-Mobile employee by Workday worker ID. Returns full name, job title, department, cost center, manager, and work email."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.worker.descriptor"
- name: job_title
type: string
mapping: "$.worker.primaryPosition.jobTitle"
- name: department
type: string
mapping: "$.worker.primaryPosition.department"
- name: cost_center
type: string
mapping: "$.worker.primaryPosition.costCenter"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1/tmobile"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.t-mobile.com/hr/v1"
authentication:
type: bearer
token: "$secrets.t_mobile_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET