WeWork Capabilities
Naftiko 0.5 capability definitions for WeWork - 100 capabilities showing integration workflows and service orchestrations.
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