Eventbrite Capabilities
Naftiko 0.5 capability definitions for Eventbrite - 100 capabilities showing integration workflows and service orchestrations.
Reviews access at Eventbrite via Okta, IAM, and Jira.
naftiko: "0.5"
info:
label: "Access Review Pipeline"
description: "Reviews access at Eventbrite via Okta, IAM, and Jira."
tags:
- security
- access-management
- okta
- compliance
capability:
exposes:
- type: mcp
namespace: access-rev
port: 8080
tools:
- name: review
description: "Review access at Eventbrite."
inputParameters:
- name: dept
in: body
type: string
description: "Department."
steps:
- name: ent
type: call
call: "okta.get-users"
with:
dept: "{{dept}}"
- name: compare
type: call
call: "iam.compare"
with:
data: "{{ent.data}}"
- name: flag
type: call
call: "iam.flag"
with:
violations: "{{compare.violations}}"
- name: fix
type: call
call: "jira.create-issue"
with:
project: "IAM"
summary: "Violations in {{dept}}"
consumes:
- type: http
namespace: okta
baseUri: "https://eventbrite.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users"
operations:
- name: get-users
method: GET
- type: http
namespace: iam
baseUri: "https://iam.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.iam_token"
resources:
- name: reviews
path: "/compare"
operations:
- name: compare
method: POST
- type: http
namespace: jira
baseUri: "https://eventbrite.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Retrieves the status and configuration of an Amazon API Gateway REST API.
naftiko: "0.5"
info:
label: "Amazon API Gateway Endpoint Status"
description: "Retrieves the status and configuration of an Amazon API Gateway REST API."
tags:
- infrastructure
- amazon-api-gateway
capability:
exposes:
- type: mcp
namespace: api-gateway
port: 8080
tools:
- name: get-api-status
description: "Fetch API Gateway REST API status by API ID."
inputParameters:
- name: api_id
in: body
type: string
description: "The API Gateway REST API ID."
call: "apigateway.get-api"
with:
api_id: "{{api_id}}"
consumes:
- type: http
namespace: apigateway
baseUri: "https://apigateway.us-east-1.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: apis
path: "/restapis/{{api_id}}"
inputParameters:
- name: api_id
in: path
operations:
- name: get-api
method: GET
Retrieves the status of an Amazon ECS service including running task count and deployment state.
naftiko: "0.5"
info:
label: "Amazon ECS Service Status"
description: "Retrieves the status of an Amazon ECS service including running task count and deployment state."
tags:
- infrastructure
- amazon-ecs
capability:
exposes:
- type: mcp
namespace: ecs-status
port: 8080
tools:
- name: get-service-status
description: "Fetch ECS service status by cluster and service name."
inputParameters:
- name: cluster
in: body
type: string
description: "ECS cluster name."
- name: service
in: body
type: string
description: "ECS service name."
call: "ecs.describe-service"
with:
cluster: "{{cluster}}"
service: "{{service}}"
consumes:
- type: http
namespace: ecs
baseUri: "https://ecs.us-east-1.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: services
path: "/"
operations:
- name: describe-service
method: POST
Pushes real-time event activity data to Amazon Kinesis for stream processing and analytics.
naftiko: "0.5"
info:
label: "Amazon Kinesis Event Stream Ingestion"
description: "Pushes real-time event activity data to Amazon Kinesis for stream processing and analytics."
tags:
- data
- streaming
- amazon-kinesis
capability:
exposes:
- type: mcp
namespace: event-streaming
port: 8080
tools:
- name: put-event-record
description: "Send an event activity record to Amazon Kinesis."
inputParameters:
- name: stream_name
in: body
type: string
description: "Kinesis stream name."
- name: partition_key
in: body
type: string
description: "Partition key for the record."
- name: data
in: body
type: string
description: "Base64-encoded record data."
call: "kinesis.put-record"
with:
stream_name: "{{stream_name}}"
partition_key: "{{partition_key}}"
data: "{{data}}"
consumes:
- type: http
namespace: kinesis
baseUri: "https://kinesis.us-east-1.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: records
path: "/"
operations:
- name: put-record
method: POST
Uploads event media assets to Amazon S3 and returns the public URL.
naftiko: "0.5"
info:
label: "Amazon S3 Asset Storage"
description: "Uploads event media assets to Amazon S3 and returns the public URL."
tags:
- infrastructure
- storage
- amazon-s3
capability:
exposes:
- type: mcp
namespace: asset-storage
port: 8080
tools:
- name: upload-asset
description: "Upload an asset to S3 and get the public URL."
inputParameters:
- name: bucket
in: body
type: string
description: "S3 bucket name."
- name: key
in: body
type: string
description: "Object key (path) in the bucket."
- name: content_url
in: body
type: string
description: "URL of the content to upload."
call: "s3.put-object"
with:
bucket: "{{bucket}}"
key: "{{key}}"
content: "{{content_url}}"
consumes:
- type: http
namespace: s3
baseUri: "https://{{bucket}}.s3.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: objects
path: "/{{key}}"
inputParameters:
- name: key
in: path
operations:
- name: put-object
method: PUT
Manages API deprecation at Eventbrite via consumer identification, notices, and tracking.
naftiko: "0.5"
info:
label: "API Deprecation Pipeline"
description: "Manages API deprecation at Eventbrite via consumer identification, notices, and tracking."
tags:
- api-management
- communications
- governance
capability:
exposes:
- type: mcp
namespace: api-sunset
port: 8080
tools:
- name: notify-sunset
description: "Manage API sunset at Eventbrite."
inputParameters:
- name: api
in: body
type: string
description: "API name."
- name: date
in: body
type: string
description: "Sunset date."
steps:
- name: consumers
type: call
call: "api-gw.consumers"
with:
api: "{{api}}"
- name: notify
type: call
call: "email.batch"
with:
to: "{{consumers.emails}}"
subject: "{{api}} sunset: {{date}}"
- name: track
type: call
call: "analytics.usage"
with:
api: "{{api}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "API"
summary: "Sunset {{api}} by {{date}}"
consumes:
- type: http
namespace: api-gw
baseUri: "https://api-gw.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.api_gw_token"
resources:
- name: consumers
path: "/apis/{{api}}/consumers"
inputParameters:
- name: api
in: path
operations:
- name: consumers
method: GET
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: batch
path: "/send-batch"
operations:
- name: batch
method: POST
- type: http
namespace: analytics
baseUri: "https://analytics.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: usage
path: "/api-usage"
operations:
- name: usage
method: GET
- type: http
namespace: jira
baseUri: "https://eventbrite.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Creates and manages Asana tasks for event planning workflows.
naftiko: "0.5"
info:
label: "Asana Task Management"
description: "Creates and manages Asana tasks for event planning workflows."
tags:
- project-management
- asana
capability:
exposes:
- type: mcp
namespace: task-mgmt
port: 8080
tools:
- name: create-task
description: "Create an Asana task for event planning."
inputParameters:
- name: project_id
in: body
type: string
description: "The Asana project ID."
- name: name
in: body
type: string
description: "Task name."
- name: due_date
in: body
type: string
description: "Due date YYYY-MM-DD."
- name: assignee
in: body
type: string
description: "Assignee email."
call: "asana.create-task"
with:
project_id: "{{project_id}}"
name: "{{name}}"
due_on: "{{due_date}}"
assignee: "{{assignee}}"
consumes:
- type: http
namespace: asana
baseUri: "https://app.asana.com/api/1.0"
authentication:
type: bearer
token: "$secrets.asana_token"
resources:
- name: tasks
path: "/tasks"
operations:
- name: create-task
method: POST
When an attendee checks in at the venue, updates their status in Eventbrite, sends a WhatsApp welcome message with event details, and logs the check-in in Datadog.
naftiko: "0.5"
info:
label: "Attendee Check-In and Welcome Flow"
description: "When an attendee checks in at the venue, updates their status in Eventbrite, sends a WhatsApp welcome message with event details, and logs the check-in in Datadog."
tags:
- events
- ticketing
- eventbrite
- whatsapp
- datadog
capability:
exposes:
- type: mcp
namespace: check-in
port: 8080
tools:
- name: process-check-in
description: "Update attendee check-in status, send welcome, and log."
inputParameters:
- name: event_id
in: body
type: string
description: "The Eventbrite event ID."
- name: attendee_id
in: body
type: string
description: "The attendee ID."
steps:
- name: check-in
type: call
call: "eventbrite.check-in-attendee"
with:
event_id: "{{event_id}}"
attendee_id: "{{attendee_id}}"
- name: get-attendee
type: call
call: "eventbrite.get-attendee"
with:
event_id: "{{event_id}}"
attendee_id: "{{attendee_id}}"
- name: send-welcome
type: call
call: "whatsapp.send-message"
with:
to: "{{get-attendee.phone}}"
text: "Welcome to {{get-attendee.event_name}}, {{get-attendee.first_name}}! Your seat: {{get-attendee.seat_assignment}}. Wi-Fi: EventbriteGuest."
- name: log-checkin
type: call
call: "datadog.submit-metric"
with:
metric: "events.checkins"
value: 1
tags: "event:{{event_id}}"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: attendees
path: "/events/{{event_id}}/attendees/{{attendee_id}}"
inputParameters:
- name: event_id
in: path
- name: attendee_id
in: path
operations:
- name: check-in-attendee
method: POST
- name: get-attendee
method: GET
- type: http
namespace: whatsapp
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/series"
operations:
- name: submit-metric
method: POST
Invokes an AWS Lambda function for serverless event processing tasks and returns the execution result.
naftiko: "0.5"
info:
label: "AWS Lambda Function Invocation"
description: "Invokes an AWS Lambda function for serverless event processing tasks and returns the execution result."
tags:
- infrastructure
- aws-lambda
capability:
exposes:
- type: mcp
namespace: serverless
port: 8080
tools:
- name: invoke-lambda
description: "Invoke an AWS Lambda function by name."
inputParameters:
- name: function_name
in: body
type: string
description: "The Lambda function name."
- name: payload
in: body
type: string
description: "JSON payload for the function."
call: "lambda.invoke"
with:
function_name: "{{function_name}}"
payload: "{{payload}}"
consumes:
- type: http
namespace: lambda
baseUri: "https://lambda.us-east-1.amazonaws.com/2015-03-31"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: functions
path: "/functions/{{function_name}}/invocations"
inputParameters:
- name: function_name
in: path
operations:
- name: invoke
method: POST
Checks build at Eventbrite.
naftiko: "0.5"
info:
label: "Azure DevOps Build Check"
description: "Checks build at Eventbrite."
tags:
- devops
- azure-devops
- ci-cd
capability:
exposes:
- type: mcp
namespace: azdo-build
port: 8080
tools:
- name: check-build
description: "Check build at Eventbrite."
inputParameters:
- name: project
in: body
type: string
description: "Project."
- name: build_id
in: body
type: string
description: "Build ID."
call: "azdo.get-build"
with:
project: "{{project}}"
build_id: "{{build_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/eventbrite.com"
authentication:
type: bearer
token: "$secrets.azdo_token"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds/{{build_id}}"
inputParameters:
- name: project
in: path
- name: build_id
in: path
operations:
- name: get-build
method: GET
Verifies backups at Eventbrite.
naftiko: "0.5"
info:
label: "Backup Verification Pipeline"
description: "Verifies backups at Eventbrite."
tags:
- database
- backup
- operations
capability:
exposes:
- type: mcp
namespace: backup-verify
port: 8080
tools:
- name: verify-backups
description: "Verify backups at Eventbrite."
inputParameters:
- name: db
in: body
type: string
description: "Database."
- name: date
in: body
type: string
description: "Backup date."
steps:
- name: status
type: call
call: "backup.get-status"
with:
db: "{{db}}"
date: "{{date}}"
- name: verify
type: call
call: "backup.verify"
with:
id: "{{status.backup_id}}"
- name: log
type: call
call: "snowflake.query"
with:
query: "INSERT INTO backup_log VALUES ('{{db}}','{{date}}','{{verify.status}}')"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#dba"
text: "Backup {{db}}: {{verify.status}}"
consumes:
- type: http
namespace: backup
baseUri: "https://backup.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.backup_token"
resources:
- name: backups
path: "/databases/{{db}}/status"
inputParameters:
- name: db
in: path
operations:
- name: get-status
method: GET
- type: http
namespace: snowflake
baseUri: "https://eventbrite.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves the latest pipeline status for a Bitbucket repository.
naftiko: "0.5"
info:
label: "Bitbucket Repository Status"
description: "Retrieves the latest pipeline status for a Bitbucket repository."
tags:
- development
- bitbucket
capability:
exposes:
- type: mcp
namespace: bitbucket-ops
port: 8080
tools:
- name: get-repo-pipelines
description: "Fetch latest Bitbucket pipeline runs for a repository."
inputParameters:
- name: workspace
in: body
type: string
description: "Bitbucket workspace."
- name: repo_slug
in: body
type: string
description: "Repository slug."
call: "bitbucket.get-pipelines"
with:
workspace: "{{workspace}}"
repo_slug: "{{repo_slug}}"
consumes:
- type: http
namespace: bitbucket
baseUri: "https://api.bitbucket.org/2.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: pipelines
path: "/repositories/{{workspace}}/{{repo_slug}}/pipelines"
inputParameters:
- name: workspace
in: path
- name: repo_slug
in: path
operations:
- name: get-pipelines
method: GET
Analyzes budget variance at Eventbrite via Oracle, Workday, and Slack.
naftiko: "0.5"
info:
label: "Budget Variance Pipeline"
description: "Analyzes budget variance at Eventbrite via Oracle, Workday, and Slack."
tags:
- finance
- budget
- oracle
- workday
capability:
exposes:
- type: mcp
namespace: budget-var
port: 8080
tools:
- name: analyze-variance
description: "Check budget variance at Eventbrite."
inputParameters:
- name: cc
in: body
type: string
description: "Cost center."
- name: period
in: body
type: string
description: "Period."
steps:
- name: actuals
type: call
call: "oracle.get-actuals"
with:
cc: "{{cc}}"
period: "{{period}}"
- name: budget
type: call
call: "workday.get-budget"
with:
cc: "{{cc}}"
- name: compute
type: call
call: "analytics.variance"
with:
a: "{{actuals.total}}"
b: "{{budget.total}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#finance"
text: "Variance {{cc}}: ${{compute.variance}}"
consumes:
- type: http
namespace: oracle
baseUri: "https://oracle.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: fin
path: "/actuals"
operations:
- name: get-actuals
method: GET
- type: http
namespace: workday
baseUri: "https://wd5.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: budgets
path: "/budgets"
operations:
- name: get-budget
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: var
path: "/compute"
operations:
- name: variance
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves a Canva design template for event promotional materials.
naftiko: "0.5"
info:
label: "Canva Design Template Fetch"
description: "Retrieves a Canva design template for event promotional materials."
tags:
- design
- canva
capability:
exposes:
- type: mcp
namespace: design-templates
port: 8080
tools:
- name: get-design-template
description: "Fetch a Canva design template by ID."
inputParameters:
- name: design_id
in: body
type: string
description: "The Canva design identifier."
call: "canva.get-design"
with:
design_id: "{{design_id}}"
consumes:
- type: http
namespace: canva
baseUri: "https://api.canva.com/rest/v1"
authentication:
type: bearer
token: "$secrets.canva_token"
resources:
- name: designs
path: "/designs/{{design_id}}"
inputParameters:
- name: design_id
in: path
operations:
- name: get-design
method: GET
Plans capacity at Eventbrite by collecting utilization and forecasting.
naftiko: "0.5"
info:
label: "Capacity Planning Pipeline"
description: "Plans capacity at Eventbrite by collecting utilization and forecasting."
tags:
- infrastructure
- capacity-planning
- forecasting
capability:
exposes:
- type: mcp
namespace: capacity
port: 8080
tools:
- name: plan-capacity
description: "Plan capacity at Eventbrite."
inputParameters:
- name: resource
in: body
type: string
description: "Resource type."
- name: months
in: body
type: number
description: "Forecast months."
steps:
- name: util
type: call
call: "monitoring.get-util"
with:
resource: "{{resource}}"
- name: forecast
type: call
call: "analytics.forecast"
with:
current: "{{util.pct}}"
months: "{{months}}"
- name: procure
type: call
call: "servicenow.create-request"
with:
type: "capacity"
resource: "{{resource}}"
- name: dashboard
type: call
call: "power-bi.refresh"
with:
dataset: "capacity"
consumes:
- type: http
namespace: monitoring
baseUri: "https://monitoring.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.monitoring_token"
resources:
- name: util
path: "/resources/{{resource}}/util"
inputParameters:
- name: resource
in: path
operations:
- name: get-util
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: forecast
path: "/demand"
operations:
- name: forecast
method: POST
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Monitors cert expiry at Eventbrite.
naftiko: "0.5"
info:
label: "Certificate Expiry Pipeline"
description: "Monitors cert expiry at Eventbrite."
tags:
- security
- certificates
- monitoring
capability:
exposes:
- type: mcp
namespace: cert-monitor
port: 8080
tools:
- name: check-certs
description: "Monitor certs at Eventbrite."
inputParameters:
- name: domains
in: body
type: string
description: "Domains to check."
steps:
- name: scan
type: call
call: "cert-scanner.scan"
with:
domains: "{{domains}}"
- name: filter
type: call
call: "analytics.filter-expiring"
with:
certs: "{{scan.results}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "SEC"
summary: "{{filter.count}} certs expiring"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#security"
text: "Cert alert: {{filter.count}} expiring"
consumes:
- type: http
namespace: cert-scanner
baseUri: "https://certs.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.cert_token"
resources:
- name: scans
path: "/scan"
operations:
- name: scan
method: POST
- type: http
namespace: jira
baseUri: "https://eventbrite.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Routes changes at Eventbrite through ServiceNow and CAB approval.
naftiko: "0.5"
info:
label: "Change Management Pipeline"
description: "Routes changes at Eventbrite through ServiceNow and CAB approval."
tags:
- change-management
- servicenow
- itil
capability:
exposes:
- type: mcp
namespace: change-mgmt
port: 8080
tools:
- name: process-change
description: "Process changes at Eventbrite."
inputParameters:
- name: change_id
in: body
type: string
description: "Change ID."
- name: date
in: body
type: string
description: "Date."
steps:
- name: get
type: call
call: "servicenow.get-change"
with:
id: "{{change_id}}"
- name: conflicts
type: call
call: "servicenow.check-conflicts"
with:
date: "{{date}}"
- name: submit
type: call
call: "servicenow.update"
with:
id: "{{change_id}}"
state: "approval"
- name: notify
type: call
call: "email.send"
with:
to: "cab@co.com"
subject: "CAB: {{change_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: changes
path: "/table/change_request/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-change
method: GET
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Optimizes cloud costs at Eventbrite via Azure, FinOps, Jira, and Power BI.
naftiko: "0.5"
info:
label: "Cloud Cost Optimization Pipeline"
description: "Optimizes cloud costs at Eventbrite via Azure, FinOps, Jira, and Power BI."
tags:
- cloud
- cost-management
- finops
capability:
exposes:
- type: mcp
namespace: cloud-opt
port: 8080
tools:
- name: optimize
description: "Optimize cloud costs at Eventbrite."
inputParameters:
- name: provider
in: body
type: string
description: "Provider."
- name: range
in: body
type: string
description: "Range."
steps:
- name: spend
type: call
call: "cloud.get-costs"
with:
provider: "{{provider}}"
range: "{{range}}"
- name: savings
type: call
call: "finops.analyze"
with:
data: "{{spend.data}}"
- name: action
type: call
call: "jira.create-issue"
with:
project: "FINOPS"
summary: "Save ${{savings.potential}}"
- name: report
type: call
call: "power-bi.refresh"
with:
dataset: "cloud"
consumes:
- type: http
namespace: cloud
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: costs
path: "/providers/Microsoft.CostManagement/query"
operations:
- name: get-costs
method: POST
- type: http
namespace: finops
baseUri: "https://finops.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.finops_token"
resources:
- name: analysis
path: "/savings"
operations:
- name: analyze
method: POST
- type: http
namespace: jira
baseUri: "https://eventbrite.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Purges the Cloudflare CDN cache for event pages to ensure fresh content delivery.
naftiko: "0.5"
info:
label: "Cloudflare CDN Cache Purge"
description: "Purges the Cloudflare CDN cache for event pages to ensure fresh content delivery."
tags:
- infrastructure
- cloudflare
capability:
exposes:
- type: mcp
namespace: cdn-mgmt
port: 8080
tools:
- name: purge-cache
description: "Purge Cloudflare CDN cache for specified URLs."
inputParameters:
- name: zone_id
in: body
type: string
description: "Cloudflare zone ID."
- name: urls
in: body
type: string
description: "JSON array of URLs to purge."
call: "cloudflare.purge-cache"
with:
zone_id: "{{zone_id}}"
files: "{{urls}}"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: cache
path: "/zones/{{zone_id}}/purge_cache"
inputParameters:
- name: zone_id
in: path
operations:
- name: purge-cache
method: POST
Searches Confluence at Eventbrite.
naftiko: "0.5"
info:
label: "Confluence Article Search"
description: "Searches Confluence at Eventbrite."
tags:
- knowledge-management
- confluence
- documentation
capability:
exposes:
- type: mcp
namespace: confluence-search
port: 8080
tools:
- name: search-articles
description: "Search Confluence at Eventbrite."
inputParameters:
- name: query
in: body
type: string
description: "Query."
call: "confluence.search"
with:
query: "{{query}}"
outputParameters:
- name: title
type: string
mapping: "$.results[0].title"
consumes:
- type: http
namespace: confluence
baseUri: "https://eventbrite.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: content
path: "/content/search"
operations:
- name: search
method: GET
Tracks contract renewals at Eventbrite via contracts system, email, Jira, and Salesforce.
naftiko: "0.5"
info:
label: "Contract Renewal Pipeline"
description: "Tracks contract renewals at Eventbrite via contracts system, email, Jira, and Salesforce."
tags:
- procurement
- contracts
- salesforce
- jira
capability:
exposes:
- type: mcp
namespace: contract-renew
port: 8080
tools:
- name: track
description: "Track renewals at Eventbrite."
inputParameters:
- name: contract_id
in: body
type: string
description: "Contract ID."
- name: owner
in: body
type: string
description: "Owner email."
steps:
- name: get
type: call
call: "contracts.get"
with:
id: "{{contract_id}}"
- name: remind
type: call
call: "email.send"
with:
to: "{{owner}}"
subject: "Renewal: {{contract_id}}"
- name: task
type: call
call: "jira.create-issue"
with:
project: "PROC"
summary: "Renew {{contract_id}}"
- name: crm
type: call
call: "salesforce.update"
with:
id: "{{contract_id}}"
stage: "Renewal"
consumes:
- type: http
namespace: contracts
baseUri: "https://contracts.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.contracts_token"
resources:
- name: contracts
path: "/contracts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get
method: GET
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
- type: http
namespace: jira
baseUri: "https://eventbrite.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: salesforce
baseUri: "https://eventbrite.com.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opps
path: "/sobjects/Opportunity"
operations:
- name: update
method: PATCH
Reallocates costs at Eventbrite.
naftiko: "0.5"
info:
label: "Cost Reallocation Pipeline"
description: "Reallocates costs at Eventbrite."
tags:
- finance
- cost-allocation
- oracle
capability:
exposes:
- type: mcp
namespace: cost-realloc
port: 8080
tools:
- name: reallocate
description: "Reallocate costs at Eventbrite."
inputParameters:
- name: source
in: body
type: string
description: "Source CC."
- name: target
in: body
type: string
description: "Target CC."
- name: amount
in: body
type: number
description: "Amount."
steps:
- name: current
type: call
call: "oracle.get-alloc"
with:
cc: "{{source}}"
- name: compute
type: call
call: "analytics.realloc"
with:
source: "{{source}}"
target: "{{target}}"
amount: "{{amount}}"
- name: post
type: call
call: "oracle.post-journal"
with:
entries: "{{compute.entries}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#finance"
text: "Reallocated ${{amount}} from {{source}} to {{target}}"
consumes:
- type: http
namespace: oracle
baseUri: "https://oracle.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: allocations
path: "/cost-centers/{{cc}}/allocations"
inputParameters:
- name: cc
in: path
operations:
- name: get-alloc
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: realloc
path: "/compute"
operations:
- name: realloc
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Monitors data pipelines at Eventbrite via Databricks, Snowflake, Slack, and ServiceNow.
naftiko: "0.5"
info:
label: "Data Pipeline Monitor Pipeline"
description: "Monitors data pipelines at Eventbrite via Databricks, Snowflake, Slack, and ServiceNow."
tags:
- data-engineering
- databricks
- monitoring
- slack
capability:
exposes:
- type: mcp
namespace: pipeline-mon
port: 8080
tools:
- name: monitor
description: "Monitor pipelines at Eventbrite."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "Pipeline ID."
steps:
- name: status
type: call
call: "databricks.get-run"
with:
id: "{{pipeline_id}}"
- name: quality
type: call
call: "snowflake.query"
with:
query: "SELECT COUNT(*) FROM out WHERE p='{{pipeline_id}}'"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#data"
text: "Pipeline {{pipeline_id}}: {{status.state}}"
- name: incident
type: call
call: "servicenow.create-incident"
with:
desc: "Pipeline {{pipeline_id}} issue"
consumes:
- type: http
namespace: databricks
baseUri: "https://eventbrite.com.cloud.databricks.com/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: jobs
path: "/jobs/runs/get"
operations:
- name: get-run
method: GET
- type: http
namespace: snowflake
baseUri: "https://eventbrite.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Submits custom metrics to Datadog for event platform monitoring and alerting.
naftiko: "0.5"
info:
label: "Datadog Custom Metric Submission"
description: "Submits custom metrics to Datadog for event platform monitoring and alerting."
tags:
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: custom-metrics
port: 8080
tools:
- name: submit-metric
description: "Submit a custom metric to Datadog."
inputParameters:
- name: metric_name
in: body
type: string
description: "Metric name."
- name: value
in: body
type: number
description: "Metric value."
- name: tags
in: body
type: string
description: "Comma-separated tags."
call: "datadog.submit-metric"
with:
metric: "{{metric_name}}"
value: "{{value}}"
tags: "{{tags}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/series"
operations:
- name: submit-metric
method: POST
Checks Datadog monitor at Eventbrite.
naftiko: "0.5"
info:
label: "Datadog Monitor Check"
description: "Checks Datadog monitor at Eventbrite."
tags:
- monitoring
- datadog
- observability
capability:
exposes:
- type: mcp
namespace: dd-monitor
port: 8080
tools:
- name: check-monitor
description: "Check monitor at Eventbrite."
inputParameters:
- name: monitor_id
in: body
type: string
description: "Monitor ID."
call: "datadog.get-monitor"
with:
monitor_id: "{{monitor_id}}"
outputParameters:
- name: status
type: string
mapping: "$.overall_state"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: monitors
path: "/monitor/{{monitor_id}}"
inputParameters:
- name: monitor_id
in: path
operations:
- name: get-monitor
method: GET
Checks the status of Docker containers running event platform services.
naftiko: "0.5"
info:
label: "Docker Container Status"
description: "Checks the status of Docker containers running event platform services."
tags:
- infrastructure
- docker
capability:
exposes:
- type: mcp
namespace: container-status
port: 8080
tools:
- name: get-container-status
description: "Fetch Docker container status by container ID."
inputParameters:
- name: container_id
in: body
type: string
description: "Docker container ID."
call: "docker.get-container"
with:
container_id: "{{container_id}}"
consumes:
- type: http
namespace: docker
baseUri: "https://docker.eventbrite.com/v1.43"
authentication:
type: bearer
token: "$secrets.docker_token"
resources:
- name: containers
path: "/containers/{{container_id}}/json"
inputParameters:
- name: container_id
in: path
operations:
- name: get-container
method: GET
Tests disaster recovery at Eventbrite via failover, health checks, and reporting.
naftiko: "0.5"
info:
label: "DR Test Pipeline"
description: "Tests disaster recovery at Eventbrite via failover, health checks, and reporting."
tags:
- disaster-recovery
- business-continuity
- testing
capability:
exposes:
- type: mcp
namespace: dr-test
port: 8080
tools:
- name: test-dr
description: "Test DR at Eventbrite."
inputParameters:
- name: plan_id
in: body
type: string
description: "Plan ID."
- name: type
in: body
type: string
description: "Test type."
steps:
- name: failover
type: call
call: "dr.failover"
with:
plan: "{{plan_id}}"
type: "{{type}}"
- name: validate
type: call
call: "monitoring.check"
with:
scope: "critical"
- name: measure
type: call
call: "dr.metrics"
with:
id: "{{failover.id}}"
- name: report
type: call
call: "confluence.create-page"
with:
title: "DR - {{plan_id}}"
body: "RTO:{{measure.rto}}m RPO:{{measure.rpo}}m"
consumes:
- type: http
namespace: dr
baseUri: "https://dr.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.dr_token"
resources:
- name: failovers
path: "/failovers"
operations:
- name: failover
method: POST
- type: http
namespace: monitoring
baseUri: "https://monitoring.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.monitoring_token"
resources:
- name: health
path: "/checks"
operations:
- name: check
method: POST
- type: http
namespace: confluence
baseUri: "https://eventbrite.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Detects infrastructure drift at Eventbrite via Terraform, Slack, and Jira.
naftiko: "0.5"
info:
label: "Drift Detection Pipeline"
description: "Detects infrastructure drift at Eventbrite via Terraform, Slack, and Jira."
tags:
- infrastructure
- terraform
- drift-detection
- devops
capability:
exposes:
- type: mcp
namespace: drift-det
port: 8080
tools:
- name: detect
description: "Detect drift at Eventbrite."
inputParameters:
- name: ws_id
in: body
type: string
description: "Workspace ID."
- name: env
in: body
type: string
description: "Environment."
steps:
- name: plan
type: call
call: "terraform.run"
with:
ws: "{{ws_id}}"
- name: check
type: call
call: "terraform.get-plan"
with:
run: "{{plan.id}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#infra"
text: "Drift {{env}}: {{check.changes}} changes"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "INFRA"
summary: "Drift in {{env}}"
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: runs
path: "/runs"
operations:
- name: run
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: jira
baseUri: "https://eventbrite.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Stores and retrieves event metadata in DynamoDB for high-performance lookups.
naftiko: "0.5"
info:
label: "DynamoDB Event Metadata Store"
description: "Stores and retrieves event metadata in DynamoDB for high-performance lookups."
tags:
- data
- dynamodb
capability:
exposes:
- type: mcp
namespace: event-store
port: 8080
tools:
- name: get-event-metadata
description: "Retrieve event metadata from DynamoDB by event ID."
inputParameters:
- name: event_id
in: body
type: string
description: "The event identifier."
call: "dynamodb.get-item"
with:
table_name: "events_metadata"
key: '{"event_id":"{{event_id}}"}'
consumes:
- type: http
namespace: dynamodb
baseUri: "https://dynamodb.us-east-1.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: items
path: "/"
operations:
- name: get-item
method: POST
Indexes event data in Elasticsearch for fast full-text search across the event catalog.
naftiko: "0.5"
info:
label: "Elasticsearch Event Search Index"
description: "Indexes event data in Elasticsearch for fast full-text search across the event catalog."
tags:
- data
- search
- elasticsearch
capability:
exposes:
- type: mcp
namespace: event-search
port: 8080
tools:
- name: index-event
description: "Index an event document in Elasticsearch."
inputParameters:
- name: event_id
in: body
type: string
description: "The event identifier."
- name: event_data
in: body
type: string
description: "JSON event data to index."
call: "elasticsearch.index-document"
with:
index: "events"
document_id: "{{event_id}}"
body: "{{event_data}}"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://search.eventbrite.com"
authentication:
type: bearer
token: "$secrets.elasticsearch_token"
resources:
- name: documents
path: "/{{index}}/_doc/{{document_id}}"
inputParameters:
- name: index
in: path
- name: document_id
in: path
operations:
- name: index-document
method: PUT
Checks ES index at Eventbrite.
naftiko: "0.5"
info:
label: "ES Index Health"
description: "Checks ES index at Eventbrite."
tags:
- search
- elasticsearch
- infrastructure
capability:
exposes:
- type: mcp
namespace: es-health
port: 8080
tools:
- name: check-index
description: "Check ES index at Eventbrite."
inputParameters:
- name: index
in: body
type: string
description: "Index name."
call: "es.get-health"
with:
index: "{{index}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: docs
type: number
mapping: "$.docs.count"
consumes:
- type: http
namespace: es
baseUri: "https://es.eventbrite.com:9200"
authentication:
type: bearer
token: "$secrets.es_token"
resources:
- name: indices
path: "/{{index}}/_stats"
inputParameters:
- name: index
in: path
operations:
- name: get-health
method: GET
Offboards employees at Eventbrite via Okta, Slack, ServiceNow, and storage.
naftiko: "0.5"
info:
label: "Employee Offboarding Pipeline"
description: "Offboards employees at Eventbrite via Okta, Slack, ServiceNow, and storage."
tags:
- hr
- offboarding
- okta
- servicenow
capability:
exposes:
- type: mcp
namespace: offboarding
port: 8080
tools:
- name: offboard
description: "Offboard employees at Eventbrite."
inputParameters:
- name: emp_id
in: body
type: string
description: "Employee ID."
- name: last_day
in: body
type: string
description: "Last day."
steps:
- name: disable
type: call
call: "okta.deactivate"
with:
user: "{{emp_id}}"
- name: revoke
type: call
call: "slack.remove"
with:
user: "{{emp_id}}"
- name: return
type: call
call: "servicenow.create-request"
with:
type: "return"
emp: "{{emp_id}}"
- name: archive
type: call
call: "storage.archive"
with:
user: "{{emp_id}}"
consumes:
- type: http
namespace: okta
baseUri: "https://eventbrite.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users/{{user}}/lifecycle/deactivate"
inputParameters:
- name: user
in: path
operations:
- name: deactivate
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: users
path: "/users.admin.remove"
operations:
- name: remove
method: POST
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
- type: http
namespace: storage
baseUri: "https://storage.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.storage_token"
resources:
- name: archives
path: "/archive"
operations:
- name: archive
method: POST
Monitors event ticket inventory in Eventbrite, manages a waitlist in DynamoDB, and automatically promotes waitlisted attendees when tickets free up, sending confirmation via MailChimp.
naftiko: "0.5"
info:
label: "Event Capacity and Waitlist Manager"
description: "Monitors event ticket inventory in Eventbrite, manages a waitlist in DynamoDB, and automatically promotes waitlisted attendees when tickets free up, sending confirmation via MailChimp."
tags:
- ticketing
- events
- eventbrite
- dynamodb
- mailchimp
capability:
exposes:
- type: mcp
namespace: waitlist-mgmt
port: 8080
tools:
- name: manage-waitlist
description: "Check capacity, promote waitlisted attendees, and send confirmations."
inputParameters:
- name: event_id
in: body
type: string
description: "The Eventbrite event ID."
steps:
- name: check-capacity
type: call
call: "eventbrite.get-event-capacity"
with:
event_id: "{{event_id}}"
- name: get-waitlist
type: call
call: "dynamodb.query"
with:
table_name: "event_waitlists"
key_condition: '{"event_id":"{{event_id}}"}'
- name: promote-attendee
type: call
call: "eventbrite.create-order"
with:
event_id: "{{event_id}}"
attendee_email: "{{get-waitlist.next_email}}"
- name: send-confirmation
type: call
call: "mailchimp.send-transactional"
with:
to: "{{get-waitlist.next_email}}"
template: "waitlist_promoted"
merge_vars: '{"event_name":"{{check-capacity.event_name}}","order_id":"{{promote-attendee.order_id}}"}'
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: events
path: "/events/{{event_id}}"
inputParameters:
- name: event_id
in: path
operations:
- name: get-event-capacity
method: GET
- name: orders
path: "/events/{{event_id}}/orders"
inputParameters:
- name: event_id
in: path
operations:
- name: create-order
method: POST
- type: http
namespace: dynamodb
baseUri: "https://dynamodb.us-east-1.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_token"
resources:
- name: tables
path: "/"
operations:
- name: query
method: POST
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: transactional
path: "/messages/send"
operations:
- name: send-transactional
method: POST
Creates a new event in the Eventbrite platform, sets up a HubSpot email campaign, publishes to social channels (Facebook, Twitter, LinkedIn), and logs the launch in Datadog.
naftiko: "0.5"
info:
label: "Event Creation and Marketing Orchestrator"
description: "Creates a new event in the Eventbrite platform, sets up a HubSpot email campaign, publishes to social channels (Facebook, Twitter, LinkedIn), and logs the launch in Datadog."
tags:
- events
- marketing
- hubspot
- facebook
- twitter
- linkedin
- datadog
capability:
exposes:
- type: mcp
namespace: event-launch
port: 8080
tools:
- name: launch-event
description: "Create event, set up marketing campaign, distribute to social channels, and log."
inputParameters:
- name: event_name
in: body
type: string
description: "Name of the event."
- name: event_date
in: body
type: string
description: "Event date YYYY-MM-DD."
- name: venue_id
in: body
type: string
description: "Venue identifier."
- name: description
in: body
type: string
description: "Event description text."
steps:
- name: create-event
type: call
call: "eventbrite.create-event"
with:
name: "{{event_name}}"
start_date: "{{event_date}}"
venue_id: "{{venue_id}}"
description: "{{description}}"
- name: create-campaign
type: call
call: "hubspot.create-campaign"
with:
name: "Promote: {{event_name}}"
event_url: "{{create-event.url}}"
- name: post-facebook
type: call
call: "facebook.create-post"
with:
message: "Join us for {{event_name}} on {{event_date}}! Register now: {{create-event.url}}"
- name: post-twitter
type: call
call: "twitter.create-tweet"
with:
text: "{{event_name}} — {{event_date}}. Get your tickets: {{create-event.url}}"
- name: post-linkedin
type: call
call: "linkedin.create-post"
with:
text: "We're hosting {{event_name}} on {{event_date}}. Register: {{create-event.url}}"
- name: log-launch
type: call
call: "datadog.send-event"
with:
title: "Event launched: {{event_name}}"
text: "Event ID: {{create-event.id}}, Date: {{event_date}}"
tags: "events,launch"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: events
path: "/organizations/{{org_id}}/events"
operations:
- name: create-event
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: campaigns
path: "/marketing/v3/campaigns"
operations:
- name: create-campaign
method: POST
- type: http
namespace: facebook
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.facebook_token"
resources:
- name: posts
path: "/me/feed"
operations:
- name: create-post
method: POST
- type: http
namespace: twitter
baseUri: "https://api.twitter.com/2"
authentication:
type: bearer
token: "$secrets.twitter_token"
resources:
- name: tweets
path: "/tweets"
operations:
- name: create-tweet
method: POST
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: posts
path: "/ugcPosts"
operations:
- name: create-post
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: events
path: "/events"
operations:
- name: send-event
method: POST
Calculates organizer payouts from Eventbrite ticket sales, processes via Stripe Connect, records in Workday Financials, and sends confirmation via Slack.
naftiko: "0.5"
info:
label: "Event Organizer Payout Processing"
description: "Calculates organizer payouts from Eventbrite ticket sales, processes via Stripe Connect, records in Workday Financials, and sends confirmation via Slack."
tags:
- payments
- finance
- eventbrite
- stripe
- workday
- slack
capability:
exposes:
- type: mcp
namespace: organizer-payouts
port: 8080
tools:
- name: process-payout
description: "Calculate payout, transfer via Stripe, record in Workday, and confirm."
inputParameters:
- name: event_id
in: body
type: string
description: "The Eventbrite event ID."
- name: organizer_id
in: body
type: string
description: "The organizer account ID."
steps:
- name: get-sales-summary
type: call
call: "eventbrite.get-event-orders"
with:
event_id: "{{event_id}}"
- name: process-transfer
type: call
call: "stripe.create-transfer"
with:
amount: "{{get-sales-summary.net_revenue}}"
destination: "{{organizer_id}}"
metadata: '{"event_id":"{{event_id}}"}'
- name: record-payout
type: call
call: "workday.post-journal-entry"
with:
account: "organizer_payouts"
amount: "{{get-sales-summary.net_revenue}}"
reference: "{{event_id}}_{{organizer_id}}"
- name: confirm-payout
type: call
call: "slack.post-message"
with:
channel: "finance"
text: "Payout processed: ${{get-sales-summary.net_revenue}} to organizer {{organizer_id}} for event {{event_id}}. Transfer ID: {{process-transfer.id}}"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: orders
path: "/events/{{event_id}}/orders"
inputParameters:
- name: event_id
in: path
operations:
- name: get-event-orders
method: GET
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: transfers
path: "/transfers"
operations:
- name: create-transfer
method: POST
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: journals
path: "/journal-entries"
operations:
- name: post-journal-entry
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Creates an Instagram post promoting an event with image, caption, and event link.
naftiko: "0.5"
info:
label: "Event Promotion via Instagram"
description: "Creates an Instagram post promoting an event with image, caption, and event link."
tags:
- marketing
- social-media
- instagram
capability:
exposes:
- type: mcp
namespace: social-instagram
port: 8080
tools:
- name: promote-event-instagram
description: "Post an Instagram promotion for an event."
inputParameters:
- name: image_url
in: body
type: string
description: "URL of the promotional image."
- name: caption
in: body
type: string
description: "Post caption with event details."
call: "instagram.create-post"
with:
image_url: "{{image_url}}"
caption: "{{caption}}"
consumes:
- type: http
namespace: instagram
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: media
path: "/media"
operations:
- name: create-post
method: POST
Pulls ticket sales from Eventbrite, payment records from Stripe, and reconciles totals in Workday Financials, flagging discrepancies in Jira.
naftiko: "0.5"
info:
label: "Event Revenue Reconciliation"
description: "Pulls ticket sales from Eventbrite, payment records from Stripe, and reconciles totals in Workday Financials, flagging discrepancies in Jira."
tags:
- payments
- finance
- eventbrite
- stripe
- workday
- jira
capability:
exposes:
- type: mcp
namespace: revenue-recon
port: 8080
tools:
- name: reconcile-event-revenue
description: "Reconcile Eventbrite sales against Stripe payments and Workday records."
inputParameters:
- name: event_id
in: body
type: string
description: "The Eventbrite event ID."
- name: date
in: body
type: string
description: "Reconciliation date YYYY-MM-DD."
steps:
- name: get-sales
type: call
call: "eventbrite.get-event-orders"
with:
event_id: "{{event_id}}"
- name: get-payments
type: call
call: "stripe.list-charges"
with:
metadata: '{"event_id":"{{event_id}}"}'
created_after: "{{date}}"
- name: update-financials
type: call
call: "workday.post-journal-entry"
with:
account: "ticket_revenue"
amount: "{{get-sales.total_revenue}}"
date: "{{date}}"
- name: flag-discrepancy
type: call
call: "jira.create-issue"
with:
project_key: "FIN"
summary: "Revenue discrepancy: Event {{event_id}}"
description: "Eventbrite total: {{get-sales.total_revenue}}. Stripe total: {{get-payments.total}}. Variance: {{get-sales.variance}}"
priority: "High"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: orders
path: "/events/{{event_id}}/orders"
inputParameters:
- name: event_id
in: path
operations:
- name: get-event-orders
method: GET
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: charges
path: "/charges"
operations:
- name: list-charges
method: GET
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: journals
path: "/journal-entries"
operations:
- name: post-journal-entry
method: POST
- type: http
namespace: jira
baseUri: "https://eventbrite.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Aggregates ticket sales from Eventbrite, payment data from Stripe, marketing metrics from Google Analytics, and produces a Snowflake analytics report shared via Slack.
naftiko: "0.5"
info:
label: "Event Ticketing Analytics Dashboard"
description: "Aggregates ticket sales from Eventbrite, payment data from Stripe, marketing metrics from Google Analytics, and produces a Snowflake analytics report shared via Slack."
tags:
- analytics
- ticketing
- eventbrite
- stripe
- google-analytics
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: ticketing-analytics
port: 8080
tools:
- name: build-ticketing-dashboard
description: "Aggregate sales, payments, and traffic data into an analytics dashboard."
inputParameters:
- name: event_id
in: body
type: string
description: "The Eventbrite event ID."
- name: date_range
in: body
type: string
description: "Date range for analysis (e.g., last_7d)."
steps:
- name: get-sales
type: call
call: "eventbrite.get-event-orders"
with:
event_id: "{{event_id}}"
- name: get-payments
type: call
call: "stripe.list-charges"
with:
metadata: '{"event_id":"{{event_id}}"}'
- name: get-traffic
type: call
call: "ga.get-report"
with:
property_id: "eventbrite_web"
date_from: "{{date_range}}"
date_to: "today"
- name: run-analytics
type: call
call: "snowflake.execute-query"
with:
statement: "CALL sp_ticketing_dashboard('{{event_id}}', '{{date_range}}')"
warehouse: "analytics_wh"
- name: share-report
type: call
call: "slack.post-message"
with:
channel: "analytics"
text: "Ticketing Dashboard (Event {{event_id}}): {{get-sales.total_tickets}} tickets sold, ${{get-payments.total}} revenue, {{get-traffic.sessions}} page views."
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: orders
path: "/events/{{event_id}}/orders"
inputParameters:
- name: event_id
in: path
operations:
- name: get-event-orders
method: GET
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: charges
path: "/charges"
operations:
- name: list-charges
method: GET
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: get-report
method: POST
- type: http
namespace: snowflake
baseUri: "https://eventbrite.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves venue details from the Eventbrite API including address, capacity, and amenities.
naftiko: "0.5"
info:
label: "Event Venue Lookup"
description: "Retrieves venue details from the Eventbrite API including address, capacity, and amenities."
tags:
- events
- venues
- eventbrite
capability:
exposes:
- type: mcp
namespace: venues
port: 8080
tools:
- name: get-venue
description: "Look up an Eventbrite venue by ID."
inputParameters:
- name: venue_id
in: body
type: string
description: "The venue identifier."
call: "eventbrite.get-venue"
with:
venue_id: "{{venue_id}}"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: venues
path: "/venues/{{venue_id}}"
inputParameters:
- name: venue_id
in: path
operations:
- name: get-venue
method: GET
Audits expenses at Eventbrite via Concur, compliance checks, and email.
naftiko: "0.5"
info:
label: "Expense Audit Pipeline"
description: "Audits expenses at Eventbrite via Concur, compliance checks, and email."
tags:
- finance
- travel
- sap-concur
- compliance
capability:
exposes:
- type: mcp
namespace: expense-audit
port: 8080
tools:
- name: audit
description: "Audit expenses at Eventbrite."
inputParameters:
- name: report_id
in: body
type: string
description: "Report ID."
steps:
- name: get
type: call
call: "concur.get-report"
with:
id: "{{report_id}}"
- name: check
type: call
call: "compliance.check"
with:
expenses: "{{get.entries}}"
- name: flag
type: call
call: "workflow.flag"
with:
id: "{{report_id}}"
violations: "{{check.violations}}"
- name: notify
type: call
call: "email.send"
with:
to: "{{get.approver}}"
subject: "Expense {{report_id}} violations"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-report
method: GET
- type: http
namespace: compliance
baseUri: "https://compliance.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: policies
path: "/check"
operations:
- name: check
method: POST
- type: http
namespace: workflow
baseUri: "https://workflow.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.workflow_token"
resources:
- name: reviews
path: "/flag"
operations:
- name: flag
method: POST
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Analyzes feedback at Eventbrite via surveys, AI sentiment, and Power BI.
naftiko: "0.5"
info:
label: "Customer Feedback Pipeline"
description: "Analyzes feedback at Eventbrite via surveys, AI sentiment, and Power BI."
tags:
- customer-experience
- analytics
- sentiment-analysis
capability:
exposes:
- type: mcp
namespace: feedback
port: 8080
tools:
- name: analyze
description: "Analyze feedback at Eventbrite."
inputParameters:
- name: survey_id
in: body
type: string
description: "Survey ID."
steps:
- name: collect
type: call
call: "survey.get"
with:
id: "{{survey_id}}"
- name: sentiment
type: call
call: "ai.analyze"
with:
text: "{{collect.responses}}"
- name: themes
type: call
call: "ai.themes"
with:
data: "{{collect.responses}}"
- name: dashboard
type: call
call: "power-bi.refresh"
with:
dataset: "cx"
consumes:
- type: http
namespace: survey
baseUri: "https://surveys.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.survey_token"
resources:
- name: responses
path: "/surveys/{{id}}/responses"
inputParameters:
- name: id
in: path
operations:
- name: get
method: GET
- type: http
namespace: ai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: analyze
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
Exports event promotional design assets from Figma and uploads them to Google Drive for the marketing team.
naftiko: "0.5"
info:
label: "Figma Event Design Asset Export"
description: "Exports event promotional design assets from Figma and uploads them to Google Drive for the marketing team."
tags:
- design
- figma
- google-drive
capability:
exposes:
- type: mcp
namespace: design-assets
port: 8080
tools:
- name: export-design-assets
description: "Export Figma designs and upload to Google Drive."
inputParameters:
- name: file_id
in: body
type: string
description: "The Figma file ID."
- name: node_ids
in: body
type: string
description: "Comma-separated Figma node IDs to export."
- name: drive_folder_id
in: body
type: string
description: "Google Drive folder ID for uploads."
steps:
- name: export-images
type: call
call: "figma.export-images"
with:
file_id: "{{file_id}}"
ids: "{{node_ids}}"
format: "png"
- name: upload-to-drive
type: call
call: "gdrive.upload-file"
with:
folder_id: "{{drive_folder_id}}"
file_name: "event_assets_{{file_id}}.zip"
content: "{{export-images.download_url}}"
consumes:
- type: http
namespace: figma
baseUri: "https://api.figma.com/v1"
authentication:
type: bearer
token: "$secrets.figma_token"
resources:
- name: images
path: "/images/{{file_id}}"
inputParameters:
- name: file_id
in: path
operations:
- name: export-images
method: GET
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/upload/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Checks GitHub repo at Eventbrite.
naftiko: "0.5"
info:
label: "GitHub Repo Check"
description: "Checks GitHub repo at Eventbrite."
tags:
- devops
- github
- version-control
capability:
exposes:
- type: mcp
namespace: gh-repo
port: 8080
tools:
- name: get-branch
description: "Check branch at Eventbrite."
inputParameters:
- name: repo
in: body
type: string
description: "Repo."
- name: branch
in: body
type: string
description: "Branch."
call: "github.get-branch"
with:
repo: "{{repo}}"
branch: "{{branch}}"
outputParameters:
- name: sha
type: string
mapping: "$.commit.sha"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: branches
path: "/repos/org/{{repo}}/branches/{{branch}}"
inputParameters:
- name: repo
in: path
- name: branch
in: path
operations:
- name: get-branch
method: GET
Retrieves Gong call analytics for event sales conversations and returns talk ratio, topics, and follow-up actions.
naftiko: "0.5"
info:
label: "Gong Sales Call Analytics"
description: "Retrieves Gong call analytics for event sales conversations and returns talk ratio, topics, and follow-up actions."
tags:
- sales
- gong
capability:
exposes:
- type: mcp
namespace: sales-analytics
port: 8080
tools:
- name: get-call-analytics
description: "Fetch Gong call analytics by call ID."
inputParameters:
- name: call_id
in: body
type: string
description: "The Gong call identifier."
call: "gong.get-call"
with:
call_id: "{{call_id}}"
consumes:
- type: http
namespace: gong
baseUri: "https://api.gong.io/v2"
authentication:
type: bearer
token: "$secrets.gong_token"
resources:
- name: calls
path: "/calls/{{call_id}}"
inputParameters:
- name: call_id
in: path
operations:
- name: get-call
method: GET
Fetches a Google Analytics report for event page traffic and conversion metrics.
naftiko: "0.5"
info:
label: "Google Analytics Event Tracking Report"
description: "Fetches a Google Analytics report for event page traffic and conversion metrics."
tags:
- analytics
- google-analytics
capability:
exposes:
- type: mcp
namespace: web-analytics
port: 8080
tools:
- name: get-event-analytics
description: "Fetch GA4 report for event page performance."
inputParameters:
- name: property_id
in: body
type: string
description: "GA4 property ID."
- name: date_from
in: body
type: string
description: "Start date YYYY-MM-DD."
- name: date_to
in: body
type: string
description: "End date YYYY-MM-DD."
call: "ga.get-report"
with:
property_id: "{{property_id}}"
date_from: "{{date_from}}"
date_to: "{{date_to}}"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: get-report
method: POST
Fetches a file from Google Drive by file ID and returns metadata and download link.
naftiko: "0.5"
info:
label: "Google Drive File Retrieval"
description: "Fetches a file from Google Drive by file ID and returns metadata and download link."
tags:
- content
- google-drive
capability:
exposes:
- type: mcp
namespace: drive-files
port: 8080
tools:
- name: get-drive-file
description: "Retrieve a Google Drive file by ID."
inputParameters:
- name: file_id
in: body
type: string
description: "The Google Drive file ID."
call: "gdrive.get-file"
with:
file_id: "{{file_id}}"
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}}"
inputParameters:
- name: file_id
in: path
operations:
- name: get-file
method: GET
Fetches Google Search Console search analytics for event landing pages including clicks, impressions, and CTR.
naftiko: "0.5"
info:
label: "Google Search Console Performance"
description: "Fetches Google Search Console search analytics for event landing pages including clicks, impressions, and CTR."
tags:
- marketing
- seo
- google-search-console
capability:
exposes:
- type: mcp
namespace: seo-analytics
port: 8080
tools:
- name: get-search-performance
description: "Fetch GSC search analytics for event pages."
inputParameters:
- name: site_url
in: body
type: string
description: "The site URL registered in GSC."
- name: date_from
in: body
type: string
description: "Start date YYYY-MM-DD."
- name: date_to
in: body
type: string
description: "End date YYYY-MM-DD."
call: "gsc.query-analytics"
with:
site_url: "{{site_url}}"
start_date: "{{date_from}}"
end_date: "{{date_to}}"
consumes:
- type: http
namespace: gsc
baseUri: "https://www.googleapis.com/webmasters/v3"
authentication:
type: bearer
token: "$secrets.google_search_console_token"
resources:
- name: analytics
path: "/sites/{{site_url}}/searchAnalytics/query"
inputParameters:
- name: site_url
in: path
operations:
- name: query-analytics
method: POST
Updates a Google Sheets spreadsheet with event data for reporting and analysis.
naftiko: "0.5"
info:
label: "Google Sheets Report Update"
description: "Updates a Google Sheets spreadsheet with event data for reporting and analysis."
tags:
- reporting
- google-sheets
capability:
exposes:
- type: mcp
namespace: sheets-reporting
port: 8080
tools:
- name: update-sheet
description: "Update a Google Sheets range with data."
inputParameters:
- name: spreadsheet_id
in: body
type: string
description: "Google Sheets spreadsheet ID."
- name: range
in: body
type: string
description: "Cell range (e.g., Sheet1!A1:D10)."
- name: values
in: body
type: string
description: "JSON array of row values."
call: "gsheets.update-values"
with:
spreadsheet_id: "{{spreadsheet_id}}"
range: "{{range}}"
values: "{{values}}"
consumes:
- 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}}"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: update-values
method: PUT
Checks Grafana dashboard at Eventbrite.
naftiko: "0.5"
info:
label: "Grafana Dashboard Status"
description: "Checks Grafana dashboard at Eventbrite."
tags:
- monitoring
- grafana
- dashboards
capability:
exposes:
- type: mcp
namespace: grafana
port: 8080
tools:
- name: check-dash
description: "Check dashboard at Eventbrite."
inputParameters:
- name: uid
in: body
type: string
description: "Dashboard UID."
call: "grafana.get-dash"
with:
uid: "{{uid}}"
outputParameters:
- name: title
type: string
mapping: "$.dashboard.title"
consumes:
- type: http
namespace: grafana
baseUri: "https://grafana.eventbrite.com/api"
authentication:
type: bearer
token: "$secrets.grafana_token"
resources:
- name: dashboards
path: "/dashboards/uid/{{uid}}"
inputParameters:
- name: uid
in: path
operations:
- name: get-dash
method: GET
Retrieves a HubSpot contact record for marketing and event CRM integration.
naftiko: "0.5"
info:
label: "HubSpot Contact Lookup"
description: "Retrieves a HubSpot contact record for marketing and event CRM integration."
tags:
- marketing
- hubspot
capability:
exposes:
- type: mcp
namespace: crm-contacts
port: 8080
tools:
- name: get-contact
description: "Fetch a HubSpot contact by email."
inputParameters:
- name: email
in: body
type: string
description: "Contact email address."
call: "hubspot.get-contact"
with:
email: "{{email}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/crm/v3/objects/contacts/{{email}}"
inputParameters:
- name: email
in: path
operations:
- name: get-contact
method: GET
Syncs event sponsorship invoices from Salesforce to Intuit QuickBooks for accounting.
naftiko: "0.5"
info:
label: "Intuit QuickBooks Invoice Sync"
description: "Syncs event sponsorship invoices from Salesforce to Intuit QuickBooks for accounting."
tags:
- finance
- intuit
- salesforce
capability:
exposes:
- type: mcp
namespace: invoice-sync
port: 8080
tools:
- name: sync-invoice
description: "Sync a Salesforce opportunity to a QuickBooks invoice."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "Salesforce opportunity ID."
steps:
- name: get-opportunity
type: call
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
- name: create-invoice
type: call
call: "intuit.create-invoice"
with:
customer: "{{get-opportunity.account_name}}"
amount: "{{get-opportunity.amount}}"
description: "Sponsorship: {{get-opportunity.name}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://eventbrite.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: get-opportunity
method: GET
- type: http
namespace: intuit
baseUri: "https://quickbooks.api.intuit.com/v3"
authentication:
type: bearer
token: "$secrets.intuit_token"
resources:
- name: invoices
path: "/company/{{company_id}}/invoice"
operations:
- name: create-invoice
method: POST
Escalates IT incidents at Eventbrite via ServiceNow, PagerDuty, and Slack.
naftiko: "0.5"
info:
label: "IT Incident Escalation Pipeline"
description: "Escalates IT incidents at Eventbrite via ServiceNow, PagerDuty, and Slack."
tags:
- incident-management
- servicenow
- pagerduty
- slack
capability:
exposes:
- type: mcp
namespace: incident-escalation
port: 8080
tools:
- name: escalate-incident
description: "Escalate incidents at Eventbrite."
inputParameters:
- name: incident_id
in: body
type: string
description: "Incident ID."
- name: severity
in: body
type: string
description: "Severity."
steps:
- name: get-incident
type: call
call: "servicenow.get-incident"
with:
incident_id: "{{incident_id}}"
- name: page
type: call
call: "pagerduty.create-incident"
with:
title: "{{get-incident.description}}"
urgency: "{{severity}}"
- name: channel
type: call
call: "slack.create-channel"
with:
name: "inc-{{incident_id}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#inc-{{incident_id}}"
text: "P{{severity}}: {{get-incident.description}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident/{{incident_id}}"
inputParameters:
- name: incident_id
in: path
operations:
- name: get-incident
method: GET
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: channels
path: "/conversations.create"
operations:
- name: create-channel
method: POST
Retrieves the latest Jenkins build status for event platform CI pipelines.
naftiko: "0.5"
info:
label: "Jenkins Build Pipeline Status"
description: "Retrieves the latest Jenkins build status for event platform CI pipelines."
tags:
- development
- jenkins
capability:
exposes:
- type: mcp
namespace: ci-status
port: 8080
tools:
- name: get-build-status
description: "Fetch Jenkins build status for a job."
inputParameters:
- name: job_name
in: body
type: string
description: "Jenkins job name."
call: "jenkins.get-build"
with:
job_name: "{{job_name}}"
consumes:
- type: http
namespace: jenkins
baseUri: "https://jenkins.eventbrite.com"
authentication:
type: basic
username: "$secrets.jenkins_user"
password: "$secrets.jenkins_token"
resources:
- name: builds
path: "/job/{{job_name}}/lastBuild/api/json"
inputParameters:
- name: job_name
in: path
operations:
- name: get-build
method: GET
Creates a Jira issue for event operational tasks and links it to the event in the project board.
naftiko: "0.5"
info:
label: "Jira Issue Creation for Event Operations"
description: "Creates a Jira issue for event operational tasks and links it to the event in the project board."
tags:
- operations
- jira
capability:
exposes:
- type: mcp
namespace: event-ops
port: 8080
tools:
- name: create-ops-ticket
description: "Create a Jira ticket for event operations."
inputParameters:
- name: project_key
in: body
type: string
description: "Jira project key."
- name: summary
in: body
type: string
description: "Ticket summary."
- name: description
in: body
type: string
description: "Ticket description."
- name: priority
in: body
type: string
description: "Priority (High, Medium, Low)."
call: "jira.create-issue"
with:
project_key: "{{project_key}}"
summary: "{{summary}}"
description: "{{description}}"
priority: "{{priority}}"
consumes:
- type: http
namespace: jira
baseUri: "https://eventbrite.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Retrieves sprint progress at Eventbrite.
naftiko: "0.5"
info:
label: "Jira Sprint Progress Lookup"
description: "Retrieves sprint progress at Eventbrite."
tags:
- project-management
- jira
- agile
capability:
exposes:
- type: mcp
namespace: jira-sprint
port: 8080
tools:
- name: get-sprint
description: "Look up sprint at Eventbrite."
inputParameters:
- name: project_key
in: body
type: string
description: "Project key."
call: "jira.get-sprints"
with:
project: "{{project_key}}"
outputParameters:
- name: name
type: string
mapping: "$.values[0].name"
- name: state
type: string
mapping: "$.values[0].state"
consumes:
- type: http
namespace: jira
baseUri: "https://eventbrite.com.atlassian.net/rest/agile/1.0"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: sprints
path: "/board/1/sprint"
operations:
- name: get-sprints
method: GET
Maintains KB at Eventbrite by finding stale articles and notifying owners.
naftiko: "0.5"
info:
label: "Knowledge Base Maintenance Pipeline"
description: "Maintains KB at Eventbrite by finding stale articles and notifying owners."
tags:
- knowledge-management
- confluence
- maintenance
capability:
exposes:
- type: mcp
namespace: kb-maint
port: 8080
tools:
- name: maintain-kb
description: "Maintain KB at Eventbrite."
inputParameters:
- name: space
in: body
type: string
description: "Confluence space."
- name: stale_days
in: body
type: number
description: "Days threshold."
steps:
- name: find
type: call
call: "confluence.search-stale"
with:
space: "{{space}}"
days: "{{stale_days}}"
- name: notify
type: call
call: "email.batch"
with:
to: "{{find.owners}}"
subject: "KB review needed"
- name: flag
type: call
call: "confluence.add-label"
with:
pages: "{{find.ids}}"
label: "needs-review"
- name: report
type: call
call: "slack.post-message"
with:
channel: "#kb"
text: "KB: {{find.count}} stale articles"
consumes:
- type: http
namespace: confluence
baseUri: "https://eventbrite.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: content
path: "/content/search"
operations:
- name: search-stale
method: GET
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: batch
path: "/send-batch"
operations:
- name: batch
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Generates KPI digest at Eventbrite from Snowflake, Oracle, Power BI, and email.
naftiko: "0.5"
info:
label: "Weekly KPI Digest Pipeline"
description: "Generates KPI digest at Eventbrite from Snowflake, Oracle, Power BI, and email."
tags:
- reporting
- kpi
- snowflake
- executive
capability:
exposes:
- type: mcp
namespace: kpi-digest
port: 8080
tools:
- name: gen-digest
description: "Generate KPI digest at Eventbrite."
inputParameters:
- name: week
in: body
type: string
description: "Week ending."
- name: dist
in: body
type: string
description: "Distribution list."
steps:
- name: ops
type: call
call: "snowflake.query"
with:
query: "SELECT * FROM kpis WHERE w='{{week}}'"
- name: fin
type: call
call: "oracle.get-summary"
with:
period: "{{week}}"
- name: refresh
type: call
call: "power-bi.refresh"
with:
dataset: "exec_kpis"
- name: send
type: call
call: "email.send"
with:
to: "{{dist}}"
subject: "KPIs - {{week}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://eventbrite.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: oracle
baseUri: "https://oracle.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: fin
path: "/summary"
operations:
- name: get-summary
method: GET
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Checks K8s pod health at Eventbrite.
naftiko: "0.5"
info:
label: "K8s Pod Health"
description: "Checks K8s pod health at Eventbrite."
tags:
- containers
- kubernetes
- infrastructure
capability:
exposes:
- type: mcp
namespace: k8s-pod
port: 8080
tools:
- name: check-pod
description: "Check pod at Eventbrite."
inputParameters:
- name: namespace
in: body
type: string
description: "Namespace."
- name: pod
in: body
type: string
description: "Pod name."
call: "k8s.get-pod"
with:
namespace: "{{namespace}}"
pod: "{{pod}}"
outputParameters:
- name: phase
type: string
mapping: "$.status.phase"
consumes:
- type: http
namespace: k8s
baseUri: "https://k8s.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.k8s_token"
resources:
- name: pods
path: "/namespaces/{{namespace}}/pods/{{pod}}"
inputParameters:
- name: namespace
in: path
- name: pod
in: path
operations:
- name: get-pod
method: GET
Checks license compliance at Eventbrite via scanning, entitlements, and procurement.
naftiko: "0.5"
info:
label: "License Compliance Pipeline"
description: "Checks license compliance at Eventbrite via scanning, entitlements, and procurement."
tags:
- compliance
- licensing
- procurement
capability:
exposes:
- type: mcp
namespace: license-comp
port: 8080
tools:
- name: check-licenses
description: "Check license compliance at Eventbrite."
inputParameters:
- name: software
in: body
type: string
description: "Software."
- name: vendor
in: body
type: string
description: "Vendor."
steps:
- name: scan
type: call
call: "assets.installations"
with:
sw: "{{software}}"
- name: entitlements
type: call
call: "licenses.get"
with:
sw: "{{software}}"
- name: flag
type: call
call: "compliance.flag"
with:
installed: "{{scan.count}}"
entitled: "{{entitlements.count}}"
- name: procure
type: call
call: "servicenow.create-request"
with:
type: "license"
sw: "{{software}}"
consumes:
- type: http
namespace: assets
baseUri: "https://assets.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.asset_token"
resources:
- name: installations
path: "/installations"
operations:
- name: installations
method: GET
- type: http
namespace: licenses
baseUri: "https://licenses.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.license_token"
resources:
- name: ent
path: "/entitlements"
operations:
- name: get
method: GET
- type: http
namespace: compliance
baseUri: "https://compliance.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: overages
path: "/flag"
operations:
- name: flag
method: POST
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
Generates monthly security reports at Eventbrite from Splunk and Qualys.
naftiko: "0.5"
info:
label: "Monthly Security Report Pipeline"
description: "Generates monthly security reports at Eventbrite from Splunk and Qualys."
tags:
- security
- reporting
- splunk
- compliance
capability:
exposes:
- type: mcp
namespace: sec-report
port: 8080
tools:
- name: gen-sec-report
description: "Generate security report at Eventbrite."
inputParameters:
- name: month
in: body
type: string
description: "Month."
steps:
- name: splunk
type: call
call: "splunk.search"
with:
query: "index=security earliest=-30d"
- name: scans
type: call
call: "qualys.results"
with:
month: "{{month}}"
- name: compile
type: call
call: "analytics.compile-security"
with:
events: "{{splunk.count}}"
vulns: "{{scans.critical}}"
- name: send
type: call
call: "email.send"
with:
to: "ciso@co.com"
subject: "Security - {{month}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.eventbrite.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search
method: POST
- type: http
namespace: qualys
baseUri: "https://qualysapi.qualys.com/api/v2"
authentication:
type: bearer
token: "$secrets.qualys_token"
resources:
- name: results
path: "/fo/scan/results"
operations:
- name: results
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: security
path: "/compile"
operations:
- name: compile-security
method: POST
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
24 hours before an event, sends reminders to registered attendees via MailChimp email, WhatsApp message, and posts a reminder on the Facebook event page.
naftiko: "0.5"
info:
label: "Multi-Channel Event Reminder"
description: "24 hours before an event, sends reminders to registered attendees via MailChimp email, WhatsApp message, and posts a reminder on the Facebook event page."
tags:
- events
- marketing
- mailchimp
- whatsapp
- facebook
capability:
exposes:
- type: mcp
namespace: event-reminders
port: 8080
tools:
- name: send-event-reminders
description: "Send multi-channel reminders to event attendees."
inputParameters:
- name: event_id
in: body
type: string
description: "The Eventbrite event ID."
steps:
- name: get-event
type: call
call: "eventbrite.get-event"
with:
event_id: "{{event_id}}"
- name: get-attendees
type: call
call: "eventbrite.list-attendees"
with:
event_id: "{{event_id}}"
- name: send-email
type: call
call: "mailchimp.send-campaign"
with:
list_id: "event_{{event_id}}"
subject: "Reminder: {{get-event.name}} is tomorrow!"
body: "Don't forget — {{get-event.name}} starts at {{get-event.start_time}}. Venue: {{get-event.venue_name}}."
- name: send-whatsapp
type: call
call: "whatsapp.send-broadcast"
with:
template: "event_reminder"
parameters: '{"event_name":"{{get-event.name}}","date":"{{get-event.start_date}}","venue":"{{get-event.venue_name}}"}'
- name: post-facebook
type: call
call: "facebook.create-post"
with:
message: "Happening tomorrow: {{get-event.name}}! Last chance to register: {{get-event.url}}"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: events
path: "/events/{{event_id}}"
inputParameters:
- name: event_id
in: path
operations:
- name: get-event
method: GET
- name: attendees
path: "/events/{{event_id}}/attendees"
inputParameters:
- name: event_id
in: path
operations:
- name: list-attendees
method: GET
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
- type: http
namespace: whatsapp
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-broadcast
method: POST
- type: http
namespace: facebook
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.facebook_token"
resources:
- name: posts
path: "/me/feed"
operations:
- name: create-post
method: POST
Onboards employees at Eventbrite with Okta, ServiceNow, Slack, and calendar.
naftiko: "0.5"
info:
label: "New Employee IT Onboarding Pipeline"
description: "Onboards employees at Eventbrite with Okta, ServiceNow, Slack, and calendar."
tags:
- hr
- onboarding
- okta
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: it-onboarding
port: 8080
tools:
- name: onboard-employee
description: "Onboard employees at Eventbrite."
inputParameters:
- name: name
in: body
type: string
description: "Name."
- name: dept
in: body
type: string
description: "Department."
- name: start
in: body
type: string
description: "Start date."
steps:
- name: okta
type: call
call: "okta.create-user"
with:
name: "{{name}}"
department: "{{dept}}"
- name: equip
type: call
call: "servicenow.create-request"
with:
type: "new_hire"
for: "{{name}}"
- name: slack
type: call
call: "slack.invite"
with:
email: "{{okta.email}}"
- name: orient
type: call
call: "calendar.create-event"
with:
title: "Orientation - {{name}}"
date: "{{start}}"
consumes:
- type: http
namespace: okta
baseUri: "https://eventbrite.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
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_token"
resources:
- name: users
path: "/users.admin.invite"
operations:
- name: invite
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/hr/events"
operations:
- name: create-event
method: POST
Checks New Relic APM at Eventbrite.
naftiko: "0.5"
info:
label: "New Relic APM Check"
description: "Checks New Relic APM at Eventbrite."
tags:
- monitoring
- new-relic
- apm
capability:
exposes:
- type: mcp
namespace: nr-apm
port: 8080
tools:
- name: check-apm
description: "Check APM at Eventbrite."
inputParameters:
- name: app_id
in: body
type: string
description: "App ID."
call: "newrelic.get-app"
with:
app_id: "{{app_id}}"
outputParameters:
- name: health
type: string
mapping: "$.application.health_status"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.new_relic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app
method: GET
Retrieves application performance metrics from New Relic for Eventbrite platform monitoring.
naftiko: "0.5"
info:
label: "New Relic Performance Check"
description: "Retrieves application performance metrics from New Relic for Eventbrite platform monitoring."
tags:
- monitoring
- new-relic
capability:
exposes:
- type: mcp
namespace: apm
port: 8080
tools:
- name: get-app-performance
description: "Fetch New Relic APM metrics for an application."
inputParameters:
- name: app_id
in: body
type: string
description: "The New Relic application ID."
call: "newrelic.get-app-metrics"
with:
app_id: "{{app_id}}"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}/metrics/data.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app-metrics
method: GET
Checks Okta user at Eventbrite.
naftiko: "0.5"
info:
label: "Okta User Check"
description: "Checks Okta user at Eventbrite."
tags:
- identity
- okta
- access-management
capability:
exposes:
- type: mcp
namespace: okta-user
port: 8080
tools:
- name: check-user
description: "Check user at Eventbrite."
inputParameters:
- name: email
in: body
type: string
description: "Email."
call: "okta.get-user"
with:
email: "{{email}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: okta
baseUri: "https://eventbrite.com.okta.com/api/v1"
authentication:
type: bearer
token: "$secrets.okta_api_token"
resources:
- name: users
path: "/users/{{email}}"
inputParameters:
- name: email
in: path
operations:
- name: get-user
method: GET
Checks on-call at Eventbrite.
naftiko: "0.5"
info:
label: "PagerDuty On-Call Check"
description: "Checks on-call at Eventbrite."
tags:
- incident-management
- pagerduty
- on-call
capability:
exposes:
- type: mcp
namespace: pd-oncall
port: 8080
tools:
- name: get-oncall
description: "Check on-call at Eventbrite."
inputParameters:
- name: schedule_id
in: body
type: string
description: "Schedule ID."
call: "pagerduty.get-oncall"
with:
schedule_id: "{{schedule_id}}"
outputParameters:
- name: user
type: string
mapping: "$.oncalls[0].user.summary"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: oncalls
path: "/oncalls"
operations:
- name: get-oncall
method: GET
Queries Palo Alto Networks for threat intelligence on suspicious IPs accessing the platform.
naftiko: "0.5"
info:
label: "Palo Alto Networks Threat Query"
description: "Queries Palo Alto Networks for threat intelligence on suspicious IPs accessing the platform."
tags:
- security
- palo-alto-networks
capability:
exposes:
- type: mcp
namespace: threat-intel
port: 8080
tools:
- name: query-threat
description: "Look up threat intelligence for an indicator."
inputParameters:
- name: indicator
in: body
type: string
description: "IP address or domain."
call: "paloalto.get-threat"
with:
indicator: "{{indicator}}"
consumes:
- type: http
namespace: paloalto
baseUri: "https://api.paloaltonetworks.com/v1"
authentication:
type: bearer
token: "$secrets.paloalto_token"
resources:
- name: threats
path: "/threats/{{indicator}}"
inputParameters:
- name: indicator
in: path
operations:
- name: get-threat
method: GET
After an event ends, sends a Google Forms survey to all attendees via MailChimp, collects responses, and creates a summary report in Google Sheets.
naftiko: "0.5"
info:
label: "Post-Event Survey and Feedback Pipeline"
description: "After an event ends, sends a Google Forms survey to all attendees via MailChimp, collects responses, and creates a summary report in Google Sheets."
tags:
- events
- feedback
- google-forms
- mailchimp
- google-sheets
capability:
exposes:
- type: mcp
namespace: event-feedback
port: 8080
tools:
- name: trigger-post-event-survey
description: "Send survey to attendees, collect responses, and summarize in Sheets."
inputParameters:
- name: event_id
in: body
type: string
description: "The Eventbrite event ID."
- name: survey_form_id
in: body
type: string
description: "The Google Forms survey ID."
steps:
- name: get-attendees
type: call
call: "eventbrite.list-attendees"
with:
event_id: "{{event_id}}"
- name: send-survey
type: call
call: "mailchimp.send-campaign"
with:
list_id: "event_{{event_id}}"
subject: "How was your experience? Share your feedback!"
body: "Thank you for attending! Please take our quick survey: https://forms.google.com/{{survey_form_id}}"
- name: create-summary
type: call
call: "gsheets.create-sheet"
with:
spreadsheet_id: "event_feedback_tracker"
title: "Feedback — Event {{event_id}}"
data: '{"event_id":"{{event_id}}","attendee_count":"{{get-attendees.count}}","survey_sent":"true"}'
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: attendees
path: "/events/{{event_id}}/attendees"
inputParameters:
- name: event_id
in: path
operations:
- name: list-attendees
method: GET
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: sheets
path: "/spreadsheets/{{spreadsheet_id}}/sheets"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: create-sheet
method: POST
Executes a PostgreSQL query against the Eventbrite analytics database for custom reporting.
naftiko: "0.5"
info:
label: "PostgreSQL Analytics Query"
description: "Executes a PostgreSQL query against the Eventbrite analytics database for custom reporting."
tags:
- data
- analytics
capability:
exposes:
- type: mcp
namespace: db-analytics
port: 8080
tools:
- name: run-query
description: "Execute a PostgreSQL analytics query."
inputParameters:
- name: query
in: body
type: string
description: "SQL query to execute."
- name: database
in: body
type: string
description: "Target database name."
call: "postgres.execute-query"
with:
query: "{{query}}"
database: "{{database}}"
consumes:
- type: http
namespace: postgres
baseUri: "https://db-proxy.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.postgres_token"
resources:
- name: queries
path: "/query"
operations:
- name: execute-query
method: POST
Creates postmortems at Eventbrite.
naftiko: "0.5"
info:
label: "Incident Postmortem Pipeline"
description: "Creates postmortems at Eventbrite."
tags:
- incident-management
- postmortem
- pagerduty
- confluence
capability:
exposes:
- type: mcp
namespace: postmortem
port: 8080
tools:
- name: create-postmortem
description: "Create postmortem at Eventbrite."
inputParameters:
- name: incident_id
in: body
type: string
description: "Incident ID."
steps:
- name: timeline
type: call
call: "pagerduty.get-log"
with:
id: "{{incident_id}}"
- name: metrics
type: call
call: "datadog.get-metrics"
with:
incident: "{{incident_id}}"
- name: doc
type: call
call: "confluence.create-page"
with:
title: "Postmortem: {{timeline.title}}"
body: "Impact: {{metrics.impact}}"
- name: review
type: call
call: "calendar.create-event"
with:
title: "Review: {{timeline.title}}"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: incidents
path: "/incidents/{{id}}/log_entries"
inputParameters:
- name: id
in: path
operations:
- name: get-log
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: incidents
path: "/incidents"
operations:
- name: get-metrics
method: GET
- type: http
namespace: confluence
baseUri: "https://eventbrite.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/sre/events"
operations:
- name: create-event
method: POST
Checks Power BI refresh at Eventbrite.
naftiko: "0.5"
info:
label: "Power BI Refresh Check"
description: "Checks Power BI refresh at Eventbrite."
tags:
- analytics
- power-bi
- dashboards
capability:
exposes:
- type: mcp
namespace: pbi-refresh
port: 8080
tools:
- name: check-refresh
description: "Check refresh at Eventbrite."
inputParameters:
- name: dataset_id
in: body
type: string
description: "Dataset ID."
call: "power-bi.get-refresh"
with:
dataset_id: "{{dataset_id}}"
outputParameters:
- name: status
type: string
mapping: "$.value[0].status"
consumes:
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: get-refresh
method: GET
Queries Prometheus for platform infrastructure metrics used in event service monitoring.
naftiko: "0.5"
info:
label: "Prometheus Metrics Query"
description: "Queries Prometheus for platform infrastructure metrics used in event service monitoring."
tags:
- monitoring
- prometheus
capability:
exposes:
- type: mcp
namespace: prometheus-metrics
port: 8080
tools:
- name: query-prometheus
description: "Execute a PromQL query."
inputParameters:
- name: query
in: body
type: string
description: "PromQL query string."
- name: time
in: body
type: string
description: "Evaluation timestamp (RFC3339 or Unix)."
call: "prometheus.query"
with:
query: "{{query}}"
time: "{{time}}"
consumes:
- type: http
namespace: prometheus
baseUri: "https://prometheus.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: queries
path: "/query"
operations:
- name: query
method: GET
Generates compliance reports at Eventbrite from Snowflake, Power BI, and email.
naftiko: "0.5"
info:
label: "Quarterly Compliance Report Pipeline"
description: "Generates compliance reports at Eventbrite from Snowflake, Power BI, and email."
tags:
- compliance
- reporting
- snowflake
- power-bi
capability:
exposes:
- type: mcp
namespace: compliance-rpt
port: 8080
tools:
- name: gen-report
description: "Generate compliance reports at Eventbrite."
inputParameters:
- name: quarter
in: body
type: string
description: "Quarter."
- name: type
in: body
type: string
description: "Type."
steps:
- name: data
type: call
call: "snowflake.query"
with:
query: "SELECT * FROM compliance WHERE q='{{quarter}}'"
- name: metrics
type: call
call: "analytics.compute"
with:
data: "{{data.results}}"
- name: refresh
type: call
call: "power-bi.refresh"
with:
dataset: "compliance"
- name: send
type: call
call: "email.send"
with:
to: "compliance@co.com"
subject: "{{type}} - {{quarter}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://eventbrite.com.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query
method: POST
- type: http
namespace: analytics
baseUri: "https://analytics.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: metrics
path: "/compute"
operations:
- name: compute
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: datasets
path: "/datasets/{{dataset}}/refreshes"
inputParameters:
- name: dataset
in: path
operations:
- name: refresh
method: POST
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
Checks Redis at Eventbrite.
naftiko: "0.5"
info:
label: "Redis Cache Status"
description: "Checks Redis at Eventbrite."
tags:
- caching
- redis
- infrastructure
capability:
exposes:
- type: mcp
namespace: redis
port: 8080
tools:
- name: check-cache
description: "Check Redis at Eventbrite."
inputParameters:
- name: instance
in: body
type: string
description: "Instance ID."
call: "redis.get-info"
with:
instance: "{{instance}}"
outputParameters:
- name: memory
type: string
mapping: "$.used_memory_human"
consumes:
- type: http
namespace: redis
baseUri: "https://redis.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.redis_token"
resources:
- name: instances
path: "/instances/{{instance}}/info"
inputParameters:
- name: instance
in: path
operations:
- name: get-info
method: GET
Processes a ticket refund by canceling the Eventbrite order, issuing a Stripe refund, sending a confirmation email via MailChimp, and updating the Salesforce contact record.
naftiko: "0.5"
info:
label: "Refund Processing Pipeline"
description: "Processes a ticket refund by canceling the Eventbrite order, issuing a Stripe refund, sending a confirmation email via MailChimp, and updating the Salesforce contact record."
tags:
- payments
- ticketing
- eventbrite
- stripe
- mailchimp
- salesforce
capability:
exposes:
- type: mcp
namespace: refunds
port: 8080
tools:
- name: process-refund
description: "Cancel order, issue refund, confirm via email, and update CRM."
inputParameters:
- name: order_id
in: body
type: string
description: "The Eventbrite order ID."
- name: reason
in: body
type: string
description: "Refund reason."
steps:
- name: get-order
type: call
call: "eventbrite.get-order"
with:
order_id: "{{order_id}}"
- name: cancel-order
type: call
call: "eventbrite.cancel-order"
with:
order_id: "{{order_id}}"
- name: issue-refund
type: call
call: "stripe.create-refund"
with:
payment_intent: "{{get-order.payment_intent_id}}"
reason: "{{reason}}"
- name: send-confirmation
type: call
call: "mailchimp.send-transactional"
with:
to: "{{get-order.email}}"
template: "refund_confirmation"
merge_vars: '{"name":"{{get-order.attendee_name}}","amount":"{{get-order.total}}","reason":"{{reason}}"}'
- name: update-crm
type: call
call: "salesforce.update-contact"
with:
email: "{{get-order.email}}"
note: "Refund processed for order {{order_id}}: {{reason}}"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: orders
path: "/orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
- name: cancel-order
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: refunds
path: "/refunds"
operations:
- name: create-refund
method: POST
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: transactional
path: "/messages/send"
operations:
- name: send-transactional
method: POST
- type: http
namespace: salesforce
baseUri: "https://eventbrite.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact"
operations:
- name: update-contact
method: PATCH
Checks release readiness at Eventbrite.
naftiko: "0.5"
info:
label: "Release Readiness Pipeline"
description: "Checks release readiness at Eventbrite."
tags:
- release-management
- devops
- quality
capability:
exposes:
- type: mcp
namespace: release-ready
port: 8080
tools:
- name: check-release
description: "Check release at Eventbrite."
inputParameters:
- name: release_id
in: body
type: string
description: "Release ID."
- name: project
in: body
type: string
description: "Project."
steps:
- name: tests
type: call
call: "azdo.get-tests"
with:
project: "{{project}}"
release: "{{release_id}}"
- name: quality
type: call
call: "sonarqube.get-gate"
with:
project: "{{project}}"
- name: security
type: call
call: "security.get-scan"
with:
project: "{{project}}"
- name: doc
type: call
call: "confluence.create-page"
with:
title: "Release - {{release_id}}"
body: "Tests: {{tests.pass_rate}}% Quality: {{quality.status}}"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/eventbrite.com"
authentication:
type: bearer
token: "$secrets.azdo_token"
resources:
- name: tests
path: "/{{project}}/_apis/test/runs"
inputParameters:
- name: project
in: path
operations:
- name: get-tests
method: GET
- type: http
namespace: sonarqube
baseUri: "https://sonarqube.eventbrite.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: quality
path: "/qualitygates/project_status"
operations:
- name: get-gate
method: GET
- type: http
namespace: security
baseUri: "https://security.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.security_token"
resources:
- name: scans
path: "/results"
operations:
- name: get-scan
method: GET
- type: http
namespace: confluence
baseUri: "https://eventbrite.com.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
When a new Eventbrite registration occurs, creates a Salesforce lead with event context and notifies the sales team in Slack.
naftiko: "0.5"
info:
label: "Salesforce Lead from Event Registration"
description: "When a new Eventbrite registration occurs, creates a Salesforce lead with event context and notifies the sales team in Slack."
tags:
- sales
- events
- salesforce
- slack
- eventbrite
capability:
exposes:
- type: mcp
namespace: event-leads
port: 8080
tools:
- name: create-lead-from-registration
description: "Create a Salesforce lead from an event registration and notify sales."
inputParameters:
- name: event_id
in: body
type: string
description: "The Eventbrite event ID."
- name: attendee_id
in: body
type: string
description: "The attendee ID."
steps:
- name: get-attendee
type: call
call: "eventbrite.get-attendee"
with:
event_id: "{{event_id}}"
attendee_id: "{{attendee_id}}"
- name: create-lead
type: call
call: "salesforce.create-lead"
with:
email: "{{get-attendee.email}}"
first_name: "{{get-attendee.first_name}}"
last_name: "{{get-attendee.last_name}}"
company: "{{get-attendee.company}}"
source: "Event: {{get-attendee.event_name}}"
- name: notify-sales
type: call
call: "slack.post-message"
with:
channel: "sales-leads"
text: "New lead from {{get-attendee.event_name}}: {{get-attendee.first_name}} {{get-attendee.last_name}} ({{get-attendee.company}}). SF ID: {{create-lead.id}}"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: attendees
path: "/events/{{event_id}}/attendees/{{attendee_id}}"
inputParameters:
- name: event_id
in: path
- name: attendee_id
in: path
operations:
- name: get-attendee
method: GET
- type: http
namespace: salesforce
baseUri: "https://eventbrite.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: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Checks SAP PO at Eventbrite.
naftiko: "0.5"
info:
label: "SAP PO Check"
description: "Checks SAP PO at Eventbrite."
tags:
- procurement
- sap
- purchase-orders
capability:
exposes:
- type: mcp
namespace: sap-po
port: 8080
tools:
- name: get-po
description: "Check PO at Eventbrite."
inputParameters:
- name: po_number
in: body
type: string
description: "PO number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: vendor
type: string
mapping: "$.order.vendor"
- name: status
type: string
mapping: "$.order.status"
consumes:
- type: http
namespace: sap
baseUri: "https://sap.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: purchase-orders
path: "/purchase-orders/{{po_number}}"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Remediates vulnerabilities at Eventbrite via scanning, Jira, and Slack.
naftiko: "0.5"
info:
label: "Security Vulnerability Remediation Pipeline"
description: "Remediates vulnerabilities at Eventbrite via scanning, Jira, and Slack."
tags:
- security
- vulnerability-management
- jira
capability:
exposes:
- type: mcp
namespace: vuln-fix
port: 8080
tools:
- name: remediate
description: "Fix vulnerabilities at Eventbrite."
inputParameters:
- name: target
in: body
type: string
description: "Target."
- name: policy
in: body
type: string
description: "Policy."
steps:
- name: scan
type: call
call: "qualys.scan"
with:
target: "{{target}}"
policy: "{{policy}}"
- name: prioritize
type: call
call: "security.prioritize"
with:
scan: "{{scan.id}}"
- name: ticket
type: call
call: "jira.create-issue"
with:
project: "SEC"
summary: "Vulns: {{prioritize.critical}} critical"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#security"
text: "Scan: {{prioritize.critical}} critical"
consumes:
- type: http
namespace: qualys
baseUri: "https://qualysapi.qualys.com/api/v2"
authentication:
type: bearer
token: "$secrets.qualys_token"
resources:
- name: scans
path: "/fo/scan"
operations:
- name: scan
method: POST
- type: http
namespace: security
baseUri: "https://security.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.security_token"
resources:
- name: vulns
path: "/prioritize"
operations:
- name: prioritize
method: POST
- type: http
namespace: jira
baseUri: "https://eventbrite.com.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Checks IT incident in ServiceNow for Eventbrite.
naftiko: "0.5"
info:
label: "ServiceNow Incident Detail Check"
description: "Checks IT incident in ServiceNow for Eventbrite."
tags:
- it-service
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: snow-incident
port: 8080
tools:
- name: check-incident
description: "Check incident at Eventbrite."
inputParameters:
- name: incident_number
in: body
type: string
description: "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"
consumes:
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: get-incident
method: GET
Creates a ServiceNow IT request for event infrastructure needs.
naftiko: "0.5"
info:
label: "ServiceNow IT Request"
description: "Creates a ServiceNow IT request for event infrastructure needs."
tags:
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: it-requests
port: 8080
tools:
- name: create-it-request
description: "Create a ServiceNow IT request for event infrastructure."
inputParameters:
- name: summary
in: body
type: string
description: "Request summary."
- name: description
in: body
type: string
description: "Request description."
- name: priority
in: body
type: string
description: "Priority level."
call: "servicenow.create-request"
with:
short_description: "{{summary}}"
description: "{{description}}"
priority: "{{priority}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://eventbrite.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
Retrieves SharePoint metadata at Eventbrite.
naftiko: "0.5"
info:
label: "SharePoint File Metadata"
description: "Retrieves SharePoint metadata at Eventbrite."
tags:
- document-management
- sharepoint
- collaboration
capability:
exposes:
- type: mcp
namespace: sp-docs
port: 8080
tools:
- name: get-file
description: "Look up file at Eventbrite."
inputParameters:
- name: site_id
in: body
type: string
description: "Site ID."
- name: file_path
in: body
type: string
description: "Path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
path: "{{file_path}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: size
type: number
mapping: "$.size"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: files
path: "/sites/{{site_id}}/drive/root:/{{path}}"
inputParameters:
- name: site_id
in: path
- name: path
in: path
operations:
- name: get-file
method: GET
Monitors SLAs at Eventbrite via Datadog and Slack.
naftiko: "0.5"
info:
label: "SLA Monitoring Pipeline"
description: "Monitors SLAs at Eventbrite via Datadog and Slack."
tags:
- operations
- sla
- datadog
- slack
capability:
exposes:
- type: mcp
namespace: sla-monitor
port: 8080
tools:
- name: check-sla
description: "Monitor SLAs at Eventbrite."
inputParameters:
- name: service
in: body
type: string
description: "Service."
- name: target
in: body
type: number
description: "SLA target %."
steps:
- name: metrics
type: call
call: "datadog.get-sla"
with:
service: "{{service}}"
- name: check
type: call
call: "analytics.check-sla"
with:
uptime: "{{metrics.uptime}}"
target: "{{target}}"
- name: alert
type: call
call: "slack.post-message"
with:
channel: "#ops"
text: "SLA: {{service}} at {{metrics.uptime}}% (target: {{target}}%)"
- name: log
type: call
call: "servicenow.create-incident"
with:
desc: "SLA breach: {{service}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/metrics"
operations:
- name: get-sla
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://eventbrite.com.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Sends a message to a Slack channel for internal team communication and event coordination.
naftiko: "0.5"
info:
label: "Slack Channel Notification"
description: "Sends a message to a Slack channel for internal team communication and event coordination."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: messaging
port: 8080
tools:
- name: send-slack-message
description: "Post a message to a Slack channel."
inputParameters:
- name: channel
in: body
type: string
description: "Slack channel name or ID."
- name: text
in: body
type: string
description: "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_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Executes a Snowflake SQL query for event analytics and returns the result set.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Executes a Snowflake SQL query for event analytics and returns the result set."
tags:
- data
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: data-analytics
port: 8080
tools:
- name: run-analytics-query
description: "Execute a Snowflake SQL query for event analytics."
inputParameters:
- name: query
in: body
type: string
description: "SQL query to execute."
- name: warehouse
in: body
type: string
description: "Snowflake warehouse name."
call: "snowflake.execute-query"
with:
statement: "{{query}}"
warehouse: "{{warehouse}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://eventbrite.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Retrieves SonarQube project quality metrics for Eventbrite platform code quality gates.
naftiko: "0.5"
info:
label: "SonarQube Code Quality Check"
description: "Retrieves SonarQube project quality metrics for Eventbrite platform code quality gates."
tags:
- development
- sonarqube
capability:
exposes:
- type: mcp
namespace: code-quality
port: 8080
tools:
- name: get-quality-gate
description: "Fetch SonarQube quality gate status for a project."
inputParameters:
- name: project_key
in: body
type: string
description: "SonarQube project key."
call: "sonarqube.get-quality-gate"
with:
project_key: "{{project_key}}"
consumes:
- type: http
namespace: sonarqube
baseUri: "https://sonar.eventbrite.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: quality-gates
path: "/qualitygates/project_status"
operations:
- name: get-quality-gate
method: GET
Searches Splunk at Eventbrite.
naftiko: "0.5"
info:
label: "Splunk Log Search"
description: "Searches Splunk at Eventbrite."
tags:
- security
- splunk
- logging
capability:
exposes:
- type: mcp
namespace: splunk-search
port: 8080
tools:
- name: search-logs
description: "Search logs at Eventbrite."
inputParameters:
- name: query
in: body
type: string
description: "SPL query."
call: "splunk.search"
with:
query: "{{query}}"
outputParameters:
- name: count
type: number
mapping: "$.results.count"
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.eventbrite.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search
method: POST
Creates a sponsor record in Salesforce, assigns sponsorship tier in the Eventbrite event, uploads the sponsor logo to Google Drive, and notifies the partnerships team in Slack.
naftiko: "0.5"
info:
label: "Sponsor Management Pipeline"
description: "Creates a sponsor record in Salesforce, assigns sponsorship tier in the Eventbrite event, uploads the sponsor logo to Google Drive, and notifies the partnerships team in Slack."
tags:
- events
- sales
- salesforce
- eventbrite
- google-drive
- slack
capability:
exposes:
- type: mcp
namespace: sponsorships
port: 8080
tools:
- name: onboard-sponsor
description: "Create sponsor record, assign tier, upload assets, and notify team."
inputParameters:
- name: sponsor_name
in: body
type: string
description: "Sponsor company name."
- name: event_id
in: body
type: string
description: "Eventbrite event ID."
- name: tier
in: body
type: string
description: "Sponsorship tier (gold, silver, bronze)."
- name: logo_url
in: body
type: string
description: "URL of the sponsor logo."
steps:
- name: create-account
type: call
call: "salesforce.create-account"
with:
name: "{{sponsor_name}}"
type: "Sponsor"
tier: "{{tier}}"
event: "{{event_id}}"
- name: upload-logo
type: call
call: "gdrive.upload-file"
with:
folder_id: "sponsor_assets_{{event_id}}"
file_name: "{{sponsor_name}}_logo.png"
content: "{{logo_url}}"
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "partnerships"
text: "New sponsor: {{sponsor_name}} ({{tier}} tier) for event {{event_id}}. SF ID: {{create-account.id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://eventbrite.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: gdrive
baseUri: "https://www.googleapis.com/upload/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Creates a Stripe payment intent for event ticket purchases, processes the charge, and returns the payment confirmation.
naftiko: "0.5"
info:
label: "Stripe Payment Processing"
description: "Creates a Stripe payment intent for event ticket purchases, processes the charge, and returns the payment confirmation."
tags:
- payments
- stripe
capability:
exposes:
- type: mcp
namespace: payments
port: 8080
tools:
- name: create-payment
description: "Create a Stripe payment intent for ticket purchase."
inputParameters:
- name: amount
in: body
type: number
description: "Payment amount in cents."
- name: currency
in: body
type: string
description: "Three-letter currency code (e.g., usd)."
- name: order_id
in: body
type: string
description: "Associated Eventbrite order ID."
call: "stripe.create-payment-intent"
with:
amount: "{{amount}}"
currency: "{{currency}}"
metadata: '{"order_id":"{{order_id}}"}'
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: payment-intents
path: "/payment_intents"
operations:
- name: create-payment-intent
method: POST
Retrieves Teams activity at Eventbrite.
naftiko: "0.5"
info:
label: "Teams Channel Activity"
description: "Retrieves Teams activity at Eventbrite."
tags:
- communications
- microsoft-teams
- analytics
capability:
exposes:
- type: mcp
namespace: teams-activity
port: 8080
tools:
- name: get-activity
description: "Check Teams activity at Eventbrite."
inputParameters:
- name: team_id
in: body
type: string
description: "Team ID."
- name: channel_id
in: body
type: string
description: "Channel ID."
call: "teams.get-messages"
with:
team_id: "{{team_id}}"
channel_id: "{{channel_id}}"
outputParameters:
- name: count
type: number
mapping: "$.value.length"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: get-messages
method: GET
Triggers a Terraform plan for Eventbrite platform infrastructure and posts the summary to Slack.
naftiko: "0.5"
info:
label: "Terraform Infrastructure Plan"
description: "Triggers a Terraform plan for Eventbrite platform infrastructure and posts the summary to Slack."
tags:
- infrastructure
- terraform
- slack
capability:
exposes:
- type: mcp
namespace: infra-automation
port: 8080
tools:
- name: run-terraform-plan
description: "Trigger a Terraform plan and notify via Slack."
inputParameters:
- name: workspace_id
in: body
type: string
description: "Terraform workspace ID."
- name: slack_channel
in: body
type: string
description: "Slack channel for plan review."
steps:
- name: create-run
type: call
call: "terraform.create-run"
with:
workspace_id: "{{workspace_id}}"
plan_only: true
- name: notify-team
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Terraform plan for {{workspace_id}}: {{create-run.resource_additions}} additions, {{create-run.resource_changes}} changes."
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: runs
path: "/runs"
operations:
- name: create-run
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Checks Terraform workspace at Eventbrite.
naftiko: "0.5"
info:
label: "Terraform Workspace Check"
description: "Checks Terraform workspace at Eventbrite."
tags:
- infrastructure
- terraform
- iac
capability:
exposes:
- type: mcp
namespace: tf-ws
port: 8080
tools:
- name: check-ws
description: "Check workspace at Eventbrite."
inputParameters:
- name: workspace_id
in: body
type: string
description: "Workspace ID."
call: "terraform.get-ws"
with:
workspace_id: "{{workspace_id}}"
outputParameters:
- name: name
type: string
mapping: "$.data.attributes.name"
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: workspaces
path: "/workspaces/{{workspace_id}}"
inputParameters:
- name: workspace_id
in: path
operations:
- name: get-ws
method: GET
Retrieves ticket order details from the Eventbrite API by order ID including attendee info, ticket type, and payment status.
naftiko: "0.5"
info:
label: "Ticket Purchase Lookup"
description: "Retrieves ticket order details from the Eventbrite API by order ID including attendee info, ticket type, and payment status."
tags:
- ticketing
- eventbrite
capability:
exposes:
- type: mcp
namespace: ticketing
port: 8080
tools:
- name: get-order
description: "Look up an Eventbrite order by order ID."
inputParameters:
- name: order_id
in: body
type: string
description: "The Eventbrite order identifier."
call: "eventbrite.get-order"
with:
order_id: "{{order_id}}"
consumes:
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: orders
path: "/orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
Checks Vault secret at Eventbrite.
naftiko: "0.5"
info:
label: "Vault Secret Metadata"
description: "Checks Vault secret at Eventbrite."
tags:
- security
- vault
- secrets-management
capability:
exposes:
- type: mcp
namespace: vault
port: 8080
tools:
- name: check-secret
description: "Check secret at Eventbrite."
inputParameters:
- name: path
in: body
type: string
description: "Secret path."
call: "vault.get-metadata"
with:
path: "{{path}}"
outputParameters:
- name: version
type: number
mapping: "$.data.current_version"
consumes:
- type: http
namespace: vault
baseUri: "https://vault.eventbrite.com/v1"
authentication:
type: bearer
token: "$secrets.vault_token"
resources:
- name: secrets
path: "/secret/metadata/{{path}}"
inputParameters:
- name: path
in: path
operations:
- name: get-metadata
method: GET
Processes invoices at Eventbrite via OCR, SAP matching, approval, and Oracle recording.
naftiko: "0.5"
info:
label: "Vendor Invoice Processing Pipeline"
description: "Processes invoices at Eventbrite via OCR, SAP matching, approval, and Oracle recording."
tags:
- finance
- accounts-payable
- sap
- oracle
capability:
exposes:
- type: mcp
namespace: invoice-proc
port: 8080
tools:
- name: process-invoice
description: "Process invoices at Eventbrite."
inputParameters:
- name: invoice_id
in: body
type: string
description: "Invoice ID."
- name: vendor_id
in: body
type: string
description: "Vendor ID."
steps:
- name: extract
type: call
call: "ocr.extract"
with:
doc: "{{invoice_id}}"
- name: match
type: call
call: "sap.match-po"
with:
vendor: "{{vendor_id}}"
amount: "{{extract.total}}"
- name: approve
type: call
call: "workflow.submit"
with:
invoice: "{{invoice_id}}"
- name: record
type: call
call: "oracle.create-payment"
with:
invoice: "{{invoice_id}}"
consumes:
- type: http
namespace: ocr
baseUri: "https://ocr.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.ocr_token"
resources:
- name: invoices
path: "/extract"
operations:
- name: extract
method: POST
- type: http
namespace: sap
baseUri: "https://sap.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: pos
path: "/match"
operations:
- name: match-po
method: POST
- type: http
namespace: workflow
baseUri: "https://workflow.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.workflow_token"
resources:
- name: approvals
path: "/submit"
operations:
- name: submit
method: POST
- type: http
namespace: oracle
baseUri: "https://oracle.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: payments
path: "/payments"
operations:
- name: create-payment
method: POST
Reviews vendors at Eventbrite.
naftiko: "0.5"
info:
label: "Quarterly Vendor Review Pipeline"
description: "Reviews vendors at Eventbrite."
tags:
- procurement
- vendor-management
- review
capability:
exposes:
- type: mcp
namespace: vendor-review
port: 8080
tools:
- name: review-vendor
description: "Review vendors at Eventbrite."
inputParameters:
- name: vendor_id
in: body
type: string
description: "Vendor ID."
- name: quarter
in: body
type: string
description: "Quarter."
steps:
- name: perf
type: call
call: "procurement.get-metrics"
with:
vendor: "{{vendor_id}}"
q: "{{quarter}}"
- name: scorecard
type: call
call: "analytics.scorecard"
with:
data: "{{perf.data}}"
- name: invite
type: call
call: "email.send"
with:
to: "{{perf.contact}}"
subject: "QBR - {{quarter}}"
- name: schedule
type: call
call: "calendar.create-event"
with:
title: "QBR - {{perf.name}}"
consumes:
- type: http
namespace: procurement
baseUri: "https://procurement.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.procurement_token"
resources:
- name: vendors
path: "/vendors/{{vendor}}/metrics"
inputParameters:
- name: vendor
in: path
operations:
- name: get-metrics
method: GET
- type: http
namespace: analytics
baseUri: "https://analytics.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.analytics_token"
resources:
- name: scorecards
path: "/compute"
operations:
- name: scorecard
method: POST
- type: http
namespace: email
baseUri: "https://email.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.email_token"
resources:
- name: messages
path: "/send"
operations:
- name: send
method: POST
- type: http
namespace: calendar
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: events
path: "/users/proc/events"
operations:
- name: create-event
method: POST
Retrieves employee profile data from Workday by worker ID.
naftiko: "0.5"
info:
label: "Workday Employee Lookup"
description: "Retrieves employee profile data from Workday by worker ID."
tags:
- hr
- workday
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}}"
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 for Eventbrite.
naftiko: "0.5"
info:
label: "Workday Employee Profile Lookup"
description: "Retrieves employee profile from Workday for Eventbrite."
tags:
- hr
- workday
- employee-directory
capability:
exposes:
- type: mcp
namespace: workday-profile
port: 8080
tools:
- name: get-employee-profile
description: "Look up Eventbrite employee in Workday."
inputParameters:
- name: employee_id
in: body
type: string
description: "Employee ID."
call: "workday.get-worker"
with:
employee_id: "{{employee_id}}"
outputParameters:
- name: name
type: string
mapping: "$.worker.name"
- name: title
type: string
mapping: "$.worker.title"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5.eventbrite.com/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{employee_id}}"
inputParameters:
- name: employee_id
in: path
operations:
- name: get-worker
method: GET
Creates a YouTube livestream for an event, links it to the Eventbrite event page, and promotes across social channels.
naftiko: "0.5"
info:
label: "YouTube Event Livestream Setup"
description: "Creates a YouTube livestream for an event, links it to the Eventbrite event page, and promotes across social channels."
tags:
- events
- video
- youtube
- eventbrite
- twitter
capability:
exposes:
- type: mcp
namespace: livestream
port: 8080
tools:
- name: setup-livestream
description: "Create YouTube livestream and promote for an event."
inputParameters:
- name: event_id
in: body
type: string
description: "Eventbrite event ID."
- name: title
in: body
type: string
description: "Livestream title."
- name: scheduled_start
in: body
type: string
description: "Scheduled start time ISO 8601."
steps:
- name: create-stream
type: call
call: "youtube.create-livestream"
with:
title: "{{title}}"
scheduled_start: "{{scheduled_start}}"
- name: update-event
type: call
call: "eventbrite.update-event"
with:
event_id: "{{event_id}}"
online_event_url: "{{create-stream.watch_url}}"
- name: promote-twitter
type: call
call: "twitter.create-tweet"
with:
text: "Join us LIVE: {{title}}! Watch at {{create-stream.watch_url}}"
consumes:
- type: http
namespace: youtube
baseUri: "https://www.googleapis.com/youtube/v3"
authentication:
type: bearer
token: "$secrets.youtube_token"
resources:
- name: livestreams
path: "/liveBroadcasts"
operations:
- name: create-livestream
method: POST
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: events
path: "/events/{{event_id}}"
inputParameters:
- name: event_id
in: path
operations:
- name: update-event
method: POST
- type: http
namespace: twitter
baseUri: "https://api.twitter.com/2"
authentication:
type: bearer
token: "$secrets.twitter_token"
resources:
- name: tweets
path: "/tweets"
operations:
- name: create-tweet
method: POST
Creates a Zoom webinar linked to an Eventbrite event and syncs registrations between platforms.
naftiko: "0.5"
info:
label: "Zoom Webinar Integration"
description: "Creates a Zoom webinar linked to an Eventbrite event and syncs registrations between platforms."
tags:
- events
- zoom
- eventbrite
capability:
exposes:
- type: mcp
namespace: virtual-events
port: 8080
tools:
- name: create-linked-webinar
description: "Create a Zoom webinar and link it to an Eventbrite event."
inputParameters:
- name: event_id
in: body
type: string
description: "Eventbrite event ID."
- name: topic
in: body
type: string
description: "Webinar topic."
- name: start_time
in: body
type: string
description: "Start time ISO 8601."
- name: duration
in: body
type: number
description: "Duration in minutes."
steps:
- name: create-webinar
type: call
call: "zoom.create-webinar"
with:
topic: "{{topic}}"
start_time: "{{start_time}}"
duration: "{{duration}}"
- name: update-event
type: call
call: "eventbrite.update-event"
with:
event_id: "{{event_id}}"
online_event_url: "{{create-webinar.join_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: webinars
path: "/users/me/webinars"
operations:
- name: create-webinar
method: POST
- type: http
namespace: eventbrite
baseUri: "https://www.eventbriteapi.com/v3"
authentication:
type: bearer
token: "$secrets.eventbrite_token"
resources:
- name: events
path: "/events/{{event_id}}"
inputParameters:
- name: event_id
in: path
operations:
- name: update-event
method: POST