naftiko: 1.0.0-alpha2 info: label: Trelica SaaS Management description: Unified capability for IT teams to discover, manage, and optimize SaaS applications across the organization. Combines application discovery, user license tracking, contract management, workflow automation, and audit logging in a single workflow-oriented interface. tags: - Contract Management - IT Management - License Management - SaaS Management - Software Asset Management created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: TRELICA_ACCESS_TOKEN: TRELICA_ACCESS_TOKEN capability: consumes: - type: http namespace: trelica baseUri: https://app.trelica.com/api description: Trelica SaaS management REST API authentication: type: bearer token: '{{TRELICA_ACCESS_TOKEN}}' resources: - name: applications path: /apps/v1 description: SaaS applications tracked in Trelica operations: - name: list-applications method: GET description: List SaaS applications inputParameters: - name: q in: query type: string required: false description: Free-text search - name: after in: query type: string required: false description: Pagination cursor - name: limit in: query type: integer required: false description: Max results (default 100) - name: since in: query type: string required: false description: Filter by modification date outputRawFormat: json outputParameters: - name: result type: object value: $. - name: application-detail path: /apps/v1/{appId} description: Single SaaS application operations: - name: get-application method: GET description: Get application details inputParameters: - name: appId in: path type: string required: true description: Application identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: application-users path: /apps/v1/{appId}/users description: Users of a specific application operations: - name: list-application-users method: GET description: List users for a specific application inputParameters: - name: appId in: path type: string required: true description: Application identifier - name: q in: query type: string required: false description: Free-text search - name: after in: query type: string required: false description: Pagination cursor - name: limit in: query type: integer required: false description: Max results (default 100) - name: since in: query type: string required: false description: Filter by modification date - name: filter in: query type: string required: false description: SCIM-style filter outputRawFormat: json outputParameters: - name: result type: object value: $. - name: people path: /people/v1 description: People (employees) in the organization operations: - name: list-people method: GET description: List people in the organization inputParameters: - name: q in: query type: string required: false description: Free-text search - name: after in: query type: string required: false description: Pagination cursor - name: limit in: query type: integer required: false description: Max results (default 100) - name: since in: query type: string required: false description: Filter by modification date outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-person method: POST description: Create a new person record outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: displayName: '{{tools.displayName}}' email: '{{tools.email}}' department: '{{tools.department}}' jobTitle: '{{tools.jobTitle}}' active: '{{tools.active}}' - name: person-detail path: /people/v1/{personId} description: Single person record operations: - name: get-person method: GET description: Get person details inputParameters: - name: personId in: path type: string required: true description: Person identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-person method: PATCH description: Update person record inputParameters: - name: personId in: path type: string required: true description: Person identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: displayName: '{{tools.displayName}}' email: '{{tools.email}}' department: '{{tools.department}}' jobTitle: '{{tools.jobTitle}}' active: '{{tools.active}}' - name: contracts path: /contracts/v1 description: Software contracts managed in Trelica operations: - name: list-contracts method: GET description: List software contracts inputParameters: - name: q in: query type: string required: false description: Free-text search - name: after in: query type: string required: false description: Pagination cursor - name: limit in: query type: integer required: false description: Max results (default 100) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: contract-detail path: /contracts/v1/{contractId} description: Single contract record operations: - name: get-contract method: GET description: Get contract details inputParameters: - name: contractId in: path type: string required: true description: Contract identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: workflows path: /workflows/v1 description: Automation workflows in Trelica operations: - name: list-workflows method: GET description: List automation workflows inputParameters: - name: q in: query type: string required: false description: Free-text search - name: after in: query type: string required: false description: Pagination cursor - name: limit in: query type: integer required: false description: Max results (default 100) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: assets path: /assets/v1 description: Software and hardware assets operations: - name: list-assets method: GET description: List assets inputParameters: - name: q in: query type: string required: false description: Free-text search - name: after in: query type: string required: false description: Pagination cursor - name: limit in: query type: integer required: false description: Max results (default 100) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: audit-log path: /audit/v1 description: Audit trail of all platform events operations: - name: list-audit-logs method: GET description: List audit log entries inputParameters: - name: since in: query type: string required: false description: Return entries after this date/time - name: after in: query type: string required: false description: Pagination cursor - name: limit in: query type: integer required: false description: Max results (default 100) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: scim-users path: /scim/v2/Users description: User provisioning via SCIM 2.0 operations: - name: list-scim-users method: GET description: List users using SCIM 2.0 protocol inputParameters: - name: startIndex in: query type: integer required: false description: 1-based start index (default 1) - name: count in: query type: integer required: false description: Max results (default 100) - name: filter in: query type: string required: false description: SCIM filter expression outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: trelica-saas-management-api description: Unified REST API for SaaS portfolio management. resources: - path: /v1/applications name: applications description: Discovered and managed SaaS applications operations: - method: GET name: list-applications description: List all SaaS applications in the portfolio call: trelica.list-applications with: q: rest.q after: rest.after limit: rest.limit since: rest.since outputParameters: - type: object mapping: $. - path: /v1/applications/{appId} name: application-detail description: Single SaaS application detail operations: - method: GET name: get-application description: Get application details and metadata call: trelica.get-application with: appId: rest.appId outputParameters: - type: object mapping: $. - path: /v1/applications/{appId}/users name: application-users description: Users and license utilization for an application operations: - method: GET name: list-application-users description: List users for license optimization analysis call: trelica.list-application-users with: appId: rest.appId q: rest.q after: rest.after limit: rest.limit since: rest.since outputParameters: - type: object mapping: $. - path: /v1/people name: people description: Employees and their SaaS access operations: - method: GET name: list-people description: List people for access review and offboarding call: trelica.list-people with: q: rest.q after: rest.after limit: rest.limit outputParameters: - type: object mapping: $. - method: POST name: create-person description: Onboard a new employee call: trelica.create-person outputParameters: - type: object mapping: $. - path: /v1/people/{personId} name: person-detail description: Single employee record operations: - method: GET name: get-person description: Get employee details and application access call: trelica.get-person with: personId: rest.personId outputParameters: - type: object mapping: $. - method: PATCH name: update-person description: Update employee record during lifecycle events call: trelica.update-person with: personId: rest.personId outputParameters: - type: object mapping: $. - path: /v1/contracts name: contracts description: Software contracts and renewal management operations: - method: GET name: list-contracts description: List contracts for renewal planning call: trelica.list-contracts with: q: rest.q after: rest.after limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/contracts/{contractId} name: contract-detail description: Single contract record operations: - method: GET name: get-contract description: Get contract details and renewal dates call: trelica.get-contract with: contractId: rest.contractId outputParameters: - type: object mapping: $. - path: /v1/workflows name: workflows description: IT automation workflows operations: - method: GET name: list-workflows description: List automation workflows call: trelica.list-workflows with: q: rest.q after: rest.after outputParameters: - type: object mapping: $. - path: /v1/assets name: assets description: Software and hardware assets operations: - method: GET name: list-assets description: List managed assets call: trelica.list-assets with: q: rest.q after: rest.after limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/audit-logs name: audit-logs description: Audit trail for compliance and governance operations: - method: GET name: list-audit-logs description: List audit events for compliance reporting call: trelica.list-audit-logs with: since: rest.since after: rest.after limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/users name: users description: User directory via SCIM operations: - method: GET name: list-users description: List users for provisioning workflows call: trelica.list-scim-users with: startIndex: rest.startIndex count: rest.count filter: rest.filter outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: trelica-saas-management-mcp transport: http description: MCP server for AI-assisted SaaS portfolio management and license optimization. tools: - name: list-applications description: List all SaaS applications in the portfolio. Use for application discovery, spend analysis, and license optimization. hints: readOnly: true openWorld: true call: trelica.list-applications with: q: tools.q after: tools.after limit: tools.limit since: tools.since outputParameters: - type: object mapping: $. - name: get-application description: Get detailed information about a specific SaaS application including user count and cost. hints: readOnly: true openWorld: false call: trelica.get-application with: appId: tools.appId outputParameters: - type: object mapping: $. - name: list-application-users description: List users of an application for license optimization. Identify inactive users and reduce spend. hints: readOnly: true openWorld: true call: trelica.list-application-users with: appId: tools.appId q: tools.q since: tools.since after: tools.after limit: tools.limit outputParameters: - type: object mapping: $. - name: list-people description: List employees for access reviews, onboarding/offboarding, and license right-sizing. hints: readOnly: true openWorld: true call: trelica.list-people with: q: tools.q after: tools.after limit: tools.limit outputParameters: - type: object mapping: $. - name: get-person description: Get employee details including their SaaS application access and licenses. hints: readOnly: true openWorld: false call: trelica.get-person with: personId: tools.personId outputParameters: - type: object mapping: $. - name: create-person description: Onboard a new employee and initialize their software access workflow. hints: readOnly: false destructive: false idempotent: false call: trelica.create-person with: displayName: tools.displayName email: tools.email department: tools.department jobTitle: tools.jobTitle active: tools.active outputParameters: - type: object mapping: $. - name: update-person description: Update an employee record for department transfers, role changes, or offboarding. hints: readOnly: false destructive: false idempotent: true call: trelica.update-person with: personId: tools.personId outputParameters: - type: object mapping: $. - name: list-contracts description: List software contracts for renewal planning and spend management. hints: readOnly: true openWorld: true call: trelica.list-contracts with: q: tools.q after: tools.after limit: tools.limit outputParameters: - type: object mapping: $. - name: get-contract description: Get contract details including renewal date and annual value for negotiation planning. hints: readOnly: true openWorld: false call: trelica.get-contract with: contractId: tools.contractId outputParameters: - type: object mapping: $. - name: list-workflows description: List IT automation workflows for onboarding, offboarding, and access management. hints: readOnly: true openWorld: true call: trelica.list-workflows with: q: tools.q after: tools.after outputParameters: - type: object mapping: $. - name: list-assets description: List software and hardware assets for asset management and compliance. hints: readOnly: true openWorld: true call: trelica.list-assets with: q: tools.q after: tools.after limit: tools.limit outputParameters: - type: object mapping: $. - name: list-audit-logs description: List audit log entries for compliance reporting, change tracking, and governance. hints: readOnly: true openWorld: true call: trelica.list-audit-logs with: since: tools.since after: tools.after limit: tools.limit outputParameters: - type: object mapping: $. - name: list-users description: List users via SCIM 2.0 for provisioning integrations and directory sync. hints: readOnly: true openWorld: true call: trelica.list-scim-users with: startIndex: tools.startIndex count: tools.count filter: tools.filter outputParameters: - type: object mapping: $.