Moodys Capabilities
Naftiko 0.5 capability definitions for Moodys - 100 capabilities showing integration workflows and service orchestrations.
Checks the latest build status for an Azure DevOps pipeline used by the analytics and technology platform teams.
naftiko: "0.5"
info:
label: "Azure DevOps Pipeline Status"
description: "Checks the latest build status for an Azure DevOps pipeline used by the analytics and technology platform teams."
tags:
- devops
- azure-devops
capability:
exposes:
- type: mcp
namespace: ci-cd
port: 8080
tools:
- name: get-pipeline-status
description: "Check the latest Azure DevOps build for a pipeline."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The pipeline definition ID."
call: "azuredevops.get-builds"
with:
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/moodys/MoodysAnalytics/_apis/build"
authentication:
type: basic
username: "$secrets.azdo_user"
password: "$secrets.azdo_pat"
resources:
- name: builds
path: "/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: pipeline_id
in: query
operations:
- name: get-builds
method: GET
Triggers a ratings calculation pipeline in Azure DevOps and returns the run ID and status.
naftiko: "0.5"
info:
label: "Azure DevOps Ratings Pipeline Trigger"
description: "Triggers a ratings calculation pipeline in Azure DevOps and returns the run ID and status."
tags:
- ci-cd
- ratings
- azure-devops
capability:
exposes:
- type: mcp
namespace: ratings-pipeline
port: 8080
tools:
- name: trigger-ratings-pipeline
description: "Trigger the ratings calculation pipeline for a given entity set."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The Azure DevOps pipeline ID."
- name: entity_set
in: body
type: string
description: "The entity set to process."
call: "azuredevops.run-pipeline"
with:
pipeline_id: "{{pipeline_id}}"
entity_set: "{{entity_set}}"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/moodys"
authentication:
type: bearer
token: "$secrets.azuredevops_token"
resources:
- name: pipelines
path: "/ratings/_apis/pipelines/{{pipeline_id}}/runs?api-version=7.0"
inputParameters:
- name: pipeline_id
in: path
operations:
- name: run-pipeline
method: POST
Retrieves current market data for a financial instrument from Bloomberg Enterprise Data, including price, yield, and spread.
naftiko: "0.5"
info:
label: "Bloomberg Market Data Fetch"
description: "Retrieves current market data for a financial instrument from Bloomberg Enterprise Data, including price, yield, and spread."
tags:
- data
- market-data
- bloomberg-enterprise-data
capability:
exposes:
- type: mcp
namespace: market-data
port: 8080
tools:
- name: get-market-data
description: "Fetch current market data for a security by ISIN or Bloomberg ticker."
inputParameters:
- name: identifier
in: body
type: string
description: "The ISIN or Bloomberg ticker."
- name: identifier_type
in: body
type: string
description: "Type of identifier (ISIN, TICKER)."
call: "bloomberg.get-pricing"
with:
identifier: "{{identifier}}"
identifier_type: "{{identifier_type}}"
consumes:
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/catalogs/bbg/datasets"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: pricing
path: "/pricing?identifier={{identifier}}&identifierType={{identifier_type}}"
inputParameters:
- name: identifier
in: query
- name: identifier_type
in: query
operations:
- name: get-pricing
method: GET
Fetches current bond spread data for an issuer from Bloomberg Enterprise Data, returning option-adjusted spread, Z-spread, and benchmark yield.
naftiko: "0.5"
info:
label: "Bond Spread Lookup"
description: "Fetches current bond spread data for an issuer from Bloomberg Enterprise Data, returning option-adjusted spread, Z-spread, and benchmark yield."
tags:
- fixed-income
- spreads
- bloomberg-enterprise-data
capability:
exposes:
- type: mcp
namespace: bond-spreads
port: 8080
tools:
- name: get-bond-spread
description: "Look up bond spread data by issuer identifier."
inputParameters:
- name: issuer_id
in: body
type: string
description: "The issuer identifier."
call: "bloomberg.get-spread"
with:
issuer_id: "{{issuer_id}}"
consumes:
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/catalogs/bbg/datasets"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: spreads
path: "/spreads?identifier={{issuer_id}}"
inputParameters:
- name: issuer_id
in: query
operations:
- name: get-spread
method: GET
Delivers client data feeds by extracting data from Snowflake, packaging it according to client specifications, uploading to the client's designated endpoint, and logging the delivery in Salesforce and ServiceNow.
naftiko: "0.5"
info:
label: "Client Data Delivery Pipeline"
description: "Delivers client data feeds by extracting data from Snowflake, packaging it according to client specifications, uploading to the client's designated endpoint, and logging the delivery in Salesforce and ServiceNow."
tags:
- data
- data-delivery
- snowflake
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: data-delivery
port: 8080
tools:
- name: deliver-client-data
description: "Given a client ID and data product, extract, package, and deliver the data feed."
inputParameters:
- name: client_id
in: body
type: string
description: "The Salesforce client account ID."
- name: data_product
in: body
type: string
description: "The data product name."
- name: delivery_date
in: body
type: string
description: "The delivery date in YYYY-MM-DD format."
steps:
- name: extract-data
type: call
call: "snowflake.execute-query"
with:
client_id: "{{client_id}}"
data_product: "{{data_product}}"
delivery_date: "{{delivery_date}}"
- name: log-in-salesforce
type: call
call: "salesforce.create-delivery-log"
with:
client_id: "{{client_id}}"
data_product: "{{data_product}}"
delivery_date: "{{delivery_date}}"
record_count: "{{extract-data.rowCount}}"
- name: create-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Data delivery: {{data_product}} for {{client_id}}"
category: "data_delivery"
description: "Delivered {{extract-data.rowCount}} records of {{data_product}} to client {{client_id}} on {{delivery_date}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: delivery-logs
path: "/sobjects/Data_Delivery__c"
operations:
- name: create-delivery-log
method: POST
- type: http
namespace: servicenow
baseUri: "https://moodys.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
Onboards new analytics clients by creating accounts in Salesforce, provisioning data access in Snowflake, setting up a ServiceNow support profile, and sending welcome communications via Microsoft Teams and Outlook.
naftiko: "0.5"
info:
label: "Client Onboarding Pipeline"
description: "Onboards new analytics clients by creating accounts in Salesforce, provisioning data access in Snowflake, setting up a ServiceNow support profile, and sending welcome communications via Microsoft Teams and Outlook."
tags:
- data
- client-onboarding
- salesforce
- snowflake
- servicenow
- microsoft-teams
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: client-onboarding
port: 8080
tools:
- name: onboard-analytics-client
description: "Given client details, set up accounts, provision access, and send welcome communications."
inputParameters:
- name: client_name
in: body
type: string
description: "The client company name."
- name: contact_email
in: body
type: string
description: "The primary contact email."
- name: data_products
in: body
type: string
description: "Comma-separated list of subscribed data products."
steps:
- name: create-account
type: call
call: "salesforce.create-account"
with:
name: "{{client_name}}"
contact_email: "{{contact_email}}"
products: "{{data_products}}"
- name: provision-access
type: call
call: "snowflake.execute-query"
with:
client_id: "{{create-account.id}}"
data_products: "{{data_products}}"
- name: create-support-profile
type: call
call: "servicenow.create-incident"
with:
short_description: "New client onboarding: {{client_name}}"
category: "client_onboarding"
description: "New client {{client_name}}. Products: {{data_products}}. Account: {{create-account.id}}."
- name: notify-team
type: call
call: "msteams.post-message"
with:
team_id: "client-success-team"
channel_id: "onboarding"
message: "New client onboarded: {{client_name}}. Products: {{data_products}}. Salesforce: {{create-account.id}}."
- name: send-welcome
type: call
call: "outlook.send-mail"
with:
recipient: "{{contact_email}}"
subject: "Welcome to Moody's Analytics"
body: "Welcome {{client_name}}! Your data products ({{data_products}}) are now active. Support case: {{create-support-profile.number}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account"
operations:
- name: create-account
method: POST
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: servicenow
baseUri: "https://moodys.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-message
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/onboarding@moodys.com/sendMail"
operations:
- name: send-mail
method: POST
Assesses climate risk exposure for an entity by querying physical and transition risk scores from Snowflake, returning climate VaR, carbon intensity, and stranded asset probability.
naftiko: "0.5"
info:
label: "Climate Risk Exposure Assessment"
description: "Assesses climate risk exposure for an entity by querying physical and transition risk scores from Snowflake, returning climate VaR, carbon intensity, and stranded asset probability."
tags:
- esg
- climate-risk
- snowflake
capability:
exposes:
- type: mcp
namespace: climate-risk
port: 8080
tools:
- name: get-climate-risk
description: "Retrieve climate risk exposure by entity ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "snowflake.get-climate-risk"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: get-climate-risk
method: POST
Searches the Moody's methodology knowledge base in Confluence for rating methodology documents by keyword, returning titles, authors, and publication dates.
naftiko: "0.5"
info:
label: "Confluence Methodology Document Search"
description: "Searches the Moody's methodology knowledge base in Confluence for rating methodology documents by keyword, returning titles, authors, and publication dates."
tags:
- methodology
- knowledge-management
- confluence
capability:
exposes:
- type: mcp
namespace: methodology-docs
port: 8080
tools:
- name: search-methodologies
description: "Search methodology documents by keyword."
inputParameters:
- name: keyword
in: body
type: string
description: "The search keyword."
call: "confluence.search-methodologies"
with:
keyword: "{{keyword}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: methodology-content
path: "/content/search?cql=text~'{{keyword}}'+and+space=METHODOLOGY"
inputParameters:
- name: keyword
in: query
operations:
- name: search-methodologies
method: GET
Retrieves counterparty credit exposure data from Snowflake, returning gross and net exposure, collateral held, and exposure-at-default.
naftiko: "0.5"
info:
label: "Counterparty Exposure Lookup"
description: "Retrieves counterparty credit exposure data from Snowflake, returning gross and net exposure, collateral held, and exposure-at-default."
tags:
- credit-risk
- counterparty
- snowflake
capability:
exposes:
- type: mcp
namespace: counterparty-exposure
port: 8080
tools:
- name: get-counterparty-exposure
description: "Look up counterparty exposure by counterparty ID."
inputParameters:
- name: counterparty_id
in: body
type: string
description: "The counterparty identifier."
call: "snowflake.get-exposure"
with:
counterparty_id: "{{counterparty_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: get-exposure
method: POST
Monitors covenant compliance for leveraged loans by pulling covenant test results from Snowflake, checking breach status, logging findings in Salesforce, and alerting the credit surveillance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Covenant Compliance Monitoring Pipeline"
description: "Monitors covenant compliance for leveraged loans by pulling covenant test results from Snowflake, checking breach status, logging findings in Salesforce, and alerting the credit surveillance team via Microsoft Teams."
tags:
- covenants
- surveillance
- snowflake
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: covenant-monitoring
port: 8080
tools:
- name: check-covenant-compliance
description: "Given a deal ID, check covenant compliance and escalate breaches."
inputParameters:
- name: deal_id
in: body
type: string
description: "The deal identifier."
- name: test_date
in: body
type: string
description: "The covenant test date."
steps:
- name: pull-covenant-data
type: call
call: "snowflake.execute-query"
with:
deal_id: "{{deal_id}}"
test_date: "{{test_date}}"
- name: log-results
type: call
call: "salesforce.create-covenant-log"
with:
deal_id: "{{deal_id}}"
test_date: "{{test_date}}"
status: "{{pull-covenant-data.compliance_status}}"
- name: alert-surveillance
type: call
call: "msteams.post-message"
with:
team_id: "surveillance-team"
channel_id: "covenants"
message: "Covenant test for deal {{deal_id}} on {{test_date}}: {{pull-covenant-data.compliance_status}}. {{pull-covenant-data.breach_count}} breaches detected."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: covenant-logs
path: "/sobjects/Covenant_Log__c"
operations:
- name: create-covenant-log
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-message
method: POST
Generates a portfolio concentration report by querying Snowflake for sector and geography exposure, then storing the report in SharePoint and notifying the portfolio team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Credit Portfolio Concentration Report"
description: "Generates a portfolio concentration report by querying Snowflake for sector and geography exposure, then storing the report in SharePoint and notifying the portfolio team via Microsoft Teams."
tags:
- portfolio
- concentration
- snowflake
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: portfolio-concentration
port: 8080
tools:
- name: generate-concentration-report
description: "Given a portfolio ID, generate sector and geography concentration analysis."
inputParameters:
- name: portfolio_id
in: body
type: string
description: "The portfolio identifier."
- name: as_of_date
in: body
type: string
description: "The as-of date in YYYY-MM-DD format."
steps:
- name: pull-exposure-data
type: call
call: "snowflake.execute-query"
with:
portfolio_id: "{{portfolio_id}}"
as_of_date: "{{as_of_date}}"
- name: store-report
type: call
call: "sharepoint.create-folder"
with:
site_id: "analytics_site"
folder_path: "Concentration/{{portfolio_id}}/{{as_of_date}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
team_id: "portfolio-team"
channel_id: "reports"
message: "Concentration report ready for portfolio {{portfolio_id}} as of {{as_of_date}}. Location: {{store-report.webUrl}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Retrieves the current credit rating for an entity by identifier from the Moody's ratings database, returning rating, outlook, and last action date.
naftiko: "0.5"
info:
label: "Credit Rating Lookup"
description: "Retrieves the current credit rating for an entity by identifier from the Moody's ratings database, returning rating, outlook, and last action date."
tags:
- credit-ratings
- ratings
- salesforce
capability:
exposes:
- type: mcp
namespace: credit-ratings
port: 8080
tools:
- name: get-credit-rating
description: "Look up a credit rating by entity identifier. Returns current rating, outlook, and last rating action."
inputParameters:
- name: entity_id
in: body
type: string
description: "The Moody's entity identifier."
call: "salesforce.get-rating"
with:
entity_id: "{{entity_id}}"
outputParameters:
- name: rating
type: string
mapping: "$.records[0].Current_Rating__c"
- name: outlook
type: string
mapping: "$.records[0].Rating_Outlook__c"
- name: last_action_date
type: string
mapping: "$.records[0].Last_Action_Date__c"
consumes:
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: ratings
path: "/query/?q=SELECT+Current_Rating__c,Rating_Outlook__c,Last_Action_Date__c+FROM+Credit_Rating__c+WHERE+Entity_ID__c='{{entity_id}}'"
inputParameters:
- name: entity_id
in: query
operations:
- name: get-rating
method: GET
Executes a credit risk model by pulling financial data from Snowflake, running the model in Databricks, storing results in Salesforce, and notifying the analytics team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Credit Risk Model Execution Pipeline"
description: "Executes a credit risk model by pulling financial data from Snowflake, running the model in Databricks, storing results in Salesforce, and notifying the analytics team via Microsoft Teams."
tags:
- risk-analytics
- credit-risk
- snowflake
- databricks
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: risk-modeling
port: 8080
tools:
- name: run-credit-risk-model
description: "Given a portfolio ID, execute the credit risk model pipeline."
inputParameters:
- name: portfolio_id
in: body
type: string
description: "The portfolio identifier."
- name: model_version
in: body
type: string
description: "The model version to execute."
steps:
- name: pull-financial-data
type: call
call: "snowflake.execute-query"
with:
portfolio_id: "{{portfolio_id}}"
- name: run-model
type: call
call: "databricks.invoke-model"
with:
endpoint_name: "credit-risk-model-{{model_version}}"
portfolio_id: "{{portfolio_id}}"
- name: store-results
type: call
call: "salesforce.update-risk-scores"
with:
portfolio_id: "{{portfolio_id}}"
model_version: "{{model_version}}"
results: "{{run-model.predictions}}"
- name: notify-analytics
type: call
call: "msteams.post-message"
with:
team_id: "analytics-team"
channel_id: "risk-models"
message: "Credit risk model v{{model_version}} executed for portfolio {{portfolio_id}}. {{pull-financial-data.rowCount}} entities scored. Results stored in Salesforce."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: databricks
baseUri: "https://moodys.cloud.databricks.com/api/2.0"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: model-serving
path: "/serving-endpoints/{{endpoint_name}}/invocations"
inputParameters:
- name: endpoint_name
in: path
operations:
- name: invoke-model
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: risk-scores
path: "/services/apexrest/risk/scores"
operations:
- name: update-risk-scores
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-message
method: POST
Monitors data quality by running validation checks in Snowflake, logging issues in ServiceNow, creating Jira tasks for data engineering fixes, and alerting the data team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Data Quality Monitoring Pipeline"
description: "Monitors data quality by running validation checks in Snowflake, logging issues in ServiceNow, creating Jira tasks for data engineering fixes, and alerting the data team via Microsoft Teams."
tags:
- data
- data-quality
- snowflake
- servicenow
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: data-quality
port: 8080
tools:
- name: run-data-quality-check
description: "Given a dataset name, run quality validation checks and report issues."
inputParameters:
- name: dataset_name
in: body
type: string
description: "The Snowflake dataset name."
- name: check_type
in: body
type: string
description: "Type of check (completeness, accuracy, timeliness)."
steps:
- name: run-validation
type: call
call: "snowflake.execute-query"
with:
dataset_name: "{{dataset_name}}"
check_type: "{{check_type}}"
- name: log-issues
type: call
call: "servicenow.create-incident"
with:
short_description: "Data quality: {{check_type}} - {{dataset_name}}"
category: "data_quality"
description: "{{check_type}} check on {{dataset_name}}: {{run-validation.issue_count}} issues found."
- name: create-fix-task
type: call
call: "jira.create-issue"
with:
project_key: "DATA"
summary: "DQ fix: {{dataset_name}} - {{check_type}}"
description: "{{run-validation.issue_count}} {{check_type}} issues in {{dataset_name}}. ServiceNow: {{log-issues.number}}."
issue_type: "Bug"
- name: alert-data-team
type: call
call: "msteams.post-message"
with:
team_id: "data-engineering-team"
channel_id: "data-quality"
message: "Data quality alert: {{run-validation.issue_count}} {{check_type}} issues in {{dataset_name}}. Jira: {{create-fix-task.key}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: servicenow
baseUri: "https://moodys.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: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Submits a batch of entities to a Databricks credit scoring model endpoint and returns predicted default probabilities and risk tiers.
naftiko: "0.5"
info:
label: "Databricks Credit Model Scoring"
description: "Submits a batch of entities to a Databricks credit scoring model endpoint and returns predicted default probabilities and risk tiers."
tags:
- machine-learning
- credit-scoring
- databricks
capability:
exposes:
- type: mcp
namespace: credit-model
port: 8080
tools:
- name: score-entities
description: "Submit entity batch to credit scoring model."
inputParameters:
- name: model_name
in: body
type: string
description: "The model name."
- name: entity_ids
in: body
type: string
description: "Comma-separated entity IDs to score."
call: "databricks.invoke-model"
with:
model_name: "{{model_name}}"
entity_ids: "{{entity_ids}}"
consumes:
- type: http
namespace: databricks
baseUri: "https://moodys.cloud.databricks.com/api/2.0"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: serving-endpoints
path: "/serving-endpoints/{{model_name}}/invocations"
inputParameters:
- name: model_name
in: path
operations:
- name: invoke-model
method: POST
Checks the status of a deployed ML model endpoint in Databricks used for credit risk scoring and default prediction.
naftiko: "0.5"
info:
label: "Databricks Model Endpoint Status"
description: "Checks the status of a deployed ML model endpoint in Databricks used for credit risk scoring and default prediction."
tags:
- risk-analytics
- databricks
- machine-learning
capability:
exposes:
- type: mcp
namespace: ml-models
port: 8080
tools:
- name: get-model-status
description: "Check the status of a Databricks model serving endpoint."
inputParameters:
- name: endpoint_name
in: body
type: string
description: "The model serving endpoint name."
call: "databricks.get-endpoint"
with:
endpoint_name: "{{endpoint_name}}"
consumes:
- type: http
namespace: databricks
baseUri: "https://moodys.cloud.databricks.com/api/2.0"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: endpoints
path: "/serving-endpoints/{{endpoint_name}}"
inputParameters:
- name: endpoint_name
in: path
operations:
- name: get-endpoint
method: GET
Checks the health of the Moody's analytics platform by querying Datadog for key infrastructure metrics including CPU, memory, and error rates.
naftiko: "0.5"
info:
label: "Datadog Analytics Platform Health Check"
description: "Checks the health of the Moody's analytics platform by querying Datadog for key infrastructure metrics including CPU, memory, and error rates."
tags:
- monitoring
- infrastructure
- datadog
capability:
exposes:
- type: mcp
namespace: platform-health
port: 8080
tools:
- name: check-platform-health
description: "Retrieve analytics platform health metrics from Datadog."
inputParameters:
- name: service_name
in: body
type: string
description: "The service name to check."
call: "datadog.get-metrics"
with:
service_name: "{{service_name}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apikey
header: "DD-API-KEY"
key: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/query?query=avg:system.cpu.user{service:{{service_name}}}"
inputParameters:
- name: service_name
in: query
operations:
- name: get-metrics
method: GET
Queries the debt maturity profile for an issuer from Snowflake, returning outstanding amounts by maturity bucket and currency.
naftiko: "0.5"
info:
label: "Debt Maturity Profile Query"
description: "Queries the debt maturity profile for an issuer from Snowflake, returning outstanding amounts by maturity bucket and currency."
tags:
- fixed-income
- maturity
- snowflake
capability:
exposes:
- type: mcp
namespace: debt-maturity
port: 8080
tools:
- name: get-maturity-profile
description: "Retrieve debt maturity profile by issuer ID."
inputParameters:
- name: issuer_id
in: body
type: string
description: "The issuer identifier."
call: "snowflake.get-maturity-profile"
with:
issuer_id: "{{issuer_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: get-maturity-profile
method: POST
Retrieves historical default probability trends for an entity from Snowflake, returning monthly PD values over a specified lookback window.
naftiko: "0.5"
info:
label: "Default Probability Trend Query"
description: "Retrieves historical default probability trends for an entity from Snowflake, returning monthly PD values over a specified lookback window."
tags:
- credit-risk
- default-probability
- snowflake
capability:
exposes:
- type: mcp
namespace: default-trends
port: 8080
tools:
- name: get-default-trend
description: "Retrieve default probability trend by entity ID and lookback months."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
- name: months
in: body
type: string
description: "Number of months to look back."
call: "snowflake.get-pd-trend"
with:
entity_id: "{{entity_id}}"
months: "{{months}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: get-pd-trend
method: POST
Generates economic forecast dashboards by pulling macroeconomic data from Snowflake, refreshing Power BI visualizations, uploading commentary to Confluence, and notifying the economics team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Economic Forecast Dashboard Pipeline"
description: "Generates economic forecast dashboards by pulling macroeconomic data from Snowflake, refreshing Power BI visualizations, uploading commentary to Confluence, and notifying the economics team via Microsoft Teams."
tags:
- research
- economics
- snowflake
- power-bi
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: economic-forecasts
port: 8080
tools:
- name: generate-economic-forecast
description: "Given a region and forecast type, generate the economic forecast dashboard."
inputParameters:
- name: region
in: body
type: string
description: "The geographic region."
- name: forecast_type
in: body
type: string
description: "Forecast type (gdp, inflation, unemployment, rates)."
steps:
- name: pull-macro-data
type: call
call: "snowflake.execute-query"
with:
region: "{{region}}"
forecast_type: "{{forecast_type}}"
- name: refresh-dashboard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "economic-forecast-dataset"
- name: publish-commentary
type: call
call: "confluence.create-page"
with:
space_key: "ECON"
title: "Economic Forecast: {{region}} - {{forecast_type}}"
body: "{{region}} {{forecast_type}} forecast updated with {{pull-macro-data.rowCount}} data points."
- name: notify-economics
type: call
call: "msteams.post-message"
with:
team_id: "economics-team"
channel_id: "forecasts"
message: "Economic forecast for {{region}} ({{forecast_type}}) updated. Dashboard refreshed. Commentary: {{publish-commentary._links.webui}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
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-message
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- 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 the full onboarding sequence."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
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.post-message"
with:
team_id: "hr-team"
channel_id: "new-hires"
message: "Welcome to Moody's, {{get-employee.first_name}}! Onboarding ticket: {{open-ticket.number}}. Documents: {{provision-folder.webUrl}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://moodys.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Computes ESG scores by pulling environmental, social, and governance data from Snowflake, running scoring models in Databricks, updating Salesforce records, and publishing results to Confluence.
naftiko: "0.5"
info:
label: "ESG Score Computation Pipeline"
description: "Computes ESG scores by pulling environmental, social, and governance data from Snowflake, running scoring models in Databricks, updating Salesforce records, and publishing results to Confluence."
tags:
- risk-analytics
- esg
- snowflake
- databricks
- salesforce
- confluence
capability:
exposes:
- type: mcp
namespace: esg-scoring
port: 8080
tools:
- name: compute-esg-score
description: "Given an entity ID, compute comprehensive ESG scores."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
- name: assessment_year
in: body
type: string
description: "The assessment year."
steps:
- name: pull-esg-data
type: call
call: "snowflake.execute-query"
with:
entity_id: "{{entity_id}}"
year: "{{assessment_year}}"
- name: run-scoring-model
type: call
call: "databricks.invoke-model"
with:
endpoint_name: "esg-scoring-model"
entity_id: "{{entity_id}}"
- name: store-scores
type: call
call: "salesforce.update-esg-score"
with:
entity_id: "{{entity_id}}"
e_score: "{{run-scoring-model.environmental_score}}"
s_score: "{{run-scoring-model.social_score}}"
g_score: "{{run-scoring-model.governance_score}}"
- name: publish-assessment
type: call
call: "confluence.create-page"
with:
space_key: "ESG"
title: "ESG Assessment: {{entity_id}} - {{assessment_year}}"
body: "E: {{run-scoring-model.environmental_score}}, S: {{run-scoring-model.social_score}}, G: {{run-scoring-model.governance_score}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: databricks
baseUri: "https://moodys.cloud.databricks.com/api/2.0"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: model-serving
path: "/serving-endpoints/{{endpoint_name}}/invocations"
inputParameters:
- name: endpoint_name
in: path
operations:
- name: invoke-model
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: esg-scores
path: "/sobjects/ESG_Score__c/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: update-esg-score
method: PATCH
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 1"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-1
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-1"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 10"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-10
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-10"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-10
method: POST
- type: http
namespace: sharepoint
baseUri: "https://moodys.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 11"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-11
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-11"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 11 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-11
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 12"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- datadog
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-12
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-12"
with:
identifier: "{{identifier}}"
- name: push
type: call
call: "datadog.submit-metrics"
with:
metric_name: "financial-services.workflow_12"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-12
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_token"
resources:
- name: metrics
path: "/metrics"
operations:
- name: submit-metrics
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 13"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-13
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-13"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-13
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 14"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-14
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-14"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-14
method: POST
- type: http
namespace: servicenow
baseUri: "https://moodys.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 15"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- slack
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-15
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-15"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#financial-services"
text: "Completed workflow 15: {{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-15
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 16"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-16
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-16"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "FINANC"
title: "Report 16"
content: "{{process.report}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-16
method: POST
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 17"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-17
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-17"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_17"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-17
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 18"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- jira
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-18
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-18"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "FINA"
summary: "Task from workflow 18"
description: "{{process.details}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-18
method: POST
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 19"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- teams
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-19
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-19"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "financial-services"
message: "Workflow 19 complete: {{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-19
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 2"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-2
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-2"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://moodys.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 20"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-20
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-20"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_20"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-20
method: POST
- type: http
namespace: tableau
baseUri: "https://moodys-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 21"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- box
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-21
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-21"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-21
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 22"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-22
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-22"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-22
method: POST
- type: http
namespace: sharepoint
baseUri: "https://moodys.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 23"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-23
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-23"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 23 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-23
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 24"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- datadog
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-24
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-24"
with:
identifier: "{{identifier}}"
- name: push
type: call
call: "datadog.submit-metrics"
with:
metric_name: "financial-services.workflow_24"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-24
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_token"
resources:
- name: metrics
path: "/metrics"
operations:
- name: submit-metrics
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 25"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-25
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-25"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-25
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 26"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-26
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-26"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-26
method: POST
- type: http
namespace: servicenow
baseUri: "https://moodys.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 27"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- slack
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-27
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-27"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#financial-services"
text: "Completed workflow 27: {{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-27
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 28"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-28
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-28"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "FINANC"
title: "Report 28"
content: "{{process.report}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-28
method: POST
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 29"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-29
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-29"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_29"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-29
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 3"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- slack
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-3
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-3"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#financial-services"
text: "Completed workflow 3: {{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-3
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 30"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- jira
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-30
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-30"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "FINA"
summary: "Task from workflow 30"
description: "{{process.details}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-30
method: POST
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 31"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- teams
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-31
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-31"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "financial-services"
message: "Workflow 31 complete: {{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-31
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 32"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-32
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-32"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_32"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-32
method: POST
- type: http
namespace: tableau
baseUri: "https://moodys-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 33"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- box
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-33
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-33"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-33
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 34"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-34
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-34"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-34
method: POST
- type: http
namespace: sharepoint
baseUri: "https://moodys.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 35"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-35
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-35"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 35 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-35
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 4"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-4
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-4"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "FINANC"
title: "Report 4"
content: "{{process.report}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-4
method: POST
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 5"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-5
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-5"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_5"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-5
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 6"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- jira
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-6
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-6"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "FINA"
summary: "Task from workflow 6"
description: "{{process.details}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-6
method: POST
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 7"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- teams
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-7
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-7"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "financial-services"
message: "Workflow 7 complete: {{process.summary}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-7
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 8"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-8
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-8"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_8"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-8
method: POST
- type: http
namespace: tableau
baseUri: "https://moodys-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys.
naftiko: "0.5"
info:
label: "Moodys Workflow 9"
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
tags:
- financial-services
- operations
- box
capability:
exposes:
- type: mcp
namespace: financial-services
port: 8080
tools:
- name: moodys-workflow-9
description: "Orchestrates financial-services operations including data retrieval, processing, and automated notification for Moodys."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "moodys-ops.run-workflow-9"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: moodys-ops
baseUri: "https://api.moodys.com/operations/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-9
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 1"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-1
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-1"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-1
path: "/data-1/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-1
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 10"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-10
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-10"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-10
path: "/data-10/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-10
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 11"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-11
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-11"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-11
path: "/data-11/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-11
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 12"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-12
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-12"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-12
path: "/data-12/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-12
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 13"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-13
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-13"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-13
path: "/data-13/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-13
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 14"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-14
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-14"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-14
path: "/data-14/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-14
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 15"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-15
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-15"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-15
path: "/data-15/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-15
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 2"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-2
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-2"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-2
path: "/data-2/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-2
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 3"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-3
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-3"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-3
path: "/data-3/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-3
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 4"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-4
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-4"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-4
path: "/data-4/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-4
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 5"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-5
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-5"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-5
path: "/data-5/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-5
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 6"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-6
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-6"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-6
path: "/data-6/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-6
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 7"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-7
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-7"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-7
path: "/data-7/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-7
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 8"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-8
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-8"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-8
path: "/data-8/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-8
method: GET
Retrieves operational data for Moodys financial-services workflows.
naftiko: "0.5"
info:
label: "Moodys Data Lookup 9"
description: "Retrieves operational data for Moodys financial-services workflows."
tags:
- financial-services
- operations
capability:
exposes:
- type: mcp
namespace: moodys-data
port: 8080
tools:
- name: get-data-9
description: "Retrieves operational data for Moodys financial-services workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "moodys-data.get-data-9"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: moodys-data
baseUri: "https://api.moodys.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_token"
resources:
- name: data-9
path: "/data-9/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-9
method: GET
Conducts an industry default study by extracting default history from Snowflake, generating documentation in Confluence, creating a Jira task for peer review, and notifying the credit research team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Industry Default Study Pipeline"
description: "Conducts an industry default study by extracting default history from Snowflake, generating documentation in Confluence, creating a Jira task for peer review, and notifying the credit research team via Microsoft Teams."
tags:
- default-study
- research
- snowflake
- confluence
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: default-study
port: 8080
tools:
- name: run-default-study
description: "Given a sector and period, run a default study and route for review."
inputParameters:
- name: sector
in: body
type: string
description: "The industry sector."
- name: period
in: body
type: string
description: "The study period (e.g., 2020-2025)."
steps:
- name: extract-defaults
type: call
call: "snowflake.execute-query"
with:
sector: "{{sector}}"
period: "{{period}}"
- name: publish-study
type: call
call: "confluence.create-page"
with:
space: "RESEARCH"
title: "Default Study: {{sector}} ({{period}})"
- name: create-review-task
type: call
call: "jira.create-issue"
with:
project: "RESEARCH"
summary: "Review default study: {{sector}} ({{period}})"
issue_type: "Task"
- name: notify-team
type: call
call: "msteams.post-message"
with:
team_id: "credit-research"
channel_id: "studies"
message: "Default study published: {{sector}} ({{period}}). {{extract-defaults.rowCount}} events. Review: {{create-review-task.key}}. Read: {{publish-study._links.webui}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Retrieves issuer financial statements from the Salesforce CRM, returning revenue, EBITDA, total debt, and net income for a specified fiscal year.
naftiko: "0.5"
info:
label: "Issuer Financial Statement Retrieval"
description: "Retrieves issuer financial statements from the Salesforce CRM, returning revenue, EBITDA, total debt, and net income for a specified fiscal year."
tags:
- financials
- issuer
- salesforce
capability:
exposes:
- type: mcp
namespace: issuer-financials
port: 8080
tools:
- name: get-issuer-financials
description: "Retrieve financial statements by issuer ID and fiscal year."
inputParameters:
- name: issuer_id
in: body
type: string
description: "The Salesforce issuer account ID."
- name: fiscal_year
in: body
type: string
description: "The fiscal year."
call: "salesforce.get-financials"
with:
issuer_id: "{{issuer_id}}"
fiscal_year: "{{fiscal_year}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: financials
path: "/query/?q=SELECT+Revenue__c,EBITDA__c,Total_Debt__c,Net_Income__c+FROM+Financial_Statement__c+WHERE+Issuer_ID__c='{{issuer_id}}'+AND+Fiscal_Year__c='{{fiscal_year}}'"
inputParameters:
- name: issuer_id
in: query
- name: fiscal_year
in: query
operations:
- name: get-financials
method: GET
Monitors rated issuers for credit events by querying market data from Bloomberg, checking financial triggers in Snowflake, creating a surveillance case in ServiceNow, and alerting the ratings team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Issuer Surveillance Alert Pipeline"
description: "Monitors rated issuers for credit events by querying market data from Bloomberg, checking financial triggers in Snowflake, creating a surveillance case in ServiceNow, and alerting the ratings team via Microsoft Teams."
tags:
- credit-ratings
- surveillance
- bloomberg-enterprise-data
- snowflake
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: issuer-surveillance
port: 8080
tools:
- name: check-issuer-surveillance
description: "Given an entity ID, check for credit event triggers and alert if needed."
inputParameters:
- name: entity_id
in: body
type: string
description: "The rated entity identifier."
- name: trigger_type
in: body
type: string
description: "Type of trigger to check (spread_widening, downgrade_trigger, covenant_breach)."
steps:
- name: get-market-signals
type: call
call: "bloomberg.get-pricing"
with:
identifier: "{{entity_id}}"
identifier_type: "ENTITY"
- name: check-financial-triggers
type: call
call: "snowflake.execute-query"
with:
entity_id: "{{entity_id}}"
trigger_type: "{{trigger_type}}"
- name: create-surveillance-case
type: call
call: "servicenow.create-incident"
with:
short_description: "Surveillance alert: {{entity_id}} - {{trigger_type}}"
category: "issuer_surveillance"
description: "Trigger: {{trigger_type}}. Market signal: {{get-market-signals.spread}}. Financial check: {{check-financial-triggers.trigger_status}}."
- name: alert-ratings-team
type: call
call: "msteams.post-message"
with:
team_id: "ratings-team"
channel_id: "surveillance"
message: "SURVEILLANCE ALERT: {{entity_id}} triggered {{trigger_type}}. Case: {{create-surveillance-case.number}}. Spread: {{get-market-signals.spread}}."
consumes:
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/catalogs/bbg/datasets"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: pricing
path: "/pricing?identifier={{identifier}}&identifierType={{identifier_type}}"
inputParameters:
- name: identifier
in: query
- name: identifier_type
in: query
operations:
- name: get-pricing
method: GET
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: servicenow
baseUri: "https://moodys.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-message
method: POST
Creates an IT change request in ServiceNow, links documentation from Confluence, creates a Jira implementation task, and notifies the change advisory board via Microsoft Teams.
naftiko: "0.5"
info:
label: "IT Change Request Pipeline"
description: "Creates an IT change request in ServiceNow, links documentation from Confluence, creates a Jira implementation task, and notifies the change advisory board via Microsoft Teams."
tags:
- it-service
- change-management
- servicenow
- confluence
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: change-management
port: 8080
tools:
- name: submit-change-request
description: "Given change details, create a ServiceNow change, link docs, and notify the CAB."
inputParameters:
- name: change_summary
in: body
type: string
description: "Summary of the change."
- name: change_type
in: body
type: string
description: "Type of change."
- name: doc_page_id
in: body
type: string
description: "Confluence page ID."
steps:
- name: create-change
type: call
call: "servicenow.create-change"
with:
short_description: "{{change_summary}}"
type: "{{change_type}}"
- name: get-doc
type: call
call: "confluence.get-page"
with:
page_id: "{{doc_page_id}}"
- name: create-task
type: call
call: "jira.create-issue"
with:
project_key: "ITOPS"
summary: "Implement: {{change_summary}}"
description: "Change: {{create-change.number}}. Docs: {{get-doc._links.webui}}."
issue_type: "Task"
- name: notify-cab
type: call
call: "msteams.post-message"
with:
team_id: "it-team"
channel_id: "change-advisory"
message: "Change request {{create-change.number}}: {{change_summary}}. Type: {{change_type}}. Jira: {{create-task.key}}."
consumes:
- type: http
namespace: servicenow
baseUri: "https://moodys.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: changes
path: "/table/change_request"
operations:
- name: create-change
method: POST
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Retrieves a Jira issue by key for project tracking across analytics and technology teams.
naftiko: "0.5"
info:
label: "Jira Issue Lookup"
description: "Retrieves a Jira issue by key for project tracking across analytics and technology teams."
tags:
- project-management
- jira
capability:
exposes:
- type: mcp
namespace: project-tracking
port: 8080
tools:
- name: get-jira-issue
description: "Look up a Jira issue by key."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key."
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
consumes:
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue/{{issue_key}}"
inputParameters:
- name: issue_key
in: path
operations:
- name: get-issue
method: GET
Manages rating methodology updates by creating the methodology document in Confluence, uploading supporting analysis to SharePoint, creating review tasks in Jira, and notifying the methodology committee via Microsoft Teams.
naftiko: "0.5"
info:
label: "Methodology Update Workflow"
description: "Manages rating methodology updates by creating the methodology document in Confluence, uploading supporting analysis to SharePoint, creating review tasks in Jira, and notifying the methodology committee via Microsoft Teams."
tags:
- credit-ratings
- methodology
- confluence
- sharepoint
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: methodology-updates
port: 8080
tools:
- name: initiate-methodology-update
description: "Given methodology details, create documents, route for review, and notify committee."
inputParameters:
- name: methodology_name
in: body
type: string
description: "The methodology name."
- name: sector
in: body
type: string
description: "The sector the methodology applies to."
- name: change_summary
in: body
type: string
description: "Summary of proposed changes."
steps:
- name: create-methodology-doc
type: call
call: "confluence.create-page"
with:
space_key: "METHODOLOGY"
title: "Update: {{methodology_name}}"
body: "Sector: {{sector}}. Proposed changes: {{change_summary}}."
- name: upload-analysis
type: call
call: "sharepoint.create-folder"
with:
site_id: "methodology_site"
folder_path: "Updates/{{methodology_name}}"
- name: create-review-task
type: call
call: "jira.create-issue"
with:
project_key: "METH"
summary: "Methodology review: {{methodology_name}}"
description: "{{change_summary}}. Doc: {{create-methodology-doc._links.webui}}. Analysis: {{upload-analysis.webUrl}}."
issue_type: "Task"
- name: notify-committee
type: call
call: "msteams.post-message"
with:
team_id: "methodology-committee"
channel_id: "updates"
message: "Methodology update proposed: {{methodology_name}} ({{sector}}). Review: {{create-review-task.key}}. Doc: {{create-methodology-doc._links.webui}}."
consumes:
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Sends a formatted notification to a Microsoft Teams channel for cross-team communication across research, ratings, and analytics groups.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notification"
description: "Sends a formatted notification to a Microsoft Teams channel for cross-team communication across research, ratings, and analytics groups."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: team-notifications
port: 8080
tools:
- name: send-teams-notification
description: "Post a message to a Microsoft Teams channel."
inputParameters:
- name: team_id
in: body
type: string
description: "The Teams team ID."
- name: channel_id
in: body
type: string
description: "The Teams channel ID."
- name: message
in: body
type: string
description: "The message body."
call: "msteams.post-message"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
message: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Runs portfolio stress tests by loading scenario parameters from Snowflake, executing models in Databricks, storing results in Salesforce, uploading reports to SharePoint, and notifying the risk team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Portfolio Stress Testing Pipeline"
description: "Runs portfolio stress tests by loading scenario parameters from Snowflake, executing models in Databricks, storing results in Salesforce, uploading reports to SharePoint, and notifying the risk team via Microsoft Teams."
tags:
- risk-analytics
- stress-testing
- snowflake
- databricks
- salesforce
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: stress-testing
port: 8080
tools:
- name: run-stress-test
description: "Given a portfolio and stress scenario, execute the full stress testing pipeline."
inputParameters:
- name: portfolio_id
in: body
type: string
description: "The portfolio identifier."
- name: scenario_name
in: body
type: string
description: "The stress scenario name (e.g., recession, rate_shock, geopolitical)."
steps:
- name: load-scenario
type: call
call: "snowflake.execute-query"
with:
scenario_name: "{{scenario_name}}"
portfolio_id: "{{portfolio_id}}"
- name: execute-stress-model
type: call
call: "databricks.invoke-model"
with:
endpoint_name: "stress-test-model"
portfolio_id: "{{portfolio_id}}"
scenario: "{{scenario_name}}"
- name: store-results
type: call
call: "salesforce.create-stress-result"
with:
portfolio_id: "{{portfolio_id}}"
scenario: "{{scenario_name}}"
results: "{{execute-stress-model.predictions}}"
- name: upload-report
type: call
call: "sharepoint.create-folder"
with:
site_id: "risk_site"
folder_path: "StressTests/{{portfolio_id}}/{{scenario_name}}"
- name: notify-risk-team
type: call
call: "msteams.post-message"
with:
team_id: "risk-team"
channel_id: "stress-tests"
message: "Stress test complete: {{scenario_name}} on portfolio {{portfolio_id}}. Results: {{upload-report.webUrl}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: databricks
baseUri: "https://moodys.cloud.databricks.com/api/2.0"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: model-serving
path: "/serving-endpoints/{{endpoint_name}}/invocations"
inputParameters:
- name: endpoint_name
in: path
operations:
- name: invoke-model
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: stress-results
path: "/sobjects/Stress_Test_Result__c"
operations:
- name: create-stress-result
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Triggers a refresh of the credit analytics Power BI dashboard and returns the refresh status.
naftiko: "0.5"
info:
label: "Power BI Credit Dashboard Data Sync"
description: "Triggers a refresh of the credit analytics Power BI dashboard and returns the refresh status."
tags:
- analytics
- dashboard
- power-bi
capability:
exposes:
- type: mcp
namespace: credit-dashboard
port: 8080
tools:
- name: refresh-credit-dashboard
description: "Trigger a Power BI dashboard refresh by dataset ID."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Triggers a dataset refresh in Power BI for analytics dashboards used by credit research and risk teams.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresh"
description: "Triggers a dataset refresh in Power BI for analytics dashboards used by credit research and risk teams."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: bi-refresh
port: 8080
tools:
- name: refresh-dashboard
description: "Trigger a Power BI dataset refresh."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Orchestrates a credit rating action by updating the rating in Salesforce, publishing the research note to Confluence, distributing market data via Bloomberg, and notifying the ratings team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Rating Action Publication Workflow"
description: "Orchestrates a credit rating action by updating the rating in Salesforce, publishing the research note to Confluence, distributing market data via Bloomberg, and notifying the ratings team via Microsoft Teams."
tags:
- credit-ratings
- publication
- salesforce
- confluence
- bloomberg-enterprise-data
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: rating-actions
port: 8080
tools:
- name: publish-rating-action
description: "Given an entity and new rating, update all systems and publish the action."
inputParameters:
- name: entity_id
in: body
type: string
description: "The rated entity identifier."
- name: new_rating
in: body
type: string
description: "The new credit rating."
- name: outlook
in: body
type: string
description: "The rating outlook (stable, positive, negative)."
- name: rationale
in: body
type: string
description: "Brief rationale for the rating action."
steps:
- name: update-rating
type: call
call: "salesforce.update-rating"
with:
entity_id: "{{entity_id}}"
new_rating: "{{new_rating}}"
outlook: "{{outlook}}"
- name: publish-research-note
type: call
call: "confluence.create-page"
with:
space_key: "RATINGS"
title: "Rating Action: {{entity_id}} - {{new_rating}}"
body: "Rating changed to {{new_rating}} with {{outlook}} outlook. Rationale: {{rationale}}."
- name: distribute-data
type: call
call: "bloomberg.publish-rating"
with:
entity_id: "{{entity_id}}"
rating: "{{new_rating}}"
outlook: "{{outlook}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
team_id: "ratings-team"
channel_id: "rating-actions"
message: "Rating action published: {{entity_id}} -> {{new_rating}} ({{outlook}}). Research note: {{publish-research-note._links.webui}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: ratings
path: "/sobjects/Credit_Rating__c/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: update-rating
method: PATCH
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/catalogs/bbg/datasets"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: rating-feed
path: "/ratings/publish"
operations:
- name: publish-rating
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-message
method: POST
Queries the rating migration matrix from Snowflake for a specified time horizon, returning transition probabilities between rating categories.
naftiko: "0.5"
info:
label: "Rating Migration Matrix Query"
description: "Queries the rating migration matrix from Snowflake for a specified time horizon, returning transition probabilities between rating categories."
tags:
- ratings
- migration
- snowflake
capability:
exposes:
- type: mcp
namespace: rating-migration
port: 8080
tools:
- name: get-migration-matrix
description: "Retrieve rating migration matrix for a given time horizon."
inputParameters:
- name: horizon_years
in: body
type: string
description: "The time horizon in years."
- name: asset_class
in: body
type: string
description: "The asset class (corporate, sovereign, structured)."
call: "snowflake.get-migration"
with:
horizon_years: "{{horizon_years}}"
asset_class: "{{asset_class}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: get-migration
method: POST
Analyzes recovery rates for a sector by extracting historical default and recovery data from Snowflake, generating a report in SharePoint, logging results in Salesforce, and alerting the research team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Recovery Rate Analysis Pipeline"
description: "Analyzes recovery rates for a sector by extracting historical default and recovery data from Snowflake, generating a report in SharePoint, logging results in Salesforce, and alerting the research team via Microsoft Teams."
tags:
- recovery-rates
- analytics
- snowflake
- sharepoint
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: recovery-analysis
port: 8080
tools:
- name: analyze-recovery-rates
description: "Given a sector and time period, analyze historical recovery rates."
inputParameters:
- name: sector
in: body
type: string
description: "The industry sector."
- name: start_year
in: body
type: string
description: "The start year."
- name: end_year
in: body
type: string
description: "The end year."
steps:
- name: extract-recovery-data
type: call
call: "snowflake.execute-query"
with:
sector: "{{sector}}"
start_year: "{{start_year}}"
end_year: "{{end_year}}"
- name: create-report-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "research_site"
folder_path: "Recovery/{{sector}}/{{start_year}}-{{end_year}}"
- name: log-analysis
type: call
call: "salesforce.create-analysis-record"
with:
sector: "{{sector}}"
record_count: "{{extract-recovery-data.rowCount}}"
- name: notify-research
type: call
call: "msteams.post-message"
with:
team_id: "research-team"
channel_id: "recovery"
message: "Recovery rate analysis complete for {{sector}} ({{start_year}}-{{end_year}}). {{extract-recovery-data.rowCount}} defaults analyzed. Report: {{create-report-folder.webUrl}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: analysis-records
path: "/sobjects/Analysis_Record__c"
operations:
- name: create-analysis-record
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-message
method: POST
Prepares regulatory compliance filings by extracting compliance data from Snowflake, generating filing documents in SharePoint, creating a review task in Jira, and notifying the compliance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Regulatory Compliance Filing Workflow"
description: "Prepares regulatory compliance filings by extracting compliance data from Snowflake, generating filing documents in SharePoint, creating a review task in Jira, and notifying the compliance team via Microsoft Teams."
tags:
- compliance
- regulatory
- snowflake
- sharepoint
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: regulatory-compliance
port: 8080
tools:
- name: prepare-compliance-filing
description: "Given a filing type and period, extract data, generate documents, and route for review."
inputParameters:
- name: filing_type
in: body
type: string
description: "The regulatory filing type (e.g., SEC, ESMA, annual_report)."
- name: reporting_period
in: body
type: string
description: "The reporting period."
steps:
- name: extract-compliance-data
type: call
call: "snowflake.execute-query"
with:
filing_type: "{{filing_type}}"
period: "{{reporting_period}}"
- name: generate-filing-docs
type: call
call: "sharepoint.create-folder"
with:
site_id: "compliance_site"
folder_path: "Filings/{{filing_type}}/{{reporting_period}}"
- name: create-review-task
type: call
call: "jira.create-issue"
with:
project_key: "COMP"
summary: "Compliance filing: {{filing_type}} - {{reporting_period}}"
description: "Data extracted: {{extract-compliance-data.rowCount}} records. Docs: {{generate-filing-docs.webUrl}}."
issue_type: "Task"
- name: notify-compliance
type: call
call: "msteams.post-message"
with:
team_id: "compliance-team"
channel_id: "filings"
message: "Compliance filing {{filing_type}} for {{reporting_period}} ready for review. Jira: {{create-review-task.key}}. Docs: {{generate-filing-docs.webUrl}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Publishes a research report by creating the document in Confluence, uploading supporting data to SharePoint, updating the Salesforce research catalog, and notifying subscribers via Microsoft Teams.
naftiko: "0.5"
info:
label: "Research Report Publishing Pipeline"
description: "Publishes a research report by creating the document in Confluence, uploading supporting data to SharePoint, updating the Salesforce research catalog, and notifying subscribers via Microsoft Teams."
tags:
- research
- publication
- confluence
- sharepoint
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: research-publishing
port: 8080
tools:
- name: publish-research-report
description: "Given report details, publish across Confluence, SharePoint, and Salesforce, then notify subscribers."
inputParameters:
- name: report_title
in: body
type: string
description: "The research report title."
- name: sector
in: body
type: string
description: "The sector covered."
- name: analyst_id
in: body
type: string
description: "The lead analyst's employee ID."
- name: report_type
in: body
type: string
description: "Type of report (sector_update, issuer_comment, methodology)."
steps:
- name: create-report-page
type: call
call: "confluence.create-page"
with:
space_key: "RESEARCH"
title: "{{report_title}}"
body: "Sector: {{sector}}. Type: {{report_type}}. Analyst: {{analyst_id}}."
- name: upload-data
type: call
call: "sharepoint.create-folder"
with:
site_id: "research_site"
folder_path: "Reports/{{sector}}/{{report_title}}"
- name: update-catalog
type: call
call: "salesforce.create-research-entry"
with:
title: "{{report_title}}"
sector: "{{sector}}"
analyst_id: "{{analyst_id}}"
type: "{{report_type}}"
url: "{{create-report-page._links.webui}}"
- name: notify-subscribers
type: call
call: "msteams.post-message"
with:
team_id: "research-team"
channel_id: "publications"
message: "New research report: {{report_title}} ({{sector}} - {{report_type}}). Read: {{create-report-page._links.webui}}."
consumes:
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: research-entries
path: "/sobjects/Research_Report__c"
operations:
- name: create-research-entry
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Searches Moody's research reports by keyword, sector, or entity from the Confluence knowledge base, returning matching report titles and links.
naftiko: "0.5"
info:
label: "Research Report Search"
description: "Searches Moody's research reports by keyword, sector, or entity from the Confluence knowledge base, returning matching report titles and links."
tags:
- research
- knowledge-management
- confluence
capability:
exposes:
- type: mcp
namespace: research-reports
port: 8080
tools:
- name: search-research-reports
description: "Search research reports by keyword. Returns report titles, authors, and URLs."
inputParameters:
- name: query
in: body
type: string
description: "Search keyword or phrase."
call: "confluence.search-content"
with:
query: "{{query}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: content
path: "/content/search?cql=text~'{{query}}'+and+space=RESEARCH"
inputParameters:
- name: query
in: query
operations:
- name: search-content
method: GET
Retrieves a company's risk assessment score from the analytics platform, including probability of default, loss given default, and credit score.
naftiko: "0.5"
info:
label: "Risk Assessment Score Retrieval"
description: "Retrieves a company's risk assessment score from the analytics platform, including probability of default, loss given default, and credit score."
tags:
- risk-analytics
- credit-risk
- snowflake
capability:
exposes:
- type: mcp
namespace: risk-scores
port: 8080
tools:
- name: get-risk-score
description: "Look up a risk assessment score by company identifier. Returns PD, LGD, and composite score."
inputParameters:
- name: company_id
in: body
type: string
description: "The company identifier."
call: "snowflake.get-risk-score"
with:
company_id: "{{company_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: get-risk-score
method: POST
Retrieves pending travel approval requests for credit analysts from SAP Concur, returning trip details, estimated cost, and approval status.
naftiko: "0.5"
info:
label: "SAP Concur Analyst Travel Approval"
description: "Retrieves pending travel approval requests for credit analysts from SAP Concur, returning trip details, estimated cost, and approval status."
tags:
- travel
- expense
- sap-concur
capability:
exposes:
- type: mcp
namespace: travel-approvals
port: 8080
tools:
- name: get-travel-requests
description: "Retrieve pending travel requests for an analyst."
inputParameters:
- name: analyst_id
in: body
type: string
description: "The analyst employee ID."
call: "concur.get-travel-requests"
with:
analyst_id: "{{analyst_id}}"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: travel-requests
path: "/travelrequest/requests?owner={{analyst_id}}&status=PENDING"
inputParameters:
- name: analyst_id
in: query
operations:
- name: get-travel-requests
method: GET
Retrieves a travel expense report status from SAP Concur for analyst and research team travel.
naftiko: "0.5"
info:
label: "SAP Concur Travel Expense Status"
description: "Retrieves a travel expense report status from SAP Concur for analyst and research team travel."
tags:
- finance
- sap-concur
capability:
exposes:
- type: mcp
namespace: travel-expense
port: 8080
tools:
- name: get-expense-report
description: "Look up a SAP Concur expense report by report ID."
inputParameters:
- name: report_id
in: body
type: string
description: "The Concur expense report ID."
call: "concur.get-report"
with:
report_id: "{{report_id}}"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-report
method: GET
Generates sector outlook reports by querying industry data from Snowflake, pulling rating distribution from Salesforce, creating the report in Confluence, and distributing via SharePoint and Microsoft Teams.
naftiko: "0.5"
info:
label: "Sector Outlook Report Pipeline"
description: "Generates sector outlook reports by querying industry data from Snowflake, pulling rating distribution from Salesforce, creating the report in Confluence, and distributing via SharePoint and Microsoft Teams."
tags:
- research
- sector-outlook
- snowflake
- salesforce
- confluence
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: sector-outlook
port: 8080
tools:
- name: generate-sector-outlook
description: "Given a sector and period, generate a comprehensive sector outlook report."
inputParameters:
- name: sector
in: body
type: string
description: "The sector name."
- name: outlook_period
in: body
type: string
description: "The outlook period (e.g., 2026-H2)."
steps:
- name: pull-industry-data
type: call
call: "snowflake.execute-query"
with:
sector: "{{sector}}"
period: "{{outlook_period}}"
- name: get-rating-distribution
type: call
call: "salesforce.get-sector-ratings"
with:
sector: "{{sector}}"
- name: create-report
type: call
call: "confluence.create-page"
with:
space_key: "RESEARCH"
title: "Sector Outlook: {{sector}} - {{outlook_period}}"
body: "Sector: {{sector}}. Entities: {{pull-industry-data.rowCount}}. Rating distribution: {{get-rating-distribution.distribution}}."
- name: upload-data
type: call
call: "sharepoint.create-folder"
with:
site_id: "research_site"
folder_path: "SectorOutlooks/{{sector}}/{{outlook_period}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
team_id: "research-team"
channel_id: "sector-outlook"
message: "Sector outlook for {{sector}} ({{outlook_period}}) published. Report: {{create-report._links.webui}}. Data: {{upload-data.webUrl}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: sector-ratings
path: "/query/?q=SELECT+Current_Rating__c,COUNT(Id)+FROM+Credit_Rating__c+WHERE+Sector__c='{{sector}}'+GROUP+BY+Current_Rating__c"
inputParameters:
- name: sector
in: query
operations:
- name: get-sector-ratings
method: GET
- type: http
namespace: confluence
baseUri: "https://moodys.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: folders
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Retrieves an IT incident from ServiceNow by incident number, returning priority, status, assigned group, and description.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves an IT incident from ServiceNow by incident number, returning priority, status, assigned group, and description."
tags:
- it-service
- servicenow
capability:
exposes:
- type: mcp
namespace: it-incidents
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://moodys.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
Retrieves document metadata from SharePoint for research reports, methodology documents, and compliance records.
naftiko: "0.5"
info:
label: "SharePoint Document Retrieval"
description: "Retrieves document metadata from SharePoint for research reports, methodology documents, and compliance records."
tags:
- document-management
- sharepoint
capability:
exposes:
- type: mcp
namespace: document-mgmt
port: 8080
tools:
- name: get-document-metadata
description: "Retrieve SharePoint document metadata by site and file path."
inputParameters:
- name: site_id
in: body
type: string
description: "The SharePoint site ID."
- name: file_path
in: body
type: string
description: "The file path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
Executes a parameterized query against the Snowflake data warehouse for financial statement data, credit metrics, and economic indicators.
naftiko: "0.5"
info:
label: "Snowflake Financial Data Query"
description: "Executes a parameterized query against the Snowflake data warehouse for financial statement data, credit metrics, and economic indicators."
tags:
- data
- snowflake
- financial-data
capability:
exposes:
- type: mcp
namespace: financial-data
port: 8080
tools:
- name: query-financial-data
description: "Query Snowflake for financial data by entity and metric type."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
- name: metric_type
in: body
type: string
description: "The metric type (e.g., financials, credit_metrics, economic)."
call: "snowflake.execute-query"
with:
entity_id: "{{entity_id}}"
metric_type: "{{metric_type}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Retrieves sovereign credit risk indicators from Snowflake by country code, returning sovereign rating, GDP trend, debt-to-GDP ratio, and political risk score.
naftiko: "0.5"
info:
label: "Sovereign Credit Risk Analysis"
description: "Retrieves sovereign credit risk indicators from Snowflake by country code, returning sovereign rating, GDP trend, debt-to-GDP ratio, and political risk score."
tags:
- credit-risk
- sovereign
- snowflake
capability:
exposes:
- type: mcp
namespace: sovereign-risk
port: 8080
tools:
- name: get-sovereign-risk
description: "Look up sovereign credit risk indicators by country code."
inputParameters:
- name: country_code
in: body
type: string
description: "The ISO country code."
call: "snowflake.get-sovereign-risk"
with:
country_code: "{{country_code}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: get-sovereign-risk
method: POST
Retrieves structured finance deal details from Salesforce by deal ID, returning tranche structure, collateral type, and deal status.
naftiko: "0.5"
info:
label: "Structured Finance Deal Tracker"
description: "Retrieves structured finance deal details from Salesforce by deal ID, returning tranche structure, collateral type, and deal status."
tags:
- structured-finance
- salesforce
capability:
exposes:
- type: mcp
namespace: structured-finance
port: 8080
tools:
- name: get-sf-deal-details
description: "Look up structured finance deal by deal ID."
inputParameters:
- name: deal_id
in: body
type: string
description: "The deal identifier."
call: "salesforce.get-sf-deal"
with:
deal_id: "{{deal_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: deals
path: "/query/?q=SELECT+Deal_Name__c,Tranche_Structure__c,Collateral_Type__c,Status__c+FROM+SF_Deal__c+WHERE+Deal_ID__c='{{deal_id}}'"
inputParameters:
- name: deal_id
in: query
operations:
- name: get-sf-deal
method: GET
Reviews entities on the credit watchlist by pulling latest financials from Snowflake, fetching current rating from Salesforce, creating a Jira review task, and alerting the ratings committee via Microsoft Teams.
naftiko: "0.5"
info:
label: "Watchlist Entity Review Pipeline"
description: "Reviews entities on the credit watchlist by pulling latest financials from Snowflake, fetching current rating from Salesforce, creating a Jira review task, and alerting the ratings committee via Microsoft Teams."
tags:
- watchlist
- ratings
- snowflake
- salesforce
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: watchlist-review
port: 8080
tools:
- name: review-watchlist-entity
description: "Given an entity ID, pull financials, check rating, and route for committee review."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
steps:
- name: pull-financials
type: call
call: "snowflake.execute-query"
with:
entity_id: "{{entity_id}}"
- name: get-current-rating
type: call
call: "salesforce.get-rating"
with:
entity_id: "{{entity_id}}"
- name: create-review-task
type: call
call: "jira.create-issue"
with:
project: "RATINGS"
summary: "Watchlist review: {{entity_id}} (current: {{get-current-rating.Current_Rating__c}})"
issue_type: "Task"
- name: alert-committee
type: call
call: "msteams.post-message"
with:
team_id: "ratings-committee"
channel_id: "watchlist"
message: "Watchlist review initiated for {{entity_id}}. Current rating: {{get-current-rating.Current_Rating__c}}. Jira: {{create-review-task.key}}."
consumes:
- type: http
namespace: snowflake
baseUri: "https://moodys.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://moodys.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: ratings
path: "/query/?q=SELECT+Current_Rating__c,Rating_Outlook__c+FROM+Credit_Rating__c+WHERE+Entity_ID__c='{{entity_id}}'"
inputParameters:
- name: entity_id
in: query
operations:
- name: get-rating
method: GET
- type: http
namespace: jira
baseUri: "https://moodys.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Retrieves compensation benchmarking data from Workday for a specified job family and location, returning salary ranges and market comparisons.
naftiko: "0.5"
info:
label: "Workday Compensation Benchmarking"
description: "Retrieves compensation benchmarking data from Workday for a specified job family and location, returning salary ranges and market comparisons."
tags:
- hr
- compensation
- workday
capability:
exposes:
- type: mcp
namespace: compensation-benchmark
port: 8080
tools:
- name: get-comp-benchmark
description: "Look up compensation benchmarks by job family and location."
inputParameters:
- name: job_family
in: body
type: string
description: "The job family group."
- name: location
in: body
type: string
description: "The location code."
call: "workday.get-compensation"
with:
job_family: "{{job_family}}"
location: "{{location}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/moodys"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: compensation
path: "/compensation?jobFamily={{job_family}}&location={{location}}"
inputParameters:
- name: job_family
in: query
- name: location
in: query
operations:
- name: get-compensation
method: GET
Fetches an employee profile from Workday by worker ID, including department, title, manager, and location.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Fetches an employee profile from Workday by worker ID, including department, title, manager, and location."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr-employee
port: 8080
tools:
- name: get-employee-profile
description: "Retrieve a Workday employee profile by worker ID."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET