> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sidenet.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List tools

> Returns all available tools (static, MCP, and custom) grouped by provider. Each tool carries a `toolRef` — the stable reference object to store in a workflow tool step. Copy it verbatim; do not derive it from the grouping (global MCP tools group under `mcp` but use `{ source: "static", key }`).

Pass `basic=true` for a compact catalogue that fits an agent context window: each provider is reduced to `id`, `name`, `type`, `base_url` and each tool to `id`, `name`, `description` — no JSON schemas, no auth config, no `toolRef`. Re-request without `basic` (or use GET /v1/tool-providers/:id) when you need a tool's schema or its `toolRef`.

`limit`/`offset` paginate over items, where an item is one tool plus one slot for each provider that has no tools. Providers are re-grouped per page, so merging pages means merging the `static`/`mcp`/`custom` maps. Without `limit` the full catalogue is returned, as before. `pagination` reports `{ limit, offset, total, returned, hasMore }`.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/tools
openapi: 3.1.0
info:
  title: Sidenet API
  version: 1.0.0
  description: >-
    Sidenet HTTP endpoints exposed by the Sidenet Studio. All routes require an
    api key that can be generated through the studio in studio.sidenet.ai.
servers:
  - url: https://api.sidenet.ai
security:
  - bearerAuth: []
paths:
  /v1/tools:
    get:
      tags:
        - Tools
      summary: List tools
      description: >-
        Returns all available tools (static, MCP, and custom) grouped by
        provider. Each tool carries a `toolRef` — the stable reference object to
        store in a workflow tool step. Copy it verbatim; do not derive it from
        the grouping (global MCP tools group under `mcp` but use `{ source:
        "static", key }`).


        Pass `basic=true` for a compact catalogue that fits an agent context
        window: each provider is reduced to `id`, `name`, `type`, `base_url` and
        each tool to `id`, `name`, `description` — no JSON schemas, no auth
        config, no `toolRef`. Re-request without `basic` (or use GET
        /v1/tool-providers/:id) when you need a tool's schema or its `toolRef`.


        `limit`/`offset` paginate over items, where an item is one tool plus one
        slot for each provider that has no tools. Providers are re-grouped per
        page, so merging pages means merging the `static`/`mcp`/`custom` maps.
        Without `limit` the full catalogue is returned, as before. `pagination`
        reports `{ limit, offset, total, returned, hasMore }`.
      parameters:
        - in: query
          name: basic
          required: false
          schema:
            type: boolean
            default: false
          description: >-
            Return only provider `id`/`name`/`type`/`base_url` and per-tool
            `id`/`name`/`description`. Off by default.
        - in: query
          name: limit
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 500
            example: 50
          description: Max items to return (max 500). Omit to return the full catalogue.
        - in: query
          name: offset
          required: false
          schema:
            type: integer
            minimum: 0
            default: 0
          description: Items to skip before the page. Defaults to 0.
      responses:
        '200':
          description: The catalogue, grouped by provider kind, plus the page window
          content:
            application/json:
              schema:
                type: object
                properties:
                  static:
                    type: object
                    description: Built-in providers, keyed by provider key.
                    additionalProperties:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        type:
                          type: string
                        base_url:
                          type: string
                          nullable: true
                        tools:
                          type: object
                          description: Tools keyed by runtime key, NOT an array.
                          additionalProperties:
                            type: object
                            properties:
                              id:
                                type: string
                                description: The runtime key — what an agent calls.
                              name:
                                type: string
                              description:
                                type: string
                              inputSchema:
                                type: object
                                description: >-
                                  JSON Schema of the arguments. Omitted when
                                  `basic=true`.
                              outputSchema:
                                type: object
                                description: Omitted when `basic=true`.
                              toolRef:
                                type: object
                                description: >-
                                  The stable reference to store in a workflow
                                  tool step. Copy it VERBATIM — do not derive it
                                  from the grouping, since global MCP tools
                                  group under `mcp` but carry `{ source:
                                  "static", key }`. Omitted when `basic=true`.
                  mcp:
                    type: object
                    description: MCP servers, keyed by server name.
                    additionalProperties:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        type:
                          type: string
                        base_url:
                          type: string
                          nullable: true
                        tools:
                          type: object
                          description: Tools keyed by runtime key, NOT an array.
                          additionalProperties:
                            type: object
                            properties:
                              id:
                                type: string
                                description: The runtime key — what an agent calls.
                              name:
                                type: string
                              description:
                                type: string
                              inputSchema:
                                type: object
                                description: >-
                                  JSON Schema of the arguments. Omitted when
                                  `basic=true`.
                              outputSchema:
                                type: object
                                description: Omitted when `basic=true`.
                              toolRef:
                                type: object
                                description: >-
                                  The stable reference to store in a workflow
                                  tool step. Copy it VERBATIM — do not derive it
                                  from the grouping, since global MCP tools
                                  group under `mcp` but carry `{ source:
                                  "static", key }`. Omitted when `basic=true`.
                  custom:
                    type: object
                    description: The org's own API providers, keyed by provider name.
                    additionalProperties:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        type:
                          type: string
                        base_url:
                          type: string
                          nullable: true
                        tools:
                          type: object
                          description: Tools keyed by runtime key, NOT an array.
                          additionalProperties:
                            type: object
                            properties:
                              id:
                                type: string
                                description: The runtime key — what an agent calls.
                              name:
                                type: string
                              description:
                                type: string
                              inputSchema:
                                type: object
                                description: >-
                                  JSON Schema of the arguments. Omitted when
                                  `basic=true`.
                              outputSchema:
                                type: object
                                description: Omitted when `basic=true`.
                              toolRef:
                                type: object
                                description: >-
                                  The stable reference to store in a workflow
                                  tool step. Copy it VERBATIM — do not derive it
                                  from the grouping, since global MCP tools
                                  group under `mcp` but carry `{ source:
                                  "static", key }`. Omitted when `basic=true`.
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        nullable: true
                        description: Null when unpaged.
                      offset:
                        type: integer
                      total:
                        type: integer
                        description: >-
                          Total ITEMS, where an item is one tool plus one slot
                          per provider that has no tools — not a provider count.
                      returned:
                        type: integer
                      hasMore:
                        type: boolean
              example:
                static:
                  rich-ui-components:
                    id: rich-ui-components
                    name: Rich UI components
                    type: static
                    tools:
                      render-chart:
                        id: render-chart
                        name: render-chart
                        description: Renders a chart in the chat surface
                        inputSchema:
                          type: object
                          properties:
                            spec:
                              type: object
                        toolRef:
                          source: static
                          key: render-chart
                mcp: {}
                custom:
                  Acme CRM:
                    id: 8d3b1a75-6c02-4e59-b84f-27a9d5e10c63
                    name: Acme CRM
                    type: api
                    base_url: https://api.acme.example
                    tools:
                      Acme_CRM_get_customer:
                        id: Acme_CRM_get_customer
                        name: Get customer
                        description: Fetches one customer by id
                        inputSchema:
                          type: object
                          properties:
                            customerId:
                              type: string
                          required:
                            - customerId
                        toolRef:
                          source: custom
                          id: c07f2b95-8d41-4e63-a029-5f7b1c8d3e40
                pagination:
                  limit: 50
                  offset: 0
                  total: 2
                  returned: 2
                  hasMore: false
        '500':
          description: Catalogue could not be built
      security:
        - bearerAuth: []
        - sessionToken: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Organization API key, generated in studio.sidenet.ai. Backend only —
        never in a browser.
    sessionToken:
      type: http
      scheme: bearer
      description: >-
        Session token (`snat_…`) minted by POST /v1/token. Carries the
        organization and the end user; safe in a browser.

````