naftiko: 1.0.0-alpha2 info: label: Scalr Infrastructure as Code description: Unified workflow capability for managing Terraform and OpenTofu infrastructure as code operations through Scalr's remote execution platform. Combines workspace management, environment management, run execution, cloud management, and account-level configuration for platform teams and DevOps engineers managing infrastructure at scale with policy enforcement and cost estimation. tags: - DevOps - FinOps - GitOps - Infrastructure as Code - OpenTofu - Policy - Scalr - Terraform created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SCALR_TOKEN: SCALR_TOKEN SCALR_API_KEY: SCALR_API_KEY SCALR_ACCOUNT: SCALR_ACCOUNT capability: consumes: - type: http namespace: scalr-user baseUri: https://my.scalr.com/api/v1beta0/user description: Scalr User API for farm and server management authentication: type: apikey key: X-Auth-Token value: '{{SCALR_API_KEY}}' placement: header resources: - name: farms path: /{envId}/farms description: Farm management operations: - name: list-farms method: GET description: List Farms inputParameters: - name: envId in: path type: string required: true description: Environment ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-farm method: POST description: Create Farm inputParameters: - name: envId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' - name: farm-actions path: /{envId}/farms/{farmId}/actions/{action} description: Farm lifecycle actions operations: - name: execute-farm-action method: POST description: Execute Farm Action (launch, suspend, terminate) inputParameters: - name: envId in: path type: string required: true - name: farmId in: path type: string required: true - name: action in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: servers path: /{envId}/farm-roles/{farmRoleId}/servers description: Server management operations: - name: list-servers method: GET description: List Servers in Farm Role inputParameters: - name: envId in: path type: string required: true - name: farmRoleId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: scalr-account baseUri: https://my.scalr.com/api/v1beta0/account description: Scalr Account API for account-level resource management authentication: type: apikey key: X-Auth-Token value: '{{SCALR_API_KEY}}' placement: header resources: - name: environments path: /{accountId}/environments description: Environment management operations: - name: list-environments method: GET description: List Environments inputParameters: - name: accountId in: path type: string required: true description: Account ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-environment method: POST description: Create Environment inputParameters: - name: accountId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' - name: environment path: /{accountId}/environments/{envId} description: Manage a specific environment operations: - name: get-environment method: GET description: Get Environment inputParameters: - name: accountId in: path type: string required: true - name: envId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delete-environment method: DELETE description: Delete Environment inputParameters: - name: accountId in: path type: string required: true - name: envId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: cloud-credentials path: /{accountId}/cloud-credentials description: Cloud credential management operations: - name: list-cloud-credentials method: GET description: List Cloud Credentials inputParameters: - name: accountId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: roles path: /{accountId}/roles description: Role management operations: - name: list-roles method: GET description: List Roles inputParameters: - name: accountId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: images path: /{accountId}/images description: Image management operations: - name: list-account-images method: GET description: List Images inputParameters: - name: accountId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: scalr-global baseUri: https://my.scalr.com/api/v1beta0 description: Scalr Global API for installation-wide resources authentication: type: apikey key: X-Auth-Token value: '{{SCALR_API_KEY}}' placement: header resources: - name: global-images path: /images description: Global image management operations: - name: list-global-images method: GET description: List global images available across all accounts inputParameters: - name: page in: query type: integer required: false outputRawFormat: json outputParameters: - name: result type: object value: $. - name: global-roles path: /roles description: Global role management operations: - name: list-global-roles method: GET description: List global roles available across all accounts inputParameters: - name: page in: query type: integer required: false outputRawFormat: json outputParameters: - name: result type: object value: $. - name: projects path: /projects description: Project management operations: - name: list-global-projects method: GET description: List global projects inputParameters: - name: page in: query type: integer required: false outputRawFormat: json outputParameters: - name: result type: object value: $. - name: global-variables path: /global-variables description: Global variable management operations: - name: list-global-variables method: GET description: List global variables inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: scalr-iac-api description: Unified REST API for Scalr IaC platform management. resources: - path: /v1/environments name: environments description: Environment management (account-level) operations: - method: GET name: list-environments description: List Scalr environments call: scalr-account.list-environments with: accountId: rest.accountId outputParameters: - type: object mapping: $. - method: POST name: create-environment description: Create a Scalr environment call: scalr-account.create-environment with: accountId: rest.accountId outputParameters: - type: object mapping: $. - path: /v1/environments/{id} name: environment description: Manage a specific environment operations: - method: GET name: get-environment description: Get environment details call: scalr-account.get-environment with: accountId: rest.accountId envId: rest.id outputParameters: - type: object mapping: $. - path: /v1/farms name: farms description: Cloud management farms (user-level) operations: - method: GET name: list-farms description: List Scalr farms call: scalr-user.list-farms with: envId: rest.envId outputParameters: - type: object mapping: $. - method: POST name: create-farm description: Create a Scalr farm call: scalr-user.create-farm with: envId: rest.envId outputParameters: - type: object mapping: $. - path: /v1/farms/{id}/actions/{action} name: farm-action description: Execute farm lifecycle actions operations: - method: POST name: execute-farm-action description: Execute a farm lifecycle action (launch, suspend, terminate) call: scalr-user.execute-farm-action with: envId: rest.envId farmId: rest.id action: rest.action outputParameters: - type: object mapping: $. - path: /v1/servers name: servers description: Cloud servers managed by Scalr operations: - method: GET name: list-servers description: List servers in a farm role call: scalr-user.list-servers with: envId: rest.envId farmRoleId: rest.farmRoleId outputParameters: - type: object mapping: $. - path: /v1/cloud-credentials name: cloud-credentials description: Cloud provider credentials operations: - method: GET name: list-cloud-credentials description: List cloud credentials call: scalr-account.list-cloud-credentials with: accountId: rest.accountId outputParameters: - type: object mapping: $. - path: /v1/roles name: roles description: Role definitions operations: - method: GET name: list-roles description: List account roles call: scalr-account.list-roles with: accountId: rest.accountId outputParameters: - type: object mapping: $. - path: /v1/global-variables name: global-variables description: Global variables operations: - method: GET name: list-global-variables description: List global variables call: scalr-global.list-global-variables outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: scalr-iac-mcp transport: http description: MCP server for AI-assisted Terraform and OpenTofu infrastructure management via Scalr. tools: - name: list-environments description: List Scalr environments within an account hints: readOnly: true openWorld: true call: scalr-account.list-environments with: accountId: tools.accountId outputParameters: - type: object mapping: $. - name: create-environment description: Create a new Scalr environment hints: readOnly: false destructive: false idempotent: false call: scalr-account.create-environment with: accountId: tools.accountId outputParameters: - type: object mapping: $. - name: get-environment description: Get details of a specific Scalr environment hints: readOnly: true openWorld: false call: scalr-account.get-environment with: accountId: tools.accountId envId: tools.envId outputParameters: - type: object mapping: $. - name: list-farms description: List Scalr cloud management farms hints: readOnly: true openWorld: true call: scalr-user.list-farms with: envId: tools.envId outputParameters: - type: object mapping: $. - name: create-farm description: Create a new Scalr farm hints: readOnly: false destructive: false idempotent: false call: scalr-user.create-farm with: envId: tools.envId outputParameters: - type: object mapping: $. - name: execute-farm-action description: Execute a lifecycle action on a Scalr farm (launch, suspend, terminate) hints: readOnly: false destructive: true idempotent: false call: scalr-user.execute-farm-action with: envId: tools.envId farmId: tools.farmId action: tools.action outputParameters: - type: object mapping: $. - name: list-servers description: List cloud servers managed by Scalr farm role hints: readOnly: true openWorld: false call: scalr-user.list-servers with: envId: tools.envId farmRoleId: tools.farmRoleId outputParameters: - type: object mapping: $. - name: list-cloud-credentials description: List cloud provider credentials configured in Scalr hints: readOnly: true openWorld: true call: scalr-account.list-cloud-credentials with: accountId: tools.accountId outputParameters: - type: object mapping: $. - name: list-roles description: List roles defined in Scalr account hints: readOnly: true openWorld: true call: scalr-account.list-roles with: accountId: tools.accountId outputParameters: - type: object mapping: $. - name: list-global-variables description: List global variables available across all Scalr environments hints: readOnly: true openWorld: true call: scalr-global.list-global-variables outputParameters: - type: object mapping: $. - name: list-global-images description: List images available globally across all Scalr accounts hints: readOnly: true openWorld: true call: scalr-global.list-global-images outputParameters: - type: object mapping: $. - name: list-global-roles description: List roles defined globally in Scalr hints: readOnly: true openWorld: true call: scalr-global.list-global-roles outputParameters: - type: object mapping: $.