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

# List Tools

> Discover all available tools across MCP servers

Discover all available tools across the 45+ MCP servers. This endpoint returns the complete list of tools with their schemas and descriptions.

<Info>
  Contact Scale to receive Docker images for your environments.
</Info>

## Request Body

<ParamField body="image" type="string" required>
  Docker image identifier for the MCP environment. Contact Scale to obtain the image.
</ParamField>

<ParamField body="tags" type="object" required>
  Session scope tags for data isolation

  <Expandable title="properties">
    <ParamField body="assignmentId" type="string">
      Unique session identifier for data isolation
    </ParamField>

    <ParamField body="userId" type="string">
      Optional user identifier
    </ParamField>
  </Expandable>
</ParamField>

## Response

<ResponseField name="tools" type="array">
  Array of available tools

  <Expandable title="properties">
    <ResponseField name="name" type="string">
      Tool name (e.g., `add_calendar_event`)
    </ResponseField>

    <ResponseField name="description" type="string">
      Description of what the tool does
    </ResponseField>

    <ResponseField name="inputSchema" type="object">
      JSON Schema for tool parameters
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST http://localhost:3004/list-tools \
    -H "Content-Type: application/json" \
    -d '{
      "image": "agent-environment:latest",
      "tags": {"assignmentId": "my-test-session"}
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "tools": [
      {
        "name": "add_calendar_event",
        "description": "Create a new calendar event",
        "inputSchema": {
          "type": "object",
          "properties": {
            "title": {"type": "string"},
            "start_time": {"type": "integer"},
            "end_time": {"type": "integer"}
          },
          "required": ["title", "start_time", "end_time"]
        }
      }
    ]
  }
  ```
</ResponseExample>
