# List Tables — Incorta

> Lists the tables and views ("schema objects") in an Incorta tenant, via the REST API. Provide Schema Name to scope the results to one schema (use List Schemas to find valid names); omit it to list tables across every schema in the tenant…

- Key: `incorta-list-tables`
- Type: Action (Read-only)
- Version: 0.0.1
- App: Incorta (`incorta`) — https://pipedream.com/apps/incorta.md
- This page (HTML): https://pipedream.com/apps/incorta/actions/list-tables
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/incorta/actions/list-tables/list-tables.mjs

## Description

Lists the tables and views ("schema objects") in an Incorta tenant, via the REST API. Provide **Schema Name** to scope the results to one schema (use **List Schemas** to find valid names); omit it to list tables across every schema in the tenant. Use the returned table names as the `FROM` target in **Execute SQL Query**, and pass a table name to **List Columns** to see its column definitions. Use **Limit** and **Offset** to page through large result sets: the response includes `total` (tables matched before paging), `hasMore`, and `nextOffset` (pass it as **Offset** to get the next page). If `hasMore` is true the list is truncated, so keep paging or narrow with **Schema Name**. Example: calling with Schema Name `pipedream_store` returns `{tables: [{schemaName: "pipedream_store", tableName: "customer", type: "table"}], errors: [], total: 1, hasMore: false}`. When listing across all schemas, schemas that could not be read are reported in `errors` (`{schemaName, error}`) and the list is then incomplete. [See the documentation](https://docs.incorta.com/latest/references-api-list-schema-objects-endpoint-v2)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `schemaName` | `string` | No | Name of an Incorta schema (a logical grouping of tables/views), e.g. pipedream_store. Corresponds to the schemaName field returned by List Schemas. |
| `limit` | `integer` | No | Maximum number of tables to return, e.g. 10 to return the first 10. Omit to return all. Use with Offset to page through large tenants. |
| `offset` | `integer` | No | Number of tables to skip before returning results (default 0), e.g. 200 to skip the first 200. To get the next page, pass the nextOffset value from the previous response. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "incorta",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "incorta-list-tables",
  arguments: {
    schemaName: "Schema Name",
    limit: 10,
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "incorta-list-tables",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    incorta: { authProvisionId: "apn_xxxxxxx" },
    schemaName: "Schema Name",
    limit: 10,
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "incorta-list-tables",
    "configured_props": {
      "incorta": { "authProvisionId": "apn_xxxxxxx" },
      "schemaName": "Schema Name",
      "limit": 10
    }
  }'
```

---

- App: https://pipedream.com/apps/incorta.md · All apps: https://pipedream.com/apps
