450 lines
11 KiB
YAML
450 lines
11 KiB
YAML
info:
|
|
title: Probo MCP Server
|
|
version: 1.0.0
|
|
description: Probo MCP Server API
|
|
|
|
components:
|
|
schemas:
|
|
OrderDirection:
|
|
type: string
|
|
enum:
|
|
- asc
|
|
- desc
|
|
go.probo.inc/mcpgen/type: go.probo.inc/probo/pkg/page.OrderDirection
|
|
|
|
VendorOrderField:
|
|
type: string
|
|
enum:
|
|
- CREATED_AT
|
|
- UPDATED_AT
|
|
- NAME
|
|
go.probo.inc/mcpgen/type: go.probo.inc/probo/pkg/coredata.VendorOrderField
|
|
|
|
VendorOrderBy:
|
|
type: object
|
|
required:
|
|
- field
|
|
- direction
|
|
properties:
|
|
field:
|
|
$ref: "#/components/schemas/VendorOrderField"
|
|
description: Vendor order field
|
|
direction:
|
|
$ref: "#/components/schemas/OrderDirection"
|
|
description: Vendor order direction
|
|
|
|
PeopleOrderBy:
|
|
type: object
|
|
required:
|
|
- field
|
|
- direction
|
|
properties:
|
|
field:
|
|
$ref: "#/components/schemas/PeopleOrderField"
|
|
description: People order field
|
|
direction:
|
|
$ref: "#/components/schemas/OrderDirection"
|
|
description: People order direction
|
|
|
|
PeopleOrderField:
|
|
type: string
|
|
enum:
|
|
- CREATED_AT
|
|
- FULL_NAME
|
|
- KIND
|
|
go.probo.inc/mcpgen/type: go.probo.inc/probo/pkg/coredata.PeopleOrderField
|
|
|
|
PeopleKind:
|
|
type: string
|
|
enum:
|
|
- EMPLOYEE
|
|
- CONTRACTOR
|
|
- SERVICE_ACCOUNT
|
|
go.probo.inc/mcpgen/type: go.probo.inc/probo/pkg/coredata.PeopleKind
|
|
|
|
People:
|
|
type: object
|
|
required:
|
|
- id
|
|
- organization_id
|
|
- full_name
|
|
- primary_email_address
|
|
- additional_email_addresses
|
|
- kind
|
|
- created_at
|
|
- updated_at
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: People ID
|
|
organization_id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Organization ID
|
|
full_name:
|
|
type: string
|
|
description: Full name
|
|
primary_email_address:
|
|
type: string
|
|
description: Primary email address
|
|
additional_email_addresses:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Additional email addresses
|
|
kind:
|
|
$ref: "#/components/schemas/PeopleKind"
|
|
description: People kind
|
|
position:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description: Position
|
|
contract_start_date:
|
|
type:
|
|
- string
|
|
- "null"
|
|
format: date-time
|
|
description: Contract start date
|
|
contract_end_date:
|
|
type:
|
|
- string
|
|
- "null"
|
|
format: date-time
|
|
description: Contract end date
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: Creation timestamp
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
description: Update timestamp
|
|
|
|
ListPeopleInput:
|
|
type: object
|
|
required:
|
|
- organization_id
|
|
properties:
|
|
organization_id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Organization ID
|
|
order_by:
|
|
$ref: "#/components/schemas/PeopleOrderBy"
|
|
description: People order by
|
|
size:
|
|
type: integer
|
|
description: Page size
|
|
cursor:
|
|
$ref: "#/components/schemas/CursorKey"
|
|
description: Page cursor
|
|
filter:
|
|
type: object
|
|
properties:
|
|
exclude_contract_ended:
|
|
type: boolean
|
|
description: Exclude people with ended contracts
|
|
|
|
ListPeopleOutput:
|
|
type: object
|
|
required:
|
|
- people
|
|
properties:
|
|
next_cursor:
|
|
$ref: "#/components/schemas/CursorKey"
|
|
description: Next cursor
|
|
people:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/People"
|
|
|
|
GID:
|
|
type: string
|
|
format: string
|
|
go.probo.inc/mcpgen/type: go.probo.inc/probo/pkg/gid.GID
|
|
|
|
CursorKey:
|
|
type: string
|
|
format: string
|
|
go.probo.inc/mcpgen/type: go.probo.inc/probo/pkg/page.CursorKey
|
|
|
|
ListOrganizationsInput:
|
|
type: object
|
|
properties:
|
|
organization_id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Organization ID
|
|
|
|
ListOrganizationsOutput:
|
|
type: object
|
|
properties:
|
|
organizations:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Organization"
|
|
|
|
Organization:
|
|
type: object
|
|
required:
|
|
- id
|
|
- name
|
|
- description
|
|
- created_at
|
|
- updated_at
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Organization ID
|
|
name:
|
|
type: string
|
|
description: Organization name
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description: Organization description
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: Creation timestamp
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
description: Update timestamp
|
|
|
|
ListVendorsInput:
|
|
type: object
|
|
required:
|
|
- organization_id
|
|
properties:
|
|
organization_id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Organization ID
|
|
order_by:
|
|
$ref: "#/components/schemas/VendorOrderBy"
|
|
description: Vendor order by
|
|
size:
|
|
type: integer
|
|
description: Page size
|
|
cursor:
|
|
$ref: "#/components/schemas/CursorKey"
|
|
description: Page cursor
|
|
filter:
|
|
type: object
|
|
properties:
|
|
snapshot_id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Snapshot ID
|
|
|
|
ListVendorsOutput:
|
|
type: object
|
|
required:
|
|
- vendors
|
|
properties:
|
|
next_cursor:
|
|
$ref: "#/components/schemas/CursorKey"
|
|
description: Next cursor
|
|
vendors:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Vendor"
|
|
|
|
Vendor:
|
|
type: object
|
|
required:
|
|
- id
|
|
- name
|
|
- organization_id
|
|
- created_at
|
|
- updated_at
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Vendor ID
|
|
name:
|
|
type: string
|
|
description: Vendor name
|
|
organization_id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Organization ID
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description: Vendor description
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: Creation timestamp
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
description: Update timestamp
|
|
|
|
AddVendorInput:
|
|
type: object
|
|
required:
|
|
- organization_id
|
|
- name
|
|
properties:
|
|
organization_id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Organization ID
|
|
name:
|
|
type: string
|
|
description: Vendor name
|
|
description:
|
|
type: string
|
|
description: Vendor description
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: Creation timestamp
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
description: Update timestamp
|
|
|
|
AddVendorOutput:
|
|
type: object
|
|
required:
|
|
- vendor
|
|
properties:
|
|
vendor:
|
|
$ref: "#/components/schemas/Vendor"
|
|
|
|
UpdateVendorInput:
|
|
type: object
|
|
required:
|
|
- id
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Vendor ID
|
|
name:
|
|
type: string
|
|
description: Vendor name
|
|
description:
|
|
type: string
|
|
description: Vendor description
|
|
|
|
UpdateVendorOutput:
|
|
type: object
|
|
required:
|
|
- vendor
|
|
properties:
|
|
vendor:
|
|
$ref: "#/components/schemas/Vendor"
|
|
|
|
GetPeopleInput:
|
|
type: object
|
|
required:
|
|
- id
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: People ID
|
|
|
|
GetPeopleOutput:
|
|
type: object
|
|
required:
|
|
- people
|
|
properties:
|
|
people:
|
|
$ref: "#/components/schemas/People"
|
|
|
|
AddPeopleInput:
|
|
type: object
|
|
required:
|
|
- organization_id
|
|
- full_name
|
|
- primary_email_address
|
|
- kind
|
|
properties:
|
|
organization_id:
|
|
$ref: "#/components/schemas/GID"
|
|
description: Organization ID
|
|
full_name:
|
|
type: string
|
|
description: Full name
|
|
primary_email_address:
|
|
type: string
|
|
description: Primary email address
|
|
additional_email_addresses:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Additional email addresses
|
|
kind:
|
|
$ref: "#/components/schemas/PeopleKind"
|
|
description: People kind
|
|
position:
|
|
type: string
|
|
description: Position
|
|
contract_start_date:
|
|
type: string
|
|
format: date-time
|
|
description: Contract start date
|
|
contract_end_date:
|
|
type: string
|
|
format: date-time
|
|
description: Contract end date
|
|
|
|
AddPeopleOutput:
|
|
type: object
|
|
required:
|
|
- people
|
|
properties:
|
|
people:
|
|
$ref: "#/components/schemas/People"
|
|
|
|
tools:
|
|
- name: listOrganizations
|
|
description: List all organizations the user has access to
|
|
readonly: true
|
|
inputSchema:
|
|
$ref: "#/components/schemas/ListOrganizationsInput"
|
|
outputSchema:
|
|
$ref: "#/components/schemas/ListOrganizationsOutput"
|
|
- name: listVendors
|
|
description: List all vendors for the organization
|
|
readonly: true
|
|
inputSchema:
|
|
$ref: "#/components/schemas/ListVendorsInput"
|
|
outputSchema:
|
|
$ref: "#/components/schemas/ListVendorsOutput"
|
|
- name: listPeople
|
|
description: List all people for the organization
|
|
readonly: true
|
|
inputSchema:
|
|
$ref: "#/components/schemas/ListPeopleInput"
|
|
outputSchema:
|
|
$ref: "#/components/schemas/ListPeopleOutput"
|
|
- name: addVendor
|
|
description: Add a new vendor to the organization
|
|
readonly: false
|
|
inputSchema:
|
|
$ref: "#/components/schemas/AddVendorInput"
|
|
outputSchema:
|
|
$ref: "#/components/schemas/AddVendorOutput"
|
|
- name: updateVendor
|
|
description: Update an existing vendor
|
|
readonly: false
|
|
inputSchema:
|
|
$ref: "#/components/schemas/UpdateVendorInput"
|
|
outputSchema:
|
|
$ref: "#/components/schemas/UpdateVendorOutput"
|
|
- name: getPeople
|
|
description: Get a people by ID
|
|
readonly: true
|
|
inputSchema:
|
|
$ref: "#/components/schemas/GetPeopleInput"
|
|
outputSchema:
|
|
$ref: "#/components/schemas/GetPeopleOutput"
|
|
- name: addPeople
|
|
description: Add a new people to the organization
|
|
readonly: false
|
|
inputSchema:
|
|
$ref: "#/components/schemas/AddPeopleInput"
|
|
outputSchema:
|
|
$ref: "#/components/schemas/AddPeopleOutput"
|