naftiko: 1.0.0-alpha2 info: label: Salla Apps API — OAuth description: Salla Apps OAuth 2.0 capability — initiate authorization, exchange or refresh tokens, and look up the authenticated merchant via https://accounts.salla.sa. tags: [Salla, OAuth, Authentication, Apps] created: '2026-05-24' modified: '2026-05-24' binds: - namespace: env keys: SALLA_CLIENT_ID: SALLA_CLIENT_ID SALLA_CLIENT_SECRET: SALLA_CLIENT_SECRET SALLA_ACCESS_TOKEN: SALLA_ACCESS_TOKEN capability: consumes: - type: http namespace: apps-oauth baseUri: https://accounts.salla.sa resources: - name: oauth-token path: /oauth2/token operations: - name: exchangeOrRefreshToken method: POST description: Exchange an authorization code for an access token, or refresh an expired token. inputParameters: [{ name: body, in: body, type: object, required: true }] outputParameters: [{ name: result, type: object, value: $. }] - name: user-info path: /oauth2/user/info operations: - name: getUserInfo method: GET description: Retrieve the authenticated merchant and store information. outputParameters: [{ name: result, type: object, value: $. }] authentication: { type: bearer, value: '{{env.SALLA_ACCESS_TOKEN}}', placement: header } exposes: - type: mcp namespace: apps-oauth-mcp port: 9090 transport: http tools: - name: salla-refresh-token description: Refresh a Salla OAuth access token. hints: { readOnly: false, destructive: false, idempotent: false } call: apps-oauth.exchangeOrRefreshToken with: { body: tools.body } - name: salla-get-user-info description: Get the authenticated Salla merchant and store information. hints: { readOnly: true, destructive: false, idempotent: true } call: apps-oauth.getUserInfo