Progressive Insurance Capabilities

Naftiko 0.5 capability definitions for Progressive Insurance - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Orchestrates agency appointment onboarding pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Agency Appointment Onboarding Pipeline"
  description: "Orchestrates agency appointment onboarding pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - agency
    - progressive-insurance
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: agency
      port: 8080
      tools:
        - name: agency-appointment-onboarding-pipeline
          description: "Orchestrates agency appointment onboarding pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/agency"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/agency"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/agency"
          operations:
            - name: execute-3
              method: POST

Retrieves an insurance agent's commission report from Guidewire BillingCenter, returning total commissions earned, number of policies sold, and commission rate by product line.

naftiko: "0.5"
info:
  label: "Agent Commission Report"
  description: "Retrieves an insurance agent's commission report from Guidewire BillingCenter, returning total commissions earned, number of policies sold, and commission rate by product line."
  tags:
    - billing
    - agent
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: agent-commissions
      port: 8080
      tools:
        - name: get-agent-commissions
          description: "Look up agent commission data from Guidewire BillingCenter."
          inputParameters:
            - name: agent_code
              in: body
              type: string
              description: "The agent code."
            - name: period
              in: body
              type: string
              description: "Commission period in YYYY-MM format."
          call: "guidewire-bc.get-commissions"
          with:
            agent_code: "{{agent_code}}"
            period: "{{period}}"
          outputParameters:
            - name: total_commissions
              type: string
              mapping: "$.data.totalCommissions"
            - name: policies_sold
              type: string
              mapping: "$.data.policiesSold"
            - name: product_breakdown
              type: string
              mapping: "$.data.productBreakdown"
  consumes:
    - type: http
      namespace: guidewire-bc
      baseUri: "https://billingcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_bc_token"
      resources:
        - name: commissions
          path: "/agents/{{agent_code}}/commissions"
          inputParameters:
            - name: agent_code
              in: path
            - name: period
              in: query
          operations:
            - name: get-commissions
              method: GET

Orchestrates agent lead distribution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Agent Lead Distribution Pipeline"
  description: "Orchestrates agent lead distribution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - agent
    - progressive-insurance
    - datadog
    - tableau
    - progressive
capability:
  exposes:
    - type: mcp
      namespace: agent
      port: 8080
      tools:
        - name: agent-lead-distribution-pipeline
          description: "Orchestrates agent lead distribution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "tableau.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "progressive.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/agent"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/agent"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/agent"
          operations:
            - name: execute-3
              method: POST

Retrieves agent performance metrics data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Agent Performance Metrics"
  description: "Retrieves agent performance metrics data from the Progressive Insurance auto insurance systems."
  tags:
    - agent
    - progressive-insurance
    - metrics
capability:
  exposes:
    - type: mcp
      namespace: agent
      port: 8080
      tools:
        - name: agent-performance-metrics
          description: "Retrieves agent performance metrics data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.agent-performance-metrics"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/agent/performance/metrics/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: agent-performance-metrics
              method: GET

Verifies an independent agent's portal access status and permissions from the agent management system, returning active status, product lines authorized, and last login date.

naftiko: "0.5"
info:
  label: "Agent Portal Access Check"
  description: "Verifies an independent agent's portal access status and permissions from the agent management system, returning active status, product lines authorized, and last login date."
  tags:
    - agent
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: agent-mgmt
      port: 8080
      tools:
        - name: check-agent-access
          description: "Check an agent's portal access status and permissions."
          inputParameters:
            - name: agent_code
              in: body
              type: string
              description: "The agent code."
          call: "agent-system.get-agent"
          with:
            agent_code: "{{agent_code}}"
          outputParameters:
            - name: active
              type: string
              mapping: "$.data.isActive"
            - name: product_lines
              type: string
              mapping: "$.data.authorizedProducts"
            - name: last_login
              type: string
              mapping: "$.data.lastLoginDate"
  consumes:
    - type: http
      namespace: agent-system
      baseUri: "https://api.progressive.com/internal/agents/v1"
      authentication:
        type: bearer
        token: "$secrets.agent_system_token"
      resources:
        - name: agents
          path: "/agents/{{agent_code}}"
          inputParameters:
            - name: agent_code
              in: path
          operations:
            - name: get-agent
              method: GET

Orchestrates agent training compliance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Agent Training Compliance Pipeline"
  description: "Orchestrates agent training compliance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - agent
    - progressive-insurance
    - tableau
    - progressive
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: agent
      port: 8080
      tools:
        - name: agent-training-compliance-pipeline
          description: "Orchestrates agent training compliance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "tableau.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "progressive.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/agent"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/agent"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/agent"
          operations:
            - name: execute-3
              method: POST

Retrieves a billing account summary from Guidewire BillingCenter by policy number, returning balance due, next payment date, payment method, and payment history.

naftiko: "0.5"
info:
  label: "Billing Account Summary"
  description: "Retrieves a billing account summary from Guidewire BillingCenter by policy number, returning balance due, next payment date, payment method, and payment history."
  tags:
    - billing
    - customer-service
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: billing
      port: 8080
      tools:
        - name: get-billing-summary
          description: "Look up billing account details for a policy from Guidewire BillingCenter."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
          call: "guidewire-bc.get-account"
          with:
            policy_number: "{{policy_number}}"
          outputParameters:
            - name: balance_due
              type: string
              mapping: "$.data.balanceDue"
            - name: next_payment_date
              type: string
              mapping: "$.data.nextPaymentDate"
            - name: payment_method
              type: string
              mapping: "$.data.paymentMethod"
  consumes:
    - type: http
      namespace: guidewire-bc
      baseUri: "https://billingcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_bc_token"
      resources:
        - name: accounts
          path: "/accounts"
          inputParameters:
            - name: policy_number
              in: query
          operations:
            - name: get-account
              method: GET

Generates a boat/watercraft insurance quote from Guidewire PolicyCenter, returning premium, hull coverage, liability limits, and applicable watercraft discounts.

naftiko: "0.5"
info:
  label: "Boat Insurance Quote"
  description: "Generates a boat/watercraft insurance quote from Guidewire PolicyCenter, returning premium, hull coverage, liability limits, and applicable watercraft discounts."
  tags:
    - pricing
    - underwriting
    - guidewire
    - boat
capability:
  exposes:
    - type: mcp
      namespace: boat-quoting
      port: 8080
      tools:
        - name: generate-boat-quote
          description: "Generate a boat insurance quote from Guidewire PolicyCenter."
          inputParameters:
            - name: hull_id
              in: body
              type: string
              description: "The boat hull identification number."
            - name: boat_value
              in: body
              type: string
              description: "Agreed boat value."
            - name: owner_info
              in: body
              type: string
              description: "JSON with owner details."
          call: "guidewire-pc.create-boat-quote"
          with:
            hull_id: "{{hull_id}}"
            value: "{{boat_value}}"
            owner: "{{owner_info}}"
          outputParameters:
            - name: quote_number
              type: string
              mapping: "$.data.quoteNumber"
            - name: premium
              type: string
              mapping: "$.data.totalPremium"
            - name: hull_coverage
              type: string
              mapping: "$.data.hullCoverage"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: boat-quotes
          path: "/quotes/boat"
          operations:
            - name: create-boat-quote
              method: POST

Evaluates Direct Repair Program body shop performance by pulling repair cycle time data from CCC, customer satisfaction scores from SurveyMonkey, and supplement frequency, then posts the scorecard to Slack.

naftiko: "0.5"
info:
  label: "Body Shop DRP Performance Orchestrator"
  description: "Evaluates Direct Repair Program body shop performance by pulling repair cycle time data from CCC, customer satisfaction scores from SurveyMonkey, and supplement frequency, then posts the scorecard to Slack."
  tags:
    - claims
    - drp
    - ccc-intelligent-solutions
    - surveymonkey
    - slack
capability:
  exposes:
    - type: mcp
      namespace: drp-management
      port: 8080
      tools:
        - name: evaluate-shop-performance
          description: "Given a body shop ID, compile repair metrics, CSAT scores, and supplement data, then share the scorecard."
          inputParameters:
            - name: shop_id
              in: body
              type: string
              description: "The DRP body shop identifier."
            - name: period
              in: body
              type: string
              description: "Review period in YYYY-Q# format."
          steps:
            - name: get-repair-metrics
              type: call
              call: "ccc.get-shop-metrics"
              with:
                shop_id: "{{shop_id}}"
                period: "{{period}}"
            - name: get-csat
              type: call
              call: "surveymonkey.get-shop-scores"
              with:
                shop_id: "{{shop_id}}"
                period: "{{period}}"
            - name: post-scorecard
              type: call
              call: "slack.post-message"
              with:
                channel: "#drp-performance"
                text: "DRP Scorecard ({{period}}) - Shop: {{shop_id}}\nAvg Cycle Time: {{get-repair-metrics.avg_cycle_days}} days\nSupplement Rate: {{get-repair-metrics.supplement_rate}}%\nCSAT Score: {{get-csat.avg_score}}/5\nClaims Volume: {{get-repair-metrics.claims_count}}"
  consumes:
    - type: http
      namespace: ccc
      baseUri: "https://api.cccis.com/v2"
      authentication:
        type: bearer
        token: "$secrets.ccc_token"
      resources:
        - name: shop-metrics
          path: "/shops/{{shop_id}}/metrics"
          inputParameters:
            - name: shop_id
              in: path
            - name: period
              in: query
          operations:
            - name: get-shop-metrics
              method: GET
    - type: http
      namespace: surveymonkey
      baseUri: "https://api.surveymonkey.com/v3"
      authentication:
        type: bearer
        token: "$secrets.surveymonkey_token"
      resources:
        - name: shop-scores
          path: "/surveys/drp_csat/responses"
          inputParameters:
            - name: shop_id
              in: query
            - name: period
              in: query
          operations:
            - name: get-shop-scores
              method: GET
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Orchestrates body shop network quality pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Body Shop Network Quality Pipeline"
  description: "Orchestrates body shop network quality pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - body
    - progressive-insurance
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: body
      port: 8080
      tools:
        - name: body-shop-network-quality-pipeline
          description: "Orchestrates body shop network quality pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/body"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/body"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/body"
          operations:
            - name: execute-3
              method: POST

When a catastrophe event is declared, queries all affected policies by ZIP code from Guidewire, sets up a dedicated claims team in ServiceNow, pre-stages adjusters, and broadcasts customer notifications via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Catastrophe Event Claims Surge Orchestrator"
  description: "When a catastrophe event is declared, queries all affected policies by ZIP code from Guidewire, sets up a dedicated claims team in ServiceNow, pre-stages adjusters, and broadcasts customer notifications via Salesforce Marketing Cloud."
  tags:
    - claims
    - catastrophe
    - guidewire
    - servicenow
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: cat-response
      port: 8080
      tools:
        - name: activate-cat-response
          description: "Given a catastrophe event ID and affected ZIP codes, identify impacted policies, set up response team, and notify customers."
          inputParameters:
            - name: cat_event_id
              in: body
              type: string
              description: "The catastrophe event identifier."
            - name: affected_zips
              in: body
              type: string
              description: "Comma-separated list of affected ZIP codes."
            - name: event_type
              in: body
              type: string
              description: "Type of event (hurricane, tornado, hail, flood, wildfire)."
          steps:
            - name: find-affected-policies
              type: call
              call: "guidewire-pc.query-policies"
              with:
                zip_codes: "{{affected_zips}}"
                status: "active"
            - name: setup-cat-team
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "CAT Response: {{cat_event_id}} ({{event_type}})"
                description: "Affected policies: {{find-affected-policies.count}}. ZIPs: {{affected_zips}}."
                assignment_group: "CAT_Response"
            - name: notify-customers
              type: call
              call: "sfmc.send-batch-email"
              with:
                template: "cat_notification"
                recipient_list: "{{find-affected-policies.emails}}"
                merge_event_type: "{{event_type}}"
                merge_claim_phone: "1-800-776-4737"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: policies
          path: "/policies/search"
          operations:
            - name: query-policies
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/sc_task"
          operations:
            - name: create-task
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.progressive.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: batch-emails
          path: "/messaging/v1/email/messages/batch"
          operations:
            - name: send-batch-email
              method: POST

Orchestrates catastrophe response resource pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Catastrophe Response Resource Pipeline"
  description: "Orchestrates catastrophe response resource pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - catastrophe
    - progressive-insurance
    - sendgrid
    - datadog
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: catastrophe
      port: 8080
      tools:
        - name: catastrophe-response-resource-pipeline
          description: "Orchestrates catastrophe response resource pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sendgrid.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "tableau.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/catastrophe"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/catastrophe"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/catastrophe"
          operations:
            - name: execute-3
              method: POST

When additional documents are needed for a claim, sends a document request to the claimant via Twilio SMS and email via Salesforce Marketing Cloud, creates a follow-up task in Guidewire ClaimCenter, and tracks the request in ServiceNow.

naftiko: "0.5"
info:
  label: "Claim Document Request Orchestrator"
  description: "When additional documents are needed for a claim, sends a document request to the claimant via Twilio SMS and email via Salesforce Marketing Cloud, creates a follow-up task in Guidewire ClaimCenter, and tracks the request in ServiceNow."
  tags:
    - claims
    - customer-service
    - twilio
    - salesforce-marketing-cloud
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: claim-docs
      port: 8080
      tools:
        - name: request-claim-documents
          description: "Given a claim number and required documents, send request to claimant and track follow-up."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: documents_needed
              in: body
              type: string
              description: "Comma-separated list of required documents."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: send-sms
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{get-claim.primaryInsured.phone}}"
                body: "Progressive: We need the following documents for claim {{claim_number}}: {{documents_needed}}. Please upload at progressive.com/claims or reply to this message."
            - name: send-email
              type: call
              call: "sfmc.send-email"
              with:
                template: "document_request"
                to: "{{get-claim.primaryInsured.email}}"
                merge_claim: "{{claim_number}}"
                merge_docs: "{{documents_needed}}"
            - name: create-followup
              type: call
              call: "guidewire-cc.create-activity"
              with:
                claim_number: "{{claim_number}}"
                type: "document_request"
                description: "Documents requested: {{documents_needed}}"
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
        - name: activities
          path: "/claims/{{claim_number}}/activities"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: create-activity
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Accounts/{{account_sid}}/Messages.json"
          inputParameters:
            - name: account_sid
              in: path
          operations:
            - name: send-sms
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.progressive.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

When a new claim is filed, evaluates claim complexity and adjuster workload, assigns the optimal adjuster in Guidewire ClaimCenter, and sends a notification to the adjuster in Microsoft Teams with claim details.

naftiko: "0.5"
info:
  label: "Claims Adjuster Assignment Orchestrator"
  description: "When a new claim is filed, evaluates claim complexity and adjuster workload, assigns the optimal adjuster in Guidewire ClaimCenter, and sends a notification to the adjuster in Microsoft Teams with claim details."
  tags:
    - claims
    - assignment
    - guidewire
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: claims-assignment
      port: 8080
      tools:
        - name: assign-adjuster
          description: "Given a claim number, evaluate complexity and assign the best available adjuster."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: find-adjuster
              type: call
              call: "guidewire-cc.find-available-adjuster"
              with:
                claim_type: "{{get-claim.claimType}}"
                loss_amount: "{{get-claim.totalIncurred}}"
                zip_code: "{{get-claim.lossLocation.zip}}"
            - name: assign-claim
              type: call
              call: "guidewire-cc.assign-claim"
              with:
                claim_number: "{{claim_number}}"
                adjuster_id: "{{find-adjuster.adjuster_id}}"
            - name: notify-adjuster
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{find-adjuster.adjuster_email}}"
                text: "New claim assigned: {{claim_number}}. Type: {{get-claim.claimType}}. Loss date: {{get-claim.lossDate}}. Estimated: ${{get-claim.totalIncurred}}."
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
            - name: assign-claim
              method: PATCH
        - name: adjusters
          path: "/adjusters/available"
          operations:
            - name: find-available-adjuster
              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 claims fraud investigation pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Claims Fraud Investigation Pipeline"
  description: "Orchestrates claims fraud investigation pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - claims
    - progressive-insurance
    - datadog
    - tableau
    - progressive
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: claims-fraud-investigation-pipeline
          description: "Orchestrates claims fraud investigation pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "tableau.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "progressive.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/claims"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/claims"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/claims"
          operations:
            - name: execute-3
              method: POST

Retrieves claims frequency report data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Claims Frequency Report"
  description: "Retrieves claims frequency report data from the Progressive Insurance auto insurance systems."
  tags:
    - claims
    - progressive-insurance
    - report
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: claims-frequency-report
          description: "Retrieves claims frequency report data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.claims-frequency-report"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/claims/frequency/report/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: claims-frequency-report
              method: GET

Orchestrates claims litigation cost tracker across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Claims Litigation Cost Tracker"
  description: "Orchestrates claims litigation cost tracker across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - claims
    - progressive-insurance
    - jira
    - teams
    - sendgrid
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: claims-litigation-cost-tracker
          description: "Orchestrates claims litigation cost tracker across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sendgrid.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/claims"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/claims"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/claims"
          operations:
            - name: execute-3
              method: POST

When a claim escalates to litigation, creates a litigation case in the legal management system, assigns outside counsel, links the claim in Guidewire, and notifies the legal team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Claims Litigation Management Orchestrator"
  description: "When a claim escalates to litigation, creates a litigation case in the legal management system, assigns outside counsel, links the claim in Guidewire, and notifies the legal team in Microsoft Teams."
  tags:
    - claims
    - legal
    - guidewire
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: litigation
      port: 8080
      tools:
        - name: escalate-to-litigation
          description: "Given a claim number and litigation details, create legal case, assign counsel, update claim, and notify legal."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: plaintiff_name
              in: body
              type: string
              description: "Name of the plaintiff."
            - name: suit_type
              in: body
              type: string
              description: "Type of suit (bodily_injury, property_damage, bad_faith)."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: create-legal-case
              type: call
              call: "legal-mgmt.create-case"
              with:
                claim_number: "{{claim_number}}"
                plaintiff: "{{plaintiff_name}}"
                suit_type: "{{suit_type}}"
                reserve: "{{get-claim.totalIncurred}}"
            - name: update-claim
              type: call
              call: "guidewire-cc.update-claim"
              with:
                claim_number: "{{claim_number}}"
                status: "In Litigation"
                legal_case_id: "{{create-legal-case.case_id}}"
            - name: notify-legal
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "legal-claims"
                text: "Litigation: Claim {{claim_number}} escalated. Plaintiff: {{plaintiff_name}}. Suit: {{suit_type}}. Reserve: ${{get-claim.totalIncurred}}. Case: {{create-legal-case.case_id}}."
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
            - name: update-claim
              method: PATCH
    - type: http
      namespace: legal-mgmt
      baseUri: "https://api.progressive.com/internal/legal/v1"
      authentication:
        type: bearer
        token: "$secrets.legal_mgmt_token"
      resources:
        - name: cases
          path: "/cases"
          operations:
            - name: create-case
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

When a claim is approved for payment, validates the payment amount against the estimate in CCC, issues the payment through Guidewire BillingCenter, sends a payment confirmation email via Salesforce Marketing Cloud, and updates the claim status in ClaimCenter.

naftiko: "0.5"
info:
  label: "Claims Payment Orchestrator"
  description: "When a claim is approved for payment, validates the payment amount against the estimate in CCC, issues the payment through Guidewire BillingCenter, sends a payment confirmation email via Salesforce Marketing Cloud, and updates the claim status in ClaimCenter."
  tags:
    - claims
    - billing
    - guidewire
    - ccc-intelligent-solutions
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: claims-payment
      port: 8080
      tools:
        - name: process-claim-payment
          description: "Given a claim number and payment amount, validate against estimate, issue payment, send confirmation, and update claim."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: payment_amount
              in: body
              type: string
              description: "The approved payment amount."
            - name: payee_email
              in: body
              type: string
              description: "Email address of the payee."
          steps:
            - name: validate-estimate
              type: call
              call: "ccc.get-estimate"
              with:
                claim_number: "{{claim_number}}"
            - name: issue-payment
              type: call
              call: "guidewire-bc.create-payment"
              with:
                claim_number: "{{claim_number}}"
                amount: "{{payment_amount}}"
                payee: "{{payee_email}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "claim_payment_confirmation"
                to: "{{payee_email}}"
                merge_claim_number: "{{claim_number}}"
                merge_amount: "{{payment_amount}}"
                merge_payment_id: "{{issue-payment.payment_id}}"
            - name: update-claim
              type: call
              call: "guidewire-cc.update-claim"
              with:
                claim_number: "{{claim_number}}"
                status: "Payment Issued"
                payment_reference: "{{issue-payment.payment_id}}"
  consumes:
    - type: http
      namespace: ccc
      baseUri: "https://api.cccis.com/v2"
      authentication:
        type: bearer
        token: "$secrets.ccc_token"
      resources:
        - name: estimates
          path: "/estimates"
          inputParameters:
            - name: claim_number
              in: query
          operations:
            - name: get-estimate
              method: GET
    - type: http
      namespace: guidewire-bc
      baseUri: "https://billingcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_bc_token"
      resources:
        - name: payments
          path: "/payments"
          operations:
            - name: create-payment
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.progressive.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: update-claim
              method: PATCH

Orchestrates claims photo ai assessment pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Claims Photo Ai Assessment Pipeline"
  description: "Orchestrates claims photo ai assessment pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - claims
    - progressive-insurance
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: claims-photo-ai-assessment-pipeline
          description: "Orchestrates claims photo ai assessment pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/claims"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/claims"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/claims"
          operations:
            - name: execute-3
              method: POST

Orchestrates claims reserve adequacy pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Claims Reserve Adequacy Pipeline"
  description: "Orchestrates claims reserve adequacy pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - claims
    - progressive-insurance
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: claims-reserve-adequacy-pipeline
          description: "Orchestrates claims reserve adequacy pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/claims"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/claims"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/claims"
          operations:
            - name: execute-3
              method: POST

When new information changes the expected cost of a claim, updates the reserve amount in Guidewire ClaimCenter, logs the change reason in ServiceNow, and notifies the claims supervisor in Slack if the adjustment exceeds a threshold.

naftiko: "0.5"
info:
  label: "Claims Reserve Adjustment Orchestrator"
  description: "When new information changes the expected cost of a claim, updates the reserve amount in Guidewire ClaimCenter, logs the change reason in ServiceNow, and notifies the claims supervisor in Slack if the adjustment exceeds a threshold."
  tags:
    - claims
    - finance
    - guidewire
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: claims-reserves
      port: 8080
      tools:
        - name: adjust-reserve
          description: "Given a claim number, new reserve amount, and reason, update the reserve, log the change, and alert if needed."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: new_reserve
              in: body
              type: string
              description: "The new reserve amount."
            - name: reason
              in: body
              type: string
              description: "Reason for the reserve adjustment."
          steps:
            - name: get-current-reserve
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: update-reserve
              type: call
              call: "guidewire-cc.update-reserve"
              with:
                claim_number: "{{claim_number}}"
                new_amount: "{{new_reserve}}"
                reason: "{{reason}}"
            - name: log-change
              type: call
              call: "servicenow.create-record"
              with:
                table: "reserve_audit_log"
                claim_number: "{{claim_number}}"
                previous_reserve: "{{get-current-reserve.totalIncurred}}"
                new_reserve: "{{new_reserve}}"
                reason: "{{reason}}"
            - name: alert-supervisor
              type: call
              call: "slack.post-message"
              with:
                channel: "#claims-reserves"
                text: "Reserve adjusted on claim {{claim_number}}: ${{get-current-reserve.totalIncurred}} -> ${{new_reserve}}. Reason: {{reason}}."
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
        - name: reserves
          path: "/claims/{{claim_number}}/reserves"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: update-reserve
              method: PUT
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: records
          path: "/table/{{table}}"
          inputParameters:
            - name: table
              in: path
          operations:
            - name: create-record
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves a claim status from Guidewire ClaimCenter by claim number, returning claim state, adjuster, loss date, total incurred amount, and next action.

naftiko: "0.5"
info:
  label: "Claims Status Lookup"
  description: "Retrieves a claim status from Guidewire ClaimCenter by claim number, returning claim state, adjuster, loss date, total incurred amount, and next action."
  tags:
    - claims
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: get-claim-status
          description: "Look up a claim by claim number from Guidewire ClaimCenter."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
          call: "guidewire-cc.get-claim"
          with:
            claim_number: "{{claim_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.data.state"
            - name: adjuster
              type: string
              mapping: "$.data.assignedAdjuster.displayName"
            - name: loss_date
              type: string
              mapping: "$.data.lossDate"
            - name: total_incurred
              type: string
              mapping: "$.data.totalIncurred"
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET

Orchestrates claims subrogation recovery pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Claims Subrogation Recovery Pipeline"
  description: "Orchestrates claims subrogation recovery pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - claims
    - progressive-insurance
    - jira
    - teams
    - sendgrid
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: claims-subrogation-recovery-pipeline
          description: "Orchestrates claims subrogation recovery pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sendgrid.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/claims"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/claims"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/claims"
          operations:
            - name: execute-3
              method: POST

Retrieves a commercial auto policy from Guidewire PolicyCenter, returning fleet size, coverage limits, driver roster count, and named insured details.

naftiko: "0.5"
info:
  label: "Commercial Auto Policy Lookup"
  description: "Retrieves a commercial auto policy from Guidewire PolicyCenter, returning fleet size, coverage limits, driver roster count, and named insured details."
  tags:
    - underwriting
    - commercial
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: commercial-policy
      port: 8080
      tools:
        - name: get-commercial-auto-policy
          description: "Look up a commercial auto policy from Guidewire PolicyCenter."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The commercial auto policy number."
          call: "guidewire-pc.get-commercial-policy"
          with:
            policy_number: "{{policy_number}}"
          outputParameters:
            - name: named_insured
              type: string
              mapping: "$.data.namedInsured"
            - name: fleet_size
              type: string
              mapping: "$.data.vehicleCount"
            - name: coverage_limits
              type: string
              mapping: "$.data.coverageLimits"
            - name: driver_count
              type: string
              mapping: "$.data.driverRosterCount"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: commercial-policies
          path: "/policies/commercial/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-commercial-policy
              method: GET

Pulls competitive auto insurance rates from the Arity data platform for benchmarking, returning average market rates by coverage type and state.

naftiko: "0.5"
info:
  label: "Comparative Rate Check"
  description: "Pulls competitive auto insurance rates from the Arity data platform for benchmarking, returning average market rates by coverage type and state."
  tags:
    - pricing
    - analytics
    - arity
capability:
  exposes:
    - type: mcp
      namespace: pricing-analytics
      port: 8080
      tools:
        - name: get-market-rates
          description: "Retrieve competitive market rate data from Arity for benchmarking."
          inputParameters:
            - name: state
              in: body
              type: string
              description: "State code for rate comparison."
            - name: coverage_type
              in: body
              type: string
              description: "Coverage type (liability, collision, comprehensive, full)."
          call: "arity.get-market-rates"
          with:
            state: "{{state}}"
            coverage: "{{coverage_type}}"
          outputParameters:
            - name: avg_market_rate
              type: string
              mapping: "$.data.averageRate"
            - name: rate_range
              type: string
              mapping: "$.data.rateRange"
            - name: progressive_position
              type: string
              mapping: "$.data.progressivePosition"
  consumes:
    - type: http
      namespace: arity
      baseUri: "https://api.arity.com/v1"
      authentication:
        type: bearer
        token: "$secrets.arity_token"
      resources:
        - name: market-rates
          path: "/rates/market"
          inputParameters:
            - name: state
              in: query
            - name: coverage
              in: query
          operations:
            - name: get-market-rates
              method: GET

Retrieves coverage verification lookup data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Coverage Verification Lookup"
  description: "Retrieves coverage verification lookup data from the Progressive Insurance auto insurance systems."
  tags:
    - coverage
    - progressive-insurance
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: coverage
      port: 8080
      tools:
        - name: coverage-verification-lookup
          description: "Retrieves coverage verification lookup data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.coverage-verification-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/coverage/verification/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: coverage-verification-lookup
              method: GET

Orchestrates customer 360 view assembler across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer 360 View Assembler"
  description: "Orchestrates customer 360 view assembler across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - progressive-insurance
    - teams
    - sendgrid
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-360-view-assembler
          description: "Orchestrates customer 360 view assembler across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sendgrid.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer billing dispute resolution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Billing Dispute Resolution Pipeline"
  description: "Orchestrates customer billing dispute resolution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - progressive-insurance
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-billing-dispute-resolution-pipeline
          description: "Orchestrates customer billing dispute resolution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer communication preferences pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Communication Preferences Pipeline"
  description: "Orchestrates customer communication preferences pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - progressive-insurance
    - tableau
    - progressive
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-communication-preferences-pipeline
          description: "Orchestrates customer communication preferences pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "tableau.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "progressive.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Retrieves the customer contact history from Salesforce Service Cloud, returning recent interactions, case numbers, channels used, and satisfaction scores.

naftiko: "0.5"
info:
  label: "Customer Contact History"
  description: "Retrieves the customer contact history from Salesforce Service Cloud, returning recent interactions, case numbers, channels used, and satisfaction scores."
  tags:
    - customer-service
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: customer-service
      port: 8080
      tools:
        - name: get-contact-history
          description: "Look up customer interaction history from Salesforce Service Cloud."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The Salesforce contact ID."
          call: "salesforce.query-interactions"
          with:
            query: "SELECT Id, Subject, Status, Channel__c, CreatedDate, CSAT__c FROM Case WHERE ContactId = '{{customer_id}}' ORDER BY CreatedDate DESC LIMIT 20"
          outputParameters:
            - name: interactions
              type: string
              mapping: "$.records"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: soql
          path: "/query"
          inputParameters:
            - name: q
              in: query
          operations:
            - name: query-interactions
              method: GET

Orchestrates customer feedback routing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Feedback Routing Pipeline"
  description: "Orchestrates customer feedback routing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - progressive-insurance
    - sendgrid
    - datadog
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-feedback-routing-pipeline
          description: "Orchestrates customer feedback routing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sendgrid.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "tableau.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Retrieves customer lifetime value lookup data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Customer Lifetime Value Lookup"
  description: "Retrieves customer lifetime value lookup data from the Progressive Insurance auto insurance systems."
  tags:
    - customer
    - progressive-insurance
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-lifetime-value-lookup
          description: "Retrieves customer lifetime value lookup data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.customer-lifetime-value-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/customer/lifetime/value/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: customer-lifetime-value-lookup
              method: GET

Orchestrates customer onboarding welcome pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Onboarding Welcome Pipeline"
  description: "Orchestrates customer onboarding welcome pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - progressive-insurance
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-onboarding-welcome-pipeline
          description: "Orchestrates customer onboarding welcome pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer referral reward pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Referral Reward Pipeline"
  description: "Orchestrates customer referral reward pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - progressive-insurance
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-referral-reward-pipeline
          description: "Orchestrates customer referral reward pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer retention risk pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Retention Risk Pipeline"
  description: "Orchestrates customer retention risk pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - progressive-insurance
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-retention-risk-pipeline
          description: "Orchestrates customer retention risk pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer self service analytics pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Self Service Analytics Pipeline"
  description: "Orchestrates customer self service analytics pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - progressive-insurance
    - progressive
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-self-service-analytics-pipeline
          description: "Orchestrates customer self service analytics pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "progressive.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Retrieves deductible amount check data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Deductible Amount Check"
  description: "Retrieves deductible amount check data from the Progressive Insurance auto insurance systems."
  tags:
    - deductible
    - progressive-insurance
    - check
capability:
  exposes:
    - type: mcp
      namespace: deductible
      port: 8080
      tools:
        - name: deductible-amount-check
          description: "Retrieves deductible amount check data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.deductible-amount-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/deductible/amount/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: deductible-amount-check
              method: GET

Generates a digital insurance ID card for a policyholder from Guidewire PolicyCenter, returning the card as a downloadable PDF link with policy details, vehicle info, and coverage effective dates.

naftiko: "0.5"
info:
  label: "Digital ID Card Generation"
  description: "Generates a digital insurance ID card for a policyholder from Guidewire PolicyCenter, returning the card as a downloadable PDF link with policy details, vehicle info, and coverage effective dates."
  tags:
    - customer-service
    - policy
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: customer-docs
      port: 8080
      tools:
        - name: generate-id-card
          description: "Generate a digital insurance ID card PDF for a policy."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
          call: "guidewire-pc.generate-id-card"
          with:
            policy_number: "{{policy_number}}"
          outputParameters:
            - name: download_url
              type: string
              mapping: "$.data.documentUrl"
            - name: effective_date
              type: string
              mapping: "$.data.effectiveDate"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: id-cards
          path: "/policies/{{policy_number}}/id-card"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: generate-id-card
              method: POST

Orchestrates digital marketing attribution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Digital Marketing Attribution Pipeline"
  description: "Orchestrates digital marketing attribution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - digital
    - progressive-insurance
    - progressive
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: digital
      port: 8080
      tools:
        - name: digital-marketing-attribution-pipeline
          description: "Orchestrates digital marketing attribution pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "progressive.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/digital"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/digital"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/digital"
          operations:
            - name: execute-3
              method: POST

Retrieves driver profile lookup data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Driver Profile Lookup"
  description: "Retrieves driver profile lookup data from the Progressive Insurance auto insurance systems."
  tags:
    - driver
    - progressive-insurance
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: driver
      port: 8080
      tools:
        - name: driver-profile-lookup
          description: "Retrieves driver profile lookup data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.driver-profile-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/driver/profile/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: driver-profile-lookup
              method: GET

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions insurance licensing access, 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 insurance licensing access, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence."
          inputParameters:
            - name: 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: "Department the new hire is joining."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{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: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to Progressive, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. We're glad you're joining the {{department}} team."
  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://progressive.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

When a customer reports an accident, creates a claim in Guidewire ClaimCenter, pulls the policy details from PolicyCenter, schedules an inspection appointment in CCC Intelligent Solutions, and sends a confirmation SMS to the customer via Twilio.

naftiko: "0.5"
info:
  label: "First Notice of Loss Orchestrator"
  description: "When a customer reports an accident, creates a claim in Guidewire ClaimCenter, pulls the policy details from PolicyCenter, schedules an inspection appointment in CCC Intelligent Solutions, and sends a confirmation SMS to the customer via Twilio."
  tags:
    - claims
    - fnol
    - guidewire
    - ccc-intelligent-solutions
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: claims-fnol
      port: 8080
      tools:
        - name: submit-fnol
          description: "Given loss details and policy number, create a claim, pull policy, schedule inspection, and send confirmation."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: loss_date
              in: body
              type: string
              description: "Date of loss in YYYY-MM-DD format."
            - name: loss_description
              in: body
              type: string
              description: "Description of the incident."
            - name: customer_phone
              in: body
              type: string
              description: "Customer phone number for SMS notification."
          steps:
            - name: get-policy
              type: call
              call: "guidewire-pc.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: create-claim
              type: call
              call: "guidewire-cc.create-claim"
              with:
                policy_number: "{{policy_number}}"
                loss_date: "{{loss_date}}"
                description: "{{loss_description}}"
                insured_name: "{{get-policy.primaryInsured.displayName}}"
            - name: schedule-inspection
              type: call
              call: "ccc.schedule-appraisal"
              with:
                claim_number: "{{create-claim.claim_number}}"
                vehicle_vin: "{{get-policy.vehicle.vin}}"
            - name: send-confirmation
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{customer_phone}}"
                body: "Progressive: Your claim {{create-claim.claim_number}} has been filed. Inspection scheduled for {{schedule-inspection.appointment_date}}. Your adjuster will contact you within 24 hours."
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims"
          operations:
            - name: create-claim
              method: POST
    - type: http
      namespace: ccc
      baseUri: "https://api.cccis.com/v2"
      authentication:
        type: bearer
        token: "$secrets.ccc_token"
      resources:
        - name: appraisals
          path: "/appraisals"
          operations:
            - name: schedule-appraisal
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Accounts/{{account_sid}}/Messages.json"
          inputParameters:
            - name: account_sid
              in: path
          operations:
            - name: send-sms
              method: POST

Retrieves fleet policy summary data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Fleet Policy Summary"
  description: "Retrieves fleet policy summary data from the Progressive Insurance auto insurance systems."
  tags:
    - fleet
    - progressive-insurance
    - summary
capability:
  exposes:
    - type: mcp
      namespace: fleet
      port: 8080
      tools:
        - name: fleet-policy-summary
          description: "Retrieves fleet policy summary data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.fleet-policy-summary"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/fleet/policy/summary/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: fleet-policy-summary
              method: GET

Orchestrates fleet risk assessment pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Fleet Risk Assessment Pipeline"
  description: "Orchestrates fleet risk assessment pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - fleet
    - progressive-insurance
    - tableau
    - progressive
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: fleet
      port: 8080
      tools:
        - name: fleet-risk-assessment-pipeline
          description: "Orchestrates fleet risk assessment pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "tableau.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "progressive.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/fleet"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/fleet"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/fleet"
          operations:
            - name: execute-3
              method: POST

When a potential fraud signal is detected, pulls the claim details from Guidewire ClaimCenter, runs a fraud screening through the SIU analytics engine, creates an investigation case in ServiceNow, and alerts the Special Investigations Unit in Slack.

naftiko: "0.5"
info:
  label: "Fraud Detection Alert Orchestrator"
  description: "When a potential fraud signal is detected, pulls the claim details from Guidewire ClaimCenter, runs a fraud screening through the SIU analytics engine, creates an investigation case in ServiceNow, and alerts the Special Investigations Unit in Slack."
  tags:
    - claims
    - fraud
    - guidewire
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: fraud-detection
      port: 8080
      tools:
        - name: process-fraud-alert
          description: "Given a claim number and fraud indicator, screen the claim, create an SIU case, and alert the investigation team."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: fraud_indicator
              in: body
              type: string
              description: "The type of fraud indicator detected."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: run-fraud-screen
              type: call
              call: "siu-analytics.screen-claim"
              with:
                claim_number: "{{claim_number}}"
                loss_amount: "{{get-claim.totalIncurred}}"
                indicator: "{{fraud_indicator}}"
            - name: create-siu-case
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "SIU Investigation: Claim {{claim_number}}"
                description: "Fraud indicator: {{fraud_indicator}}. Score: {{run-fraud-screen.fraud_score}}. Claim amount: {{get-claim.totalIncurred}}."
                assignment_group: "Special_Investigations"
            - name: alert-siu
              type: call
              call: "slack.post-message"
              with:
                channel: "#siu-alerts"
                text: "Fraud alert on claim {{claim_number}}. Indicator: {{fraud_indicator}}. Fraud score: {{run-fraud-screen.fraud_score}}. SIU case: {{create-siu-case.number}}."
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
    - type: http
      namespace: siu-analytics
      baseUri: "https://api.progressive.com/internal/siu/v1"
      authentication:
        type: bearer
        token: "$secrets.siu_token"
      resources:
        - name: screening
          path: "/screen"
          operations:
            - name: screen-claim
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_si_case"
          operations:
            - name: create-case
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves gap insurance eligibility data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Gap Insurance Eligibility"
  description: "Retrieves gap insurance eligibility data from the Progressive Insurance auto insurance systems."
  tags:
    - gap
    - progressive-insurance
    - eligibility
capability:
  exposes:
    - type: mcp
      namespace: gap
      port: 8080
      tools:
        - name: gap-insurance-eligibility
          description: "Retrieves gap insurance eligibility data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.gap-insurance-eligibility"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/gap/insurance/eligibility/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: gap-insurance-eligibility
              method: GET

Retrieves glass claim details and dispatches a glass repair vendor through Safelite, returning the appointment date, repair type, and vendor location.

naftiko: "0.5"
info:
  label: "Glass Claim Processing"
  description: "Retrieves glass claim details and dispatches a glass repair vendor through Safelite, returning the appointment date, repair type, and vendor location."
  tags:
    - claims
    - glass
    - safelite
capability:
  exposes:
    - type: mcp
      namespace: glass-claims
      port: 8080
      tools:
        - name: process-glass-claim
          description: "Given a claim number, dispatch glass repair through Safelite."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: zip_code
              in: body
              type: string
              description: "Customer ZIP code for vendor dispatch."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: dispatch-repair
              type: call
              call: "safelite.schedule-repair"
              with:
                claim_number: "{{claim_number}}"
                vehicle_vin: "{{get-claim.vehicle.vin}}"
                zip: "{{zip_code}}"
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
    - type: http
      namespace: safelite
      baseUri: "https://api.safelite.com/v2"
      authentication:
        type: bearer
        token: "$secrets.safelite_token"
      resources:
        - name: repairs
          path: "/repairs"
          operations:
            - name: schedule-repair
              method: POST

Orchestrates glass repair vendor dispatch pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Glass Repair Vendor Dispatch Pipeline"
  description: "Orchestrates glass repair vendor dispatch pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - glass
    - progressive-insurance
    - jira
    - teams
    - sendgrid
capability:
  exposes:
    - type: mcp
      namespace: glass
      port: 8080
      tools:
        - name: glass-repair-vendor-dispatch-pipeline
          description: "Orchestrates glass repair vendor dispatch pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sendgrid.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/glass"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/glass"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/glass"
          operations:
            - name: execute-3
              method: POST

Identifies auto-only customers eligible for homeowner bundling by querying Guidewire PolicyCenter, checks home eligibility through the property data provider, generates a bundled quote, and sends a personalized offer via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Homeowner Policy Cross-Sell Orchestrator"
  description: "Identifies auto-only customers eligible for homeowner bundling by querying Guidewire PolicyCenter, checks home eligibility through the property data provider, generates a bundled quote, and sends a personalized offer via Salesforce Marketing Cloud."
  tags:
    - underwriting
    - pricing
    - cross-sell
    - guidewire
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: cross-sell
      port: 8080
      tools:
        - name: generate-bundle-offer
          description: "Given a policy number, check home eligibility, generate a bundled quote, and send personalized offer."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The auto policy number."
            - name: property_address
              in: body
              type: string
              description: "The customer's property address for home quote."
          steps:
            - name: get-auto-policy
              type: call
              call: "guidewire-pc.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: check-property
              type: call
              call: "property-data.get-risk-assessment"
              with:
                address: "{{property_address}}"
            - name: generate-bundle-quote
              type: call
              call: "guidewire-pc.create-bundle-quote"
              with:
                auto_policy: "{{policy_number}}"
                property_risk: "{{check-property.risk_score}}"
                property_value: "{{check-property.estimated_value}}"
            - name: send-offer
              type: call
              call: "sfmc.send-email"
              with:
                template: "bundle_offer"
                to: "{{get-auto-policy.primaryInsured.email}}"
                merge_name: "{{get-auto-policy.primaryInsured.displayName}}"
                merge_bundle_savings: "{{generate-bundle-quote.bundle_discount}}"
                merge_bundle_premium: "{{generate-bundle-quote.total_bundle_premium}}"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
        - name: bundle-quotes
          path: "/quotes/bundle"
          operations:
            - name: create-bundle-quote
              method: POST
    - type: http
      namespace: property-data
      baseUri: "https://api.progressive.com/internal/property/v1"
      authentication:
        type: bearer
        token: "$secrets.property_data_token"
      resources:
        - name: risk
          path: "/assessments"
          operations:
            - name: get-risk-assessment
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.progressive.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Orchestrates injury claim medical review pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Injury Claim Medical Review Pipeline"
  description: "Orchestrates injury claim medical review pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - injury
    - progressive-insurance
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: injury
      port: 8080
      tools:
        - name: injury-claim-medical-review-pipeline
          description: "Orchestrates injury claim medical review pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/injury"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/injury"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/injury"
          operations:
            - name: execute-3
              method: POST

Creates an IT service desk ticket in ServiceNow for Progressive employees, covering system access, VPN issues, and application support.

naftiko: "0.5"
info:
  label: "IT Service Desk Ticket"
  description: "Creates an IT service desk ticket in ServiceNow for Progressive employees, covering system access, VPN issues, and application support."
  tags:
    - it-support
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it-support
      port: 8080
      tools:
        - name: create-it-ticket
          description: "Submit an IT service desk ticket to ServiceNow."
          inputParameters:
            - name: category
              in: body
              type: string
              description: "Category (access, vpn, application, hardware)."
            - name: description
              in: body
              type: string
              description: "Description of the issue."
            - name: priority
              in: body
              type: string
              description: "Priority (low, medium, high, critical)."
          call: "servicenow.create-incident"
          with:
            category: "{{category}}"
            short_description: "IT Support: {{category}}"
            description: "{{description}}"
            priority: "{{priority}}"
          outputParameters:
            - name: ticket_number
              type: string
              mapping: "$.result.number"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.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

Generates a loss run report for a commercial or personal lines account from Guidewire ClaimCenter, returning claims history, total paid, total reserved, and loss ratio.

naftiko: "0.5"
info:
  label: "Loss Run Report Generation"
  description: "Generates a loss run report for a commercial or personal lines account from Guidewire ClaimCenter, returning claims history, total paid, total reserved, and loss ratio."
  tags:
    - claims
    - reporting
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: claims-reporting
      port: 8080
      tools:
        - name: generate-loss-run
          description: "Generate a loss run report for a policy or account from Guidewire ClaimCenter."
          inputParameters:
            - name: account_number
              in: body
              type: string
              description: "The account number."
            - name: start_date
              in: body
              type: string
              description: "Report start date."
            - name: end_date
              in: body
              type: string
              description: "Report end date."
          call: "guidewire-cc.generate-loss-run"
          with:
            account: "{{account_number}}"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
          outputParameters:
            - name: total_claims
              type: string
              mapping: "$.data.totalClaims"
            - name: total_paid
              type: string
              mapping: "$.data.totalPaid"
            - name: total_reserved
              type: string
              mapping: "$.data.totalReserved"
            - name: loss_ratio
              type: string
              mapping: "$.data.lossRatio"
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: reports
          path: "/reports/loss-run"
          inputParameters:
            - name: account
              in: query
            - name: start_date
              in: query
            - name: end_date
              in: query
          operations:
            - name: generate-loss-run
              method: GET

Processes a medical payment claim (MedPay) by pulling the claim from Guidewire ClaimCenter, verifying medical bills against the coverage limit, issuing payment via BillingCenter, and notifying the claimant via Twilio.

naftiko: "0.5"
info:
  label: "Medical Payment Processing Orchestrator"
  description: "Processes a medical payment claim (MedPay) by pulling the claim from Guidewire ClaimCenter, verifying medical bills against the coverage limit, issuing payment via BillingCenter, and notifying the claimant via Twilio."
  tags:
    - claims
    - medical
    - guidewire
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: medpay
      port: 8080
      tools:
        - name: process-medpay-claim
          description: "Given a claim number and medical bill amount, verify coverage, issue payment, and notify claimant."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: bill_amount
              in: body
              type: string
              description: "Medical bill amount."
            - name: provider_name
              in: body
              type: string
              description: "Medical provider name."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: issue-payment
              type: call
              call: "guidewire-bc.create-payment"
              with:
                claim_number: "{{claim_number}}"
                amount: "{{bill_amount}}"
                payee: "{{provider_name}}"
                type: "medpay"
            - name: notify-claimant
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{get-claim.primaryInsured.phone}}"
                body: "Progressive: MedPay of ${{bill_amount}} to {{provider_name}} for claim {{claim_number}} has been processed. Ref: {{issue-payment.payment_id}}."
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
    - type: http
      namespace: guidewire-bc
      baseUri: "https://billingcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_bc_token"
      resources:
        - name: payments
          path: "/payments"
          operations:
            - name: create-payment
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Accounts/{{account_sid}}/Messages.json"
          inputParameters:
            - name: account_sid
              in: path
          operations:
            - name: send-sms
              method: POST

Generates a motorcycle insurance quote from Guidewire PolicyCenter, returning premium, coverage options, and applicable discounts for a motorcycle VIN.

naftiko: "0.5"
info:
  label: "Motorcycle Policy Quote"
  description: "Generates a motorcycle insurance quote from Guidewire PolicyCenter, returning premium, coverage options, and applicable discounts for a motorcycle VIN."
  tags:
    - pricing
    - underwriting
    - guidewire
    - motorcycle
capability:
  exposes:
    - type: mcp
      namespace: motorcycle-quoting
      port: 8080
      tools:
        - name: generate-motorcycle-quote
          description: "Generate a motorcycle insurance quote from Guidewire PolicyCenter."
          inputParameters:
            - name: vin
              in: body
              type: string
              description: "The motorcycle VIN."
            - name: driver_info
              in: body
              type: string
              description: "JSON with driver details."
          call: "guidewire-pc.create-motorcycle-quote"
          with:
            vin: "{{vin}}"
            driver: "{{driver_info}}"
          outputParameters:
            - name: quote_number
              type: string
              mapping: "$.data.quoteNumber"
            - name: premium
              type: string
              mapping: "$.data.totalPremium"
            - name: discounts
              type: string
              mapping: "$.data.appliedDiscounts"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: motorcycle-quotes
          path: "/quotes/motorcycle"
          operations:
            - name: create-motorcycle-quote
              method: POST

Orchestrates multi policy discount calculator pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Multi Policy Discount Calculator Pipeline"
  description: "Orchestrates multi policy discount calculator pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - multi
    - progressive-insurance
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: multi
      port: 8080
      tools:
        - name: multi-policy-discount-calculator-pipeline
          description: "Orchestrates multi policy discount calculator pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/multi"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/multi"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/multi"
          operations:
            - name: execute-3
              method: POST

Pulls a motor vehicle record from LexisNexis for an applicant, returning violations, accidents, license status, and points on license.

naftiko: "0.5"
info:
  label: "MVR Report Lookup"
  description: "Pulls a motor vehicle record from LexisNexis for an applicant, returning violations, accidents, license status, and points on license."
  tags:
    - underwriting
    - lexisnexis
capability:
  exposes:
    - type: mcp
      namespace: underwriting-data
      port: 8080
      tools:
        - name: get-mvr-report
          description: "Retrieve a motor vehicle record from LexisNexis."
          inputParameters:
            - name: license_number
              in: body
              type: string
              description: "Driver license number."
            - name: state
              in: body
              type: string
              description: "State of issuance."
          call: "lexisnexis.get-mvr"
          with:
            license_number: "{{license_number}}"
            state: "{{state}}"
          outputParameters:
            - name: violations
              type: string
              mapping: "$.data.violations"
            - name: accidents
              type: string
              mapping: "$.data.accidents"
            - name: license_status
              type: string
              mapping: "$.data.licenseStatus"
            - name: points
              type: string
              mapping: "$.data.totalPoints"
  consumes:
    - type: http
      namespace: lexisnexis
      baseUri: "https://api.lexisnexis.com/insurance/v2"
      authentication:
        type: bearer
        token: "$secrets.lexisnexis_token"
      resources:
        - name: mvr
          path: "/motor-vehicle-records"
          operations:
            - name: get-mvr
              method: POST

Orchestrates new policy issuance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "New Policy Issuance Pipeline"
  description: "Orchestrates new policy issuance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - new
    - progressive-insurance
    - progressive
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: new
      port: 8080
      tools:
        - name: new-policy-issuance-pipeline
          description: "Orchestrates new policy issuance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "progressive.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/new"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/new"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/new"
          operations:
            - name: execute-3
              method: POST

Processes a premium payment for a policy through Guidewire BillingCenter, accepting payment method details and returning a payment confirmation and updated balance.

naftiko: "0.5"
info:
  label: "Payment Processing"
  description: "Processes a premium payment for a policy through Guidewire BillingCenter, accepting payment method details and returning a payment confirmation and updated balance."
  tags:
    - billing
    - customer-service
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: billing
      port: 8080
      tools:
        - name: process-payment
          description: "Process a premium payment through Guidewire BillingCenter."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: amount
              in: body
              type: string
              description: "Payment amount."
            - name: payment_method
              in: body
              type: string
              description: "Payment method (credit_card, bank_transfer, check)."
          call: "guidewire-bc.create-payment"
          with:
            policy_number: "{{policy_number}}"
            amount: "{{amount}}"
            method: "{{payment_method}}"
          outputParameters:
            - name: confirmation_number
              type: string
              mapping: "$.data.confirmationNumber"
            - name: remaining_balance
              type: string
              mapping: "$.data.remainingBalance"
  consumes:
    - type: http
      namespace: guidewire-bc
      baseUri: "https://billingcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_bc_token"
      resources:
        - name: payments
          path: "/payments"
          operations:
            - name: create-payment
              method: POST

Generates a pet insurance quote from the pet insurance underwriting system, returning monthly premium, deductible options, coverage levels, and breed-specific exclusions.

naftiko: "0.5"
info:
  label: "Pet Insurance Quote"
  description: "Generates a pet insurance quote from the pet insurance underwriting system, returning monthly premium, deductible options, coverage levels, and breed-specific exclusions."
  tags:
    - pricing
    - underwriting
    - pet-insurance
capability:
  exposes:
    - type: mcp
      namespace: pet-quoting
      port: 8080
      tools:
        - name: generate-pet-quote
          description: "Generate a pet insurance quote."
          inputParameters:
            - name: pet_name
              in: body
              type: string
              description: "Pet name."
            - name: species
              in: body
              type: string
              description: "Species (dog, cat)."
            - name: breed
              in: body
              type: string
              description: "Pet breed."
            - name: age
              in: body
              type: string
              description: "Pet age in years."
            - name: zip_code
              in: body
              type: string
              description: "Owner ZIP code."
          call: "pet-uw.create-quote"
          with:
            pet_name: "{{pet_name}}"
            species: "{{species}}"
            breed: "{{breed}}"
            age: "{{age}}"
            zip: "{{zip_code}}"
          outputParameters:
            - name: monthly_premium
              type: string
              mapping: "$.data.monthlyPremium"
            - name: deductible_options
              type: string
              mapping: "$.data.deductibleOptions"
            - name: coverage_level
              type: string
              mapping: "$.data.coverageLevel"
  consumes:
    - type: http
      namespace: pet-uw
      baseUri: "https://api.progressive.com/internal/pet-insurance/v1"
      authentication:
        type: bearer
        token: "$secrets.pet_uw_token"
      resources:
        - name: quotes
          path: "/quotes"
          operations:
            - name: create-quote
              method: POST

Processes a customer-submitted photo estimate by uploading photos to CCC Intelligent Solutions, triggering the AI damage assessment, and creating a preliminary estimate linked to the claim in Guidewire ClaimCenter.

naftiko: "0.5"
info:
  label: "Photo Estimate Upload Orchestrator"
  description: "Processes a customer-submitted photo estimate by uploading photos to CCC Intelligent Solutions, triggering the AI damage assessment, and creating a preliminary estimate linked to the claim in Guidewire ClaimCenter."
  tags:
    - claims
    - damage-estimate
    - ccc-intelligent-solutions
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: photo-estimate
      port: 8080
      tools:
        - name: process-photo-estimate
          description: "Given a claim number and photo URLs, upload to CCC for AI assessment and link estimate to claim."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: photo_urls
              in: body
              type: string
              description: "Comma-separated URLs of damage photos."
          steps:
            - name: upload-photos
              type: call
              call: "ccc.upload-photos"
              with:
                claim_number: "{{claim_number}}"
                photos: "{{photo_urls}}"
            - name: get-ai-estimate
              type: call
              call: "ccc.get-ai-estimate"
              with:
                upload_id: "{{upload-photos.upload_id}}"
            - name: link-to-claim
              type: call
              call: "guidewire-cc.attach-estimate"
              with:
                claim_number: "{{claim_number}}"
                estimate_id: "{{get-ai-estimate.estimate_id}}"
                estimated_cost: "{{get-ai-estimate.total_cost}}"
  consumes:
    - type: http
      namespace: ccc
      baseUri: "https://api.cccis.com/v2"
      authentication:
        type: bearer
        token: "$secrets.ccc_token"
      resources:
        - name: photos
          path: "/uploads"
          operations:
            - name: upload-photos
              method: POST
        - name: ai-estimates
          path: "/ai-estimates/{{upload_id}}"
          inputParameters:
            - name: upload_id
              in: path
          operations:
            - name: get-ai-estimate
              method: GET
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: estimates
          path: "/claims/{{claim_number}}/estimates"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: attach-estimate
              method: POST

Orchestrates policy audit compliance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Policy Audit Compliance Pipeline"
  description: "Orchestrates policy audit compliance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - policy
    - progressive-insurance
    - progressive
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-audit-compliance-pipeline
          description: "Orchestrates policy audit compliance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "progressive.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/policy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/policy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/policy"
          operations:
            - name: execute-3
              method: POST

Processes a policy cancellation by updating the policy in Guidewire PolicyCenter, calculating the refund in BillingCenter, sending a cancellation notice via Salesforce Marketing Cloud, and archiving documents.

naftiko: "0.5"
info:
  label: "Policy Cancellation Orchestrator"
  description: "Processes a policy cancellation by updating the policy in Guidewire PolicyCenter, calculating the refund in BillingCenter, sending a cancellation notice via Salesforce Marketing Cloud, and archiving documents."
  tags:
    - underwriting
    - billing
    - guidewire
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: policy-cancellation
      port: 8080
      tools:
        - name: process-cancellation
          description: "Given a policy number and reason, cancel the policy, calculate refund, and notify customer."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: cancellation_reason
              in: body
              type: string
              description: "Reason for cancellation."
            - name: effective_date
              in: body
              type: string
              description: "Cancellation effective date."
          steps:
            - name: cancel-policy
              type: call
              call: "guidewire-pc.cancel-policy"
              with:
                policy_number: "{{policy_number}}"
                reason: "{{cancellation_reason}}"
                effective_date: "{{effective_date}}"
            - name: calculate-refund
              type: call
              call: "guidewire-bc.calculate-refund"
              with:
                policy_number: "{{policy_number}}"
                cancel_date: "{{effective_date}}"
            - name: send-notice
              type: call
              call: "sfmc.send-email"
              with:
                template: "cancellation_notice"
                to: "{{cancel-policy.insured_email}}"
                merge_policy: "{{policy_number}}"
                merge_refund: "{{calculate-refund.refund_amount}}"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: cancellations
          path: "/policies/{{policy_number}}/cancel"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: cancel-policy
              method: POST
    - type: http
      namespace: guidewire-bc
      baseUri: "https://billingcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_bc_token"
      resources:
        - name: refunds
          path: "/accounts/{{policy_number}}/refund-calculation"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: calculate-refund
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.progressive.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Retrieves policy coverage limits lookup data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Policy Coverage Limits Lookup"
  description: "Retrieves policy coverage limits lookup data from the Progressive Insurance auto insurance systems."
  tags:
    - policy
    - progressive-insurance
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-coverage-limits-lookup
          description: "Retrieves policy coverage limits lookup data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.policy-coverage-limits-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/policy/coverage/limits/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: policy-coverage-limits-lookup
              method: GET

Retrieves policy document retrieval data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Policy Document Retrieval"
  description: "Retrieves policy document retrieval data from the Progressive Insurance auto insurance systems."
  tags:
    - policy
    - progressive-insurance
    - retrieval
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-document-retrieval
          description: "Retrieves policy document retrieval data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.policy-document-retrieval"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/policy/document/retrieval/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: policy-document-retrieval
              method: GET

Processes a mid-term policy change by applying the endorsement in Guidewire PolicyCenter, recalculating billing in BillingCenter, and sending a policy change confirmation via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Policy Endorsement Orchestrator"
  description: "Processes a mid-term policy change by applying the endorsement in Guidewire PolicyCenter, recalculating billing in BillingCenter, and sending a policy change confirmation via Salesforce Marketing Cloud."
  tags:
    - underwriting
    - billing
    - guidewire
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: policy-changes
      port: 8080
      tools:
        - name: process-endorsement
          description: "Given a policy number and change details, apply endorsement, update billing, and send confirmation."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: change_type
              in: body
              type: string
              description: "Type of change (add_vehicle, remove_vehicle, add_driver, change_coverage, change_address)."
            - name: change_details
              in: body
              type: string
              description: "JSON with the endorsement change details."
          steps:
            - name: apply-endorsement
              type: call
              call: "guidewire-pc.create-endorsement"
              with:
                policy_number: "{{policy_number}}"
                change_type: "{{change_type}}"
                details: "{{change_details}}"
            - name: update-billing
              type: call
              call: "guidewire-bc.recalculate-billing"
              with:
                policy_number: "{{policy_number}}"
                premium_change: "{{apply-endorsement.premium_delta}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "policy_change_confirmation"
                to: "{{apply-endorsement.insured_email}}"
                merge_policy: "{{policy_number}}"
                merge_change: "{{change_type}}"
                merge_new_premium: "{{apply-endorsement.new_premium}}"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: endorsements
          path: "/policies/{{policy_number}}/endorsements"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: create-endorsement
              method: POST
    - type: http
      namespace: guidewire-bc
      baseUri: "https://billingcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_bc_token"
      resources:
        - name: billing
          path: "/accounts/{{policy_number}}/recalculate"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: recalculate-billing
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.progressive.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Orchestrates policy endorsement processing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Policy Endorsement Processing Pipeline"
  description: "Orchestrates policy endorsement processing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - policy
    - progressive-insurance
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-endorsement-processing-pipeline
          description: "Orchestrates policy endorsement processing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/policy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/policy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/policy"
          operations:
            - name: execute-3
              method: POST

Orchestrates policy lapse prevention pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Policy Lapse Prevention Pipeline"
  description: "Orchestrates policy lapse prevention pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - policy
    - progressive-insurance
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-lapse-prevention-pipeline
          description: "Orchestrates policy lapse prevention pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/policy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/policy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/policy"
          operations:
            - name: execute-3
              method: POST

Retrieves an auto insurance policy from the Guidewire PolicyCenter by policy number, returning policyholder name, coverage details, effective dates, and premium amount.

naftiko: "0.5"
info:
  label: "Policy Lookup"
  description: "Retrieves an auto insurance policy from the Guidewire PolicyCenter by policy number, returning policyholder name, coverage details, effective dates, and premium amount."
  tags:
    - underwriting
    - policy
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: get-policy
          description: "Look up an auto insurance policy by policy number from Guidewire PolicyCenter."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
          call: "guidewire-pc.get-policy"
          with:
            policy_number: "{{policy_number}}"
          outputParameters:
            - name: policyholder
              type: string
              mapping: "$.data.primaryInsured.displayName"
            - name: coverage_type
              type: string
              mapping: "$.data.coverageType"
            - name: effective_date
              type: string
              mapping: "$.data.effectiveDate"
            - name: expiration_date
              type: string
              mapping: "$.data.expirationDate"
            - name: premium
              type: string
              mapping: "$.data.totalPremium"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET

Orchestrates policy migration pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Policy Migration Pipeline"
  description: "Orchestrates policy migration pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - policy
    - progressive-insurance
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-migration-pipeline
          description: "Orchestrates policy migration pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/policy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/policy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/policy"
          operations:
            - name: execute-3
              method: POST

Processes a policy renewal by recalculating the premium in Guidewire PolicyCenter, applying Snapshot telematics discounts, generating a renewal offer, and sending the renewal notice via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Policy Renewal Orchestrator"
  description: "Processes a policy renewal by recalculating the premium in Guidewire PolicyCenter, applying Snapshot telematics discounts, generating a renewal offer, and sending the renewal notice via Salesforce Marketing Cloud."
  tags:
    - underwriting
    - pricing
    - guidewire
    - snapshot
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: policy-renewal
      port: 8080
      tools:
        - name: process-renewal
          description: "Given a policy number, recalculate premium with telematics, generate renewal offer, and send notice to customer."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number to renew."
          steps:
            - name: get-policy
              type: call
              call: "guidewire-pc.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: get-snapshot
              type: call
              call: "snapshot.get-score"
              with:
                policy_number: "{{policy_number}}"
            - name: create-renewal
              type: call
              call: "guidewire-pc.create-renewal"
              with:
                policy_number: "{{policy_number}}"
                snapshot_discount: "{{get-snapshot.discountEligible}}"
                snapshot_score: "{{get-snapshot.overallScore}}"
            - name: send-notice
              type: call
              call: "sfmc.send-email"
              with:
                template: "renewal_notice"
                to: "{{get-policy.primaryInsured.email}}"
                merge_policy: "{{policy_number}}"
                merge_new_premium: "{{create-renewal.new_premium}}"
                merge_effective_date: "{{create-renewal.effective_date}}"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
        - name: renewals
          path: "/policies/{{policy_number}}/renew"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: create-renewal
              method: POST
    - type: http
      namespace: snapshot
      baseUri: "https://api.progressive.com/snapshot/v2"
      authentication:
        type: bearer
        token: "$secrets.snapshot_token"
      resources:
        - name: scores
          path: "/policies/{{policy_number}}/score"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-score
              method: GET
    - type: http
      namespace: sfmc
      baseUri: "https://mc.progressive.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Orchestrates policy renewal pricing optimizer across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Policy Renewal Pricing Optimizer"
  description: "Orchestrates policy renewal pricing optimizer across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - policy
    - progressive-insurance
    - teams
    - sendgrid
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-renewal-pricing-optimizer
          description: "Orchestrates policy renewal pricing optimizer across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sendgrid.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/policy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/policy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/policy"
          operations:
            - name: execute-3
              method: POST

Verifies a policyholder's eligibility for discounts by checking multi-policy status in Guidewire, safe driver history from LexisNexis, homeownership from property data, and applying all eligible discounts to the policy.

naftiko: "0.5"
info:
  label: "Policyholder Discount Verification Orchestrator"
  description: "Verifies a policyholder's eligibility for discounts by checking multi-policy status in Guidewire, safe driver history from LexisNexis, homeownership from property data, and applying all eligible discounts to the policy."
  tags:
    - pricing
    - underwriting
    - guidewire
    - lexisnexis
capability:
  exposes:
    - type: mcp
      namespace: discount-verification
      port: 8080
      tools:
        - name: verify-discounts
          description: "Given a policy number, check all discount eligibility and apply."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
          steps:
            - name: get-policy
              type: call
              call: "guidewire-pc.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: check-mvr
              type: call
              call: "lexisnexis.get-mvr"
              with:
                license_number: "{{get-policy.driver.licenseNumber}}"
                state: "{{get-policy.driver.state}}"
            - name: check-homeowner
              type: call
              call: "property-data.check-ownership"
              with:
                name: "{{get-policy.primaryInsured.displayName}}"
                state: "{{get-policy.primaryInsured.state}}"
            - name: apply-discounts
              type: call
              call: "guidewire-pc.apply-discounts"
              with:
                policy_number: "{{policy_number}}"
                safe_driver: "{{check-mvr.clean_record}}"
                homeowner: "{{check-homeowner.is_owner}}"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
        - name: discounts
          path: "/policies/{{policy_number}}/discounts"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: apply-discounts
              method: POST
    - type: http
      namespace: lexisnexis
      baseUri: "https://api.lexisnexis.com/insurance/v2"
      authentication:
        type: bearer
        token: "$secrets.lexisnexis_token"
      resources:
        - name: mvr
          path: "/motor-vehicle-records"
          operations:
            - name: get-mvr
              method: POST
    - type: http
      namespace: property-data
      baseUri: "https://api.progressive.com/internal/property/v1"
      authentication:
        type: bearer
        token: "$secrets.property_data_token"
      resources:
        - name: ownership
          path: "/ownership-checks"
          operations:
            - name: check-ownership
              method: POST

When a customer uploads a document (license, registration, proof of residence), stores it in the document management system, links it to the policy in Guidewire, and sends a confirmation email via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Policyholder Document Upload Orchestrator"
  description: "When a customer uploads a document (license, registration, proof of residence), stores it in the document management system, links it to the policy in Guidewire, and sends a confirmation email via Salesforce Marketing Cloud."
  tags:
    - customer-service
    - documents
    - guidewire
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: document-mgmt
      port: 8080
      tools:
        - name: process-document-upload
          description: "Given a policy number and document, store it, link to policy, and confirm."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: document_type
              in: body
              type: string
              description: "Type (drivers_license, registration, proof_of_residence)."
            - name: document_url
              in: body
              type: string
              description: "URL of the uploaded document."
          steps:
            - name: store-document
              type: call
              call: "doc-mgmt.upload-document"
              with:
                policy_number: "{{policy_number}}"
                type: "{{document_type}}"
                url: "{{document_url}}"
            - name: link-to-policy
              type: call
              call: "guidewire-pc.attach-document"
              with:
                policy_number: "{{policy_number}}"
                document_id: "{{store-document.document_id}}"
                type: "{{document_type}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "document_received"
                to: "{{link-to-policy.insured_email}}"
                merge_doc_type: "{{document_type}}"
  consumes:
    - type: http
      namespace: doc-mgmt
      baseUri: "https://api.progressive.com/internal/docs/v1"
      authentication:
        type: bearer
        token: "$secrets.doc_mgmt_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: documents
          path: "/policies/{{policy_number}}/documents"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: attach-document
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.progressive.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Retrieves premium payment history data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Premium Payment History"
  description: "Retrieves premium payment history data from the Progressive Insurance auto insurance systems."
  tags:
    - premium
    - progressive-insurance
    - history
capability:
  exposes:
    - type: mcp
      namespace: premium
      port: 8080
      tools:
        - name: premium-payment-history
          description: "Retrieves premium payment history data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.premium-payment-history"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/premium/payment/history/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: premium-payment-history
              method: GET

Orchestrates product launch readiness pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Product Launch Readiness Pipeline"
  description: "Orchestrates product launch readiness pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - product
    - progressive-insurance
    - datadog
    - tableau
    - progressive
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-launch-readiness-pipeline
          description: "Orchestrates product launch readiness pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "tableau.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "progressive.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/product"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/product"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: progressive-resource
          path: "/api/product"
          operations:
            - name: execute-3
              method: POST

Generates an auto insurance quote from the Guidewire PolicyCenter rating engine, returning premium breakdown by coverage, discounts applied, and total premium.

naftiko: "0.5"
info:
  label: "Quote Generation"
  description: "Generates an auto insurance quote from the Guidewire PolicyCenter rating engine, returning premium breakdown by coverage, discounts applied, and total premium."
  tags:
    - pricing
    - underwriting
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: quoting
      port: 8080
      tools:
        - name: generate-quote
          description: "Generate an auto insurance quote from Guidewire PolicyCenter."
          inputParameters:
            - name: driver_info
              in: body
              type: string
              description: "JSON object with driver details (name, dob, license_number, state)."
            - name: vehicle_info
              in: body
              type: string
              description: "JSON object with vehicle details (vin, year, make, model)."
            - name: coverage_selections
              in: body
              type: string
              description: "JSON object with desired coverage levels."
          call: "guidewire-pc.create-quote"
          with:
            driver: "{{driver_info}}"
            vehicle: "{{vehicle_info}}"
            coverages: "{{coverage_selections}}"
          outputParameters:
            - name: quote_number
              type: string
              mapping: "$.data.quoteNumber"
            - name: total_premium
              type: string
              mapping: "$.data.totalPremium"
            - name: coverage_breakdown
              type: string
              mapping: "$.data.coverageBreakdown"
            - name: discounts
              type: string
              mapping: "$.data.appliedDiscounts"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: quotes
          path: "/quotes"
          operations:
            - name: create-quote
              method: POST

Orchestrates regulatory rate filing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Regulatory Rate Filing Pipeline"
  description: "Orchestrates regulatory rate filing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - regulatory
    - progressive-insurance
    - sendgrid
    - datadog
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: regulatory
      port: 8080
      tools:
        - name: regulatory-rate-filing-pipeline
          description: "Orchestrates regulatory rate filing pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sendgrid.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "tableau.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/regulatory"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/regulatory"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.progressive.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/regulatory"
          operations:
            - name: execute-3
              method: POST

When a claimant needs a rental vehicle, verifies rental coverage on the policy, books a rental through Enterprise via their API, and updates the claim with rental details in Guidewire ClaimCenter.

naftiko: "0.5"
info:
  label: "Rental Car Reservation Orchestrator"
  description: "When a claimant needs a rental vehicle, verifies rental coverage on the policy, books a rental through Enterprise via their API, and updates the claim with rental details in Guidewire ClaimCenter."
  tags:
    - claims
    - rental
    - guidewire
    - enterprise-rent-a-car
capability:
  exposes:
    - type: mcp
      namespace: claims-rental
      port: 8080
      tools:
        - name: book-rental-car
          description: "Given a claim number and pickup details, verify coverage, book a rental, and update the claim."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: pickup_date
              in: body
              type: string
              description: "Pickup date in YYYY-MM-DD format."
            - name: pickup_location
              in: body
              type: string
              description: "Pickup location ZIP code."
            - name: duration_days
              in: body
              type: string
              description: "Number of rental days."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: book-rental
              type: call
              call: "enterprise.create-reservation"
              with:
                claim_number: "{{claim_number}}"
                pickup_date: "{{pickup_date}}"
                pickup_zip: "{{pickup_location}}"
                duration: "{{duration_days}}"
                daily_rate_limit: "{{get-claim.rentalCoverageLimit}}"
            - name: update-claim
              type: call
              call: "guidewire-cc.update-claim"
              with:
                claim_number: "{{claim_number}}"
                rental_confirmation: "{{book-rental.confirmation_number}}"
                rental_cost: "{{book-rental.total_cost}}"
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
            - name: update-claim
              method: PATCH
    - type: http
      namespace: enterprise
      baseUri: "https://api.enterprise.com/v2"
      authentication:
        type: bearer
        token: "$secrets.enterprise_token"
      resources:
        - name: reservations
          path: "/reservations"
          operations:
            - name: create-reservation
              method: POST

Retrieves rideshare coverage status data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Rideshare Coverage Status"
  description: "Retrieves rideshare coverage status data from the Progressive Insurance auto insurance systems."
  tags:
    - rideshare
    - progressive-insurance
    - status
capability:
  exposes:
    - type: mcp
      namespace: rideshare
      port: 8080
      tools:
        - name: rideshare-coverage-status
          description: "Retrieves rideshare coverage status data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.rideshare-coverage-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/rideshare/coverage/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: rideshare-coverage-status
              method: GET

Dispatches roadside assistance by looking up the policy in Guidewire and submitting a service request to the Agero roadside assistance platform, returning the service provider, ETA, and tracking link.

naftiko: "0.5"
info:
  label: "Roadside Assistance Dispatch"
  description: "Dispatches roadside assistance by looking up the policy in Guidewire and submitting a service request to the Agero roadside assistance platform, returning the service provider, ETA, and tracking link."
  tags:
    - customer-service
    - roadside
    - guidewire
    - agero
capability:
  exposes:
    - type: mcp
      namespace: roadside
      port: 8080
      tools:
        - name: dispatch-roadside-assistance
          description: "Given a policy number and location, verify coverage and dispatch roadside assistance via Agero."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: service_type
              in: body
              type: string
              description: "Type of service (tow, jumpstart, lockout, flat_tire, fuel_delivery)."
            - name: latitude
              in: body
              type: string
              description: "Current latitude."
            - name: longitude
              in: body
              type: string
              description: "Current longitude."
          steps:
            - name: verify-coverage
              type: call
              call: "guidewire-pc.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: dispatch-service
              type: call
              call: "agero.create-dispatch"
              with:
                policy_number: "{{policy_number}}"
                service_type: "{{service_type}}"
                latitude: "{{latitude}}"
                longitude: "{{longitude}}"
                vehicle_vin: "{{verify-coverage.vehicle.vin}}"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
    - type: http
      namespace: agero
      baseUri: "https://api.agero.com/v2"
      authentication:
        type: bearer
        token: "$secrets.agero_token"
      resources:
        - name: dispatches
          path: "/dispatches"
          operations:
            - name: create-dispatch
              method: POST

Orchestrates roadside vendor performance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Roadside Vendor Performance Pipeline"
  description: "Orchestrates roadside vendor performance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - roadside
    - progressive-insurance
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: roadside
      port: 8080
      tools:
        - name: roadside-vendor-performance-pipeline
          description: "Orchestrates roadside vendor performance pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/roadside"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/roadside"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/roadside"
          operations:
            - name: execute-3
              method: POST

Generates a recreational vehicle insurance quote from Guidewire PolicyCenter, returning premium, full-timer coverage options, and vacation liability limits.

naftiko: "0.5"
info:
  label: "RV Insurance Quote"
  description: "Generates a recreational vehicle insurance quote from Guidewire PolicyCenter, returning premium, full-timer coverage options, and vacation liability limits."
  tags:
    - pricing
    - underwriting
    - guidewire
    - rv
capability:
  exposes:
    - type: mcp
      namespace: rv-quoting
      port: 8080
      tools:
        - name: generate-rv-quote
          description: "Generate an RV insurance quote from Guidewire PolicyCenter."
          inputParameters:
            - name: vin
              in: body
              type: string
              description: "The RV VIN."
            - name: rv_value
              in: body
              type: string
              description: "The RV value."
            - name: owner_info
              in: body
              type: string
              description: "JSON with owner details."
            - name: full_timer
              in: body
              type: string
              description: "Whether the RV is a full-time residence (true/false)."
          call: "guidewire-pc.create-rv-quote"
          with:
            vin: "{{vin}}"
            value: "{{rv_value}}"
            owner: "{{owner_info}}"
            full_timer: "{{full_timer}}"
          outputParameters:
            - name: quote_number
              type: string
              mapping: "$.data.quoteNumber"
            - name: premium
              type: string
              mapping: "$.data.totalPremium"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: rv-quotes
          path: "/quotes/rv"
          operations:
            - name: create-rv-quote
              method: POST

When a vehicle is declared a total loss, lists it for salvage auction through Copart, tracks the auction status, and records the salvage recovery amount in Guidewire ClaimCenter.

naftiko: "0.5"
info:
  label: "Salvage Vehicle Auction Orchestrator"
  description: "When a vehicle is declared a total loss, lists it for salvage auction through Copart, tracks the auction status, and records the salvage recovery amount in Guidewire ClaimCenter."
  tags:
    - claims
    - salvage
    - copart
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: salvage
      port: 8080
      tools:
        - name: list-salvage-vehicle
          description: "Given a claim number, list the total loss vehicle for salvage auction and track recovery."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: list-at-auction
              type: call
              call: "copart.create-listing"
              with:
                vin: "{{get-claim.vehicle.vin}}"
                claim_number: "{{claim_number}}"
                condition: "{{get-claim.vehicleCondition}}"
            - name: update-claim
              type: call
              call: "guidewire-cc.update-claim"
              with:
                claim_number: "{{claim_number}}"
                salvage_listing: "{{list-at-auction.lot_number}}"
                salvage_status: "Listed"
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
            - name: update-claim
              method: PATCH
    - type: http
      namespace: copart
      baseUri: "https://api.copart.com/v2"
      authentication:
        type: bearer
        token: "$secrets.copart_token"
      resources:
        - name: listings
          path: "/listings"
          operations:
            - name: create-listing
              method: POST

Pulls the Snapshot usage-based insurance telematics score for a policyholder from the Snapshot platform, returning driving score, hard braking events, mileage, and discount eligibility.

naftiko: "0.5"
info:
  label: "Snapshot Telematics Score Retrieval"
  description: "Pulls the Snapshot usage-based insurance telematics score for a policyholder from the Snapshot platform, returning driving score, hard braking events, mileage, and discount eligibility."
  tags:
    - pricing
    - telematics
    - snapshot
capability:
  exposes:
    - type: mcp
      namespace: telematics
      port: 8080
      tools:
        - name: get-snapshot-score
          description: "Retrieve the Snapshot telematics driving score for a policyholder."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
          call: "snapshot.get-score"
          with:
            policy_number: "{{policy_number}}"
          outputParameters:
            - name: driving_score
              type: string
              mapping: "$.data.overallScore"
            - name: hard_braking_events
              type: string
              mapping: "$.data.hardBrakingCount"
            - name: total_miles
              type: string
              mapping: "$.data.totalMilesDriven"
            - name: discount_eligible
              type: string
              mapping: "$.data.discountEligible"
  consumes:
    - type: http
      namespace: snapshot
      baseUri: "https://api.progressive.com/snapshot/v2"
      authentication:
        type: bearer
        token: "$secrets.snapshot_token"
      resources:
        - name: scores
          path: "/policies/{{policy_number}}/score"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-score
              method: GET

Retrieves sr22 filing status data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Sr22 Filing Status"
  description: "Retrieves sr22 filing status data from the Progressive Insurance auto insurance systems."
  tags:
    - sr22
    - progressive-insurance
    - status
capability:
  exposes:
    - type: mcp
      namespace: sr22
      port: 8080
      tools:
        - name: sr22-filing-status
          description: "Retrieves sr22 filing status data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.sr22-filing-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/sr22/filing/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: sr22-filing-status
              method: GET

Queries the state insurance filing compliance status from the regulatory tracking system, returning filing status, approval date, and effective date by state and product line.

naftiko: "0.5"
info:
  label: "State Filing Compliance Check"
  description: "Queries the state insurance filing compliance status from the regulatory tracking system, returning filing status, approval date, and effective date by state and product line."
  tags:
    - compliance
    - regulatory
    - underwriting
capability:
  exposes:
    - type: mcp
      namespace: regulatory
      port: 8080
      tools:
        - name: check-filing-status
          description: "Check the regulatory filing compliance status for a state and product line."
          inputParameters:
            - name: state
              in: body
              type: string
              description: "State code."
            - name: product_line
              in: body
              type: string
              description: "Product line (auto, home, motorcycle, boat, rv)."
          call: "regulatory-system.get-filing"
          with:
            state: "{{state}}"
            product: "{{product_line}}"
          outputParameters:
            - name: filing_status
              type: string
              mapping: "$.data.status"
            - name: approval_date
              type: string
              mapping: "$.data.approvalDate"
            - name: effective_date
              type: string
              mapping: "$.data.effectiveDate"
  consumes:
    - type: http
      namespace: regulatory-system
      baseUri: "https://api.progressive.com/internal/regulatory/v1"
      authentication:
        type: bearer
        token: "$secrets.regulatory_token"
      resources:
        - name: filings
          path: "/filings"
          inputParameters:
            - name: state
              in: query
            - name: product
              in: query
          operations:
            - name: get-filing
              method: GET

Initiates subrogation recovery by pulling claim and payment details from Guidewire, sending a demand letter to the at-fault carrier via Arbitration Forums, and tracking the recovery in a ServiceNow case.

naftiko: "0.5"
info:
  label: "Subrogation Recovery Orchestrator"
  description: "Initiates subrogation recovery by pulling claim and payment details from Guidewire, sending a demand letter to the at-fault carrier via Arbitration Forums, and tracking the recovery in a ServiceNow case."
  tags:
    - claims
    - subrogation
    - guidewire
    - arbitration-forums
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: subrogation
      port: 8080
      tools:
        - name: initiate-subrogation
          description: "Given a claim number and at-fault carrier, pull details, send demand, and create a tracking case."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
            - name: at_fault_carrier
              in: body
              type: string
              description: "NAIC code of the at-fault insurance carrier."
            - name: demand_amount
              in: body
              type: string
              description: "Total demand amount for subrogation."
          steps:
            - name: get-claim
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: send-demand
              type: call
              call: "arbitration-forums.submit-demand"
              with:
                claim_number: "{{claim_number}}"
                carrier_naic: "{{at_fault_carrier}}"
                amount: "{{demand_amount}}"
                loss_date: "{{get-claim.lossDate}}"
            - name: create-tracking-case
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Subrogation: Claim {{claim_number}} vs {{at_fault_carrier}}"
                description: "Demand amount: ${{demand_amount}}. AF Filing: {{send-demand.filing_id}}."
                assignment_group: "Subrogation"
  consumes:
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
    - type: http
      namespace: arbitration-forums
      baseUri: "https://api.arbfile.org/v1"
      authentication:
        type: bearer
        token: "$secrets.arbfile_token"
      resources:
        - name: demands
          path: "/demands"
          operations:
            - name: submit-demand
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_si_case"
          operations:
            - name: create-case
              method: POST

Retrieves telematics device status data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Telematics Device Status"
  description: "Retrieves telematics device status data from the Progressive Insurance auto insurance systems."
  tags:
    - telematics
    - progressive-insurance
    - status
capability:
  exposes:
    - type: mcp
      namespace: telematics
      port: 8080
      tools:
        - name: telematics-device-status
          description: "Retrieves telematics device status data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.telematics-device-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/telematics/device/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: telematics-device-status
              method: GET

Orchestrates telematics driving behavior analyzer across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Telematics Driving Behavior Analyzer"
  description: "Orchestrates telematics driving behavior analyzer across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - telematics
    - progressive-insurance
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: telematics
      port: 8080
      tools:
        - name: telematics-driving-behavior-analyzer
          description: "Orchestrates telematics driving behavior analyzer across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/telematics"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://progressive.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/telematics"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/telematics"
          operations:
            - name: execute-3
              method: POST

When a vehicle is declared a total loss, retrieves the vehicle valuation from CCC, pulls lien holder information from the policy in Guidewire, processes the settlement payment via BillingCenter, and notifies the customer via Twilio SMS.

naftiko: "0.5"
info:
  label: "Total Loss Vehicle Valuation Orchestrator"
  description: "When a vehicle is declared a total loss, retrieves the vehicle valuation from CCC, pulls lien holder information from the policy in Guidewire, processes the settlement payment via BillingCenter, and notifies the customer via Twilio SMS."
  tags:
    - claims
    - total-loss
    - ccc-intelligent-solutions
    - guidewire
    - twilio
capability:
  exposes:
    - type: mcp
      namespace: total-loss
      port: 8080
      tools:
        - name: process-total-loss
          description: "Given a claim number, get vehicle valuation, check lien, process payment, and notify customer."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
          steps:
            - name: get-valuation
              type: call
              call: "ccc.get-vehicle-valuation"
              with:
                claim_number: "{{claim_number}}"
            - name: get-policy-details
              type: call
              call: "guidewire-cc.get-claim"
              with:
                claim_number: "{{claim_number}}"
            - name: process-settlement
              type: call
              call: "guidewire-bc.create-payment"
              with:
                claim_number: "{{claim_number}}"
                amount: "{{get-valuation.settlement_value}}"
                payee: "{{get-policy-details.primaryInsured.displayName}}"
            - name: notify-customer
              type: call
              call: "twilio.send-sms"
              with:
                to: "{{get-policy-details.primaryInsured.phone}}"
                body: "Progressive: Your total loss settlement of ${{get-valuation.settlement_value}} for claim {{claim_number}} has been processed. Payment ref: {{process-settlement.payment_id}}."
  consumes:
    - type: http
      namespace: ccc
      baseUri: "https://api.cccis.com/v2"
      authentication:
        type: bearer
        token: "$secrets.ccc_token"
      resources:
        - name: valuations
          path: "/valuations"
          inputParameters:
            - name: claim_number
              in: query
          operations:
            - name: get-vehicle-valuation
              method: GET
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET
    - type: http
      namespace: guidewire-bc
      baseUri: "https://billingcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_bc_token"
      resources:
        - name: payments
          path: "/payments"
          operations:
            - name: create-payment
              method: POST
    - type: http
      namespace: twilio
      baseUri: "https://api.twilio.com/2010-04-01"
      authentication:
        type: basic
        username: "$secrets.twilio_account_sid"
        password: "$secrets.twilio_auth_token"
      resources:
        - name: messages
          path: "/Accounts/{{account_sid}}/Messages.json"
          inputParameters:
            - name: account_sid
              in: path
          operations:
            - name: send-sms
              method: POST

Retrieves umbrella policy status data from the Progressive Insurance auto insurance systems.

naftiko: "0.5"
info:
  label: "Umbrella Policy Status"
  description: "Retrieves umbrella policy status data from the Progressive Insurance auto insurance systems."
  tags:
    - umbrella
    - progressive-insurance
    - status
capability:
  exposes:
    - type: mcp
      namespace: umbrella
      port: 8080
      tools:
        - name: umbrella-policy-status
          description: "Retrieves umbrella policy status data from the Progressive Insurance auto insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "progressive.umbrella-policy-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: progressive
      baseUri: "https://api.progressive.com/v2"
      authentication:
        type: bearer
        token: "$secrets.progressive_api_token"
      resources:
        - name: resource
          path: "/umbrella/policy/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: umbrella-policy-status
              method: GET

Calculates an underwriting risk score by pulling MVR data from LexisNexis, credit-based insurance score from TransUnion, claims history from Guidewire ClaimCenter, and returns a composite risk assessment.

naftiko: "0.5"
info:
  label: "Underwriting Risk Score Orchestrator"
  description: "Calculates an underwriting risk score by pulling MVR data from LexisNexis, credit-based insurance score from TransUnion, claims history from Guidewire ClaimCenter, and returns a composite risk assessment."
  tags:
    - underwriting
    - pricing
    - lexisnexis
    - transunion
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: underwriting
      port: 8080
      tools:
        - name: calculate-risk-score
          description: "Given applicant details, pull MVR, credit score, and claims history to generate a composite risk score."
          inputParameters:
            - name: driver_license
              in: body
              type: string
              description: "Driver license number."
            - name: state
              in: body
              type: string
              description: "State of issuance."
            - name: ssn_last4
              in: body
              type: string
              description: "Last 4 digits of SSN for credit pull."
            - name: full_name
              in: body
              type: string
              description: "Applicant full name."
          steps:
            - name: get-mvr
              type: call
              call: "lexisnexis.get-mvr"
              with:
                license_number: "{{driver_license}}"
                state: "{{state}}"
            - name: get-credit-score
              type: call
              call: "transunion.get-insurance-score"
              with:
                name: "{{full_name}}"
                ssn_last4: "{{ssn_last4}}"
                state: "{{state}}"
            - name: get-claims-history
              type: call
              call: "lexisnexis.get-clue-report"
              with:
                name: "{{full_name}}"
                state: "{{state}}"
  consumes:
    - type: http
      namespace: lexisnexis
      baseUri: "https://api.lexisnexis.com/insurance/v2"
      authentication:
        type: bearer
        token: "$secrets.lexisnexis_token"
      resources:
        - name: mvr
          path: "/motor-vehicle-records"
          operations:
            - name: get-mvr
              method: POST
        - name: clue
          path: "/clue-reports"
          operations:
            - name: get-clue-report
              method: POST
    - type: http
      namespace: transunion
      baseUri: "https://api.transunion.com/insurance/v1"
      authentication:
        type: bearer
        token: "$secrets.transunion_token"
      resources:
        - name: scores
          path: "/insurance-scores"
          operations:
            - name: get-insurance-score
              method: POST

Processes an uninsured motorist claim by verifying UM coverage on the policy, creating the UM claim in Guidewire ClaimCenter, ordering a police report, and assigning a specialized UM adjuster.

naftiko: "0.5"
info:
  label: "Uninsured Motorist Claim Orchestrator"
  description: "Processes an uninsured motorist claim by verifying UM coverage on the policy, creating the UM claim in Guidewire ClaimCenter, ordering a police report, and assigning a specialized UM adjuster."
  tags:
    - claims
    - uninsured-motorist
    - guidewire
capability:
  exposes:
    - type: mcp
      namespace: um-claims
      port: 8080
      tools:
        - name: process-um-claim
          description: "Given a policy number and accident details, verify UM coverage, create claim, order report, and assign adjuster."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: loss_date
              in: body
              type: string
              description: "Date of loss."
            - name: police_report_number
              in: body
              type: string
              description: "The police report number."
            - name: description
              in: body
              type: string
              description: "Accident description."
          steps:
            - name: verify-um-coverage
              type: call
              call: "guidewire-pc.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: create-um-claim
              type: call
              call: "guidewire-cc.create-claim"
              with:
                policy_number: "{{policy_number}}"
                loss_date: "{{loss_date}}"
                type: "uninsured_motorist"
                description: "{{description}}"
                police_report: "{{police_report_number}}"
            - name: assign-um-adjuster
              type: call
              call: "guidewire-cc.assign-claim"
              with:
                claim_number: "{{create-um-claim.claim_number}}"
                assignment_group: "UM_Adjusters"
  consumes:
    - type: http
      namespace: guidewire-pc
      baseUri: "https://policycenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_pc_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: claims
          path: "/claims"
          operations:
            - name: create-claim
              method: POST
            - name: assign-claim
              method: PATCH

Enrolls a policyholder in the Snapshot usage-based insurance program, registering their device and activating telematics data collection.

naftiko: "0.5"
info:
  label: "Usage-Based Insurance Enrollment"
  description: "Enrolls a policyholder in the Snapshot usage-based insurance program, registering their device and activating telematics data collection."
  tags:
    - pricing
    - telematics
    - snapshot
capability:
  exposes:
    - type: mcp
      namespace: telematics-enrollment
      port: 8080
      tools:
        - name: enroll-snapshot
          description: "Enroll a policyholder in the Snapshot UBI program."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: device_type
              in: body
              type: string
              description: "Device type (obd_plug, mobile_app)."
          call: "snapshot.enroll-policyholder"
          with:
            policy_number: "{{policy_number}}"
            device: "{{device_type}}"
          outputParameters:
            - name: enrollment_id
              type: string
              mapping: "$.data.enrollmentId"
            - name: activation_date
              type: string
              mapping: "$.data.activationDate"
  consumes:
    - type: http
      namespace: snapshot
      baseUri: "https://api.progressive.com/snapshot/v2"
      authentication:
        type: bearer
        token: "$secrets.snapshot_token"
      resources:
        - name: enrollments
          path: "/enrollments"
          operations:
            - name: enroll-policyholder
              method: POST

Orchestrates usage based insurance scoring pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Usage Based Insurance Scoring Pipeline"
  description: "Orchestrates usage based insurance scoring pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - usage
    - progressive-insurance
    - teams
    - sendgrid
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: usage
      port: 8080
      tools:
        - name: usage-based-insurance-scoring-pipeline
          description: "Orchestrates usage based insurance scoring pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sendgrid.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/usage"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: sendgrid-resource
          path: "/api/usage"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/usage"
          operations:
            - name: execute-3
              method: POST

Retrieves a vehicle damage estimate from CCC Intelligent Solutions by claim number, returning repair cost, parts breakdown, labor hours, and total loss determination.

naftiko: "0.5"
info:
  label: "Vehicle Damage Estimate Lookup"
  description: "Retrieves a vehicle damage estimate from CCC Intelligent Solutions by claim number, returning repair cost, parts breakdown, labor hours, and total loss determination."
  tags:
    - claims
    - damage-estimate
    - ccc-intelligent-solutions
capability:
  exposes:
    - type: mcp
      namespace: damage-estimates
      port: 8080
      tools:
        - name: get-damage-estimate
          description: "Look up a vehicle damage estimate from CCC by claim number."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The claim number."
          call: "ccc.get-estimate"
          with:
            claim_number: "{{claim_number}}"
          outputParameters:
            - name: total_repair_cost
              type: string
              mapping: "$.data.totalRepairCost"
            - name: parts_cost
              type: string
              mapping: "$.data.partsCost"
            - name: labor_hours
              type: string
              mapping: "$.data.laborHours"
            - name: total_loss
              type: string
              mapping: "$.data.isTotalLoss"
  consumes:
    - type: http
      namespace: ccc
      baseUri: "https://api.cccis.com/v2"
      authentication:
        type: bearer
        token: "$secrets.ccc_token"
      resources:
        - name: estimates
          path: "/estimates"
          inputParameters:
            - name: claim_number
              in: query
          operations:
            - name: get-estimate
              method: GET

Orchestrates vehicle valuation pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Vehicle Valuation Pipeline"
  description: "Orchestrates vehicle valuation pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - vehicle
    - progressive-insurance
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: vehicle
      port: 8080
      tools:
        - name: vehicle-valuation-pipeline
          description: "Orchestrates vehicle valuation pipeline across auto insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://progressive.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/vehicle"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://progressive.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/vehicle"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://progressive.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/vehicle"
          operations:
            - name: execute-3
              method: POST

Decodes a VIN number using the NHTSA API and returns vehicle year, make, model, trim, body type, and engine details for quoting and underwriting.

naftiko: "0.5"
info:
  label: "VIN Decode and Vehicle Verification"
  description: "Decodes a VIN number using the NHTSA API and returns vehicle year, make, model, trim, body type, and engine details for quoting and underwriting."
  tags:
    - underwriting
    - vehicle
    - nhtsa
capability:
  exposes:
    - type: mcp
      namespace: vehicle-data
      port: 8080
      tools:
        - name: decode-vin
          description: "Decode a vehicle identification number to get vehicle specifications."
          inputParameters:
            - name: vin
              in: body
              type: string
              description: "The 17-character VIN."
          call: "nhtsa.decode-vin"
          with:
            vin: "{{vin}}"
          outputParameters:
            - name: year
              type: string
              mapping: "$.Results[0].ModelYear"
            - name: make
              type: string
              mapping: "$.Results[0].Make"
            - name: model
              type: string
              mapping: "$.Results[0].Model"
            - name: body_type
              type: string
              mapping: "$.Results[0].BodyClass"
  consumes:
    - type: http
      namespace: nhtsa
      baseUri: "https://vpic.nhtsa.dot.gov/api"
      authentication:
        type: none
      resources:
        - name: vin
          path: "/vehicles/DecodeVin/{{vin}}"
          inputParameters:
            - name: vin
              in: path
            - name: format
              in: query
          operations:
            - name: decode-vin
              method: GET

Generates claims volume forecasts based on weather data by pulling severe weather alerts from the NWS API, correlating with historical claims data from Guidewire, and pushing the forecast to the staffing dashboard in Power BI.

naftiko: "0.5"
info:
  label: "Weather-Based Claims Forecasting Orchestrator"
  description: "Generates claims volume forecasts based on weather data by pulling severe weather alerts from the NWS API, correlating with historical claims data from Guidewire, and pushing the forecast to the staffing dashboard in Power BI."
  tags:
    - claims
    - analytics
    - nws
    - guidewire
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: claims-forecasting
      port: 8080
      tools:
        - name: forecast-claims-volume
          description: "Given a region and date range, pull weather data and historical claims to forecast volume."
          inputParameters:
            - name: state
              in: body
              type: string
              description: "State code."
            - name: forecast_days
              in: body
              type: string
              description: "Number of days to forecast."
          steps:
            - name: get-weather-alerts
              type: call
              call: "nws.get-alerts"
              with:
                state: "{{state}}"
            - name: get-historical-claims
              type: call
              call: "guidewire-cc.get-claims-volume"
              with:
                state: "{{state}}"
                days: "{{forecast_days}}"
            - name: push-forecast
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "claims_forecast"
                rows_state: "{{state}}"
                rows_alerts: "{{get-weather-alerts.active_count}}"
                rows_historical_avg: "{{get-historical-claims.daily_avg}}"
  consumes:
    - type: http
      namespace: nws
      baseUri: "https://api.weather.gov"
      authentication:
        type: none
      resources:
        - name: alerts
          path: "/alerts/active"
          inputParameters:
            - name: area
              in: query
          operations:
            - name: get-alerts
              method: GET
    - type: http
      namespace: guidewire-cc
      baseUri: "https://claimcenter.progressive.com/rest/api/v1"
      authentication:
        type: bearer
        token: "$secrets.guidewire_cc_token"
      resources:
        - name: volume
          path: "/claims/volume"
          inputParameters:
            - name: state
              in: query
            - name: days
              in: query
          operations:
            - name: get-claims-volume
              method: GET
    - 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}}/tables/Forecast/rows"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: push-rows
              method: POST