test-user-connector-action
Run one action of a user-defined connector you may edit, with real inputs, while you build it. 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":"test-user-connector-action","arguments":{"connector_id":"6b1a3d5e7f9c0b2a4d6e8f02","action_key":"get_employee","inputs":{"employee_id":"E1"}}}}'{
"content": [
{
"type": "text",
"text": "{\"lifecycle_id\":\"qlc_000017\",\"result\":{\"success\":true,\"output\":{\"id\":\"E1\",\"name\":\"Asha Rao\"}}}"
}
],
"isError": false
}Parameters
| Parameter | Type | Required | Notes |
|---|---|---|---|
action_key | string | Required | The action, by its key. Must not be empty. |
connector_id | string | Required | The user-defined connector, from list-user-connectors. An unknown id is refused (404). A missing id, or a connector you may not edit, is refused (502); the message names which. |
inputs | object | Optional | The action's inputs, by name. Defaults to none. |
Show full response
An example response, for an action that read one employee.
{
"content": [
{
"type": "text",
"text": "{\"lifecycle_id\":\"qlc_000017\",\"result\":{\"success\":true,\"output\":{\"id\":\"E1\",\"name\":\"Asha Rao\"}}}"
}
],
"isError": false
}Keeping the lifecycle_id is what lets you ask later why a call was allowed, refused or held.
More details
Response fields
success: Whether the action ran.output: What the action returned, whensuccessistrue.fault: Whensuccessisfalse: thestatusanddetailthe action failed with.
A live connector calls its API. An action that is not a GET really changes data there, so test it against data you can afford to change. A simulated connector returns simulated output.
A failed action is an answer, not an error: the call succeeds, with success set to false and the fault the action failed with.
The connector id in the example is illustrative. Swap it for one list-user-connectors returned to you.
Not marked consequential: it is the author's own test run of a connector they are building, and the default write gate does not hold it. It can still change data in the connector's API, so mind which action you run.
Every tool call works the same way: How every tool call works.