> Source: https://wexa.ai/docs/connectors/list-connectors

# list-connectors

List the connectors this project may use. Each comes with its actions, and each action with the JSON Schema of its arguments, so you learn how to call an action and not only that it exists. Needs the `fabric:orchestrate.read` grant.

**Read one connector**

**Wexa MCP server**

```bash
curl -sS -X POST https://fabric.wexa.ai/mcp/$FABRIC_PROJECT_ID \
  -H "authorization: Bearer $FABRIC_API_KEY" \
  -H "Mcp-Session-Id: $MCP_SESSION_ID" \
  -H "content-type: application/json" -H "accept: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"list-connectors","arguments":{"connector_id":"6aa0fc7d19a6e73abca9352d"}}}'
```

```json
{
  "content": [
    {
      "type": "text",
      "text": "{\"lifecycle_id\":\"qlc_000008\",\"result\":{\"connectors\":[{\"connector_id\":\"6aa0fc7d19a6e73abca9352d\",\"name\":\"DuckDuckGo\",\"category\":\"duckduckgo\",\"status\":\"ready\",\"home_project_id\":\"6aa0fa95a832af2fd9633045\",\"access_scope\":\"organization\",\"actions\":[{\"name\":\"search\",\"title\":\"Search\",\"input_schema\":{\"properties\":{\"query\":{\"description\":\"The search query\",\"title\":\"Query\",\"type\":\"string\"}},\"required\":[\"query\"],\"type\":\"object\"}}]}],\"total\":1}}"
    }
  ],
  "isError": false
}
```

**REST API**

```bash
curl -sS https://fabric.wexa.ai/v1/list-connectors \
  -H "authorization: Bearer $FABRIC_API_KEY" \
  -H "content-type: application/json" \
  -d '{"connector_id":"6aa0fc7d19a6e73abca9352d"}'
```

```json
{
  "lifecycle_id": "qlc_000008",
  "result": {
    "connectors": [
      {
        "connector_id": "6aa0fc7d19a6e73abca9352d",
        "name": "DuckDuckGo",
        "category": "duckduckgo",
        "status": "ready",
        "home_project_id": "6aa0fa95a832af2fd9633045",
        "access_scope": "organization",
        "actions": [
          {
            "name": "search",
            "title": "Search",
            "input_schema": {
              "properties": {
                "query": {
                  "description": "The search query",
                  "title": "Query",
                  "type": "string"
                }
              },
              "required": [
                "query"
              ],
              "type": "object"
            }
          }
        ]
      }
    ],
    "total": 1
  }
}
```

**TypeScript SDK**

```ts
import { Fabric } from '@wexa-fabric/sdk'

const fabric = new Fabric()
const result = await fabric.listConnectors({
  connector_id: '6aa0fc7d19a6e73abca9352d'
})
```

```ts
// result is the payload itself, with no `.result` to read
{
  connectors: [
    {
      connector_id: '6aa0fc7d19a6e73abca9352d',
      name: 'DuckDuckGo',
      category: 'duckduckgo',
      status: 'ready',
      home_project_id: '6aa0fa95a832af2fd9633045',
      access_scope: 'organization',
      actions: [
        {
          name: 'search',
          title: 'Search',
          input_schema: {
            properties: {
              query: {
                description: 'The search query',
                title: 'Query',
                type: 'string'
              }
            },
            required: ['query'],
            type: 'object'
          }
        }
      ]
    }
  ],
  total: 1
}
```

**Python SDK**

```python
from wexa import Fabric

fabric = Fabric()
out = fabric.list_connectors(connector_id="6aa0fc7d19a6e73abca9352d")
```

```python
# out is the result, already unwrapped
{
    "connectors": [
        {
            "connector_id": "6aa0fc7d19a6e73abca9352d",
            "name": "DuckDuckGo",
            "category": "duckduckgo",
            "status": "ready",
            "home_project_id": "6aa0fa95a832af2fd9633045",
            "access_scope": "organization",
            "actions": [
                {
                    "name": "search",
                    "title": "Search",
                    "input_schema": {
                        "properties": {
                            "query": {
                                "description": "The search query",
                                "title": "Query",
                                "type": "string"
                            }
                        },
                        "required": ["query"],
                        "type": "object"
                    }
                }
            ]
        }
    ],
    "total": 1
}
```

## Parameters

Every parameter is optional: a bare call works.

| Parameter | Type | Required | Notes |
| --- | --- | --- | --- |
| `connector_id` | string | Optional | Return only this connector. Must be a string. |
| `with_sync` | boolean | Optional | Also return each connector's last sync (`status`, `last_sync`, `actions`), as the console lists it. Only a connector with a sync record carries it. Must be a boolean. |

**Show full response**

Each connector has these fields:

- `connector_id`: the id to pass to other connector tools.
- `name`, `category`: the connector's name and its type, for example `duckduckgo`.
- `home_project_id`: the project the connector was provisioned in.
- `access_scope`, `access_scope_id`: the access scope, and the department when the scope is `department`.
- `actions`: the actions you can run. Each has a `name`, a `title`, a `description` and an `input_schema`, which is JSON Schema whose property names are the argument names the action takes.
- `sync`: present only with `with_sync`, and only for a connector that has a sync record: its last sync, as the console lists it. `status` is the sync's status, `last_sync` when it ran, and `actions` how many actions the connector has. For example `{"status": "synced", "last_sync": "2026-10-10T09:00:00Z", "actions": 7}`.

A real response, captured from a live call to `list-connectors` with `connector_id` set:

**Result of list-connectors**

**REST API**

```json
{
  "lifecycle_id": "qlc_000008",
  "result": {
    "connectors": [
      {
        "connector_id": "6aa0fc7d19a6e73abca9352d",
        "name": "DuckDuckGo",
        "category": "duckduckgo",
        "status": "ready",
        "description": "DuckDuckGo Instant Answer API connector for quick answers like abstracts, related topics, and more.",
        "home_project_id": "6aa0fa95a832af2fd9633045",
        "access_scope": "organization",
        "actions": [
          {
            "name": "search",
            "title": "Search",
            "description": "Search DuckDuckGo Instant Answer API and return abstract and related topics.",
            "input_schema": {
              "properties": {
                "no_html": {
                  "description": "Strip HTML from text",
                  "title": "Strip HTML",
                  "type": "boolean"
                },
                "no_redirect": {
                  "description": "Disable HTTP redirects",
                  "title": "No Redirect",
                  "type": "boolean"
                },
                "query": {
                  "description": "The search query",
                  "title": "Query",
                  "type": "string"
                },
                "skip_disambig": {
                  "description": "Skip disambiguation results",
                  "title": "Skip Disambiguation",
                  "type": "boolean"
                }
              },
              "required": [
                "query"
              ],
              "type": "object"
            }
          }
        ]
      }
    ],
    "total": 1
  }
}
```

**Wexa MCP server**

```json
{
  "content": [
    {
      "text": "{\"lifecycle_id\":\"qlc_000009\",\"result\":{\"connectors\":[{\"connector_id\":\"6aa0fc7d19a6e73abca9352d\",\"name\":\"DuckDuckGo\",\"category\":\"duckduckgo\",\"status\":\"ready\",\"description\":\"DuckDuckGo Instant Answer API connector for quick answers like abstracts, related topics, and more.\",\"home_project_id\":\"6aa0fa95a832af2fd9633045\",\"access_scope\":\"organization\",\"actions\":[{\"name\":\"search\",\"title\":\"Search\",\"description\":\"Search DuckDuckGo Instant Answer API and return abstract and related topics.\",\"input_schema\":{\"properties\":{\"no_html\":{\"description\":\"Strip HTML from text\",\"title\":\"Strip HTML\",\"type\":\"boolean\"},\"no_redirect\":{\"description\":\"Disable HTTP redirects\",\"title\":\"No Redirect\",\"type\":\"boolean\"},\"query\":{\"description\":\"The search query\",\"title\":\"Query\",\"type\":\"string\"},\"skip_disambig\":{\"description\":\"Skip disambiguation results\",\"title\":\"Skip Disambiguation\",\"type\":\"boolean\"}},\"required\":[\"query\"],\"type\":\"object\"}}]}],\"total\":1}}",
      "type": "text"
    }
  ],
  "isError": false
}
```

**TypeScript SDK**

```ts
// the object you get back IS the result — there is no `.result` to read
{
  connectors: [
    {
      connector_id: '6aa0fc7d19a6e73abca9352d',
      name: 'DuckDuckGo',
      category: 'duckduckgo',
      status: 'ready',
      description: 'DuckDuckGo Instant Answer API connector for quick answers like abstracts, related topics, and more.',
      home_project_id: '6aa0fa95a832af2fd9633045',
      access_scope: 'organization',
      actions: [
        {
          name: 'search',
          title: 'Search',
          description: 'Search DuckDuckGo Instant Answer API and return abstract and related topics.',
          input_schema: {
            properties: {
              no_html: {
                description: 'Strip HTML from text',
                title: 'Strip HTML',
                type: 'boolean'
              },
              no_redirect: {
                description: 'Disable HTTP redirects',
                title: 'No Redirect',
                type: 'boolean'
              },
              query: {
                description: 'The search query',
                title: 'Query',
                type: 'string'
              },
              skip_disambig: {
                description: 'Skip disambiguation results',
                title: 'Skip Disambiguation',
                type: 'boolean'
              }
            },
            required: [
              'query'
            ],
            type: 'object'
          }
        }
      ]
    }
  ],
  total: 1
}

// The TS SDK names these camelCase — lifecycleId, traceId — where Python uses
// lifecycle_id and trace_id. Both are non-enumerable: readable, but omitted by
// Object.keys() and JSON.stringify(). `result.lifecycleId` here is undefined.
result.lifecycleId // 'qlc_000008'
```

**Python SDK**

```python
# a dict subclass; `result` is already unwrapped
{
 "connectors": [
  {
   "connector_id": "6aa0fc7d19a6e73abca9352d",
   "name": "DuckDuckGo",
   "category": "duckduckgo",
   "status": "ready",
   "description": "DuckDuckGo Instant Answer API connector for quick answers like abstracts, related topics, and more.",
   "home_project_id": "6aa0fa95a832af2fd9633045",
   "access_scope": "organization",
   "actions": [
    {
     "name": "search",
     "title": "Search",
     "description": "Search DuckDuckGo Instant Answer API and return abstract and related topics.",
     "input_schema": {
      "properties": {
       "no_html": {
        "description": "Strip HTML from text",
        "title": "Strip HTML",
        "type": "boolean"
       },
       "no_redirect": {
        "description": "Disable HTTP redirects",
        "title": "No Redirect",
        "type": "boolean"
       },
       "query": {
        "description": "The search query",
        "title": "Query",
        "type": "string"
       },
       "skip_disambig": {
        "description": "Skip disambiguation results",
        "title": "Skip Disambiguation",
        "type": "boolean"
       }
      },
      "required": [
       "query"
      ],
      "type": "object"
     }
    }
   ]
  }
 ],
 "total": 1
}

out.lifecycle_id  # 'qlc_000008' — an attribute, not a key
```

**More details**

Which connectors you see is decided by the access scope that was chosen when each connector was provisioned, so two callers in the same project can see different lists:

- `organization`: you see it when your project is in the connector's organization.
- `department`: when your project is in the connector's department.
- `project`: when your project is the project the connector was provisioned in.
- `individual`: when you are the person who provisioned it.

A connector from another organization never appears. A connector that was provisioned before access scopes existed reads as `organization`. A connector can appear although it was provisioned in a different project: `home_project_id` tells you which project that was.

Only actions that can run appear. Provisioning a connector creates one skill for each enabled action, and a disabled action has no skill, so it is not listed.

For a connector's whole ingestion picture, call [`get-connector-ingestion`](/docs/connectors/get-connector-ingestion). To run an action you found here, call [`run-connector-action`](/docs/connectors/run-connector-action). For the skill ids an agent uses, call [`list-skills`](/docs/connectors/list-skills). For the connectors nobody has set up yet, see [`list-connector-catalog`](/docs/connectors/list-connector-catalog). Not marked consequential.

Every tool call works the same way: [How every tool call works](/docs/sdks-and-apis/how-every-tool-call-works).
