WeWork Capabilities

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

Sort
Expand

Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.

naftiko: "0.5"
info:
  label: "Annual Compliance Certification Orchestrator"
  description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
  tags:
    - compliance
    - hr
    - legal
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: run-annual-compliance-certification-orchestrator
          description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.

naftiko: "0.5"
info:
  label: "API Lifecycle Management Orchestrator"
  description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
  tags:
    - engineering
    - api
    - operations
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: run-api-lifecycle-management-orchestrator
          description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves Azure DevOps pipeline status.

naftiko: "0.5"
info:
  label: "Azure DevOps Pipeline Viewer"
  description: "Retrieves Azure DevOps pipeline status."
  tags:
    - engineering
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-azure
          description: "Retrieves Azure DevOps pipeline status."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The azure devops pipeline viewer identifier."
          call: "engineering-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: engineering-api
      baseUri: "https://api.wework.com/engineering/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: azure
          path: "/azure/devops/pipeline/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-azure
              method: GET

Provisions a new access badge for a member by creating the credential in the access control system and updating the member record in Salesforce.

naftiko: "0.5"
info:
  label: "Building Access Badge Provisioning"
  description: "Provisions a new access badge for a member by creating the credential in the access control system and updating the member record in Salesforce."
  tags:
    - facilities
    - access-control
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: access-mgmt
      port: 8080
      tools:
        - name: provision-badge
          description: "Given a member ID and building, create an access badge and update CRM."
          inputParameters:
            - name: member_id
              in: body
              type: string
              description: "The member account identifier."
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: access_level
              in: body
              type: string
              description: "Access level (standard, premium, all_access)."
          steps:
            - name: create-badge
              type: call
              call: "access-control.create-credential"
              with:
                member_id: "{{member_id}}"
                building_id: "{{building_id}}"
                access_level: "{{access_level}}"
            - name: update-sf
              type: call
              call: "salesforce.update-account"
              with:
                account_id: "{{member_id}}"
                badge_number: "{{create-badge.card_number}}"
                access_level: "{{access_level}}"
  consumes:
    - type: http
      namespace: access-control
      baseUri: "https://api.wework.com/access/v1"
      authentication:
        type: bearer
        token: "$secrets.access_control_token"
      resources:
        - name: credentials
          path: "/credentials"
          operations:
            - name: create-credential
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: update-account
              method: PATCH

Aggregates energy consumption data from the building management system and Snowflake, calculates efficiency metrics, and updates the Power BI sustainability dashboard.

naftiko: "0.5"
info:
  label: "Building Energy Dashboard Builder"
  description: "Aggregates energy consumption data from the building management system and Snowflake, calculates efficiency metrics, and updates the Power BI sustainability dashboard."
  tags:
    - facilities
    - sustainability
    - snowflake
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: energy-reporting
      port: 8080
      tools:
        - name: build-energy-dashboard
          description: "Given a building ID and period, aggregate energy data and refresh the dashboard."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: period
              in: body
              type: string
              description: "Reporting period (e.g., 2026-03)."
          steps:
            - name: get-energy-data
              type: call
              call: "snowflake.execute-query"
              with:
                statement: "SELECT floor, SUM(kwh) as total_kwh, AVG(kwh_per_sqft) as efficiency FROM building_ops.energy WHERE building_id = '{{building_id}}' AND period = '{{period}}' GROUP BY floor"
                database: "WEWORK_OPS"
            - name: get-bms-data
              type: call
              call: "bms.get-energy-summary"
              with:
                building_id: "{{building_id}}"
                period: "{{period}}"
            - name: refresh-dashboard
              type: call
              call: "powerbi.trigger-refresh"
              with:
                group_id: "sustainability_workspace"
                dataset_id: "energy_metrics"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://wework.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST
    - type: http
      namespace: bms
      baseUri: "https://api.wework.com/bms/v1"
      authentication:
        type: bearer
        token: "$secrets.bms_api_token"
      resources:
        - name: energy
          path: "/buildings/{{building_id}}/energy"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: get-energy-summary
              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: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: group_id
              in: path
            - name: dataset_id
              in: path
          operations:
            - name: trigger-refresh
              method: POST

Retrieves current occupancy rate for a building.

naftiko: "0.5"
info:
  label: "Building Occupancy Rate"
  description: "Retrieves current occupancy rate for a building."
  tags:
    - facilities
    - operations
capability:
  exposes:
    - type: mcp
      namespace: facilities
      port: 8080
      tools:
        - name: get-building
          description: "Retrieves current occupancy rate for a building."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The building occupancy rate identifier."
          call: "facilities-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: facilities-api
      baseUri: "https://api.wework.com/facilities/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: building
          path: "/building/occupancy/rate/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-building
              method: GET

When a prospect requests a tour, creates a Salesforce lead, schedules the tour in the space system, sends a confirmation via SendGrid, and notifies the community team in Slack.

naftiko: "0.5"
info:
  label: "Building Tour Booking Pipeline"
  description: "When a prospect requests a tour, creates a Salesforce lead, schedules the tour in the space system, sends a confirmation via SendGrid, and notifies the community team in Slack."
  tags:
    - sales
    - salesforce
    - sendgrid
    - slack
    - tours
capability:
  exposes:
    - type: mcp
      namespace: sales-tours
      port: 8080
      tools:
        - name: book-building-tour
          description: "Given prospect details, create lead, schedule tour, confirm, and notify team."
          inputParameters:
            - name: prospect_name
              in: body
              type: string
              description: "The prospect's full name."
            - name: prospect_email
              in: body
              type: string
              description: "The prospect's email."
            - name: building_id
              in: body
              type: string
              description: "The building to tour."
            - name: tour_date
              in: body
              type: string
              description: "Requested tour date and time."
            - name: company_name
              in: body
              type: string
              description: "The prospect's company name."
          steps:
            - name: create-lead
              type: call
              call: "salesforce.create-lead"
              with:
                first_name: "{{prospect_name}}"
                email: "{{prospect_email}}"
                company: "{{company_name}}"
                source: "building_tour"
            - name: schedule-tour
              type: call
              call: "space.schedule-tour"
              with:
                building_id: "{{building_id}}"
                date: "{{tour_date}}"
                lead_id: "{{create-lead.id}}"
            - name: send-confirmation
              type: call
              call: "sendgrid.send-email"
              with:
                to: "{{prospect_email}}"
                template_id: "tour_confirmation"
                dynamic_data:
                  name: "{{prospect_name}}"
                  building: "{{building_id}}"
                  date: "{{tour_date}}"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "sales-tours-{{building_id}}"
                text: "Tour booked: {{prospect_name}} ({{company_name}}) at Building {{building_id}} on {{tour_date}}. Lead: {{create-lead.id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: leads
          path: "/sobjects/Lead"
          operations:
            - name: create-lead
              method: POST
    - type: http
      namespace: space
      baseUri: "https://api.wework.com/space/v2"
      authentication:
        type: bearer
        token: "$secrets.space_api_token"
      resources:
        - name: tours
          path: "/buildings/{{building_id}}/tours"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: schedule-tour
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              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

Generates cleaning schedules based on occupancy data, creates work orders in ServiceNow, assigns cleaning crews, and logs schedules in Google Sheets.

naftiko: "0.5"
info:
  label: "Cleaning Schedule Generator"
  description: "Generates cleaning schedules based on occupancy data, creates work orders in ServiceNow, assigns cleaning crews, and logs schedules in Google Sheets."
  tags:
    - facilities
    - cleaning
    - servicenow
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: cleaning-ops
      port: 8080
      tools:
        - name: generate-cleaning-schedule
          description: "Given a building and week, generate cleaning schedules based on occupancy patterns."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: week_start
              in: body
              type: string
              description: "Week start date in YYYY-MM-DD format."
          steps:
            - name: get-occupancy-patterns
              type: call
              call: "space.get-occupancy-history"
              with:
                building_id: "{{building_id}}"
                period: "weekly"
            - name: create-work-orders
              type: call
              call: "servicenow.create-request"
              with:
                short_description: "Weekly cleaning: Building {{building_id}} - {{week_start}}"
                category: "cleaning"
                description: "Based on occupancy patterns. High-traffic floors: {{get-occupancy-patterns.high_traffic_floors}}"
            - name: log-schedule
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "cleaning_schedules"
                range: "Schedules!A:D"
                values:
                  - "{{building_id}}"
                  - "{{week_start}}"
                  - "{{create-work-orders.number}}"
                  - "{{get-occupancy-patterns.avg_occupancy}}"
  consumes:
    - type: http
      namespace: space
      baseUri: "https://api.wework.com/space/v2"
      authentication:
        type: bearer
        token: "$secrets.space_api_token"
      resources:
        - name: occupancy-history
          path: "/buildings/{{building_id}}/occupancy/history"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: get-occupancy-history
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://wework.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST

When a community event is planned, creates the event in the member app, posts to the building Slack channel, sends invitations via SendGrid, and logs in Salesforce for engagement tracking.

naftiko: "0.5"
info:
  label: "Community Event Announcement Pipeline"
  description: "When a community event is planned, creates the event in the member app, posts to the building Slack channel, sends invitations via SendGrid, and logs in Salesforce for engagement tracking."
  tags:
    - community
    - events
    - slack
    - sendgrid
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: community-events
      port: 8080
      tools:
        - name: announce-community-event
          description: "Given event details, publish to app, post to Slack, send invites, and log in CRM."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: event_name
              in: body
              type: string
              description: "Name of the community event."
            - name: event_date
              in: body
              type: string
              description: "Event date and time."
            - name: description
              in: body
              type: string
              description: "Event description."
          steps:
            - name: publish-to-app
              type: call
              call: "member-app.create-event"
              with:
                building_id: "{{building_id}}"
                name: "{{event_name}}"
                date: "{{event_date}}"
                description: "{{description}}"
            - name: post-slack
              type: call
              call: "slack.post-message"
              with:
                channel: "building-{{building_id}}-community"
                text: "Join us for {{event_name}} on {{event_date}}! {{description}}"
            - name: send-invites
              type: call
              call: "sendgrid.send-email"
              with:
                list_id: "building-{{building_id}}-members"
                template_id: "community_event_invite"
                dynamic_data:
                  event_name: "{{event_name}}"
                  event_date: "{{event_date}}"
                  description: "{{description}}"
            - name: log-in-crm
              type: call
              call: "salesforce.create-campaign"
              with:
                name: "Community Event: {{event_name}} - {{building_id}}"
                type: "Community"
                start_date: "{{event_date}}"
  consumes:
    - type: http
      namespace: member-app
      baseUri: "https://api.wework.com/member-app/v1"
      authentication:
        type: bearer
        token: "$secrets.member_app_token"
      resources:
        - name: events
          path: "/buildings/{{building_id}}/events"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: create-event
              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
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: campaigns
          path: "/sobjects/Campaign"
          operations:
            - name: create-campaign
              method: POST

Checks conference room availability.

naftiko: "0.5"
info:
  label: "Conference Room Availability"
  description: "Checks conference room availability."
  tags:
    - facilities
    - booking
capability:
  exposes:
    - type: mcp
      namespace: facilities
      port: 8080
      tools:
        - name: get-conference
          description: "Checks conference room availability."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The conference room availability identifier."
          call: "facilities-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: facilities-api
      baseUri: "https://api.wework.com/facilities/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: conference
          path: "/conference/room/availability/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-conference
              method: GET

Retrieves a Confluence wiki page.

naftiko: "0.5"
info:
  label: "Confluence Page Viewer"
  description: "Retrieves a Confluence wiki page."
  tags:
    - collaboration
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: get-confluence
          description: "Retrieves a Confluence wiki page."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The confluence page viewer identifier."
          call: "collaboration-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: collaboration-api
      baseUri: "https://api.wework.com/collaboration/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: confluence
          path: "/confluence/page/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-confluence
              method: GET

Orchestrates coworking workflow 1 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 1"
  description: "Orchestrates coworking workflow 1 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-001
          description: "Orchestrates coworking workflow 1 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 1 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 2 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 2"
  description: "Orchestrates coworking workflow 2 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-002
          description: "Orchestrates coworking workflow 2 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 2 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 3.

naftiko: "0.5"
info:
  label: "Coworking Data Query 3"
  description: "Retrieves coworking operational data for workflow 3."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-3
          description: "Query coworking data for workflow 3."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-3
              method: GET

Orchestrates coworking workflow 4 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 4"
  description: "Orchestrates coworking workflow 4 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-004
          description: "Orchestrates coworking workflow 4 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 4 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 5 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 5"
  description: "Orchestrates coworking workflow 5 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-005
          description: "Orchestrates coworking workflow 5 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 5 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 6.

naftiko: "0.5"
info:
  label: "Coworking Data Query 6"
  description: "Retrieves coworking operational data for workflow 6."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-6
          description: "Query coworking data for workflow 6."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-6
              method: GET

Orchestrates coworking workflow 7 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 7"
  description: "Orchestrates coworking workflow 7 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-007
          description: "Orchestrates coworking workflow 7 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 7 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 8 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 8"
  description: "Orchestrates coworking workflow 8 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-008
          description: "Orchestrates coworking workflow 8 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 8 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 9.

naftiko: "0.5"
info:
  label: "Coworking Data Query 9"
  description: "Retrieves coworking operational data for workflow 9."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-9
          description: "Query coworking data for workflow 9."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-9
              method: GET

Orchestrates coworking workflow 10 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 10"
  description: "Orchestrates coworking workflow 10 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-010
          description: "Orchestrates coworking workflow 10 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 10 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 11 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 11"
  description: "Orchestrates coworking workflow 11 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-011
          description: "Orchestrates coworking workflow 11 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 11 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 12.

naftiko: "0.5"
info:
  label: "Coworking Data Query 12"
  description: "Retrieves coworking operational data for workflow 12."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-12
          description: "Query coworking data for workflow 12."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-12
              method: GET

Orchestrates coworking workflow 13 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 13"
  description: "Orchestrates coworking workflow 13 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-013
          description: "Orchestrates coworking workflow 13 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 13 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 14 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 14"
  description: "Orchestrates coworking workflow 14 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-014
          description: "Orchestrates coworking workflow 14 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 14 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 15.

naftiko: "0.5"
info:
  label: "Coworking Data Query 15"
  description: "Retrieves coworking operational data for workflow 15."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-15
          description: "Query coworking data for workflow 15."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-15
              method: GET

Orchestrates coworking workflow 16 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 16"
  description: "Orchestrates coworking workflow 16 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-016
          description: "Orchestrates coworking workflow 16 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 16 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 17 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 17"
  description: "Orchestrates coworking workflow 17 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-017
          description: "Orchestrates coworking workflow 17 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 17 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 18.

naftiko: "0.5"
info:
  label: "Coworking Data Query 18"
  description: "Retrieves coworking operational data for workflow 18."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-18
          description: "Query coworking data for workflow 18."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-18
              method: GET

Orchestrates coworking workflow 19 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 19"
  description: "Orchestrates coworking workflow 19 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-019
          description: "Orchestrates coworking workflow 19 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 19 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 20 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 20"
  description: "Orchestrates coworking workflow 20 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-020
          description: "Orchestrates coworking workflow 20 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 20 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 21.

naftiko: "0.5"
info:
  label: "Coworking Data Query 21"
  description: "Retrieves coworking operational data for workflow 21."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-21
          description: "Query coworking data for workflow 21."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-21
              method: GET

Orchestrates coworking workflow 22 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 22"
  description: "Orchestrates coworking workflow 22 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-022
          description: "Orchestrates coworking workflow 22 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 22 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 23 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 23"
  description: "Orchestrates coworking workflow 23 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-023
          description: "Orchestrates coworking workflow 23 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 23 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 24.

naftiko: "0.5"
info:
  label: "Coworking Data Query 24"
  description: "Retrieves coworking operational data for workflow 24."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-24
          description: "Query coworking data for workflow 24."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-24
              method: GET

Orchestrates coworking workflow 25 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 25"
  description: "Orchestrates coworking workflow 25 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-025
          description: "Orchestrates coworking workflow 25 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 25 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates coworking workflow 26 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 26"
  description: "Orchestrates coworking workflow 26 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-026
          description: "Orchestrates coworking workflow 26 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 26 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves coworking operational data for workflow 27.

naftiko: "0.5"
info:
  label: "Coworking Data Query 27"
  description: "Retrieves coworking operational data for workflow 27."
  tags:
    - coworking
    - operations
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: get-data-27
          description: "Query coworking data for workflow 27."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "coworking-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: coworking-api
      baseUri: "https://api.wework.com/coworking/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-27
              method: GET

Orchestrates coworking workflow 28 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Coworking Workflow 28"
  description: "Orchestrates coworking workflow 28 by coordinating across systems, validating data, and sending notifications."
  tags:
    - coworking
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: coworking
      port: 8080
      tools:
        - name: run-coworking-workflow-028
          description: "Orchestrates coworking workflow 28 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Coworking Workflow 28 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.

naftiko: "0.5"
info:
  label: "Cross-Functional Project Kickoff Orchestrator"
  description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
  tags:
    - project-management
    - collaboration
    - operations
capability:
  exposes:
    - type: mcp
      namespace: project-management
      port: 8080
      tools:
        - name: run-cross-functional-project-kickoff-orchestrator
          description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.

naftiko: "0.5"
info:
  label: "Customer Data Privacy Request Handler"
  description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
  tags:
    - compliance
    - privacy
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: run-customer-data-privacy-request-handler
          description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.

naftiko: "0.5"
info:
  label: "Customer Journey Mapping Orchestrator"
  description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
  tags:
    - customer-experience
    - analytics
    - product-management
capability:
  exposes:
    - type: mcp
      namespace: customer-experience
      port: 8080
      tools:
        - name: run-customer-journey-mapping-orchestrator
          description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.

naftiko: "0.5"
info:
  label: "Data Governance Review Orchestrator"
  description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
  tags:
    - data-governance
    - compliance
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: data-governance
      port: 8080
      tools:
        - name: run-data-governance-review-orchestrator
          description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves a Datadog monitor status.

naftiko: "0.5"
info:
  label: "Datadog Monitor Viewer"
  description: "Retrieves a Datadog monitor status."
  tags:
    - monitoring
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: monitoring
      port: 8080
      tools:
        - name: get-datadog
          description: "Retrieves a Datadog monitor status."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The datadog monitor viewer identifier."
          call: "monitoring-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: monitoring-api
      baseUri: "https://api.wework.com/monitoring/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: datadog
          path: "/datadog/monitor/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-datadog
              method: GET

Creates a hot desk reservation for a member at a specific building and floor.

naftiko: "0.5"
info:
  label: "Desk Hoteling Reservation"
  description: "Creates a hot desk reservation for a member at a specific building and floor."
  tags:
    - space-management
    - booking
    - hot-desk
capability:
  exposes:
    - type: mcp
      namespace: desk-booking
      port: 8080
      tools:
        - name: reserve-hot-desk
          description: "Reserve a hot desk for a member at a building and floor."
          inputParameters:
            - name: member_id
              in: body
              type: string
              description: "The member account identifier."
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: floor
              in: body
              type: string
              description: "The floor number."
            - name: date
              in: body
              type: string
              description: "Reservation date in YYYY-MM-DD format."
          call: "space.create-desk-reservation"
          with:
            member_id: "{{member_id}}"
            building_id: "{{building_id}}"
            floor: "{{floor}}"
            date: "{{date}}"
          outputParameters:
            - name: reservation_id
              type: string
              mapping: "$.reservation.id"
            - name: desk_number
              type: string
              mapping: "$.reservation.desk_number"
            - name: floor
              type: string
              mapping: "$.reservation.floor"
  consumes:
    - type: http
      namespace: space
      baseUri: "https://api.wework.com/space/v2"
      authentication:
        type: bearer
        token: "$secrets.space_api_token"
      resources:
        - name: desk-reservations
          path: "/buildings/{{building_id}}/desks/reserve"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: create-desk-reservation
              method: POST

Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.

naftiko: "0.5"
info:
  label: "Digital Transformation Progress Orchestrator"
  description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
  tags:
    - strategy
    - analytics
    - project-management
capability:
  exposes:
    - type: mcp
      namespace: strategy
      port: 8080
      tools:
        - name: run-digital-transformation-progress-orchestrator
          description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.

naftiko: "0.5"
info:
  label: "Disaster Recovery Test Orchestrator"
  description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
  tags:
    - infrastructure
    - operations
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: infrastructure
      port: 8080
      tools:
        - name: run-disaster-recovery-test-orchestrator
          description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Sends a lease agreement for electronic signature via DocuSign and returns the envelope status.

naftiko: "0.5"
info:
  label: "DocuSign Lease Agreement"
  description: "Sends a lease agreement for electronic signature via DocuSign and returns the envelope status."
  tags:
    - membership
    - docusign
    - contracts
capability:
  exposes:
    - type: mcp
      namespace: contracts
      port: 8080
      tools:
        - name: send-lease-agreement
          description: "Send a lease agreement via DocuSign for electronic signature."
          inputParameters:
            - name: member_name
              in: body
              type: string
              description: "The member's full name."
            - name: member_email
              in: body
              type: string
              description: "The member's email address."
            - name: template_id
              in: body
              type: string
              description: "The DocuSign template ID for the lease."
          call: "docusign.create-envelope"
          with:
            template_id: "{{template_id}}"
            signer_name: "{{member_name}}"
            signer_email: "{{member_email}}"
          outputParameters:
            - name: envelope_id
              type: string
              mapping: "$.envelopeId"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/{{account_id}}"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      inputParameters:
        - name: account_id
          in: path
          value: "$secrets.docusign_account_id"
      resources:
        - name: envelopes
          path: "/envelopes"
          operations:
            - name: create-envelope
              method: POST

Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.

naftiko: "0.5"
info:
  label: "Employee Offboarding Orchestrator"
  description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
  tags:
    - hr
    - identity
    - operations
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: run-employee-offboarding-orchestrator
          description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions building access, sets up a SharePoint folder, and sends a Microsoft Teams welcome message.

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions building access, sets up a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate the onboarding sequence."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday worker ID."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: building_id
              in: body
              type: string
              description: "The assigned building."
          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"
            - name: provision-access
              type: call
              call: "access-control.create-credential"
              with:
                member_id: "{{employee_id}}"
                building_id: "{{building_id}}"
                access_level: "employee"
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding"
                folder_path: "NewHires/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to WeWork, {{get-employee.first_name}}! Building: {{building_id}}. Ticket: {{open-ticket.number}}. Docs: {{provision-folder.url}}"
  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://wework.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: access-control
      baseUri: "https://api.wework.com/access/v1"
      authentication:
        type: bearer
        token: "$secrets.access_control_token"
      resources:
        - name: credentials
          path: "/credentials"
          operations:
            - name: create-credential
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves energy consumption data for a building.

naftiko: "0.5"
info:
  label: "Energy Consumption Report"
  description: "Retrieves energy consumption data for a building."
  tags:
    - sustainability
    - facilities
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: get-energy
          description: "Retrieves energy consumption data for a building."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The energy consumption report identifier."
          call: "sustainability-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: sustainability-api
      baseUri: "https://api.wework.com/sustainability/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: energy
          path: "/energy/consumption/report/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-energy
              method: GET

When an event space is requested, checks availability, creates the booking, sets up A/V equipment requests in ServiceNow, sends confirmation via SendGrid, and posts to the building Slack channel.

naftiko: "0.5"
info:
  label: "Event Space Booking Orchestrator"
  description: "When an event space is requested, checks availability, creates the booking, sets up A/V equipment requests in ServiceNow, sends confirmation via SendGrid, and posts to the building Slack channel."
  tags:
    - space-management
    - events
    - servicenow
    - sendgrid
    - slack
capability:
  exposes:
    - type: mcp
      namespace: event-booking
      port: 8080
      tools:
        - name: book-event-space
          description: "Given event details, check availability, create booking, arrange A/V, confirm, and announce."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: space_id
              in: body
              type: string
              description: "The event space identifier."
            - name: event_name
              in: body
              type: string
              description: "Name of the event."
            - name: organizer_email
              in: body
              type: string
              description: "Event organizer email."
            - name: event_date
              in: body
              type: string
              description: "Event date in YYYY-MM-DD format."
            - name: attendee_count
              in: body
              type: integer
              description: "Expected number of attendees."
          steps:
            - name: check-availability
              type: call
              call: "space.check-event-availability"
              with:
                building_id: "{{building_id}}"
                space_id: "{{space_id}}"
                date: "{{event_date}}"
            - name: create-booking
              type: call
              call: "space.create-event-booking"
              with:
                building_id: "{{building_id}}"
                space_id: "{{space_id}}"
                event_name: "{{event_name}}"
                date: "{{event_date}}"
                attendees: "{{attendee_count}}"
            - name: request-av
              type: call
              call: "servicenow.create-request"
              with:
                short_description: "A/V setup: {{event_name}} at {{building_id}}/{{space_id}}"
                category: "event_support"
                description: "Event: {{event_name}} on {{event_date}}. Attendees: {{attendee_count}}"
            - name: send-confirmation
              type: call
              call: "sendgrid.send-email"
              with:
                to: "{{organizer_email}}"
                template_id: "event_booking_confirmation"
                dynamic_data:
                  event_name: "{{event_name}}"
                  date: "{{event_date}}"
                  space: "{{space_id}}"
                  booking_id: "{{create-booking.id}}"
            - name: announce
              type: call
              call: "slack.post-message"
              with:
                channel: "building-{{building_id}}-events"
                text: "Upcoming event: {{event_name}} on {{event_date}} at {{space_id}}. {{attendee_count}} attendees expected."
  consumes:
    - type: http
      namespace: space
      baseUri: "https://api.wework.com/space/v2"
      authentication:
        type: bearer
        token: "$secrets.space_api_token"
      resources:
        - name: event-availability
          path: "/buildings/{{building_id}}/events/{{space_id}}/availability"
          inputParameters:
            - name: building_id
              in: path
            - name: space_id
              in: path
          operations:
            - name: check-event-availability
              method: GET
        - name: event-bookings
          path: "/buildings/{{building_id}}/events"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: create-event-booking
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://wework.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              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

Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.

naftiko: "0.5"
info:
  label: "Executive Dashboard Refresh Orchestrator"
  description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
  tags:
    - analytics
    - power-bi
    - business
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: run-executive-dashboard-refresh-orchestrator
          description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

When a maintenance issue is reported, creates a ServiceNow work order, assigns a technician, notifies the facilities team in Slack, and updates the building status dashboard.

naftiko: "0.5"
info:
  label: "Facilities Maintenance Request Pipeline"
  description: "When a maintenance issue is reported, creates a ServiceNow work order, assigns a technician, notifies the facilities team in Slack, and updates the building status dashboard."
  tags:
    - facilities
    - maintenance
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: facilities-maintenance
      port: 8080
      tools:
        - name: submit-maintenance-request
          description: "Given building, location, and issue details, create work order, assign tech, and notify team."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: floor
              in: body
              type: string
              description: "The floor number."
            - name: issue_type
              in: body
              type: string
              description: "Type of issue (plumbing, electrical, hvac, cleaning, furniture)."
            - name: description
              in: body
              type: string
              description: "Description of the maintenance issue."
            - name: priority
              in: body
              type: string
              description: "Priority level (low, medium, high, emergency)."
          steps:
            - name: create-work-order
              type: call
              call: "servicenow.create-work-order"
              with:
                short_description: "Maintenance: {{issue_type}} at {{building_id}} Floor {{floor}}"
                category: "facilities_maintenance"
                priority: "{{priority}}"
                description: "{{description}}"
            - name: assign-tech
              type: call
              call: "facilities.assign-technician"
              with:
                building_id: "{{building_id}}"
                issue_type: "{{issue_type}}"
                work_order: "{{create-work-order.number}}"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "facilities-{{building_id}}"
                text: "Maintenance request: {{issue_type}} on Floor {{floor}} ({{priority}}). Work order: {{create-work-order.number}}. Assigned to: {{assign-tech.technician_name}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://wework.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: work-orders
          path: "/table/wm_order"
          operations:
            - name: create-work-order
              method: POST
    - type: http
      namespace: facilities
      baseUri: "https://api.wework.com/facilities/v1"
      authentication:
        type: bearer
        token: "$secrets.facilities_api_token"
      resources:
        - name: technicians
          path: "/buildings/{{building_id}}/assign"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: assign-technician
              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 GitHub repository information.

naftiko: "0.5"
info:
  label: "GitHub Repo Viewer"
  description: "Retrieves GitHub repository information."
  tags:
    - engineering
    - github
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-github
          description: "Retrieves GitHub repository information."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The github repo viewer identifier."
          call: "engineering-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: engineering-api
      baseUri: "https://api.wework.com/engineering/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: github
          path: "/github/repo/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-github
              method: GET

Retrieves a document from Google Drive by file ID.

naftiko: "0.5"
info:
  label: "Google Drive Document Retrieval"
  description: "Retrieves a document from Google Drive by file ID."
  tags:
    - collaboration
    - google-drive
    - documents
capability:
  exposes:
    - type: mcp
      namespace: document-mgmt
      port: 8080
      tools:
        - name: get-drive-file
          description: "Fetch a Google Drive file's metadata by file ID."
          inputParameters:
            - name: file_id
              in: body
              type: string
              description: "The Google Drive file identifier."
          call: "gdrive.get-file"
          with:
            file_id: "{{file_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.name"
            - name: owner
              type: string
              mapping: "$.owners[0].displayName"
            - name: modified_time
              type: string
              mapping: "$.modifiedTime"
  consumes:
    - type: http
      namespace: gdrive
      baseUri: "https://www.googleapis.com/drive/v3"
      authentication:
        type: bearer
        token: "$secrets.google_drive_token"
      resources:
        - name: files
          path: "/files/{{file_id}}?fields=name,owners,modifiedTime"
          inputParameters:
            - name: file_id
              in: path
          operations:
            - name: get-file
              method: GET

Retrieves a file from Google Drive.

naftiko: "0.5"
info:
  label: "Google Drive File Viewer"
  description: "Retrieves a file from Google Drive."
  tags:
    - collaboration
    - google-drive
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: get-google
          description: "Retrieves a file from Google Drive."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The google drive file viewer identifier."
          call: "collaboration-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: collaboration-api
      baseUri: "https://api.wework.com/collaboration/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: google
          path: "/google/drive/file/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-google
              method: GET

Retrieves HVAC system status for a building including temperature, humidity, and system health from the building management system.

naftiko: "0.5"
info:
  label: "HVAC System Status"
  description: "Retrieves HVAC system status for a building including temperature, humidity, and system health from the building management system."
  tags:
    - facilities
    - hvac
    - building-management
capability:
  exposes:
    - type: mcp
      namespace: building-systems
      port: 8080
      tools:
        - name: get-hvac-status
          description: "Fetch HVAC system status for a building and zone."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: zone_id
              in: body
              type: string
              description: "The HVAC zone identifier."
          call: "bms.get-hvac-status"
          with:
            building_id: "{{building_id}}"
            zone_id: "{{zone_id}}"
          outputParameters:
            - name: temperature_f
              type: number
              mapping: "$.hvac.temperature"
            - name: humidity_pct
              type: number
              mapping: "$.hvac.humidity"
            - name: system_status
              type: string
              mapping: "$.hvac.status"
            - name: mode
              type: string
              mapping: "$.hvac.mode"
  consumes:
    - type: http
      namespace: bms
      baseUri: "https://api.wework.com/bms/v1"
      authentication:
        type: bearer
        token: "$secrets.bms_api_token"
      resources:
        - name: hvac
          path: "/buildings/{{building_id}}/zones/{{zone_id}}/hvac"
          inputParameters:
            - name: building_id
              in: path
            - name: zone_id
              in: path
          operations:
            - name: get-hvac-status
              method: GET

Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.

naftiko: "0.5"
info:
  label: "Infrastructure Capacity Planning Orchestrator"
  description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
  tags:
    - infrastructure
    - planning
    - finance
capability:
  exposes:
    - type: mcp
      namespace: infrastructure
      port: 8080
      tools:
        - name: run-infrastructure-capacity-planning-orchestrator
          description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.

naftiko: "0.5"
info:
  label: "IT Change Management Orchestrator"
  description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
  tags:
    - it
    - servicenow
    - operations
capability:
  exposes:
    - type: mcp
      namespace: it
      port: 8080
      tools:
        - name: run-it-change-management-orchestrator
          description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed IT Change Management Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves a Jira ticket by issue key.

naftiko: "0.5"
info:
  label: "Jira Ticket Viewer"
  description: "Retrieves a Jira ticket by issue key."
  tags:
    - engineering
    - jira
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-jira
          description: "Retrieves a Jira ticket by issue key."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The jira ticket viewer identifier."
          call: "engineering-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: engineering-api
      baseUri: "https://api.wework.com/engineering/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: jira
          path: "/jira/ticket/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-jira
              method: GET

Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.

naftiko: "0.5"
info:
  label: "Knowledge Base Refresh Orchestrator"
  description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
  tags:
    - knowledge-management
    - collaboration
    - operations
capability:
  exposes:
    - type: mcp
      namespace: knowledge-management
      port: 8080
      tools:
        - name: run-knowledge-base-refresh-orchestrator
          description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

When a member lease approaches expiry, retrieves account details from Salesforce, generates a renewal proposal, sends via DocuSign for signature, and notifies the sales team in Slack.

naftiko: "0.5"
info:
  label: "Lease Renewal Workflow"
  description: "When a member lease approaches expiry, retrieves account details from Salesforce, generates a renewal proposal, sends via DocuSign for signature, and notifies the sales team in Slack."
  tags:
    - membership
    - contracts
    - salesforce
    - docusign
    - slack
capability:
  exposes:
    - type: mcp
      namespace: lease-renewal
      port: 8080
      tools:
        - name: initiate-lease-renewal
          description: "Given a Salesforce account ID, generate and send renewal proposal."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The Salesforce member account ID."
            - name: new_plan_type
              in: body
              type: string
              description: "Proposed plan type for renewal."
            - name: renewal_term_months
              in: body
              type: integer
              description: "Renewal term in months."
          steps:
            - name: get-account
              type: call
              call: "salesforce.get-account"
              with:
                account_id: "{{account_id}}"
            - name: send-agreement
              type: call
              call: "docusign.create-envelope"
              with:
                template_id: "lease_renewal"
                signer_name: "{{get-account.name}}"
                signer_email: "{{get-account.email}}"
                custom_fields:
                  plan_type: "{{new_plan_type}}"
                  term: "{{renewal_term_months}}"
            - name: update-crm
              type: call
              call: "salesforce.update-account"
              with:
                account_id: "{{account_id}}"
                renewal_status: "proposal_sent"
                envelope_id: "{{send-agreement.envelope_id}}"
            - name: notify-sales
              type: call
              call: "slack.post-message"
              with:
                channel: "member-renewals"
                text: "Lease renewal sent to {{get-account.name}} for {{new_plan_type}} ({{renewal_term_months}} months). DocuSign: {{send-agreement.envelope_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-account
              method: GET
            - name: update-account
              method: PATCH
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/{{account_id}}"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      inputParameters:
        - name: account_id
          in: path
          value: "$secrets.docusign_account_id"
      resources:
        - name: envelopes
          path: "/envelopes"
          operations:
            - name: create-envelope
              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

Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.

naftiko: "0.5"
info:
  label: "Marketing Campaign Performance Orchestrator"
  description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
  tags:
    - marketing
    - analytics
    - finance
capability:
  exposes:
    - type: mcp
      namespace: marketing
      port: 8080
      tools:
        - name: run-marketing-campaign-performance-orchestrator
          description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

When a member books a meeting room, validates availability in the space system, creates the reservation, sends a calendar invite via Microsoft Outlook, and charges credits via the billing API.

naftiko: "0.5"
info:
  label: "Meeting Room Booking Pipeline"
  description: "When a member books a meeting room, validates availability in the space system, creates the reservation, sends a calendar invite via Microsoft Outlook, and charges credits via the billing API."
  tags:
    - space-management
    - booking
    - microsoft-outlook
    - billing
capability:
  exposes:
    - type: mcp
      namespace: room-booking
      port: 8080
      tools:
        - name: book-meeting-room
          description: "Given room and time details, check availability, create reservation, send invite, and charge credits."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The WeWork building identifier."
            - name: room_id
              in: body
              type: string
              description: "The meeting room identifier."
            - name: member_email
              in: body
              type: string
              description: "The booking member's email."
            - name: start_time
              in: body
              type: string
              description: "Start time in ISO 8601 format."
            - name: duration_minutes
              in: body
              type: integer
              description: "Duration in minutes."
            - name: attendees
              in: body
              type: string
              description: "Comma-separated attendee emails."
          steps:
            - name: check-availability
              type: call
              call: "space.check-room-availability"
              with:
                building_id: "{{building_id}}"
                room_id: "{{room_id}}"
                start_time: "{{start_time}}"
                duration: "{{duration_minutes}}"
            - name: create-reservation
              type: call
              call: "space.create-booking"
              with:
                building_id: "{{building_id}}"
                room_id: "{{room_id}}"
                member_email: "{{member_email}}"
                start_time: "{{start_time}}"
                duration: "{{duration_minutes}}"
            - name: send-invite
              type: call
              call: "outlook.create-event"
              with:
                subject: "WeWork Meeting Room: {{room_id}}"
                start: "{{start_time}}"
                duration: "{{duration_minutes}}"
                attendees: "{{attendees}}"
                location: "Building {{building_id}}, Room {{room_id}}"
            - name: charge-credits
              type: call
              call: "billing.charge-credits"
              with:
                member_email: "{{member_email}}"
                credits: "{{check-availability.credit_cost}}"
                description: "Meeting room {{room_id}} booking"
  consumes:
    - type: http
      namespace: space
      baseUri: "https://api.wework.com/space/v2"
      authentication:
        type: bearer
        token: "$secrets.space_api_token"
      resources:
        - name: rooms
          path: "/buildings/{{building_id}}/rooms/{{room_id}}/availability"
          inputParameters:
            - name: building_id
              in: path
            - name: room_id
              in: path
          operations:
            - name: check-room-availability
              method: GET
        - name: bookings
          path: "/bookings"
          operations:
            - name: create-booking
              method: POST
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: events
          path: "/me/events"
          operations:
            - name: create-event
              method: POST
    - type: http
      namespace: billing
      baseUri: "https://api.wework.com/billing/v1"
      authentication:
        type: bearer
        token: "$secrets.billing_api_token"
      resources:
        - name: credits
          path: "/credits/charge"
          operations:
            - name: charge-credits
              method: POST

When a member requests cancellation, retrieves the account from Salesforce, checks contract terms, revokes building access, stops billing in SAP, and sends a confirmation via SendGrid.

naftiko: "0.5"
info:
  label: "Member Cancellation Workflow"
  description: "When a member requests cancellation, retrieves the account from Salesforce, checks contract terms, revokes building access, stops billing in SAP, and sends a confirmation via SendGrid."
  tags:
    - membership
    - cancellation
    - salesforce
    - sap
    - sendgrid
capability:
  exposes:
    - type: mcp
      namespace: member-lifecycle
      port: 8080
      tools:
        - name: process-cancellation
          description: "Given a member account ID, process cancellation across all systems."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The Salesforce member account ID."
            - name: cancellation_reason
              in: body
              type: string
              description: "Reason for cancellation."
            - name: effective_date
              in: body
              type: string
              description: "Cancellation effective date in YYYY-MM-DD format."
          steps:
            - name: get-account
              type: call
              call: "salesforce.get-account"
              with:
                account_id: "{{account_id}}"
            - name: revoke-access
              type: call
              call: "access-control.revoke-credential"
              with:
                member_id: "{{account_id}}"
                effective_date: "{{effective_date}}"
            - name: stop-billing
              type: call
              call: "sap.deactivate-customer"
              with:
                customer_id: "{{get-account.sap_customer_id}}"
                effective_date: "{{effective_date}}"
            - name: update-crm
              type: call
              call: "salesforce.update-account"
              with:
                account_id: "{{account_id}}"
                status: "Cancelled"
                cancellation_reason: "{{cancellation_reason}}"
            - name: send-confirmation
              type: call
              call: "sendgrid.send-email"
              with:
                to: "{{get-account.email}}"
                template_id: "cancellation_confirmation"
                dynamic_data:
                  member_name: "{{get-account.name}}"
                  effective_date: "{{effective_date}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-account
              method: GET
            - name: update-account
              method: PATCH
    - type: http
      namespace: access-control
      baseUri: "https://api.wework.com/access/v1"
      authentication:
        type: bearer
        token: "$secrets.access_control_token"
      resources:
        - name: credentials
          path: "/credentials/revoke"
          operations:
            - name: revoke-credential
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://wework-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: customers
          path: "/A_BusinessPartner('{{customer_id}}')"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: deactivate-customer
              method: PATCH
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST

Retrieves contract status for a member.

naftiko: "0.5"
info:
  label: "Member Contract Status"
  description: "Retrieves contract status for a member."
  tags:
    - membership
    - finance
capability:
  exposes:
    - type: mcp
      namespace: membership
      port: 8080
      tools:
        - name: get-member
          description: "Retrieves contract status for a member."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The member contract status identifier."
          call: "membership-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: membership-api
      baseUri: "https://api.wework.com/membership/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: member
          path: "/member/contract/status/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-member
              method: GET

When a new member signs up, creates the account in Salesforce, provisions building access in the access control system, sets up billing in SAP, provisions a SharePoint workspace, and sends a welcome message via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Member Onboarding Orchestrator"
  description: "When a new member signs up, creates the account in Salesforce, provisions building access in the access control system, sets up billing in SAP, provisions a SharePoint workspace, and sends a welcome message via Microsoft Teams."
  tags:
    - membership
    - onboarding
    - salesforce
    - sap
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: member-onboarding
      port: 8080
      tools:
        - name: onboard-new-member
          description: "Given member details, create accounts, provision access, set up billing, and welcome the member."
          inputParameters:
            - name: member_name
              in: body
              type: string
              description: "The new member's full name."
            - name: member_email
              in: body
              type: string
              description: "The new member's email address."
            - name: building_id
              in: body
              type: string
              description: "The WeWork building identifier."
            - name: plan_type
              in: body
              type: string
              description: "Membership plan type (hot_desk, dedicated_desk, private_office)."
          steps:
            - name: create-sf-account
              type: call
              call: "salesforce.create-account"
              with:
                name: "{{member_name}}"
                type: "Member"
                email: "{{member_email}}"
                building: "{{building_id}}"
                plan: "{{plan_type}}"
            - name: provision-access
              type: call
              call: "access-control.create-credential"
              with:
                member_id: "{{create-sf-account.id}}"
                building_id: "{{building_id}}"
                access_level: "{{plan_type}}"
            - name: setup-billing
              type: call
              call: "sap.create-customer"
              with:
                name: "{{member_name}}"
                email: "{{member_email}}"
                plan_type: "{{plan_type}}"
            - name: provision-workspace
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "member_workspaces"
                folder_path: "Members/{{create-sf-account.id}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{member_email}}"
                text: "Welcome to WeWork, {{member_name}}! Your {{plan_type}} at building {{building_id}} is ready. Access card: {{provision-access.card_number}}. Workspace: {{provision-workspace.url}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account"
          operations:
            - name: create-account
              method: POST
    - type: http
      namespace: access-control
      baseUri: "https://api.wework.com/access/v1"
      authentication:
        type: bearer
        token: "$secrets.access_control_token"
      resources:
        - name: credentials
          path: "/credentials"
          operations:
            - name: create-credential
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://wework-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: customers
          path: "/A_BusinessPartner"
          operations:
            - name: create-customer
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Sends a formatted notification message to a Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Notification"
  description: "Sends a formatted notification message to a Microsoft Teams channel."
  tags:
    - collaboration
    - microsoft-teams
    - messaging
capability:
  exposes:
    - type: mcp
      namespace: teams-messaging
      port: 8080
      tools:
        - name: send-teams-notification
          description: "Send a notification to a Microsoft Teams channel."
          inputParameters:
            - name: team_id
              in: body
              type: string
              description: "The Teams team ID."
            - name: channel_id
              in: body
              type: string
              description: "The Teams channel ID."
            - name: message
              in: body
              type: string
              description: "The notification message."
          call: "msteams.send-message"
          with:
            team_id: "{{team_id}}"
            channel_id: "{{channel_id}}"
            text: "{{message}}"
  consumes:
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Sends a message to a Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Microsoft Teams Message Sender"
  description: "Sends a message to a Microsoft Teams channel."
  tags:
    - communications
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: communications
      port: 8080
      tools:
        - name: get-microsoft
          description: "Sends a message to a Microsoft Teams channel."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The microsoft teams message sender identifier."
          call: "communications-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: communications-api
      baseUri: "https://api.wework.com/communications/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: microsoft
          path: "/microsoft/teams/message/sender/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-microsoft
              method: GET

At the start of each billing cycle, calculates usage charges from the space management system, generates invoices in SAP, sends invoice emails via SendGrid, and updates Salesforce with billing status.

naftiko: "0.5"
info:
  label: "Monthly Billing Cycle Orchestrator"
  description: "At the start of each billing cycle, calculates usage charges from the space management system, generates invoices in SAP, sends invoice emails via SendGrid, and updates Salesforce with billing status."
  tags:
    - billing
    - sap
    - sendgrid
    - salesforce
    - membership
capability:
  exposes:
    - type: mcp
      namespace: billing
      port: 8080
      tools:
        - name: run-billing-cycle
          description: "Given a billing period and building ID, calculate charges, generate invoices, send emails, and update CRM."
          inputParameters:
            - name: billing_period
              in: body
              type: string
              description: "Billing period (e.g., 2026-03)."
            - name: building_id
              in: body
              type: string
              description: "The WeWork building identifier."
          steps:
            - name: calculate-usage
              type: call
              call: "space.get-usage-summary"
              with:
                building_id: "{{building_id}}"
                period: "{{billing_period}}"
            - name: generate-invoices
              type: call
              call: "sap.create-billing-run"
              with:
                building_id: "{{building_id}}"
                period: "{{billing_period}}"
                usage_data: "{{calculate-usage.members}}"
            - name: send-invoices
              type: call
              call: "sendgrid.send-email"
              with:
                list_id: "building-{{building_id}}-members"
                template_id: "monthly_invoice"
                dynamic_data:
                  period: "{{billing_period}}"
            - name: update-crm
              type: call
              call: "salesforce.update-billing-status"
              with:
                building_id: "{{building_id}}"
                period: "{{billing_period}}"
                invoice_count: "{{generate-invoices.count}}"
                total_amount: "{{generate-invoices.total}}"
  consumes:
    - type: http
      namespace: space
      baseUri: "https://api.wework.com/space/v2"
      authentication:
        type: bearer
        token: "$secrets.space_api_token"
      resources:
        - name: usage
          path: "/buildings/{{building_id}}/usage"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: get-usage-summary
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://wework-s4.sap.com/sap/opu/odata/sap/API_BILLING_DOCUMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: billing
          path: "/A_BillingDocument"
          operations:
            - name: create-billing-run
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: billing
          path: "/sobjects/Billing_Status__c"
          operations:
            - name: update-billing-status
              method: POST

Queries MuleSoft Anypoint Platform for API health status including uptime, error rates, and response times.

naftiko: "0.5"
info:
  label: "MuleSoft API Health Check"
  description: "Queries MuleSoft Anypoint Platform for API health status including uptime, error rates, and response times."
  tags:
    - integration
    - mulesoft
    - monitoring
capability:
  exposes:
    - type: mcp
      namespace: api-health
      port: 8080
      tools:
        - name: get-api-health
          description: "Fetch MuleSoft API health metrics for a given API ID."
          inputParameters:
            - name: api_id
              in: body
              type: string
              description: "The MuleSoft API identifier."
          call: "mulesoft.get-api-status"
          with:
            api_id: "{{api_id}}"
          outputParameters:
            - name: uptime_pct
              type: number
              mapping: "$.uptime"
            - name: error_rate
              type: number
              mapping: "$.errorRate"
            - name: avg_response_ms
              type: number
              mapping: "$.avgResponseTime"
  consumes:
    - type: http
      namespace: mulesoft
      baseUri: "https://anypoint.mulesoft.com/analytics/1.0"
      authentication:
        type: bearer
        token: "$secrets.mulesoft_token"
      resources:
        - name: apis
          path: "/{{org_id}}/environments/{{env_id}}/apis/{{api_id}}"
          inputParameters:
            - name: org_id
              in: path
            - name: env_id
              in: path
            - name: api_id
              in: path
          operations:
            - name: get-api-status
              method: GET

Executes an occupancy analytics query against Snowflake for building utilization trends.

naftiko: "0.5"
info:
  label: "Occupancy Analytics Query"
  description: "Executes an occupancy analytics query against Snowflake for building utilization trends."
  tags:
    - analytics
    - snowflake
    - space-management
capability:
  exposes:
    - type: mcp
      namespace: occupancy-analytics
      port: 8080
      tools:
        - name: query-occupancy-trends
          description: "Run an occupancy analytics query on Snowflake for a building and date range."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "snowflake.execute-query"
          with:
            statement: "SELECT floor, day_of_week, AVG(occupancy_pct) as avg_occupancy, MAX(peak_occupancy) as peak FROM building_ops.occupancy WHERE building_id = '{{building_id}}' AND date BETWEEN '{{start_date}}' AND '{{end_date}}' GROUP BY floor, day_of_week ORDER BY floor, day_of_week"
            database: "WEWORK_OPS"
          outputParameters:
            - name: results
              type: array
              mapping: "$.data"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://wework.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST

Allocates a parking space for a member at a building and updates the access system.

naftiko: "0.5"
info:
  label: "Parking Space Allocation"
  description: "Allocates a parking space for a member at a building and updates the access system."
  tags:
    - facilities
    - parking
    - space-management
capability:
  exposes:
    - type: mcp
      namespace: parking
      port: 8080
      tools:
        - name: allocate-parking
          description: "Allocate a parking space for a member at a building."
          inputParameters:
            - name: member_id
              in: body
              type: string
              description: "The member account identifier."
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: vehicle_plate
              in: body
              type: string
              description: "The vehicle license plate number."
          call: "space.allocate-parking"
          with:
            member_id: "{{member_id}}"
            building_id: "{{building_id}}"
            plate: "{{vehicle_plate}}"
          outputParameters:
            - name: space_number
              type: string
              mapping: "$.parking.space_number"
            - name: level
              type: string
              mapping: "$.parking.level"
  consumes:
    - type: http
      namespace: space
      baseUri: "https://api.wework.com/space/v2"
      authentication:
        type: bearer
        token: "$secrets.space_api_token"
      resources:
        - name: parking
          path: "/buildings/{{building_id}}/parking/allocate"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: allocate-parking
              method: POST

Triggers a Power BI dataset refresh for occupancy and financial dashboards.

naftiko: "0.5"
info:
  label: "Power BI Dashboard Refresh"
  description: "Triggers a Power BI dataset refresh for occupancy and financial dashboards."
  tags:
    - analytics
    - power-bi
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: bi-reporting
      port: 8080
      tools:
        - name: refresh-dataset
          description: "Trigger a Power BI dataset refresh."
          inputParameters:
            - name: workspace_id
              in: body
              type: string
              description: "The Power BI workspace ID."
            - name: dataset_id
              in: body
              type: string
              description: "The Power BI dataset ID."
          call: "powerbi.trigger-refresh"
          with:
            group_id: "{{workspace_id}}"
            dataset_id: "{{dataset_id}}"
  consumes:
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: group_id
              in: path
            - name: dataset_id
              in: path
          operations:
            - name: trigger-refresh
              method: POST

Triggers a Power BI dataset refresh.

naftiko: "0.5"
info:
  label: "Power BI Dashboard Refresher"
  description: "Triggers a Power BI dataset refresh."
  tags:
    - analytics
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: get-power
          description: "Triggers a Power BI dataset refresh."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The power bi dashboard refresher identifier."
          call: "analytics-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://api.wework.com/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: power
          path: "/power/bi/dashboard/refresher/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-power
              method: GET

When printer supply levels are low, creates a purchase requisition in SAP, opens a ServiceNow request, and notifies the facilities team in Slack.

naftiko: "0.5"
info:
  label: "Printer/Copier Supply Reorder"
  description: "When printer supply levels are low, creates a purchase requisition in SAP, opens a ServiceNow request, and notifies the facilities team in Slack."
  tags:
    - facilities
    - supplies
    - sap
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: supplies-mgmt
      port: 8080
      tools:
        - name: reorder-printer-supplies
          description: "Given a building and supply type, create PO, open request, and notify team."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: supply_type
              in: body
              type: string
              description: "Supply type (toner, paper, maintenance_kit)."
            - name: quantity
              in: body
              type: integer
              description: "Quantity to order."
          steps:
            - name: create-requisition
              type: call
              call: "sap.create-purchase-requisition"
              with:
                material: "SUPPLY_{{supply_type}}"
                quantity: "{{quantity}}"
                plant: "{{building_id}}"
            - name: create-request
              type: call
              call: "servicenow.create-request"
              with:
                short_description: "Printer supply order: {{supply_type}} for {{building_id}}"
                category: "facilities_supplies"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "facilities-{{building_id}}"
                text: "Printer supply order: {{quantity}}x {{supply_type}} for Building {{building_id}}. PO: {{create-requisition.number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://wework-s4.sap.com/sap/opu/odata/sap/API_PURCHASEREQ_PROCESS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: requisitions
          path: "/A_PurchaseRequisitionHeader"
          operations:
            - name: create-purchase-requisition
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://wework.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: requests
          path: "/table/sc_request"
          operations:
            - name: create-request
              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

Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.

naftiko: "0.5"
info:
  label: "Procurement Spend Analysis Orchestrator"
  description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
  tags:
    - procurement
    - analytics
    - finance
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: run-procurement-spend-analysis-orchestrator
          description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.

naftiko: "0.5"
info:
  label: "Quarterly Business Review Orchestrator"
  description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
  tags:
    - analytics
    - business
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: run-quarterly-business-review-orchestrator
          description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves a Salesforce account by account ID.

naftiko: "0.5"
info:
  label: "Salesforce Account Viewer"
  description: "Retrieves a Salesforce account by account ID."
  tags:
    - sales
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: sales
      port: 8080
      tools:
        - name: get-salesforce
          description: "Retrieves a Salesforce account by account ID."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The salesforce account viewer identifier."
          call: "sales-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: sales-api
      baseUri: "https://api.wework.com/sales/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: salesforce
          path: "/salesforce/account/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-salesforce
              method: GET

Retrieves a WeWork member account from Salesforce including plan type, building assignment, and contract status.

naftiko: "0.5"
info:
  label: "Salesforce Member Account Lookup"
  description: "Retrieves a WeWork member account from Salesforce including plan type, building assignment, and contract status."
  tags:
    - membership
    - salesforce
    - crm
capability:
  exposes:
    - type: mcp
      namespace: crm
      port: 8080
      tools:
        - name: get-member-account
          description: "Look up a Salesforce member account by ID."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The Salesforce account ID."
          call: "salesforce.get-account"
          with:
            account_id: "{{account_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.Name"
            - name: plan_type
              type: string
              mapping: "$.Plan_Type__c"
            - name: building
              type: string
              mapping: "$.Building__c"
            - name: contract_status
              type: string
              mapping: "$.Contract_Status__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-account
              method: GET

When an expense report is submitted in SAP Concur, validates and posts to SAP S/4HANA, and notifies finance.

naftiko: "0.5"
info:
  label: "SAP Concur Expense Report Sync"
  description: "When an expense report is submitted in SAP Concur, validates and posts to SAP S/4HANA, and notifies finance."
  tags:
    - finance
    - sap-concur
    - sap-s4hana
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: expense-management
      port: 8080
      tools:
        - name: sync-expense-report
          description: "Given a Concur expense report ID, validate, post to SAP, and notify finance."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The SAP Concur expense report identifier."
          steps:
            - name: get-report
              type: call
              call: "concur.get-expense-report"
              with:
                report_id: "{{report_id}}"
            - name: post-to-sap
              type: call
              call: "sap.create-expense-entry"
              with:
                amount: "{{get-report.total_amount}}"
                currency: "{{get-report.currency_code}}"
                cost_center: "{{get-report.cost_center}}"
            - name: notify-finance
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "finance-expenses"
                text: "Expense report {{report_id}} for {{get-report.total_amount}} posted to SAP. Document: {{post-to-sap.document_number}}"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: expense-reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-expense-report
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://wework-s4.sap.com/sap/opu/odata/sap/API_FINANCIALACCOUNTING_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: journal-entries
          path: "/A_JournalEntry"
          operations:
            - name: create-expense-entry
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves a SAP billing document by invoice number and returns amount, date, and payment status.

naftiko: "0.5"
info:
  label: "SAP Invoice Lookup"
  description: "Retrieves a SAP billing document by invoice number and returns amount, date, and payment status."
  tags:
    - billing
    - sap
    - finance
capability:
  exposes:
    - type: mcp
      namespace: finance
      port: 8080
      tools:
        - name: get-invoice
          description: "Look up a SAP billing document by invoice number."
          inputParameters:
            - name: invoice_number
              in: body
              type: string
              description: "The SAP billing document number."
          call: "sap.get-billing-doc"
          with:
            invoice_number: "{{invoice_number}}"
          outputParameters:
            - name: amount
              type: number
              mapping: "$.d.TotalNetAmount"
            - name: currency
              type: string
              mapping: "$.d.TransactionCurrency"
            - name: billing_date
              type: string
              mapping: "$.d.BillingDocumentDate"
            - name: payment_status
              type: string
              mapping: "$.d.OverallBillingStatus"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://wework-s4.sap.com/sap/opu/odata/sap/API_BILLING_DOCUMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: billing-documents
          path: "/A_BillingDocument('{{invoice_number}}')"
          inputParameters:
            - name: invoice_number
              in: path
          operations:
            - name: get-billing-doc
              method: GET

Retrieves a SAP purchase order by number.

naftiko: "0.5"
info:
  label: "SAP Purchase Order Viewer"
  description: "Retrieves a SAP purchase order by number."
  tags:
    - procurement
    - sap
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: get-sap
          description: "Retrieves a SAP purchase order by number."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The sap purchase order viewer identifier."
          call: "procurement-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: procurement-api
      baseUri: "https://api.wework.com/procurement/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: sap
          path: "/sap/purchase/order/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-sap
              method: GET

Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.

naftiko: "0.5"
info:
  label: "Security Audit Orchestrator"
  description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
  tags:
    - security
    - servicenow
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: security
      port: 8080
      tools:
        - name: run-security-audit-orchestrator
          description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Security Audit Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Checks the status of a facilities service request.

naftiko: "0.5"
info:
  label: "Service Request Status"
  description: "Checks the status of a facilities service request."
  tags:
    - facilities
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: facilities
      port: 8080
      tools:
        - name: get-service
          description: "Checks the status of a facilities service request."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The service request status identifier."
          call: "facilities-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: facilities-api
      baseUri: "https://api.wework.com/facilities/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: service
          path: "/service/request/status/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-service
              method: GET

Creates a new incident in ServiceNow.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Creator"
  description: "Creates a new incident in ServiceNow."
  tags:
    - it
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it
      port: 8080
      tools:
        - name: get-servicenow
          description: "Creates a new incident in ServiceNow."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The servicenow incident creator identifier."
          call: "it-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: it-api
      baseUri: "https://api.wework.com/it/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: servicenow
          path: "/servicenow/incident/creator/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-servicenow
              method: GET

Retrieves a ServiceNow incident by number and returns status, priority, and assigned group.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Lookup"
  description: "Retrieves a ServiceNow incident by number and returns status, priority, and assigned group."
  tags:
    - it-ops
    - servicenow
    - incident
capability:
  exposes:
    - type: mcp
      namespace: it-service
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number."
          call: "servicenow.get-incident"
          with:
            number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result.state"
            - name: priority
              type: string
              mapping: "$.result.priority"
            - name: assigned_group
              type: string
              mapping: "$.result.assignment_group.display_value"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://wework.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=number={{number}}"
          inputParameters:
            - name: number
              in: query
          operations:
            - name: get-incident
              method: GET

Retrieves a document from SharePoint.

naftiko: "0.5"
info:
  label: "SharePoint Document Viewer"
  description: "Retrieves a document from SharePoint."
  tags:
    - collaboration
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: get-sharepoint
          description: "Retrieves a document from SharePoint."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The sharepoint document viewer identifier."
          call: "collaboration-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: collaboration-api
      baseUri: "https://api.wework.com/collaboration/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: sharepoint
          path: "/sharepoint/document/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-sharepoint
              method: GET

Posts a formatted message to a specified Slack channel.

naftiko: "0.5"
info:
  label: "Slack Channel Message Post"
  description: "Posts a formatted message to a specified Slack channel."
  tags:
    - collaboration
    - slack
    - messaging
capability:
  exposes:
    - type: mcp
      namespace: messaging
      port: 8080
      tools:
        - name: post-slack-message
          description: "Post a message to a Slack channel."
          inputParameters:
            - name: channel
              in: body
              type: string
              description: "The Slack channel name or ID."
            - name: text
              in: body
              type: string
              description: "The message text."
          call: "slack.post-message"
          with:
            channel: "{{channel}}"
            text: "{{text}}"
  consumes:
    - 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

Sends a notification to a Slack channel.

naftiko: "0.5"
info:
  label: "Slack Notification Publisher"
  description: "Sends a notification to a Slack channel."
  tags:
    - communications
    - slack
capability:
  exposes:
    - type: mcp
      namespace: communications
      port: 8080
      tools:
        - name: get-slack
          description: "Sends a notification to a Slack channel."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The slack notification publisher identifier."
          call: "communications-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: communications-api
      baseUri: "https://api.wework.com/communications/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: slack
          path: "/slack/notification/publisher/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-slack
              method: GET

Runs an analytics query against the Snowflake data warehouse.

naftiko: "0.5"
info:
  label: "Snowflake Analytics Query"
  description: "Runs an analytics query against the Snowflake data warehouse."
  tags:
    - analytics
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: get-snowflake
          description: "Runs an analytics query against the Snowflake data warehouse."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The snowflake analytics query identifier."
          call: "analytics-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://api.wework.com/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: snowflake
          path: "/snowflake/analytics/query/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-snowflake
              method: GET

Retrieves real-time occupancy data for a building floor or zone from the space management system.

naftiko: "0.5"
info:
  label: "Space Occupancy Lookup"
  description: "Retrieves real-time occupancy data for a building floor or zone from the space management system."
  tags:
    - space-management
    - occupancy
    - facilities
capability:
  exposes:
    - type: mcp
      namespace: space-mgmt
      port: 8080
      tools:
        - name: get-occupancy
          description: "Fetch real-time occupancy data for a building and floor."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The WeWork building identifier."
            - name: floor
              in: body
              type: string
              description: "The floor number or zone identifier."
          call: "space.get-occupancy"
          with:
            building_id: "{{building_id}}"
            floor: "{{floor}}"
          outputParameters:
            - name: current_occupancy
              type: integer
              mapping: "$.occupancy.current"
            - name: max_capacity
              type: integer
              mapping: "$.occupancy.capacity"
            - name: utilization_pct
              type: number
              mapping: "$.occupancy.utilization_percent"
            - name: available_desks
              type: integer
              mapping: "$.occupancy.available_desks"
  consumes:
    - type: http
      namespace: space
      baseUri: "https://api.wework.com/space/v2"
      authentication:
        type: bearer
        token: "$secrets.space_api_token"
      resources:
        - name: occupancy
          path: "/buildings/{{building_id}}/floors/{{floor}}/occupancy"
          inputParameters:
            - name: building_id
              in: path
            - name: floor
              in: path
          operations:
            - name: get-occupancy
              method: GET

Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.

naftiko: "0.5"
info:
  label: "Sustainability Metrics Collection Orchestrator"
  description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
  tags:
    - sustainability
    - analytics
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: run-sustainability-metrics-collection-orchestrator
          description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.

naftiko: "0.5"
info:
  label: "Third Party Risk Assessment Orchestrator"
  description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
  tags:
    - risk
    - procurement
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: risk
      port: 8080
      tools:
        - name: run-third-party-risk-assessment-orchestrator
          description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.

naftiko: "0.5"
info:
  label: "Vendor Contract Renewal Pipeline"
  description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
  tags:
    - procurement
    - legal
    - docusign
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: run-vendor-contract-renewal-pipeline
          description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.wework.com/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.wework.com/v2"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

When a member registers a visitor, creates a visitor pass in the access system, sends a welcome email to the visitor via SendGrid, notifies the front desk in Microsoft Teams, and logs the visit in Salesforce.

naftiko: "0.5"
info:
  label: "Visitor Pre-Registration Pipeline"
  description: "When a member registers a visitor, creates a visitor pass in the access system, sends a welcome email to the visitor via SendGrid, notifies the front desk in Microsoft Teams, and logs the visit in Salesforce."
  tags:
    - facilities
    - visitor-management
    - sendgrid
    - microsoft-teams
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: visitor-mgmt
      port: 8080
      tools:
        - name: register-visitor
          description: "Given visitor and host details, create pass, send welcome, notify front desk, and log."
          inputParameters:
            - name: visitor_name
              in: body
              type: string
              description: "The visitor's full name."
            - name: visitor_email
              in: body
              type: string
              description: "The visitor's email address."
            - name: host_member_id
              in: body
              type: string
              description: "The hosting member's account ID."
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
            - name: visit_date
              in: body
              type: string
              description: "Expected visit date in YYYY-MM-DD format."
          steps:
            - name: create-pass
              type: call
              call: "access-control.create-visitor-pass"
              with:
                visitor_name: "{{visitor_name}}"
                building_id: "{{building_id}}"
                host_id: "{{host_member_id}}"
                date: "{{visit_date}}"
            - name: send-welcome
              type: call
              call: "sendgrid.send-email"
              with:
                to: "{{visitor_email}}"
                template_id: "visitor_welcome"
                dynamic_data:
                  visitor_name: "{{visitor_name}}"
                  building_id: "{{building_id}}"
                  visit_date: "{{visit_date}}"
                  pass_code: "{{create-pass.pass_code}}"
            - name: notify-front-desk
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "front-desk-{{building_id}}"
                text: "Visitor expected: {{visitor_name}} visiting member {{host_member_id}} on {{visit_date}}. Pass: {{create-pass.pass_code}}"
            - name: log-visit
              type: call
              call: "salesforce.create-activity"
              with:
                account_id: "{{host_member_id}}"
                subject: "Visitor: {{visitor_name}} on {{visit_date}}"
  consumes:
    - type: http
      namespace: access-control
      baseUri: "https://api.wework.com/access/v1"
      authentication:
        type: bearer
        token: "$secrets.access_control_token"
      resources:
        - name: visitor-passes
          path: "/visitor-passes"
          operations:
            - name: create-visitor-pass
              method: POST
    - type: http
      namespace: sendgrid
      baseUri: "https://api.sendgrid.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sendgrid_api_key"
      resources:
        - name: mail
          path: "/mail/send"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://wework.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: activities
          path: "/sobjects/Task"
          operations:
            - name: create-activity
              method: POST

Retrieves WiFi network health metrics for a building including connected devices, bandwidth usage, and access point status.

naftiko: "0.5"
info:
  label: "WiFi Network Status"
  description: "Retrieves WiFi network health metrics for a building including connected devices, bandwidth usage, and access point status."
  tags:
    - facilities
    - networking
    - wifi
capability:
  exposes:
    - type: mcp
      namespace: network-ops
      port: 8080
      tools:
        - name: get-wifi-status
          description: "Fetch WiFi network status for a building."
          inputParameters:
            - name: building_id
              in: body
              type: string
              description: "The building identifier."
          call: "network.get-wifi-status"
          with:
            building_id: "{{building_id}}"
          outputParameters:
            - name: connected_devices
              type: integer
              mapping: "$.network.connected_clients"
            - name: bandwidth_usage_mbps
              type: number
              mapping: "$.network.bandwidth_mbps"
            - name: access_points_up
              type: integer
              mapping: "$.network.aps_up"
            - name: access_points_total
              type: integer
              mapping: "$.network.aps_total"
  consumes:
    - type: http
      namespace: network
      baseUri: "https://api.wework.com/network/v1"
      authentication:
        type: bearer
        token: "$secrets.network_api_token"
      resources:
        - name: wifi
          path: "/buildings/{{building_id}}/wifi"
          inputParameters:
            - name: building_id
              in: path
          operations:
            - name: get-wifi-status
              method: GET

Retrieves employee details from Workday including name, department, building assignment, and contact information.

naftiko: "0.5"
info:
  label: "Workday Employee Directory Lookup"
  description: "Retrieves employee details from Workday including name, department, building assignment, and contact information."
  tags:
    - hr
    - workday
    - employee
capability:
  exposes:
    - type: mcp
      namespace: hr-directory
      port: 8080
      tools:
        - name: get-employee
          description: "Look up a Workday employee by worker ID."
          inputParameters:
            - name: worker_id
              in: body
              type: string
              description: "The Workday worker ID."
          call: "workday.get-worker"
          with:
            worker_id: "{{worker_id}}"
          outputParameters:
            - name: full_name
              type: string
              mapping: "$.worker.name.full"
            - name: department
              type: string
              mapping: "$.worker.organization.name"
            - name: building
              type: string
              mapping: "$.worker.location.name"
            - name: email
              type: string
              mapping: "$.worker.contact.email"
  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

Retrieves employee profile from Workday.

naftiko: "0.5"
info:
  label: "Workday Employee Profile"
  description: "Retrieves employee profile from Workday."
  tags:
    - hr
    - workday
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: get-workday
          description: "Retrieves employee profile from Workday."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The workday employee profile identifier."
          call: "hr-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: hr-api
      baseUri: "https://api.wework.com/hr/v1"
      authentication:
        type: bearer
        token: "$secrets.wework_api_token"
      resources:
        - name: workday
          path: "/workday/employee/profile/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-workday
              method: GET