NextEra Energy Capabilities

Naftiko 0.5 capability definitions for NextEra Energy - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Triggers an Alteryx analytics workflow and returns the execution status.

naftiko: "0.5"
info:
  label: "Alteryx Workflow Execution"
  description: "Triggers an Alteryx analytics workflow and returns the execution status."
  tags:
    - analytics
    - alteryx
    - data-processing
capability:
  exposes:
    - type: mcp
      namespace: analytics-workflows
      port: 8080
      tools:
        - name: run-alteryx-workflow
          description: "Trigger an Alteryx workflow by ID."
          inputParameters:
            - name: workflow_id
              in: body
              type: string
              description: "The Alteryx workflow identifier."
          call: "alteryx.run-workflow"
          with:
            workflow_id: "{{workflow_id}}"
          outputParameters:
            - name: job_id
              type: string
              mapping: "$.id"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: alteryx
      baseUri: "https://nextera.alteryxcloud.com/api/v3"
      authentication:
        type: bearer
        token: "$secrets.alteryx_token"
      resources:
        - name: workflows
          path: "/workflows/{{workflow_id}}/jobs"
          inputParameters:
            - name: workflow_id
              in: path
          operations:
            - name: run-workflow
              method: POST

Executes a graph query against Amazon Neptune for asset relationship mapping in the NextEra grid topology.

naftiko: "0.5"
info:
  label: "Amazon Neptune Graph Query"
  description: "Executes a graph query against Amazon Neptune for asset relationship mapping in the NextEra grid topology."
  tags:
    - data-engineering
    - amazon-neptune
    - graph-database
capability:
  exposes:
    - type: mcp
      namespace: graph-analytics
      port: 8080
      tools:
        - name: query-asset-graph
          description: "Run a Gremlin query on the asset graph in Amazon Neptune."
          inputParameters:
            - name: gremlin_query
              in: body
              type: string
              description: "The Gremlin traversal query."
          call: "neptune.execute-gremlin"
          with:
            query: "{{gremlin_query}}"
          outputParameters:
            - name: results
              type: array
              mapping: "$.result.data"
  consumes:
    - type: http
      namespace: neptune
      baseUri: "https://nextera-neptune.us-east-1.neptune.amazonaws.com:8182"
      authentication:
        type: aws
        accessKeyId: "$secrets.aws_access_key"
        secretAccessKey: "$secrets.aws_secret_key"
      resources:
        - name: gremlin
          path: "/gremlin"
          operations:
            - name: execute-gremlin
              method: POST

Invokes an AWS Lambda function and returns the execution result.

naftiko: "0.5"
info:
  label: "AWS Lambda Function Invocation"
  description: "Invokes an AWS Lambda function and returns the execution result."
  tags:
    - cloud
    - aws-lambda
    - serverless
capability:
  exposes:
    - type: mcp
      namespace: serverless
      port: 8080
      tools:
        - name: invoke-lambda
          description: "Invoke an AWS Lambda function by name."
          inputParameters:
            - name: function_name
              in: body
              type: string
              description: "The Lambda function name."
            - name: payload
              in: body
              type: string
              description: "JSON payload."
          call: "lambda.invoke-function"
          with:
            function_name: "{{function_name}}"
            payload: "{{payload}}"
          outputParameters:
            - name: status_code
              type: string
              mapping: "$.StatusCode"
            - name: result
              type: string
              mapping: "$.Payload"
  consumes:
    - type: http
      namespace: lambda
      baseUri: "https://lambda.us-east-1.amazonaws.com/2015-03-31"
      authentication:
        type: aws
        accessKeyId: "$secrets.aws_access_key"
        secretAccessKey: "$secrets.aws_secret_key"
      resources:
        - name: functions
          path: "/functions/{{function_name}}/invocations"
          inputParameters:
            - name: function_name
              in: path
          operations:
            - name: invoke-function
              method: POST

Checks the status of an Azure Data Factory pipeline run, returning run status, start time, and duration.

naftiko: "0.5"
info:
  label: "Azure Data Factory Pipeline Status"
  description: "Checks the status of an Azure Data Factory pipeline run, returning run status, start time, and duration."
  tags:
    - data-engineering
    - azure-data-factory
capability:
  exposes:
    - type: mcp
      namespace: data-engineering
      port: 8080
      tools:
        - name: get-adf-pipeline-status
          description: "Check Azure Data Factory pipeline run status by run ID."
          inputParameters:
            - name: run_id
              in: body
              type: string
              description: "The pipeline run identifier."
          call: "adf.get-pipeline-run"
          with:
            run_id: "{{run_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: run_start
              type: string
              mapping: "$.runStart"
            - name: duration_ms
              type: string
              mapping: "$.durationInMs"
  consumes:
    - type: http
      namespace: adf
      baseUri: "https://management.azure.com/subscriptions"
      authentication:
        type: bearer
        token: "$secrets.azure_management_token"
      resources:
        - name: pipeline-runs
          path: "/{{subscription_id}}/resourceGroups/{{resource_group}}/providers/Microsoft.DataFactory/factories/{{factory_name}}/pipelineruns/{{run_id}}"
          inputParameters:
            - name: subscription_id
              in: path
            - name: resource_group
              in: path
            - name: factory_name
              in: path
            - name: run_id
              in: path
          operations:
            - name: get-pipeline-run
              method: GET

Retrieves battery energy storage system (BESS) metrics from the monitoring platform, returning state of charge, discharge rate, temperature, and cycle count.

naftiko: "0.5"
info:
  label: "Battery Storage System Monitor"
  description: "Retrieves battery energy storage system (BESS) metrics from the monitoring platform, returning state of charge, discharge rate, temperature, and cycle count."
  tags:
    - renewable
    - battery-storage
    - elasticsearch
capability:
  exposes:
    - type: mcp
      namespace: battery-storage
      port: 8080
      tools:
        - name: get-bess-metrics
          description: "Look up battery storage system metrics by BESS unit ID."
          inputParameters:
            - name: bess_id
              in: body
              type: string
              description: "The battery energy storage system identifier."
          call: "elasticsearch.get-bess-data"
          with:
            bess_id: "{{bess_id}}"
          outputParameters:
            - name: state_of_charge_pct
              type: string
              mapping: "$.hits.hits[0]._source.soc_pct"
            - name: discharge_rate_mw
              type: string
              mapping: "$.hits.hits[0]._source.discharge_rate_mw"
            - name: temperature_c
              type: string
              mapping: "$.hits.hits[0]._source.temperature_c"
            - name: cycle_count
              type: string
              mapping: "$.hits.hits[0]._source.cycle_count"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://nextera-scada.es.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: bess-metrics
          path: "/bess-metrics/_search"
          operations:
            - name: get-bess-data
              method: POST

When a customer files a billing dispute, creates a Salesforce case, pulls usage data from Teradata, compares against billed amounts in SAP, and notifies the resolution team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Billing Dispute Resolution Orchestrator"
  description: "When a customer files a billing dispute, creates a Salesforce case, pulls usage data from Teradata, compares against billed amounts in SAP, and notifies the resolution team via Microsoft Teams."
  tags:
    - billing
    - dispute-resolution
    - salesforce
    - teradata
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: billing-disputes
      port: 8080
      tools:
        - name: process-billing-dispute
          description: "Given an account number, disputed amount, and billing period, create a case, pull usage data, compare, and notify."
          inputParameters:
            - name: account_number
              in: body
              type: string
              description: "The customer account number."
            - name: disputed_amount
              in: body
              type: string
              description: "The disputed billing amount."
            - name: billing_period
              in: body
              type: string
              description: "The billing period in YYYY-MM format."
          steps:
            - name: create-case
              type: call
              call: "salesforce.create-dispute-case"
              with:
                account_number: "{{account_number}}"
                amount: "{{disputed_amount}}"
                period: "{{billing_period}}"
            - name: get-usage
              type: call
              call: "teradata.query-usage"
              with:
                account: "{{account_number}}"
                period: "{{billing_period}}"
            - name: get-billed
              type: call
              call: "sap.get-billing-record"
              with:
                account: "{{account_number}}"
                period: "{{billing_period}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "billing-disputes"
                text: "Billing Dispute: Account {{account_number}}, Period {{billing_period}}. Disputed: ${{disputed_amount}}. Actual usage: {{get-usage.total_kwh}} kWh. Billed: ${{get-billed.billed_amount}}. Case: {{create-case.case_number}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://nextera.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case"
          operations:
            - name: create-dispute-case
              method: POST
    - type: http
      namespace: teradata
      baseUri: "https://nextera-analytics.teradata.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.teradata_token"
      resources:
        - name: usage
          path: "/query"
          operations:
            - name: query-usage
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://nextera-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: billing
          path: "/BILLING_SRV/BillingRecords"
          operations:
            - name: get-billing-record
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Checks the status of a Boomi integration process execution, returning process status, start time, and document count.

naftiko: "0.5"
info:
  label: "Boomi Integration Process Status"
  description: "Checks the status of a Boomi integration process execution, returning process status, start time, and document count."
  tags:
    - integration
    - boomi
    - middleware
capability:
  exposes:
    - type: mcp
      namespace: integration
      port: 8080
      tools:
        - name: get-boomi-status
          description: "Check Boomi process execution status."
          inputParameters:
            - name: execution_id
              in: body
              type: string
              description: "The Boomi execution identifier."
          call: "boomi.get-execution"
          with:
            execution_id: "{{execution_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.result[0].status"
            - name: start_time
              type: string
              mapping: "$.result[0].executionTime"
  consumes:
    - type: http
      namespace: boomi
      baseUri: "https://api.boomi.com/api/rest/v1/nextera"
      authentication:
        type: basic
        username: "$secrets.boomi_user"
        password: "$secrets.boomi_password"
      resources:
        - name: executions
          path: "/ExecutionRecord/{{execution_id}}"
          inputParameters:
            - name: execution_id
              in: path
          operations:
            - name: get-execution
              method: GET

Retrieves a document from Box by file ID.

naftiko: "0.5"
info:
  label: "Box Document Retrieval"
  description: "Retrieves a document from Box by file ID."
  tags:
    - document-management
    - box
capability:
  exposes:
    - type: mcp
      namespace: documents
      port: 8080
      tools:
        - name: get-box-document
          description: "Retrieve a Box document by file ID."
          inputParameters:
            - name: file_id
              in: body
              type: string
              description: "The Box file identifier."
          call: "box.get-file"
          with:
            file_id: "{{file_id}}"
          outputParameters:
            - name: file_name
              type: string
              mapping: "$.name"
            - name: size
              type: string
              mapping: "$.size"
  consumes:
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files/{{file_id}}"
          inputParameters:
            - name: file_id
              in: path
          operations:
            - name: get-file
              method: GET

Creates a Cisco Webex meeting for cross-team collaboration and sends the join link via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Cisco Webex Meeting Scheduler"
  description: "Creates a Cisco Webex meeting for cross-team collaboration and sends the join link via Microsoft Teams."
  tags:
    - collaboration
    - cisco-webex
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: schedule-webex-meeting
          description: "Create a Webex meeting and notify via Teams."
          inputParameters:
            - name: title
              in: body
              type: string
              description: "The meeting title."
            - name: start_time
              in: body
              type: string
              description: "Start time in ISO 8601."
            - name: duration
              in: body
              type: string
              description: "Duration in minutes."
          steps:
            - name: create-meeting
              type: call
              call: "webex.create-meeting"
              with:
                title: "{{title}}"
                start: "{{start_time}}"
                duration: "{{duration}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "general"
                text: "Webex meeting: {{title}} at {{start_time}}. Join: {{create-meeting.webLink}}"
  consumes:
    - type: http
      namespace: webex
      baseUri: "https://webexapis.com/v1"
      authentication:
        type: bearer
        token: "$secrets.webex_token"
      resources:
        - name: meetings
          path: "/meetings"
          operations:
            - name: create-meeting
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Queries Cloudflare analytics for NextEra Energy web properties, returning bandwidth, cache hit ratio, and threat counts.

naftiko: "0.5"
info:
  label: "Cloudflare CDN Performance Check"
  description: "Queries Cloudflare analytics for NextEra Energy web properties, returning bandwidth, cache hit ratio, and threat counts."
  tags:
    - infrastructure
    - cloudflare
    - cdn
capability:
  exposes:
    - type: mcp
      namespace: cdn
      port: 8080
      tools:
        - name: get-cdn-performance
          description: "Retrieve Cloudflare CDN performance metrics for a given zone."
          inputParameters:
            - name: zone_id
              in: body
              type: string
              description: "The Cloudflare zone identifier."
          call: "cloudflare.get-zone-analytics"
          with:
            zone_id: "{{zone_id}}"
          outputParameters:
            - name: bandwidth
              type: string
              mapping: "$.result.totals.bandwidth.all"
            - name: cache_hit_ratio
              type: string
              mapping: "$.result.totals.bandwidth.cached"
            - name: threats
              type: string
              mapping: "$.result.totals.threats.all"
  consumes:
    - type: http
      namespace: cloudflare
      baseUri: "https://api.cloudflare.com/client/v4"
      authentication:
        type: bearer
        token: "$secrets.cloudflare_token"
      resources:
        - name: zone-analytics
          path: "/zones/{{zone_id}}/analytics/dashboard"
          inputParameters:
            - name: zone_id
              in: path
          operations:
            - name: get-zone-analytics
              method: GET

Checks the status of AWS CloudWatch alarms for NextEra Energy cloud infrastructure.

naftiko: "0.5"
info:
  label: "CloudWatch Alarm Status Check"
  description: "Checks the status of AWS CloudWatch alarms for NextEra Energy cloud infrastructure."
  tags:
    - monitoring
    - cloudwatch
    - cloud
capability:
  exposes:
    - type: mcp
      namespace: cloud-monitoring
      port: 8080
      tools:
        - name: get-alarm-status
          description: "Check CloudWatch alarm status by alarm name."
          inputParameters:
            - name: alarm_name
              in: body
              type: string
              description: "The CloudWatch alarm name."
          call: "cloudwatch.describe-alarm"
          with:
            alarm_name: "{{alarm_name}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.MetricAlarms[0].StateValue"
            - name: reason
              type: string
              mapping: "$.MetricAlarms[0].StateReason"
  consumes:
    - type: http
      namespace: cloudwatch
      baseUri: "https://monitoring.us-east-1.amazonaws.com"
      authentication:
        type: aws
        accessKeyId: "$secrets.aws_access_key"
        secretAccessKey: "$secrets.aws_secret_key"
      resources:
        - name: alarms
          path: "/?Action=DescribeAlarms&AlarmNames.member.1={{alarm_name}}"
          inputParameters:
            - name: alarm_name
              in: query
          operations:
            - name: describe-alarm
              method: GET

Searches the NextEra Energy Confluence knowledge base by keyword.

naftiko: "0.5"
info:
  label: "Confluence Knowledge Base Search"
  description: "Searches the NextEra Energy Confluence knowledge base by keyword."
  tags:
    - knowledge-management
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: knowledge
      port: 8080
      tools:
        - name: search-knowledge-base
          description: "Search Confluence knowledge base by keyword."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search query."
          call: "confluence.search"
          with:
            query: "{{query}}"
          outputParameters:
            - name: results
              type: array
              mapping: "$.results"
            - name: total_count
              type: string
              mapping: "$.totalSize"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://nextera.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: search
          path: "/search?cql=text~'{{query}}'"
          inputParameters:
            - name: query
              in: query
          operations:
            - name: search
              method: GET

Retrieves a customer billing record from Salesforce Service Cloud by account number, returning current balance, last payment date, and billing cycle.

naftiko: "0.5"
info:
  label: "Customer Billing Inquiry Lookup"
  description: "Retrieves a customer billing record from Salesforce Service Cloud by account number, returning current balance, last payment date, and billing cycle."
  tags:
    - billing
    - customer-service
    - salesforce-service-cloud
capability:
  exposes:
    - type: mcp
      namespace: billing
      port: 8080
      tools:
        - name: get-billing-status
          description: "Look up a customer billing record by account number."
          inputParameters:
            - name: account_number
              in: body
              type: string
              description: "The customer account number."
          call: "salesforce.get-billing"
          with:
            account_number: "{{account_number}}"
          outputParameters:
            - name: current_balance
              type: string
              mapping: "$.Current_Balance__c"
            - name: last_payment_date
              type: string
              mapping: "$.Last_Payment_Date__c"
            - name: billing_cycle
              type: string
              mapping: "$.Billing_Cycle__c"
            - name: account_status
              type: string
              mapping: "$.Account_Status__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://nextera.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: billing-accounts
          path: "/sobjects/Billing_Account__c/{{account_number}}"
          inputParameters:
            - name: account_number
              in: path
          operations:
            - name: get-billing
              method: GET

When a grid outage is detected, identifies affected customers in Salesforce, sends SMS notifications via WhatsApp, creates a ServiceNow incident, and posts a status update to Microsoft Teams.

naftiko: "0.5"
info:
  label: "Customer Outage Notification Pipeline"
  description: "When a grid outage is detected, identifies affected customers in Salesforce, sends SMS notifications via WhatsApp, creates a ServiceNow incident, and posts a status update to Microsoft Teams."
  tags:
    - grid-ops
    - outage
    - salesforce
    - whatsapp
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: outage-management
      port: 8080
      tools:
        - name: notify-outage
          description: "Given a grid segment ID and estimated restoration time, identify affected customers, send notifications, and create an incident."
          inputParameters:
            - name: segment_id
              in: body
              type: string
              description: "The affected grid segment identifier."
            - name: estimated_restoration
              in: body
              type: string
              description: "Estimated restoration time in ISO 8601 format."
            - name: cause
              in: body
              type: string
              description: "Cause of the outage (weather, equipment, planned)."
          steps:
            - name: get-affected-customers
              type: call
              call: "salesforce.query-segment-customers"
              with:
                segment_id: "{{segment_id}}"
            - name: send-notifications
              type: call
              call: "whatsapp.send-bulk-message"
              with:
                recipients: "{{get-affected-customers.phone_numbers}}"
                message: "NextEra Energy: Power outage in your area. Cause: {{cause}}. Estimated restoration: {{estimated_restoration}}. We apologize for the inconvenience."
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Grid Outage: Segment {{segment_id}}"
                category: "outage_management"
                urgency: "1"
                description: "Outage on segment {{segment_id}}. Cause: {{cause}}. Affected customers: {{get-affected-customers.count}}. ERT: {{estimated_restoration}}"
            - name: post-status
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "grid-ops-status"
                text: "OUTAGE ALERT: Segment {{segment_id}}. Cause: {{cause}}. Affected: {{get-affected-customers.count}} customers. ERT: {{estimated_restoration}}. Incident: {{create-incident.number}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://nextera.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: customers
          path: "/query/?q=SELECT+Id,Phone__c,Name+FROM+Customer_Account__c+WHERE+Grid_Segment__c='{{segment_id}}'"
          inputParameters:
            - name: segment_id
              in: query
          operations:
            - name: query-segment-customers
              method: GET
    - type: http
      namespace: whatsapp
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.whatsapp_token"
      resources:
        - name: messages
          path: "/{{phone_number_id}}/messages"
          inputParameters:
            - name: phone_number_id
              in: path
          operations:
            - name: send-bulk-message
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://nextera.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: send-message
              method: POST

Queries Datadog for the current health status of NextEra Energy infrastructure, returning host count, alert counts, and critical monitors.

naftiko: "0.5"
info:
  label: "Datadog Infrastructure Health Check"
  description: "Queries Datadog for the current health status of NextEra Energy infrastructure, returning host count, alert counts, and critical monitors."
  tags:
    - infrastructure
    - monitoring
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: infra-monitoring
      port: 8080
      tools:
        - name: get-infra-health
          description: "Retrieve Datadog infrastructure health summary."
          inputParameters:
            - name: environment
              in: body
              type: string
              description: "The environment to check (production, staging)."
          call: "datadog.get-monitors"
          with:
            environment: "{{environment}}"
          outputParameters:
            - name: total_hosts
              type: string
              mapping: "$.total_hosts"
            - name: active_alerts
              type: string
              mapping: "$.alert_count"
            - name: critical_monitors
              type: array
              mapping: "$.critical_monitors"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: monitors
          path: "/monitor"
          operations:
            - name: get-monitors
              method: GET

Generates energy demand forecasts by pulling historical load data from Teradata, weather predictions from the weather API, running the forecast model in Azure Machine Learning, and publishing results to SharePoint for grid planning.

naftiko: "0.5"
info:
  label: "Demand Forecasting Pipeline"
  description: "Generates energy demand forecasts by pulling historical load data from Teradata, weather predictions from the weather API, running the forecast model in Azure Machine Learning, and publishing results to SharePoint for grid planning."
  tags:
    - grid-ops
    - forecasting
    - teradata
    - azure-machine-learning
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: demand-forecasting
      port: 8080
      tools:
        - name: generate-demand-forecast
          description: "Given a region and forecast date range, pull load data, weather data, run the model, and publish the forecast."
          inputParameters:
            - name: region
              in: body
              type: string
              description: "The service region (e.g., South Florida, Central Florida)."
            - name: start_date
              in: body
              type: string
              description: "Forecast start date in YYYY-MM-DD."
            - name: end_date
              in: body
              type: string
              description: "Forecast end date in YYYY-MM-DD."
          steps:
            - name: fetch-load-data
              type: call
              call: "teradata.query-historical-load"
              with:
                region: "{{region}}"
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: run-forecast
              type: call
              call: "azureml.predict-demand"
              with:
                historical_data: "{{fetch-load-data.results}}"
                region: "{{region}}"
                horizon_start: "{{start_date}}"
                horizon_end: "{{end_date}}"
            - name: publish-forecast
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "grid_planning_site"
                folder_path: "DemandForecasts/{{region}}"
                file_name: "forecast_{{start_date}}_{{end_date}}.json"
                content: "{{run-forecast.forecast_data}}"
  consumes:
    - type: http
      namespace: teradata
      baseUri: "https://nextera-analytics.teradata.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.teradata_token"
      resources:
        - name: queries
          path: "/query"
          operations:
            - name: query-historical-load
              method: POST
    - type: http
      namespace: azureml
      baseUri: "https://nextera-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: scoring
          path: "/score"
          operations:
            - name: predict-demand
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT

Queries Dynatrace for application health metrics for NextEra Energy digital services.

naftiko: "0.5"
info:
  label: "Dynatrace Application Health Check"
  description: "Queries Dynatrace for application health metrics for NextEra Energy digital services."
  tags:
    - monitoring
    - dynatrace
    - application-health
capability:
  exposes:
    - type: mcp
      namespace: app-health
      port: 8080
      tools:
        - name: get-dynatrace-health
          description: "Retrieve Dynatrace application health metrics by entity ID."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The Dynatrace application entity ID."
          call: "dynatrace.get-app-health"
          with:
            entity_id: "{{entity_id}}"
          outputParameters:
            - name: availability
              type: string
              mapping: "$.result[0].data[0].values[0]"
            - name: response_time
              type: string
              mapping: "$.result[1].data[0].values[0]"
            - name: failure_rate
              type: string
              mapping: "$.result[2].data[0].values[0]"
  consumes:
    - type: http
      namespace: dynatrace
      baseUri: "https://nextera.live.dynatrace.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.dynatrace_token"
      resources:
        - name: metrics
          path: "/metrics/query"
          operations:
            - name: get-app-health
              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 onboarding across ServiceNow, SharePoint, and Microsoft Teams."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID."
            - name: start_date
              in: body
              type: string
              description: "Employee start date in YYYY-MM-DD format."
            - name: department
              in: body
              type: string
              description: "The department the new hire is joining."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{workday_employee_id}}"
            - name: 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"
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to NextEra Energy, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}."
  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://nextera.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 1"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-1
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-1"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://nexteraenergy.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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 10"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-10
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-10"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-10
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://nexteraenergy.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 11"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-11
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 12"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-12
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-12"
              with:
                identifier: "{{identifier}}"
            - name: push
              type: call
              call: "datadog.submit-metrics"
              with:
                metric_name: "energy.workflow_12"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 13"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-13
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-13"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-13
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://nexteraenergy.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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 14"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-14
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-14"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-14
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://nexteraenergy.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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 15"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-15
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-15"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#energy"
                text: "Completed workflow 15: {{process.summary}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 16"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-16
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-16"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "ENERGY"
                title: "Report 16"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-16
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://nexteraenergy.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 17"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-17
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 18"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-18
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-18"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "ENER"
                summary: "Task from workflow 18"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-18
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://nexteraenergy.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 19"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-19
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-19"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "energy"
                message: "Workflow 19 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 2"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-2
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-2"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://nexteraenergy.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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 20"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-20
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-20
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://nexteraenergy-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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 21"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-21
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-21"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 22"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-22
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-22"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-22
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://nexteraenergy.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 23"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-23
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 24"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-24
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-24"
              with:
                identifier: "{{identifier}}"
            - name: push
              type: call
              call: "datadog.submit-metrics"
              with:
                metric_name: "energy.workflow_24"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 25"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-25
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-25"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-25
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://nexteraenergy.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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 26"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-26
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-26"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-26
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://nexteraenergy.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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 27"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-27
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-27"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#energy"
                text: "Completed workflow 27: {{process.summary}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 28"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-28
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-28"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "ENERGY"
                title: "Report 28"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-28
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://nexteraenergy.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 29"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-29
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 3"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-3
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-3"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#energy"
                text: "Completed workflow 3: {{process.summary}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 30"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-30
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-30"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "ENER"
                summary: "Task from workflow 30"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-30
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://nexteraenergy.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 31"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-31
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-31"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "energy"
                message: "Workflow 31 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 32"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-32
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-32
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://nexteraenergy-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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 33"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-33
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-33"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 34"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-34
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-34"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-34
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://nexteraenergy.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 35"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-35
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 36"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-36
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-36"
              with:
                identifier: "{{identifier}}"
            - name: push
              type: call
              call: "datadog.submit-metrics"
              with:
                metric_name: "energy.workflow_36"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-36
              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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 37"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-37
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-37"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-37
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://nexteraenergy.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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 4"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-4
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-4"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "ENERGY"
                title: "Report 4"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-4
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://nexteraenergy.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 5"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-5
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 6"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-6
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-6"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "ENER"
                summary: "Task from workflow 6"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-6
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://nexteraenergy.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 7"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-7
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-7"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "energy"
                message: "Workflow 7 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 8"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-8
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-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: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-8
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://nexteraenergy-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 energy operations including data retrieval, processing, and automated notification for Nextera Energy.

naftiko: "0.5"
info:
  label: "Nextera Energy Workflow 9"
  description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
  tags:
    - energy
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: energy
      port: 8080
      tools:
        - name: nextera-energy-workflow-9
          description: "Orchestrates energy operations including data retrieval, processing, and automated notification for Nextera Energy."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "nexteraenergy-ops.run-workflow-9"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: nexteraenergy-ops
      baseUri: "https://api.nexteraenergy.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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

Analyzes energy rate optimization by pulling demand data from Teradata, market prices from Tradeweb, generation costs from SAP, and producing an optimization recommendation report in SharePoint.

naftiko: "0.5"
info:
  label: "Energy Rate Optimization Analyzer"
  description: "Analyzes energy rate optimization by pulling demand data from Teradata, market prices from Tradeweb, generation costs from SAP, and producing an optimization recommendation report in SharePoint."
  tags:
    - grid-ops
    - rate-optimization
    - teradata
    - tradeweb
    - sap
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: rate-optimization
      port: 8080
      tools:
        - name: analyze-rate-optimization
          description: "Given a region and date range, analyze demand, market prices, and generation costs to produce optimization recommendations."
          inputParameters:
            - name: region
              in: body
              type: string
              description: "The service region."
            - name: analysis_date
              in: body
              type: string
              description: "The analysis date in YYYY-MM-DD format."
          steps:
            - name: get-demand
              type: call
              call: "teradata.query-demand"
              with:
                region: "{{region}}"
                date: "{{analysis_date}}"
            - name: get-market-prices
              type: call
              call: "tradeweb.get-energy-prices"
              with:
                region: "{{region}}"
                date: "{{analysis_date}}"
            - name: get-gen-costs
              type: call
              call: "sap.get-generation-costs"
              with:
                region: "{{region}}"
                date: "{{analysis_date}}"
            - name: publish-recommendations
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "energy_planning_site"
                folder_path: "RateOptimization/{{region}}"
                file_name: "optimization_{{analysis_date}}.json"
                content: "Demand: {{get-demand.peak_mw}} MW | Market price: ${{get-market-prices.avg_price_mwh}}/MWh | Gen cost: ${{get-gen-costs.avg_cost_mwh}}/MWh"
  consumes:
    - type: http
      namespace: teradata
      baseUri: "https://nextera-analytics.teradata.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.teradata_token"
      resources:
        - name: demand
          path: "/query"
          operations:
            - name: query-demand
              method: POST
    - type: http
      namespace: tradeweb
      baseUri: "https://api.tradeweb.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tradeweb_token"
      resources:
        - name: prices
          path: "/energy-prices"
          operations:
            - name: get-energy-prices
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://nextera-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: generation-costs
          path: "/GENERATION_COST_SRV/Costs"
          operations:
            - name: get-generation-costs
              method: GET
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT

Retrieves operational data for Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 1"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-1
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-1"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 10"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-10
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-10"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 11"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-11
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-11"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 12"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-12
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-12"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 13"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-13
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-13"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 14"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-14
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-14"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 15"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-15
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-15"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 2"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-2
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-2"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 3"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-3
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-3"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 4"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-4
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-4"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 5"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-5
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-5"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 6"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-6
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-6"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 7"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-7
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-7"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 8"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-8
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-8"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_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 Nextera Energy energy workflows.

naftiko: "0.5"
info:
  label: "Nextera Energy Data Lookup 9"
  description: "Retrieves operational data for Nextera Energy energy workflows."
  tags:
    - energy
    - operations
capability:
  exposes:
    - type: mcp
      namespace: nexteraenergy-data
      port: 8080
      tools:
        - name: get-data-9
          description: "Retrieves operational data for Nextera Energy energy workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "nexteraenergy-data.get-data-9"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: nexteraenergy-data
      baseUri: "https://api.nexteraenergy.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nextera_api_token"
      resources:
        - name: data-9
          path: "/data-9/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-9
              method: GET

Retrieves the current energy trading position from Tradeweb for a given commodity and contract period, returning position size, mark-to-market value, and settlement date.

naftiko: "0.5"
info:
  label: "Energy Trading Position Lookup"
  description: "Retrieves the current energy trading position from Tradeweb for a given commodity and contract period, returning position size, mark-to-market value, and settlement date."
  tags:
    - trading
    - energy-markets
    - tradeweb
capability:
  exposes:
    - type: mcp
      namespace: energy-trading
      port: 8080
      tools:
        - name: get-trading-position
          description: "Look up Tradeweb energy trading position by commodity and contract."
          inputParameters:
            - name: commodity
              in: body
              type: string
              description: "The energy commodity (power, gas, renewable-credits)."
            - name: contract_period
              in: body
              type: string
              description: "The contract period (e.g., 2025-Q3)."
          call: "tradeweb.get-position"
          with:
            commodity: "{{commodity}}"
            period: "{{contract_period}}"
          outputParameters:
            - name: position_mw
              type: string
              mapping: "$.position.size_mw"
            - name: mtm_value
              type: string
              mapping: "$.position.mark_to_market"
            - name: settlement_date
              type: string
              mapping: "$.position.settlement_date"
  consumes:
    - type: http
      namespace: tradeweb
      baseUri: "https://api.tradeweb.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tradeweb_token"
      resources:
        - name: positions
          path: "/positions"
          operations:
            - name: get-position
              method: POST

Generates environmental compliance reports by pulling emissions data from SAP HANA, renewable generation from Elasticsearch, regulatory requirements from SharePoint, and compiling the final report for filing.

naftiko: "0.5"
info:
  label: "Environmental Compliance Report Generator"
  description: "Generates environmental compliance reports by pulling emissions data from SAP HANA, renewable generation from Elasticsearch, regulatory requirements from SharePoint, and compiling the final report for filing."
  tags:
    - compliance
    - environmental
    - sap-hana
    - elasticsearch
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: environmental-compliance
      port: 8080
      tools:
        - name: generate-environmental-report
          description: "Given a reporting period and facility ID, compile emissions, generation, and regulatory data into a compliance report."
          inputParameters:
            - name: facility_id
              in: body
              type: string
              description: "The facility identifier."
            - name: reporting_period
              in: body
              type: string
              description: "The reporting period (e.g., 2025-Q4)."
          steps:
            - name: get-emissions
              type: call
              call: "saphana.query-emissions"
              with:
                facility_id: "{{facility_id}}"
                period: "{{reporting_period}}"
            - name: get-renewable-gen
              type: call
              call: "elasticsearch.get-facility-generation"
              with:
                facility_id: "{{facility_id}}"
                period: "{{reporting_period}}"
            - name: compile-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "environmental_site"
                folder_path: "ComplianceReports/{{reporting_period}}"
                file_name: "env_compliance_{{facility_id}}.json"
                content: "Facility: {{facility_id}} | Emissions: {{get-emissions.total_co2_tons}} tons CO2 | Renewable Gen: {{get-renewable-gen.total_mwh}} MWh | Period: {{reporting_period}}"
  consumes:
    - type: http
      namespace: saphana
      baseUri: "https://nextera-hana.sap.com/api/v1"
      authentication:
        type: basic
        username: "$secrets.saphana_user"
        password: "$secrets.saphana_password"
      resources:
        - name: emissions
          path: "/sql/execute"
          operations:
            - name: query-emissions
              method: POST
    - type: http
      namespace: elasticsearch
      baseUri: "https://nextera-scada.es.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: facility-generation
          path: "/generation-metrics/_search"
          operations:
            - name: get-facility-generation
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT

Sends a query to Google Gemini AI for energy data analysis and interpretation.

naftiko: "0.5"
info:
  label: "Gemini AI Analysis Query"
  description: "Sends a query to Google Gemini AI for energy data analysis and interpretation."
  tags:
    - artificial-intelligence
    - gemini
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: ai-analytics
      port: 8080
      tools:
        - name: query-gemini
          description: "Send an analytical query to Gemini AI."
          inputParameters:
            - name: prompt
              in: body
              type: string
              description: "The analysis prompt."
          call: "gemini.generate-content"
          with:
            prompt: "{{prompt}}"
          outputParameters:
            - name: response
              type: string
              mapping: "$.candidates[0].content.parts[0].text"
  consumes:
    - type: http
      namespace: gemini
      baseUri: "https://generativelanguage.googleapis.com/v1beta"
      authentication:
        type: apiKey
        key: "$secrets.gemini_api_key"
      resources:
        - name: models
          path: "/models/gemini-pro:generateContent"
          operations:
            - name: generate-content
              method: POST

Retrieves the current status of a NextEra Energy GitHub repository including open pull requests, recent commits, and branch information.

naftiko: "0.5"
info:
  label: "GitHub Repository Status"
  description: "Retrieves the current status of a NextEra Energy GitHub repository including open pull requests, recent commits, and branch information."
  tags:
    - development
    - github
capability:
  exposes:
    - type: mcp
      namespace: dev-ops
      port: 8080
      tools:
        - name: get-repo-status
          description: "Look up GitHub repository status by repo name."
          inputParameters:
            - name: repo_name
              in: body
              type: string
              description: "The GitHub repository name."
          call: "github.get-repo"
          with:
            repo: "{{repo_name}}"
          outputParameters:
            - name: open_prs
              type: string
              mapping: "$.open_issues_count"
            - name: default_branch
              type: string
              mapping: "$.default_branch"
            - name: last_push
              type: string
              mapping: "$.pushed_at"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: repos
          path: "/repos/nextera-energy/{{repo}}"
          inputParameters:
            - name: repo
              in: path
          operations:
            - name: get-repo
              method: GET

Retrieves the current status of a power grid segment from the grid management system, returning load capacity, current demand, frequency, and voltage metrics.

naftiko: "0.5"
info:
  label: "Grid Operations Status Lookup"
  description: "Retrieves the current status of a power grid segment from the grid management system, returning load capacity, current demand, frequency, and voltage metrics."
  tags:
    - grid-ops
    - power-management
    - oracle-cloud
capability:
  exposes:
    - type: mcp
      namespace: grid-ops
      port: 8080
      tools:
        - name: get-grid-status
          description: "Look up grid segment status by segment ID. Returns load, demand, frequency, and voltage."
          inputParameters:
            - name: segment_id
              in: body
              type: string
              description: "The grid segment identifier."
          call: "oracle.get-grid-segment"
          with:
            segment_id: "{{segment_id}}"
          outputParameters:
            - name: capacity_mw
              type: string
              mapping: "$.data.capacity_mw"
            - name: current_demand_mw
              type: string
              mapping: "$.data.current_demand_mw"
            - name: frequency_hz
              type: string
              mapping: "$.data.frequency_hz"
            - name: voltage_kv
              type: string
              mapping: "$.data.voltage_kv"
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://nextera.oraclecloud.com/fscmRestApi/resources/v1"
      authentication:
        type: bearer
        token: "$secrets.oracle_cloud_token"
      resources:
        - name: grid-segments
          path: "/gridSegments/{{segment_id}}"
          inputParameters:
            - name: segment_id
              in: path
          operations:
            - name: get-grid-segment
              method: GET

Retrieves the current sprint status from Jira for a given project board.

naftiko: "0.5"
info:
  label: "Jira Sprint Status Lookup"
  description: "Retrieves the current sprint status from Jira for a given project board."
  tags:
    - development
    - jira
    - agile
capability:
  exposes:
    - type: mcp
      namespace: agile
      port: 8080
      tools:
        - name: get-sprint-status
          description: "Look up Jira active sprint by board ID."
          inputParameters:
            - name: board_id
              in: body
              type: string
              description: "The Jira board identifier."
          call: "jira.get-active-sprint"
          with:
            board_id: "{{board_id}}"
          outputParameters:
            - name: sprint_name
              type: string
              mapping: "$.values[0].name"
            - name: start_date
              type: string
              mapping: "$.values[0].startDate"
            - name: end_date
              type: string
              mapping: "$.values[0].endDate"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://nextera.atlassian.net/rest/agile/1.0"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: sprints
          path: "/board/{{board_id}}/sprint?state=active"
          inputParameters:
            - name: board_id
              in: path
          operations:
            - name: get-active-sprint
              method: GET

Checks the health and status of a MuleSoft API integration deployment, returning application status, worker count, and last deployment time.

naftiko: "0.5"
info:
  label: "MuleSoft Integration Status Check"
  description: "Checks the health and status of a MuleSoft API integration deployment, returning application status, worker count, and last deployment time."
  tags:
    - integration
    - mulesoft
    - api-management
capability:
  exposes:
    - type: mcp
      namespace: integration
      port: 8080
      tools:
        - name: get-mulesoft-status
          description: "Check MuleSoft application deployment status by app name."
          inputParameters:
            - name: app_name
              in: body
              type: string
              description: "The MuleSoft application name."
          call: "mulesoft.get-app-status"
          with:
            app_name: "{{app_name}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: workers
              type: string
              mapping: "$.workers.type.weight"
            - name: last_update
              type: string
              mapping: "$.lastUpdateTime"
  consumes:
    - type: http
      namespace: mulesoft
      baseUri: "https://anypoint.mulesoft.com/cloudhub/api/v2"
      authentication:
        type: bearer
        token: "$secrets.mulesoft_token"
      resources:
        - name: applications
          path: "/applications/{{app_name}}"
          inputParameters:
            - name: app_name
              in: path
          operations:
            - name: get-app-status
              method: GET

Retrieves application performance metrics from New Relic for NextEra Energy applications.

naftiko: "0.5"
info:
  label: "New Relic Application Performance Lookup"
  description: "Retrieves application performance metrics from New Relic for NextEra Energy applications."
  tags:
    - monitoring
    - new-relic
    - application-performance
capability:
  exposes:
    - type: mcp
      namespace: apm
      port: 8080
      tools:
        - name: get-app-performance
          description: "Look up New Relic application performance by app name."
          inputParameters:
            - name: app_name
              in: body
              type: string
              description: "The New Relic application name."
          call: "newrelic.get-app-metrics"
          with:
            app_name: "{{app_name}}"
          outputParameters:
            - name: response_time
              type: string
              mapping: "$.application.application_summary.response_time"
            - name: throughput
              type: string
              mapping: "$.application.application_summary.throughput"
            - name: error_rate
              type: string
              mapping: "$.application.application_summary.error_rate"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apiKey
        key: "$secrets.newrelic_api_key"
      resources:
        - name: applications
          path: "/applications.json?filter[name]={{app_name}}"
          inputParameters:
            - name: app_name
              in: query
          operations:
            - name: get-app-metrics
              method: GET

Retrieves a vendor invoice from Oracle E-Business Suite by invoice number, returning amount, vendor, payment status, and due date.

naftiko: "0.5"
info:
  label: "Oracle E-Business Suite Invoice Lookup"
  description: "Retrieves a vendor invoice from Oracle E-Business Suite by invoice number, returning amount, vendor, payment status, and due date."
  tags:
    - finance
    - oracle-e-business-suite
    - accounts-payable
capability:
  exposes:
    - type: mcp
      namespace: accounts-payable
      port: 8080
      tools:
        - name: get-invoice
          description: "Look up an Oracle EBS invoice by number."
          inputParameters:
            - name: invoice_number
              in: body
              type: string
              description: "The invoice number."
          call: "oracle-ebs.get-invoice"
          with:
            invoice_number: "{{invoice_number}}"
          outputParameters:
            - name: amount
              type: string
              mapping: "$.InvoiceAmount"
            - name: vendor
              type: string
              mapping: "$.VendorName"
            - name: payment_status
              type: string
              mapping: "$.PaymentStatusLookupCode"
            - name: due_date
              type: string
              mapping: "$.DueDate"
  consumes:
    - type: http
      namespace: oracle-ebs
      baseUri: "https://nextera-ebs.oraclecloud.com/webservices/rest"
      authentication:
        type: basic
        username: "$secrets.oracle_ebs_user"
        password: "$secrets.oracle_ebs_password"
      resources:
        - name: invoices
          path: "/AP_INVOICES/{{invoice_number}}"
          inputParameters:
            - name: invoice_number
              in: path
          operations:
            - name: get-invoice
              method: GET

Checks Oracle database health via Oracle Enterprise Manager, returning tablespace usage, active sessions, and alert count.

naftiko: "0.5"
info:
  label: "Oracle Enterprise Manager Database Health"
  description: "Checks Oracle database health via Oracle Enterprise Manager, returning tablespace usage, active sessions, and alert count."
  tags:
    - database
    - oracle-enterprise-manager
    - monitoring
capability:
  exposes:
    - type: mcp
      namespace: db-monitoring
      port: 8080
      tools:
        - name: get-db-health
          description: "Check Oracle database health by target name."
          inputParameters:
            - name: target_name
              in: body
              type: string
              description: "The Oracle EM target name."
          call: "oracleem.get-target-health"
          with:
            target_name: "{{target_name}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.data.status"
            - name: active_sessions
              type: string
              mapping: "$.data.active_sessions"
            - name: alert_count
              type: string
              mapping: "$.data.alert_count"
  consumes:
    - type: http
      namespace: oracleem
      baseUri: "https://nextera-em.oraclecloud.com/em/websvcs/restful/emws/core"
      authentication:
        type: basic
        username: "$secrets.oracle_em_user"
        password: "$secrets.oracle_em_password"
      resources:
        - name: targets
          path: "/targets/{{target_name}}"
          inputParameters:
            - name: target_name
              in: path
          operations:
            - name: get-target-health
              method: GET

Queries Palo Alto Networks firewall for a specific security rule, returning action, source zones, and destination zones.

naftiko: "0.5"
info:
  label: "Palo Alto Firewall Rule Lookup"
  description: "Queries Palo Alto Networks firewall for a specific security rule, returning action, source zones, and destination zones."
  tags:
    - security
    - palo-alto-networks
    - firewall
capability:
  exposes:
    - type: mcp
      namespace: network-security
      port: 8080
      tools:
        - name: get-firewall-rule
          description: "Look up a Palo Alto Networks firewall rule by name."
          inputParameters:
            - name: rule_name
              in: body
              type: string
              description: "The firewall rule name."
          call: "paloalto.get-rule"
          with:
            rule_name: "{{rule_name}}"
          outputParameters:
            - name: action
              type: string
              mapping: "$.result.entry.action"
            - name: source_zones
              type: array
              mapping: "$.result.entry.from.member"
            - name: destination_zones
              type: array
              mapping: "$.result.entry.to.member"
  consumes:
    - type: http
      namespace: paloalto
      baseUri: "https://nextera-fw.paloaltonetworks.com/restapi/v10.2"
      authentication:
        type: apiKey
        key: "$secrets.paloalto_api_key"
      resources:
        - name: security-rules
          path: "/Policies/SecurityRules?name={{rule_name}}"
          inputParameters:
            - name: rule_name
              in: query
          operations:
            - name: get-rule
              method: GET

Triggers a Power BI dataset refresh for NextEra Energy generation reporting dashboards.

naftiko: "0.5"
info:
  label: "Power BI Generation Dashboard Refresh"
  description: "Triggers a Power BI dataset refresh for NextEra Energy generation reporting dashboards."
  tags:
    - analytics
    - power-bi
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: reporting
      port: 8080
      tools:
        - name: refresh-generation-dashboard
          description: "Trigger a Power BI dataset refresh."
          inputParameters:
            - name: dataset_id
              in: body
              type: string
              description: "The Power BI dataset identifier."
          call: "powerbi.refresh-dataset"
          with:
            dataset_id: "{{dataset_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: request_id
              type: string
              mapping: "$.requestId"
  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

Checks Red Hat Satellite for patch compliance status across NextEra Energy Linux servers, returning compliant host count and missing patches.

naftiko: "0.5"
info:
  label: "Red Hat Satellite Patch Compliance Check"
  description: "Checks Red Hat Satellite for patch compliance status across NextEra Energy Linux servers, returning compliant host count and missing patches."
  tags:
    - infrastructure
    - red-hat-satellite
    - patch-management
capability:
  exposes:
    - type: mcp
      namespace: patch-management
      port: 8080
      tools:
        - name: get-patch-compliance
          description: "Check Red Hat Satellite patch compliance by host group."
          inputParameters:
            - name: host_group
              in: body
              type: string
              description: "The host group name."
          call: "satellite.get-compliance"
          with:
            host_group: "{{host_group}}"
          outputParameters:
            - name: total_hosts
              type: string
              mapping: "$.total"
            - name: compliant_count
              type: string
              mapping: "$.compliant"
            - name: missing_patches
              type: string
              mapping: "$.missing_errata_count"
  consumes:
    - type: http
      namespace: satellite
      baseUri: "https://nextera-satellite.redhat.com/api/v2"
      authentication:
        type: basic
        username: "$secrets.satellite_user"
        password: "$secrets.satellite_password"
      resources:
        - name: compliance
          path: "/hostgroups/{{host_group}}/errata"
          inputParameters:
            - name: host_group
              in: path
          operations:
            - name: get-compliance
              method: GET

Tracks Renewable Energy Certificates (RECs) by pulling generation data from Elasticsearch, registering certificates in SAP, and reporting compliance to the regulatory team via SharePoint.

naftiko: "0.5"
info:
  label: "Renewable Energy Certificate Tracker"
  description: "Tracks Renewable Energy Certificates (RECs) by pulling generation data from Elasticsearch, registering certificates in SAP, and reporting compliance to the regulatory team via SharePoint."
  tags:
    - renewable
    - compliance
    - recs
    - elasticsearch
    - sap
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: rec-tracking
      port: 8080
      tools:
        - name: track-renewable-certificates
          description: "Given a generation asset ID and period, calculate RECs earned, register in SAP, and publish compliance report."
          inputParameters:
            - name: asset_id
              in: body
              type: string
              description: "The renewable asset identifier."
            - name: period
              in: body
              type: string
              description: "The generation period (YYYY-MM)."
          steps:
            - name: get-generation
              type: call
              call: "elasticsearch.get-generation-totals"
              with:
                asset_id: "{{asset_id}}"
                period: "{{period}}"
            - name: register-recs
              type: call
              call: "sap.register-certificates"
              with:
                asset_id: "{{asset_id}}"
                mwh_generated: "{{get-generation.total_mwh}}"
                period: "{{period}}"
            - name: publish-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "regulatory_site"
                folder_path: "RECs/{{period}}"
                file_name: "rec_report_{{asset_id}}.json"
                content: "Asset: {{asset_id}} | Generation: {{get-generation.total_mwh}} MWh | RECs registered: {{register-recs.certificate_count}}"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://nextera-scada.es.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: generation-totals
          path: "/generation-metrics/_search"
          operations:
            - name: get-generation-totals
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://nextera-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: certificates
          path: "/REC_MANAGEMENT_SRV/Certificates"
          operations:
            - name: register-certificates
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT

Pulls real-time energy generation data from the SCADA system for wind and solar assets, returning total output, capacity factor, and availability percentage.

naftiko: "0.5"
info:
  label: "Renewable Energy Generation Dashboard"
  description: "Pulls real-time energy generation data from the SCADA system for wind and solar assets, returning total output, capacity factor, and availability percentage."
  tags:
    - renewable
    - energy-generation
    - elasticsearch
capability:
  exposes:
    - type: mcp
      namespace: renewable-generation
      port: 8080
      tools:
        - name: get-generation-metrics
          description: "Retrieve renewable energy generation metrics for a given asset by ID and date."
          inputParameters:
            - name: asset_id
              in: body
              type: string
              description: "The renewable energy asset identifier (wind farm or solar plant)."
            - name: date
              in: body
              type: string
              description: "The date for metrics in YYYY-MM-DD format."
          call: "elasticsearch.search-generation"
          with:
            asset_id: "{{asset_id}}"
            date: "{{date}}"
          outputParameters:
            - name: total_output_mwh
              type: string
              mapping: "$.hits.hits[0]._source.total_output_mwh"
            - name: capacity_factor
              type: string
              mapping: "$.hits.hits[0]._source.capacity_factor"
            - name: availability_pct
              type: string
              mapping: "$.hits.hits[0]._source.availability_pct"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://nextera-scada.es.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: generation-metrics
          path: "/generation-metrics/_search"
          operations:
            - name: search-generation
              method: POST

Retrieves an expense report from SAP Concur by ID.

naftiko: "0.5"
info:
  label: "SAP Concur Expense Report Lookup"
  description: "Retrieves an expense report from SAP Concur by ID."
  tags:
    - finance
    - sap-concur
    - expense-management
capability:
  exposes:
    - type: mcp
      namespace: expense
      port: 8080
      tools:
        - name: get-expense-report
          description: "Look up a Concur expense report by ID."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The expense report identifier."
          call: "concur.get-report"
          with:
            report_id: "{{report_id}}"
          outputParameters:
            - name: total_amount
              type: string
              mapping: "$.Total"
            - name: approval_status
              type: string
              mapping: "$.ApprovalStatusName"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-report
              method: GET

Executes a query against SAP HANA for real-time energy analytics, returning aggregated generation and consumption data.

naftiko: "0.5"
info:
  label: "SAP HANA Energy Data Query"
  description: "Executes a query against SAP HANA for real-time energy analytics, returning aggregated generation and consumption data."
  tags:
    - analytics
    - sap-hana
    - energy-data
capability:
  exposes:
    - type: mcp
      namespace: energy-analytics
      port: 8080
      tools:
        - name: query-energy-data
          description: "Execute a SAP HANA query for energy analytics by region and date range."
          inputParameters:
            - name: region
              in: body
              type: string
              description: "The energy service region."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "saphana.execute-query"
          with:
            region: "{{region}}"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
          outputParameters:
            - name: total_generation_mwh
              type: string
              mapping: "$.data.total_generation_mwh"
            - name: total_consumption_mwh
              type: string
              mapping: "$.data.total_consumption_mwh"
            - name: peak_demand_mw
              type: string
              mapping: "$.data.peak_demand_mw"
  consumes:
    - type: http
      namespace: saphana
      baseUri: "https://nextera-hana.sap.com/api/v1"
      authentication:
        type: basic
        username: "$secrets.saphana_user"
        password: "$secrets.saphana_password"
      resources:
        - name: queries
          path: "/sql/execute"
          operations:
            - name: execute-query
              method: POST

Retrieves a SAP plant maintenance work order by order number, returning order type, status, planned start date, and assigned work center.

naftiko: "0.5"
info:
  label: "SAP Work Order Lookup"
  description: "Retrieves a SAP plant maintenance work order by order number, returning order type, status, planned start date, and assigned work center."
  tags:
    - maintenance
    - sap
    - work-orders
capability:
  exposes:
    - type: mcp
      namespace: plant-maintenance
      port: 8080
      tools:
        - name: get-work-order
          description: "Look up a SAP maintenance work order by number."
          inputParameters:
            - name: order_number
              in: body
              type: string
              description: "The SAP work order number."
          call: "sap.get-work-order"
          with:
            order_number: "{{order_number}}"
          outputParameters:
            - name: order_type
              type: string
              mapping: "$.d.OrderType"
            - name: status
              type: string
              mapping: "$.d.SystemStatus"
            - name: planned_start
              type: string
              mapping: "$.d.PlannedStartDate"
            - name: work_center
              type: string
              mapping: "$.d.MainWorkCenter"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://nextera-s4.sap.com/sap/opu/odata/sap/MAINTENANCE_ORDER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: work-orders
          path: "/MaintenanceOrders('{{order_number}}')"
          inputParameters:
            - name: order_number
              in: path
          operations:
            - name: get-work-order
              method: GET

Retrieves a ServiceNow incident by number and returns the current state, assignee, priority, and last updated timestamp.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Status"
  description: "Retrieves a ServiceNow incident by number and returns the current state, assignee, priority, and last updated timestamp."
  tags:
    - it-operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it-ops
      port: 8080
      tools:
        - name: get-incident-status
          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:
            number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result[0].state"
            - name: assigned_to
              type: string
              mapping: "$.result[0].assigned_to.display_value"
            - name: priority
              type: string
              mapping: "$.result[0].priority"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://nextera.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=number={{number}}"
          inputParameters:
            - name: number
              in: query
          operations:
            - name: get-incident
              method: GET

Retrieves solar panel array performance data from the monitoring system, returning energy output, irradiance, panel temperature, and inverter efficiency.

naftiko: "0.5"
info:
  label: "Solar Panel Performance Lookup"
  description: "Retrieves solar panel array performance data from the monitoring system, returning energy output, irradiance, panel temperature, and inverter efficiency."
  tags:
    - renewable
    - solar
    - elasticsearch
capability:
  exposes:
    - type: mcp
      namespace: solar-ops
      port: 8080
      tools:
        - name: get-solar-performance
          description: "Look up solar array performance by array ID and date."
          inputParameters:
            - name: array_id
              in: body
              type: string
              description: "The solar array identifier."
            - name: date
              in: body
              type: string
              description: "Date in YYYY-MM-DD format."
          call: "elasticsearch.search-solar-metrics"
          with:
            array_id: "{{array_id}}"
            date: "{{date}}"
          outputParameters:
            - name: energy_output_kwh
              type: string
              mapping: "$.hits.hits[0]._source.energy_kwh"
            - name: irradiance_wm2
              type: string
              mapping: "$.hits.hits[0]._source.irradiance_wm2"
            - name: panel_temp_c
              type: string
              mapping: "$.hits.hits[0]._source.panel_temp_c"
            - name: inverter_efficiency
              type: string
              mapping: "$.hits.hits[0]._source.inverter_efficiency_pct"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://nextera-scada.es.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: solar-metrics
          path: "/solar-metrics/_search"
          operations:
            - name: search-solar-metrics
              method: POST

Retrieves network performance metrics from SolarWinds for a given network node, returning CPU load, memory usage, response time, and packet loss.

naftiko: "0.5"
info:
  label: "SolarWinds Network Performance Check"
  description: "Retrieves network performance metrics from SolarWinds for a given network node, returning CPU load, memory usage, response time, and packet loss."
  tags:
    - infrastructure
    - solarwinds
    - network-monitoring
capability:
  exposes:
    - type: mcp
      namespace: network-monitoring
      port: 8080
      tools:
        - name: get-node-performance
          description: "Look up SolarWinds network node performance by node ID."
          inputParameters:
            - name: node_id
              in: body
              type: string
              description: "The SolarWinds node identifier."
          call: "solarwinds.get-node"
          with:
            node_id: "{{node_id}}"
          outputParameters:
            - name: cpu_load
              type: string
              mapping: "$.results[0].CPULoad"
            - name: memory_used
              type: string
              mapping: "$.results[0].PercentMemoryUsed"
            - name: response_time
              type: string
              mapping: "$.results[0].ResponseTime"
  consumes:
    - type: http
      namespace: solarwinds
      baseUri: "https://nextera-npm.solarwinds.com/SolarWinds/InformationService/v3/Json"
      authentication:
        type: basic
        username: "$secrets.solarwinds_user"
        password: "$secrets.solarwinds_password"
      resources:
        - name: nodes
          path: "/Query?query=SELECT+CPULoad,PercentMemoryUsed,ResponseTime+FROM+Orion.Nodes+WHERE+NodeID={{node_id}}"
          inputParameters:
            - name: node_id
              in: query
          operations:
            - name: get-node
              method: GET

Coordinates storm response by pulling weather data, assessing grid vulnerability from Teradata, pre-positioning crews via SAP, and activating the emergency operations center communications in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Storm Response Coordination Pipeline"
  description: "Coordinates storm response by pulling weather data, assessing grid vulnerability from Teradata, pre-positioning crews via SAP, and activating the emergency operations center communications in Microsoft Teams."
  tags:
    - grid-ops
    - storm-response
    - teradata
    - sap
    - microsoft-teams
    - emergency
capability:
  exposes:
    - type: mcp
      namespace: storm-response
      port: 8080
      tools:
        - name: coordinate-storm-response
          description: "Given a storm event ID and affected regions, assess vulnerability, position crews, and activate emergency communications."
          inputParameters:
            - name: storm_event_id
              in: body
              type: string
              description: "The storm event identifier."
            - name: affected_regions
              in: body
              type: string
              description: "Comma-separated list of affected regions."
            - name: storm_category
              in: body
              type: string
              description: "Storm severity category."
          steps:
            - name: assess-vulnerability
              type: call
              call: "teradata.assess-grid-vulnerability"
              with:
                regions: "{{affected_regions}}"
                storm_category: "{{storm_category}}"
            - name: position-crews
              type: call
              call: "sap.deploy-restoration-crews"
              with:
                regions: "{{affected_regions}}"
                priority_segments: "{{assess-vulnerability.critical_segments}}"
            - name: activate-eoc
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "emergency-ops-center"
                text: "STORM RESPONSE ACTIVATED: Event {{storm_event_id}}, Category {{storm_category}}. Regions: {{affected_regions}}. Critical segments: {{assess-vulnerability.critical_count}}. Crews deployed: {{position-crews.crew_count}}. Estimated customers at risk: {{assess-vulnerability.customers_at_risk}}."
  consumes:
    - type: http
      namespace: teradata
      baseUri: "https://nextera-analytics.teradata.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.teradata_token"
      resources:
        - name: vulnerability
          path: "/query"
          operations:
            - name: assess-grid-vulnerability
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://nextera-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: restoration
          path: "/CREW_DEPLOYMENT_SRV/Deploy"
          operations:
            - name: deploy-restoration-crews
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves real-time health metrics for substation equipment from the SCADA monitoring system, returning transformer temperature, oil level, and breaker status.

naftiko: "0.5"
info:
  label: "Substation Equipment Health Monitor"
  description: "Retrieves real-time health metrics for substation equipment from the SCADA monitoring system, returning transformer temperature, oil level, and breaker status."
  tags:
    - grid-ops
    - substation
    - equipment-health
    - elasticsearch
capability:
  exposes:
    - type: mcp
      namespace: substation-health
      port: 8080
      tools:
        - name: get-equipment-health
          description: "Look up substation equipment health by equipment ID."
          inputParameters:
            - name: equipment_id
              in: body
              type: string
              description: "The substation equipment identifier."
          call: "elasticsearch.get-equipment-metrics"
          with:
            equipment_id: "{{equipment_id}}"
          outputParameters:
            - name: transformer_temp_c
              type: string
              mapping: "$.hits.hits[0]._source.transformer_temp_c"
            - name: oil_level_pct
              type: string
              mapping: "$.hits.hits[0]._source.oil_level_pct"
            - name: breaker_status
              type: string
              mapping: "$.hits.hits[0]._source.breaker_status"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://nextera-scada.es.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: equipment-metrics
          path: "/substation-metrics/_search"
          operations:
            - name: get-equipment-metrics
              method: POST

Retrieves Tableau dashboard metadata for NextEra Energy reporting.

naftiko: "0.5"
info:
  label: "Tableau Reporting Dashboard Lookup"
  description: "Retrieves Tableau dashboard metadata for NextEra Energy reporting."
  tags:
    - analytics
    - tableau
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: bi-reporting
      port: 8080
      tools:
        - name: get-tableau-dashboard
          description: "Look up a Tableau workbook by ID."
          inputParameters:
            - name: workbook_id
              in: body
              type: string
              description: "The Tableau workbook identifier."
          call: "tableau.get-workbook"
          with:
            workbook_id: "{{workbook_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.workbook.name"
            - name: view_count
              type: string
              mapping: "$.workbook.viewCount"
            - name: updated_at
              type: string
              mapping: "$.workbook.updatedAt"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://nextera.online.tableau.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/{{site_id}}/workbooks/{{workbook_id}}"
          inputParameters:
            - name: site_id
              in: path
            - name: workbook_id
              in: path
          operations:
            - name: get-workbook
              method: GET

Checks the status of a Talend data pipeline execution, returning job state, start time, and row count.

naftiko: "0.5"
info:
  label: "Talend Data Pipeline Status"
  description: "Checks the status of a Talend data pipeline execution, returning job state, start time, and row count."
  tags:
    - data-engineering
    - talend
    - etl
capability:
  exposes:
    - type: mcp
      namespace: data-pipelines
      port: 8080
      tools:
        - name: get-talend-status
          description: "Check Talend job execution status by run ID."
          inputParameters:
            - name: run_id
              in: body
              type: string
              description: "The Talend run identifier."
          call: "talend.get-run"
          with:
            run_id: "{{run_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: start_time
              type: string
              mapping: "$.startTimestamp"
  consumes:
    - type: http
      namespace: talend
      baseUri: "https://nextera.cloud.talend.com/tmc/v2.5"
      authentication:
        type: bearer
        token: "$secrets.talend_token"
      resources:
        - name: runs
          path: "/executions/{{run_id}}"
          inputParameters:
            - name: run_id
              in: path
          operations:
            - name: get-run
              method: GET

Queries Tanium for endpoint security status of NextEra Energy workstations, returning patch compliance and threat status.

naftiko: "0.5"
info:
  label: "Tanium Endpoint Security Check"
  description: "Queries Tanium for endpoint security status of NextEra Energy workstations, returning patch compliance and threat status."
  tags:
    - security
    - tanium
    - endpoint-management
capability:
  exposes:
    - type: mcp
      namespace: endpoint-security
      port: 8080
      tools:
        - name: get-endpoint-status
          description: "Check Tanium endpoint security status by computer name."
          inputParameters:
            - name: computer_name
              in: body
              type: string
              description: "The endpoint computer name."
          call: "tanium.get-endpoint"
          with:
            computer_name: "{{computer_name}}"
          outputParameters:
            - name: patch_compliance
              type: string
              mapping: "$.data.patch_compliance_pct"
            - name: threat_status
              type: string
              mapping: "$.data.threat_status"
  consumes:
    - type: http
      namespace: tanium
      baseUri: "https://nextera-tanium.tanium.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.tanium_token"
      resources:
        - name: endpoints
          path: "/sensors/query"
          operations:
            - name: get-endpoint
              method: POST

Manages vegetation clearance around power lines by pulling asset geospatial data from Google Maps, scheduling trimming crews via SAP, creating work orders in ServiceNow, and logging completion in SharePoint.

naftiko: "0.5"
info:
  label: "Vegetation Management Orchestrator"
  description: "Manages vegetation clearance around power lines by pulling asset geospatial data from Google Maps, scheduling trimming crews via SAP, creating work orders in ServiceNow, and logging completion in SharePoint."
  tags:
    - grid-ops
    - vegetation-management
    - google-maps
    - sap
    - servicenow
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: vegetation-mgmt
      port: 8080
      tools:
        - name: manage-vegetation-clearance
          description: "Given a circuit ID and priority level, assess the vegetation risk area, schedule crews, create work orders, and log progress."
          inputParameters:
            - name: circuit_id
              in: body
              type: string
              description: "The power circuit identifier."
            - name: priority
              in: body
              type: string
              description: "Priority level (critical, high, standard)."
            - name: region
              in: body
              type: string
              description: "The service region."
          steps:
            - name: get-route-data
              type: call
              call: "googlemaps.get-circuit-route"
              with:
                circuit_id: "{{circuit_id}}"
            - name: schedule-crew
              type: call
              call: "sap.schedule-vegetation-crew"
              with:
                circuit_id: "{{circuit_id}}"
                priority: "{{priority}}"
                route_length: "{{get-route-data.distance}}"
            - name: create-work-order
              type: call
              call: "servicenow.create-work-order"
              with:
                short_description: "Vegetation Clearance: Circuit {{circuit_id}}"
                category: "vegetation_management"
                priority: "{{priority}}"
                description: "Route length: {{get-route-data.distance}}. Crew: {{schedule-crew.crew_id}}. Region: {{region}}"
            - name: log-assignment
              type: call
              call: "sharepoint.create-item"
              with:
                site_id: "vegetation_mgmt_site"
                list_name: "Clearance_Log"
                fields:
                  circuit_id: "{{circuit_id}}"
                  work_order: "{{create-work-order.number}}"
                  crew: "{{schedule-crew.crew_id}}"
                  status: "assigned"
  consumes:
    - type: http
      namespace: googlemaps
      baseUri: "https://maps.googleapis.com/maps/api"
      authentication:
        type: apiKey
        key: "$secrets.google_maps_key"
      resources:
        - name: routes
          path: "/directions/json"
          operations:
            - name: get-circuit-route
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://nextera-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: vegetation
          path: "/CREW_SCHEDULING_SRV/Schedule"
          operations:
            - name: schedule-vegetation-crew
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://nextera.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: work-orders
          path: "/table/wm_order"
          operations:
            - name: create-work-order
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: list-items
          path: "/{{site_id}}/lists/{{list_name}}/items"
          inputParameters:
            - name: site_id
              in: path
            - name: list_name
              in: path
          operations:
            - name: create-item
              method: POST

When a wind turbine triggers a maintenance alert, creates a ServiceNow work order, pulls turbine telemetry from Elasticsearch, schedules a maintenance crew in SAP, and notifies the operations team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Wind Turbine Maintenance Orchestrator"
  description: "When a wind turbine triggers a maintenance alert, creates a ServiceNow work order, pulls turbine telemetry from Elasticsearch, schedules a maintenance crew in SAP, and notifies the operations team via Microsoft Teams."
  tags:
    - renewable
    - maintenance
    - servicenow
    - elasticsearch
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: turbine-maintenance
      port: 8080
      tools:
        - name: initiate-turbine-maintenance
          description: "Given a turbine ID and alert type, create a work order, pull telemetry, schedule crew, and notify ops."
          inputParameters:
            - name: turbine_id
              in: body
              type: string
              description: "The wind turbine asset identifier."
            - name: alert_type
              in: body
              type: string
              description: "Type of maintenance alert (vibration, oil-temp, blade-pitch, generator)."
            - name: farm_name
              in: body
              type: string
              description: "The wind farm name."
          steps:
            - name: create-work-order
              type: call
              call: "servicenow.create-work-order"
              with:
                short_description: "Turbine Maintenance: {{turbine_id}} - {{alert_type}}"
                category: "renewable_maintenance"
                asset_id: "{{turbine_id}}"
                description: "Maintenance alert {{alert_type}} triggered for turbine {{turbine_id}} at {{farm_name}}."
            - name: get-telemetry
              type: call
              call: "elasticsearch.get-turbine-telemetry"
              with:
                turbine_id: "{{turbine_id}}"
            - name: schedule-crew
              type: call
              call: "sap.schedule-maintenance"
              with:
                asset_id: "{{turbine_id}}"
                work_order: "{{create-work-order.number}}"
                maintenance_type: "{{alert_type}}"
            - name: notify-ops
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "wind-ops-alerts"
                text: "Turbine Maintenance Alert: {{turbine_id}} at {{farm_name}}. Alert: {{alert_type}}. Work order: {{create-work-order.number}}. Wind speed: {{get-telemetry.wind_speed}}. Crew scheduled: {{schedule-crew.crew_id}}."
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://nextera.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: work-orders
          path: "/table/wm_order"
          operations:
            - name: create-work-order
              method: POST
    - type: http
      namespace: elasticsearch
      baseUri: "https://nextera-scada.es.amazonaws.com"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token"
      resources:
        - name: turbine-telemetry
          path: "/turbine-telemetry/_search"
          operations:
            - name: get-turbine-telemetry
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://nextera-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: maintenance
          path: "/MAINTENANCE_ORDER_SRV/Schedule"
          operations:
            - name: schedule-maintenance
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Searches the NextEra Energy Workday tenant for an employee by worker ID and returns profile details.

naftiko: "0.5"
info:
  label: "Workday Employee Directory Lookup"
  description: "Searches the NextEra Energy Workday tenant for an employee by worker ID and returns profile details."
  tags:
    - hr
    - workday
    - employee-directory
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: lookup-employee
          description: "Look up an employee in Workday 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}}"
          outputParameters:
            - name: full_name
              type: string
              mapping: "$.Worker.Worker_Data.Personal_Data.Name_Data.Legal_Name.Name_Detail_Data.Full_Name"
            - name: title
              type: string
              mapping: "$.Worker.Worker_Data.Employment_Data.Worker_Job_Data.Position_Data.Business_Title"
            - name: department
              type: string
              mapping: "$.Worker.Worker_Data.Employment_Data.Worker_Job_Data.Position_Data.Business_Site_Summary.Name"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET