naftiko: 1.0.0-alpha2 info: label: Ballerina Central API description: 'Ballerina Central API. 9 operations. Lead operation: Search connectors. Self-contained Naftiko capability covering one Ballerina business surface.' tags: - Ballerina - Ballerina Central API created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: BALLERINA_API_KEY: BALLERINA_API_KEY capability: consumes: - type: http namespace: central baseUri: https://api.central.ballerina.io description: Ballerina Central API business capability. Self-contained, no shared references. resources: - name: 2.0-connectors path: /2.0/connectors operations: - name: searchconnectors method: GET description: Search connectors outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: Search query string - name: offset in: query type: integer - name: limit in: query type: integer - name: sort in: query type: string - name: 2.0-connectors-org-name-version path: /2.0/connectors/{org}/{name}/{version} operations: - name: getconnector method: GET description: Get connector details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: path type: string required: true - name: name in: path type: string required: true - name: version in: path type: string required: true - name: 2.0-organizations-org path: /2.0/organizations/{org} operations: - name: getorganization method: GET description: Get organization details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: path type: string description: Organization name required: true - name: 2.0-organizations-org-packages path: /2.0/organizations/{org}/packages operations: - name: getorganizationpackages method: GET description: List organization packages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: path type: string required: true - name: offset in: query type: integer - name: limit in: query type: integer - name: 2.0-packages path: /2.0/packages operations: - name: searchpackages method: GET description: Search packages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: Search query string - name: org in: query type: string description: Filter by organization name - name: offset in: query type: integer description: Pagination offset - name: limit in: query type: integer description: Maximum number of results - name: sort in: query type: string description: Sort order - name: 2.0-packages-org-name path: /2.0/packages/{org}/{name} operations: - name: getpackage method: GET description: Get package details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: path type: string description: Organization name required: true - name: name in: path type: string description: Package name required: true - name: 2.0-packages-org-name-version path: /2.0/packages/{org}/{name}/{version} operations: - name: getpackageversion method: GET description: Get package version details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: path type: string required: true - name: name in: path type: string required: true - name: version in: path type: string description: Package version (semver) required: true - name: 2.0-packages-org-name-version-docs path: /2.0/packages/{org}/{name}/{version}/docs operations: - name: getpackagedocs method: GET description: Get package documentation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: path type: string required: true - name: name in: path type: string required: true - name: version in: path type: string required: true - name: 2.0-packages-org-name-version-modules path: /2.0/packages/{org}/{name}/{version}/modules operations: - name: getpackagemodules method: GET description: Get package modules outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: path type: string required: true - name: name in: path type: string required: true - name: version in: path type: string required: true exposes: - type: rest namespace: central-rest port: 8080 description: REST adapter for Ballerina Central API. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/2-0/connectors name: 2-0-connectors description: REST surface for 2.0-connectors. operations: - method: GET name: searchconnectors description: Search connectors call: central.searchconnectors with: q: rest.q offset: rest.offset limit: rest.limit sort: rest.sort outputParameters: - type: object mapping: $. - path: /v1/2-0/connectors/{org}/{name}/{version} name: 2-0-connectors-org-name-version description: REST surface for 2.0-connectors-org-name-version. operations: - method: GET name: getconnector description: Get connector details call: central.getconnector with: org: rest.org name: rest.name version: rest.version outputParameters: - type: object mapping: $. - path: /v1/2-0/organizations/{org} name: 2-0-organizations-org description: REST surface for 2.0-organizations-org. operations: - method: GET name: getorganization description: Get organization details call: central.getorganization with: org: rest.org outputParameters: - type: object mapping: $. - path: /v1/2-0/organizations/{org}/packages name: 2-0-organizations-org-packages description: REST surface for 2.0-organizations-org-packages. operations: - method: GET name: getorganizationpackages description: List organization packages call: central.getorganizationpackages with: org: rest.org offset: rest.offset limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/2-0/packages name: 2-0-packages description: REST surface for 2.0-packages. operations: - method: GET name: searchpackages description: Search packages call: central.searchpackages with: q: rest.q org: rest.org offset: rest.offset limit: rest.limit sort: rest.sort outputParameters: - type: object mapping: $. - path: /v1/2-0/packages/{org}/{name} name: 2-0-packages-org-name description: REST surface for 2.0-packages-org-name. operations: - method: GET name: getpackage description: Get package details call: central.getpackage with: org: rest.org name: rest.name outputParameters: - type: object mapping: $. - path: /v1/2-0/packages/{org}/{name}/{version} name: 2-0-packages-org-name-version description: REST surface for 2.0-packages-org-name-version. operations: - method: GET name: getpackageversion description: Get package version details call: central.getpackageversion with: org: rest.org name: rest.name version: rest.version outputParameters: - type: object mapping: $. - path: /v1/2-0/packages/{org}/{name}/{version}/docs name: 2-0-packages-org-name-version-docs description: REST surface for 2.0-packages-org-name-version-docs. operations: - method: GET name: getpackagedocs description: Get package documentation call: central.getpackagedocs with: org: rest.org name: rest.name version: rest.version outputParameters: - type: object mapping: $. - path: /v1/2-0/packages/{org}/{name}/{version}/modules name: 2-0-packages-org-name-version-modules description: REST surface for 2.0-packages-org-name-version-modules. operations: - method: GET name: getpackagemodules description: Get package modules call: central.getpackagemodules with: org: rest.org name: rest.name version: rest.version outputParameters: - type: object mapping: $. - type: mcp namespace: central-mcp port: 9090 transport: http description: MCP adapter for Ballerina Central API. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: search-connectors description: Search connectors hints: readOnly: true destructive: false idempotent: true call: central.searchconnectors with: q: tools.q offset: tools.offset limit: tools.limit sort: tools.sort outputParameters: - type: object mapping: $. - name: get-connector-details description: Get connector details hints: readOnly: true destructive: false idempotent: true call: central.getconnector with: org: tools.org name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: get-organization-details description: Get organization details hints: readOnly: true destructive: false idempotent: true call: central.getorganization with: org: tools.org outputParameters: - type: object mapping: $. - name: list-organization-packages description: List organization packages hints: readOnly: true destructive: false idempotent: true call: central.getorganizationpackages with: org: tools.org offset: tools.offset limit: tools.limit outputParameters: - type: object mapping: $. - name: search-packages description: Search packages hints: readOnly: true destructive: false idempotent: true call: central.searchpackages with: q: tools.q org: tools.org offset: tools.offset limit: tools.limit sort: tools.sort outputParameters: - type: object mapping: $. - name: get-package-details description: Get package details hints: readOnly: true destructive: false idempotent: true call: central.getpackage with: org: tools.org name: tools.name outputParameters: - type: object mapping: $. - name: get-package-version-details description: Get package version details hints: readOnly: true destructive: false idempotent: true call: central.getpackageversion with: org: tools.org name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: get-package-documentation description: Get package documentation hints: readOnly: true destructive: false idempotent: true call: central.getpackagedocs with: org: tools.org name: tools.name version: tools.version outputParameters: - type: object mapping: $. - name: get-package-modules description: Get package modules hints: readOnly: true destructive: false idempotent: true call: central.getpackagemodules with: org: tools.org name: tools.name version: tools.version outputParameters: - type: object mapping: $.