Algenta Team API

The Team API from Algenta — 8 operation(s) for team.

Operations 8

GET /v1/team List team members #
POST /v1/team/invite Invite a team member #
POST /v1/team/accept Accept a team invitation #
PATCH /v1/team/{user_id}/role Update a team member's role #
DELETE /v1/team/{user_id} Remove a team member (idempotent) #
GET /v1/audit-logs Paginated audit log from DB #
GET /v1/audit-logs/export.{fmt} Export the audit log (csv | json) with a verifiable content hash #
GET /v1/audit-logs/artifacts Paginated audit log artifacts from Parquet runtime storage #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/algenta-ai:algenta-ai-team-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

algenta-ai-team-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Algenta Ai Team API
  version: 1.0.0
  description: 'Operations tagged Team across 2 of this provider''s published API definitions: api.algenta.ai-openapi.json, gateway.algenta.ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.algenta.ai
- url: /
tags:
- name: Team
paths:
  /v1/team:
    get:
      tags:
      - Team
      summary: List team members
      description: 'List the org''s members. The roster is org-membership data: any member (or service / IdP

        principal) may read it, a device license may not (403 ``license_principal_not_permitted`` —

        it authenticates a device, and stays valid offline after its member is removed).'
      operationId: list_team_v1_team_get
      security:
      - BearerAuth: []
      - LegacyApiKey: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
          - type: 'null'
          title: Page
      - name: limit
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            maximum: 200
            minimum: 1
          - type: 'null'
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/MemberInfo'
                - $ref: '#/components/schemas/TeamListResponse'
                title: Response List Team V1 Team Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.algenta.ai
  /v1/team/invite:
    post:
      tags:
      - Team
      summary: Invite a team member
      description: 'Create a pending invite + email an accept link. Seat-enforced: solo plans

        (Free/Pro/Pro+/Ultra) cannot add members; Team is capped at its purchased seats.'
      operationId: invite_member_v1_team_invite_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InviteRequest'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Invite Member V1 Team Invite Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
      - LegacyApiKey: []
    servers:
    - url: https://api.algenta.ai
  /v1/team/accept:
    post:
      tags:
      - Team
      summary: Accept a team invitation
      description: 'Consume an invite token → make the SIGNED-IN invitee an active org member.


        Requires the invitee''s Supabase bearer whose email Supabase Auth CONFIRMS (403

        ``email_not_confirmed`` / ``sso_email_binding_refused`` otherwise) and equals the invited

        address (else 409 ``invite_email_mismatch``; the invite stays pending) — a forwarded or leaked

        token cannot seat a different account. The inviter must still be able to grant the invite (409

        ``invite_inviter_inactive``), and a removed member is reactivated only by an invite sent AFTER

        the removal (409 ``invite_predates_removal``). The row is bound to the accepting uid; their old

        API keys stay revoked. The identity''s home link is created when it has none, and moved to this

        org when it pointed at the identity''s own personal org (so `` login`` joins this team).'
      operationId: accept_invite_v1_team_accept_post
      parameters:
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcceptRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Accept Invite V1 Team Accept Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.algenta.ai
  /v1/team/{user_id}/role:
    patch:
      tags:
      - Team
      summary: Update a team member's role
      description: Change a team member's role.
      operationId: update_member_role_v1_team__user_id__role_patch
      security:
      - BearerAuth: []
      - LegacyApiKey: []
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: User Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Update Member Role V1 Team  User Id  Role Patch
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.algenta.ai
  /v1/team/{user_id}:
    delete:
      tags:
      - Team
      summary: Remove a team member (idempotent)
      description: 'Remove a user from the org: suspend (never delete), revoke their API keys, devices and

        pending invites, drop their home link to it and withdraw the admin basis of the GitHub

        installations they bound. Idempotent: removing an already-suspended member answers 200

        ``already_absent`` — and still revokes anything that member kept (e.g. a seat-downgrade

        suspension).'
      operationId: remove_member_v1_team__user_id__delete
      security:
      - BearerAuth: []
      - LegacyApiKey: []
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: User Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.algenta.ai
  /v1/audit-logs:
    get:
      tags:
      - Team
      summary: Paginated audit log from DB
      description: Return paginated audit log for the authenticated org from the audit_events table.
      operationId: get_audit_logs_v1_audit_logs_get
      security:
      - BearerAuth: []
      - LegacyApiKey: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
          title: Page
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 25
          title: Limit
      - name: actor_email
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Actor Email
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Action
      - name: resource_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource Type
      - name: result
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Result
      - name: policy_snapshot_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Policy Snapshot Id
      - name: schema_snapshot_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Schema Snapshot Id
      - name: manifest_version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Manifest Version
      - name: request_hash
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Request Hash
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditLogResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.algenta.ai
  /v1/audit-logs/export.{fmt}:
    get:
      tags:
      - Team
      summary: Export the audit log (csv | json) with a verifiable content hash
      description: 'Export this org''s audit log, with `X-Content-SHA256` over the exact bytes returned.


        WHY THE BODY IS BUFFERED RATHER THAN STREAMED. The header has to be the digest of the bytes the

        client actually receives, and HTTP headers precede the body -- so a genuinely streamed response

        could only carry the digest in a trailer, which most clients silently drop. A hash the recipient

        cannot check is worse than none, because it invites trust it has not earned. The DB read IS

        batched (`_AUDIT_EXPORT_BATCH`), so a large history does not materialise as one result set;

        memory is bounded by the size of the export the caller asked for.


        Filters are the same ones /v1/audit-logs accepts, through the same helper, so an export is

        exactly the rows an operator saw in the UI.'
      operationId: export_audit_logs_v1_audit_logs_export__fmt__get
      security:
      - BearerAuth: []
      - LegacyApiKey: []
      parameters:
      - name: fmt
        in: path
        required: true
        schema:
          type: string
          description: 'Export format: csv | json'
          title: Fmt
        description: 'Export format: csv | json'
      - name: actor_email
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Actor Email
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Action
      - name: resource_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource Type
      - name: result
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Result
      - name: policy_snapshot_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Policy Snapshot Id
      - name: schema_snapshot_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Schema Snapshot Id
      - name: manifest_version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Manifest Version
      - name: request_hash
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Request Hash
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.algenta.ai
  /v1/audit-logs/artifacts:
    get:
      tags:
      - Team
      summary: Paginated audit log artifacts from Parquet runtime storage
      operationId: get_audit_log_artifacts_v1_audit_logs_artifacts_get
      security:
      - BearerAuth: []
      - LegacyApiKey: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
          title: Page
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 25
          title: Limit
      - name: actor_email
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Actor Email
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Action
      - name: resource_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource Type
      - name: result
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Result
      - name: policy_snapshot_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Policy Snapshot Id
      - name: schema_snapshot_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Schema Snapshot Id
      - name: manifest_version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Manifest Version
      - name: request_hash
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Request Hash
      - name: content_hash
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Content Hash
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditLogResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.algenta.ai
components:
  schemas:
    TeamListResponse:
      properties:
        members:
          items:
            $ref: '#/components/schemas/MemberInfo'
          type: array
          title: Members
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        limit:
          type: integer
          title: Limit
        pages:
          type: integer
          title: Pages
      type: object
      required:
      - members
      - total
      - page
      - limit
      - pages
      title: TeamListResponse
    RoleUpdateRequest:
      properties:
        role:
          type: string
          title: Role
      type: object
      required:
      - role
      title: RoleUpdateRequest
    InviteRequest:
      properties:
        email:
          type: string
          format: email
          title: Email
        role:
          type: string
          title: Role
          default: member
      type: object
      required:
      - email
      title: InviteRequest
    AcceptRequest:
      properties:
        token:
          type: string
          title: Token
      type: object
      required:
      - token
      title: AcceptRequest
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    MemberInfo:
      properties:
        user_id:
          type: string
          title: User Id
        name:
          type: string
          title: Name
        email:
          type: string
          title: Email
        role:
          type: string
          title: Role
        status:
          type: string
          title: Status
        last_active:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Active
      type: object
      required:
      - user_id
      - name
      - email
      - role
      - status
      - last_active
      title: MemberInfo
    AuditLogEntry:
      properties:
        id:
          type: string
          title: Id
        timestamp:
          type: string
          format: date-time
          title: Timestamp
        actor_email:
          type: string
          title: Actor Email
        action:
          type: string
          title: Action
        resource_type:
          type: string
          title: Resource Type
        resource_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource Id
        ip_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Ip Address
        result:
          type: string
          title: Result
        content_hash:
          anyOf:
          - type: string
          - type: 'null'
          title: Content Hash
        metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Metadata
      type: object
      required:
      - id
      - timestamp
      - actor_email
      - action
      - resource_type
      - resource_id
      - ip_address
      - result
      title: AuditLogEntry
    AuditLogResponse:
      properties:
        entries:
          items:
            $ref: '#/components/schemas/AuditLogEntry'
          type: array
          title: Entries
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        limit:
          type: integer
          title: Limit
        pages:
          type: integer
          title: Pages
      type: object
      required:
      - entries
      - total
      - page
      - limit
      - pages
      title: AuditLogResponse
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: APIKey
      description: 'Canonical v1 authentication. Use Authorization: Bearer <api_key>.'
    LegacyApiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: Legacy compatibility header for existing v1 clients.
x-refined-from:
- api.algenta.ai-openapi.json
- gateway.algenta.ai-openapi.json
x-canonical-mcp-endpoint: https://api.algenta.ai/mcp
x-primary-data-query-contract:
  api:
    contract_endpoint: /v1/meta/contract
    discovery_endpoint: /v1/data
    summary_endpoint: /v1/data/{dataset_id}/summary
    resolve_endpoint: /v1/resolve
    verify_endpoint: /v1/verify
    query_endpoint: /v1/query
    query_batch_endpoint: /v1/query/batch
    query_sql_report_endpoint: /v1/query/sql-report
  governed_filter_contract:
    kind: record_predicates
    time_filter_field: time_filter
    conditions_field: conditions
    selector_fields:
    - column
    - dimension_hint
    operators:
      scalar:
      - eq
      - gt
      - gte
      - lt
      - lte
      list:
      - in
      nullary:
      - is_null
      - is_not_null
    type_behavior:
      boolean:
      - eq
      string:
      - eq
      - in
      numeric:
      - eq
      - in
      - gt
      - gte
      - lt
      - lte
      null_checks:
      - is_null
      - is_not_null
    validation:
      requires_selector: true
      scalar_ops_require_value:
      - eq
      - gt
      - gte
      - lt
      - lte
      list_ops_require_non_empty_values:
      - in
      nullary_ops_forbid_value_and_values:
      - is_null
      - is_not_null
    applies_before_aggregation: true
    supports_non_sql_backends: true
    notes:
    - Filters apply to normalized source rows before aggregation and grouping.
    - Boolean equality uses eq.
    - This contract is database-agnostic and valid for Redis and other non-SQL backends after record normalization.
    - Nested OR groups, regex, text search, and arbitrary expressions are not part of this contract.
  direct_sdk:
    python:
      import_root: decision_engine
      preferred_client_class: AlgentaClient
      preferred_async_client_class: AsyncAlgentaClient
      compatibility_client_class: DecisionEngineClient
      compatibility_async_client_class: AsyncDecisionEngineClient
      contract_method: get_contract
      discovery_method: list_datasets
      summary_method: get_dataset_summary
      query_with_metadata_method: query_with_metadata
      query_batch_method: query_batch
      query_sql_report_method: query_sql_report
    typescript:
      import_package: algenta-sdk
      preferred_client_class: AlgentaClient
      compatibility_client_class: DecisionEngineClient
      contract_method: getContract
      discovery_method: listDatasets
      summary_method: getDatasetSummary
      query_with_metadata_method: queryWithMetadata
      query_batch_method: queryBatch
      query_sql_report_method: querySqlReport
  runtime_sdk:
    python:
      import_root: algenta
      runtime_class: Runtime
      libraries_entrypoint: libraries
      contract_method: get_contract
      discovery_method: list_datasets
      summary_method: get_dataset_summary
      query_with_metadata_method: query_with_metadata
      query_batch_method: query_batch
      query_sql_report_method: query_sql_report
    typescript:
      import_package: algenta-sdk
      runtime_class: Runtime
      libraries_entrypoint: libraries
      contract_method: getContract
      discovery_method: listDatasets
      summary_method: getDatasetSummary
      query_with_metadata_method: queryWithMetadata
      query_batch_method: queryBatch
      query_sql_report_method: querySqlReport
  cli:
    contract_command: de contract
    discovery_command: de data list --search <hint> --compact --limit <n>
    summary_command: de data summary <dataset_id>
    query_batch_command: de data query-batch <request.json>
    query_sql_report_command: de data sql-report <request.json>
    runtime_modules_command: de runtime modules
    runtime_functions_command: de runtime functions <module>
    runtime_execute_command: de runtime execute <module> <function> --args-json '<json>'
  mcp:
    contract_tool: get_contract
    discovery_tool: list_data
    summary_tool: get_data_summary
    query_tool: query_data
    query_batch_tool: query_batch
    query_sql_report_tool: query_sql_report
    runtime_library_list_tool: list_runtime_libraries
    runtime_library_execute_tool: execute_runtime_library
  recommended_flows:
    machine_readable_contract:
    - GET /v1/meta/contract
    governed_query:
    - GET /v1/data?search=...&compact=1
    - GET /v1/data/{dataset_id}/summary
    - POST /v1/resolve
    - POST /v1/verify
    - POST /v1/query
    multi_metric_query:
    - GET /v1/data?search=...&compact=1
    - GET /v1/data/{dataset_id}/summary
    - POST /v1/query/batch
    wide_sql_report:
    - GET /v1/data?search=...&compact=1
    - GET /v1/data/{dataset_id}/summary
    - POST /v1/query/sql-report
    decision_simulation_tools:
    - simulate — one scenario, full DecisionEnvelope (action, expected value, loss probability, percentiles); the run is recorded for list_runs.
    - plan_decision — same request as simulate but only the compact DecisionPlan summary; use when you do not need the full envelope.
    - score — one simulation plus a single weighted composite (expected_value/downside_risk weights) with score_breakdown; use to rank by one number.
    - compare — 2-10 named scenarios side by side; the winner is the highest expected value, with per-scenario deltas.
    - recommend — 2+ named actions ranked with a picked recommended_action, confidence, and rationale; use for 'which option should I pick'.
    - product_decision — plain business inputs (value with optional low/high) mapped for you; returns proceed/pause/reject with plain-English reasons; no simulation knowledge needed.
    dataset_onboarding_tools:
    - connect_data — the normal path for live sources (database/API/object storage) or uploads; returns a reusable dataset_id and supports refresh_data.
    - onboard_dataset — inline columns/records/CSV for semantic querying with background model training (track model_tier with list_datasets); no live connection.
    - 'register_source — the advanced path: full column profiling, formula detection, and join-key detection across registered sources (browse with list_data).'
    - list_data — browse datasets from the connect_data and register_source flows (connection_type, provider, refreshable).
    - list_datasets — browse semantically trained datasets with training status and model_tier.
x-capability-plane-contract:
  api:
    list_providers_endpoint: /v1/capability-providers
    get_provider_endpoint: /v1/capability-providers/{provider_id}
    list_bindings_endpoint: /v1/capability-bindings
    create_binding_endpoint: /v1/capability-bindings
    get_binding_endpoint: /v1/capability-bindings/{binding_id}
    update_binding_endpoint: /v1/capability-bindings/{binding_id}
    delete_binding_endpoint: /v1/capability-bindings/{binding_id}
    preview_test_binding_endpoint: /v1/capability-bindings/test
    test_binding_endpoint: /v1/capability-bindings/{binding_id}/test
    preview_discover_binding_endpoint: /v1/capability-bindings/discover
    discover_binding_endpoint: /v1/capability-bindings/{binding_id}/discover
    start_authorization_endpoint: /v1/capability-bindings/{binding_id}/authorize/start
    complete_authorization_endpoint: /v1/capability-bindings/{binding_id}/authorize/complete
    list_capabilities_endpoint: /v1/capabilities
    get_capability_endpoint: /v1/capabilities/{capability_id}
    route_capabilities_endpoint: /v1/capabilities/route
    execute_capability_endpoint: /v1/capabilities/execute
    record_outcome_endpoint: /v1/capabilities/outcomes
  enums:
    provider_types:
    - data_connector
    - mcp_provider
    - skill_pack
    - native_tool_pack
    - runtime_library_pack
    capability_kinds:
    - dataset
    - mcp_tool
    - mcp_resource
    - mcp_prompt
    - skill
    - native_tool
    - runtime_library
    implementation_kinds:
    - callable
    - instruction_only
    - hybrid
    execution_owners:
    - algenta_managed
    - client_managed
    binding_scopes:
    - user
    - workspace
    - organization
    binding_statuses:
    - unconfigured
    - authorizing
    - ready
    - degraded
    - quarantined
  direct_sdk:
    typescript:
      import_package: algenta-sdk
      preferred_client_class: AlgentaClient
      compatibility_client_class: DecisionEngineClient
      list_providers_method: listCapabilityProviders
      get_provider_method: getCapabilityProvider
      list_bindings_method: listCapabilityBindings
      create_binding_method: createCapabilityBinding
      get_binding_method: getCapabilityBinding
      update_binding_method: updateCapabilityBinding
      delete_binding_method: deleteCapabilityBinding
      preview_test_binding_method: previewTestCapabilityBinding
      test_binding_method: testCapabilityBinding
      preview_discover_binding_method: previewDiscoverCapabilityBinding
      discover_binding_method: discoverCapabilityBinding
      start_authorization_method: startCapabilityAuthorization
      complete_authorization_method: completeCapabilityAuthorization
      list_capabilities_method: listCapabilities
      get_capability_method: getCapability
      route_capabilities_method: routeCapabilities
      execute_capability_method: executeCapability
      record_outcome_method: recordCapabilityOutcome
      list_skills_method: listSkills
      enable_skill_method: enableSkill
      disable_skill_method: disableSkill
      list_mcp_providers_method: listMcpProviders
  runtime_sdk:
    typescript:
      import_package: algenta-sdk
      runtime_class: Runtime
      list_providers_method: listCapabilityProviders
      list_bindings_method: listCapabilityBindings
      list_capabilities_method: listCapabilities
      route_capabilities_method: routeCapabilities
      execute_capability_method: executeCapability
      register_adapter_method: registerCapabilityAdapter
  mcp:
    list_providers_tool: list_capability_providers
    list_bindings_tool: list_capability_bindings
    create_binding_tool: create_capability_binding
    test_binding_tool: test_capability_binding
    discover_binding_tool: discover_capability_binding
    list_capabilities_tool: list_capabilities
    get_capability_tool: get_capability
    route_capabilities_tool: route_capabilities
    execute_capability_tool: execute_capability
    list_skills_tool: list_skills
    enable_skill_tool: enable_skill
    disable_skill_tool: disable_skill
    compatibility_aliases:
    - list_data
    - get_data_summary
    - query_data
    - query_batch
    - query_sql_report
    - list_connectors
    - create_connector
    - test_connector
    - browse_connector
    - preview_test_connector
    - preview_browse_connector