request-connector
Request a connector with empty configuration, tagged not_configured, so a process flow or an agent that depends on it can be published before anyone holds the credentials. Idempotent, and it never takes credentials. Needs the fabric:skill.write 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":"request-connector","arguments":{"category":"slack","scope":"organization"}}}'{
"content": [
{
"type": "text",
"text": "{\"lifecycle_id\":\"qlc_000017\",\"result\":{\"category\":\"slack\",\"scope\":\"organization\",\"connector\":{\"connectorId\":\"6b1a3d5e7f9c0b2a4d6e8f03\",\"alreadyExists\":false,\"is_configured\":false,\"name\":\"Slack\"}}}"
}
],
"isError": false
}Parameters
| Parameter | Type | Required | Notes |
|---|---|---|---|
category | string | Required | The connector's category from list-connector-catalog, such as slack. Case does not matter. A category that needs no credentials is refused: use provision-connector. A category the platform does not know is refused (404). |
name | string | Optional | Display name. Defaults to the connector's catalogue name. |
scope | string | Optional | organization: one shared connector for the project (the default). individual: your own, which only you see. Anything else is refused. |
Errors
ValidationError(400): the platform refused the request, with its own reason.
Show full response
category: the category, in lower case.scope:organizationorindividual.connector: the platform's answer:connectorId,alreadyExistsandis_configured, and for a connector this call created also itsnameandaccess_scope.note: what happened: the connector was created with empty configuration, a placeholder for it already existed and is still not configured, or a configured connector of this kind already exists and nothing was created.
An example response, for a Slack connector this call created.
{
"content": [
{
"type": "text",
"text": "{\"lifecycle_id\":\"qlc_000017\",\"result\":{\"category\":\"slack\",\"scope\":\"organization\",\"connector\":{\"success\":true,\"connectorId\":\"6b1a3d5e7f9c0b2a4d6e8f03\",\"alreadyExists\":false,\"is_configured\":false,\"name\":\"Slack\",\"access_scope\":\"organization\"},\"note\":\"created with empty configuration and tagged not_configured. It has no runnable actions until its credentials are saved in the Fabric console (Connect > Connectors).\"}}"
}
],
"isError": false
}More details
The connector appears in the project for the person responsible to configure in the console. Until then list-connectors lists it with no actions, and nothing on it can run.
When a matching connector already exists in the project, it is returned and nothing is created: a shared connector matches on its category, an individual one on its category and its owner. A connector that needs no credentials is provisioned with provision-connector instead, and one you hold the credentials for with configure-connector.
The error code on the 422 is S4:validate-input, and the message on the 404 and 400 is the platform's own reason. Arguments are validated before policy runs, so a missing or unknown category is refused before anything is held.
Marked consequential: it is audited in full, and a policy rule may hold it for a person to approve. The project's write gate, when a project admin has turned it on (it is off by default), holds it this way when an API key or SDK session calls it.
Every tool call works the same way: How every tool call works.