On this page

Connectors

list-connector-catalog

List every connector Wexa offers, whether or not this project has configured it, with each one's actions. Needs the fabric:orchestrate.read grant.

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-connector-catalog","arguments":{"search":"duckduckgo"}}}'
{
  "content": [
    {
      "type": "text",
      "text": "{\"lifecycle_id\":\"qlc_000011\",\"result\":{\"connectors\":[{\"category\":\"duckduckgo\",\"name\":\"DuckDuckGo\",\"connector_type\":\"system\",\"configured\":true,\"provisionable\":true,\"actions\":[{\"action\":\"search\",\"name\":\"Search\"}]}],\"total\":1}}"
    }
  ],
  "isError": false
}

Parameters

ParameterTypeRequiredNotes
searchstringOptionalOnly connectors whose name, category, description or actions contain this text.
categorystringOptionalExactly one connector, by category, e.g. slack. A category that matches nothing is not an error: it returns an empty connectors, total: 0 and a note.
schemasbooleanOptionalInclude each action's input and output fields (id, label, type, required), read from the action's own models. Use it to work out which action's output can fill another's input.
formsbooleanOptionalInclude each connector's setup form (ui_form: the fields to fill in), as the console's create page reads it. get-connector-form returns one category's.
Show full response

An example response, for search set to duckduckgo, in a project that has DuckDuckGo configured.

{
  "content": [
    {
      "type": "text",
      "text": "{\"lifecycle_id\":\"qlc_000011\",\"result\":{\"connectors\":[{\"category\":\"duckduckgo\",\"name\":\"DuckDuckGo\",\"description\":\"DuckDuckGo Instant Answer API connector for quick answers like abstracts, related topics, and more.\",\"logo\":null,\"group\":null,\"connector_type\":\"system\",\"needs_credentials\":false,\"configured\":true,\"provisionable\":true,\"actions\":[{\"action\":\"search\",\"name\":\"Search\",\"description\":\"Search DuckDuckGo Instant Answer API and return abstract and related topics.\"}]}],\"total\":1}}"
    }
  ],
  "isError": false
}

Keeping the lifecycle_id is what lets you ask later why a call was allowed, refused or held.

More details

Response fields

  • connectors: The connectors, each with the fields below.
  • total: How many connectors came back.
  • note: Present only when category matched nothing. It says to drop category and use search instead.

Each connector has these fields:

  • category: The connector's key, for example duckduckgo. Pass it as category to the other connector tools.
  • name, description: The connector's name and what it does.
  • logo, group: Its logo and the group the console files it under. Either can be null.
  • connector_type: user, system or external.
  • needs_credentials: true when the connector has a setup form to fill in. Connect it with configure-connector.
  • configured: true when this project already has one configured. A placeholder that request-connector created and nobody has configured does not count.
  • provisionable: true when provision-connector can connect it without credentials.
  • actions: Each enabled action's action (its key), name and description. With schemas, also inputs and outputs: each field's id, label, type, required and description.
  • ui_form: Present only with forms: the connector's setup form, or null when it has none.

A connector with no enabled action is not listed.

Each connector comes with its category, its type, whether it needs credentials, whether it is configured in this project, whether provision-connector can connect it without credentials, and the key, name and description of each enabled action. Connectors this project has configured come first, then the rest, each part in name order. A connector with no enabled action is not listed.

list-connectors shows only the connectors someone has set up. This is the other half: use it to design work against a connector nobody has configured yet, or to find the category to pass to get-connector-form and configure-connector.

Every parameter is optional: a bare call answers with the whole catalog.

Only reads, so not marked consequential: it is audited lightly and is never held for approval. It still consumes quota and is still refused by policy like anything else.

Every tool call works the same way: How every tool call works.