On this page

Connectors

get-user-connector

Read one user-defined connector's full definition, with its lifecycle and access scope. Credentials are never returned. 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":"get-user-connector","arguments":{"connector_id":"6b1a3d5e7f9c0b2a4d6e8f02"}}}'
{
  "content": [
    {
      "type": "text",
      "text": "{\"lifecycle_id\":\"qlc_000017\",\"result\":{\"connector_id\":\"6b1a3d5e7f9c0b2a4d6e8f02\",\"name\":\"Payroll\",\"category\":\"user_payroll\",\"mode\":\"live\",\"base_url\":\"https://payroll.example.com/v1\",\"lifecycle\":\"draft\",\"access_scope\":\"individual\",\"has_credentials\":true,\"actions\":[{\"key\":\"get_employee\",\"name\":\"Get employee\"}]}}"
    }
  ],
  "isError": false
}

Parameters

ParameterTypeRequiredNotes
connector_idstringRequiredThe user-defined connector, from list-user-connectors. Must be a non-empty string. An unknown id is refused (404) with the platform's own reason. One you may not see, such as another person's draft, is refused (502, user connector not found).
Show full response

An example response, for a live draft with one action.

{
  "content": [
    {
      "type": "text",
      "text": "{\"lifecycle_id\":\"qlc_000017\",\"result\":{\"connector_id\":\"6b1a3d5e7f9c0b2a4d6e8f02\",\"name\":\"Payroll\",\"category\":\"user_payroll\",\"description\":\"Read employees from the payroll API.\",\"logo\":null,\"mode\":\"live\",\"base_url\":\"https://payroll.example.com/v1\",\"auth\":{\"type\":\"api_key\",\"name\":\"X-API-Key\",\"location\":\"header\"},\"headers\":{},\"connected\":false,\"lifecycle\":\"draft\",\"access_scope\":\"individual\",\"has_credentials\":true,\"user_id\":\"6a0f1e2d3c4b5a6978877665\",\"project_id\":\"6a0f1e2d3c4b5a6978877601\",\"org_id\":\"6a0f1e2d3c4b5a6978877600\",\"actions\":[{\"key\":\"get_employee\",\"name\":\"Get employee\",\"description\":\"One employee by id.\",\"input_schema\":{\"fields\":[{\"name\":\"employee_id\",\"type\":\"string\",\"required\":true}]},\"output_schema\":{\"fields\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"name\",\"type\":\"string\"}]},\"fault\":null,\"request\":{\"method\":\"GET\",\"path\":\"/employees/{employee_id}\",\"query\":[],\"headers\":{},\"body\":\"none\",\"result_path\":null}}]}}"
    }
  ],
  "isError": false
}

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

More details

Response fields

  • connector_id: The connector's id. Pass it to the other user-defined connector tools.
  • name: Its name.
  • category: Its category. A user-defined connector's category starts with user_.
  • description: Its description; empty when it has none.
  • logo: Its logo, or null.
  • mode: live (calls the real API) or simulated.
  • base_url: A live connector's base URL; every action's request path is appended to it.
  • auth: How requests authenticate: type is none, api_key, bearer or basic; for api_key, name is the header or query parameter and location is header or query.
  • headers: Static headers sent on every request.
  • connected: Whether its actions are skills agents can use. Publishing connects it.
  • lifecycle: draft or published.
  • access_scope: individual (a draft, its author's alone), project or organization.
  • has_credentials: Whether credentials are saved. The credentials themselves are never returned.
  • user_id: Its author.
  • project_id: The project it belongs to.
  • org_id: The organization it belongs to.
  • actions: Its actions. Each has a key, a name, a description, an input_schema, an output_schema, a fault and, for a live connector, the request it makes (method, path, query, headers, body, result_path).

The answer holds the connector's base URL, its auth scheme, and every action's request and input and output schemas. has_credentials says whether credentials are saved; the credentials themselves are never returned.

You can read a connector you can see: your own drafts, and the published ones in this project or this organization. Another person's draft is refused as if it did not exist.

The connector id in the example is illustrative. Swap it for one list-user-connectors returned to you.

Only reads, so not marked consequential: it is audited lightly and is never held for approval.

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