MCP servers
SDK reference for mcp servers — Bind, test, and authenticate remote MCP servers for agents.
Bind, test, and authenticate remote MCP servers for agents.
listSlots
List MCP server slots from the latest deployment with binding status (no token values). Bindings whose slot is not in the latest deployment appear flagged as orphaned.
GET
Usage:
const result = await swirls.client.mcpServers.listSlots({
projectId: '...',
})Input:
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes |
Output:
| Field | Type | Description |
|---|---|---|
slots | object[] | |
grantsUnavailable | boolean |
upsertBinding
Bind or update an MCP server slot. For DSL-backed slots, save token only (URL comes from the deployment). For legacy slots, provide a remote URL (SSRF-validated). Token is encrypted at rest. Omit token to keep the existing one; set clearToken to remove it.
POST
Usage:
const result = await swirls.client.mcpServers.upsertBinding({
projectId: '...',
name: '...',
})Input:
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | |
name | string | Yes | |
url | string | No | |
token | string | No | |
authHeader | string | No | |
clearToken | boolean | No |
Output:
| Field | Type | Description |
|---|---|---|
saved | true |
deleteBinding
Remove the binding for an MCP server slot.
POST
Usage:
const result = await swirls.client.mcpServers.deleteBinding({
projectId: '...',
name: '...',
})Input:
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | |
name | string | Yes |
Output:
| Field | Type | Description |
|---|---|---|
deleted | true |
testBinding
Connect to the bound MCP endpoint out of band and list its advertised tools (names capped at 25), validating reachability and credentials.
POST
Usage:
const result = await swirls.client.mcpServers.testBinding({
projectId: '...',
name: '...',
})Input:
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | |
name | string | Yes |
Output:
| Field | Type | Description |
|---|---|---|
ok | boolean | |
toolCount | number | |
toolNames | string[] | |
error | string |
startOAuth
Start interactive OAuth Connect for an auth: interactive MCP slot.
POST
Usage:
const result = await swirls.client.mcpServers.startOAuth({
projectId: '...',
name: '...',
returnUrl: '...',
})Input:
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | |
name | string | Yes | |
returnUrl | string | Yes |
Output:
| Field | Type | Description |
|---|---|---|
authorizationUrl | string | |
state | string |
bindOAuth
Confirm an interactive MCP grant after the Fabric OAuth callback.
POST
Usage:
const result = await swirls.client.mcpServers.bindOAuth({
projectId: '...',
oauthState: '...',
})Input:
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | |
oauthState | string | Yes |
Output:
| Field | Type | Description |
|---|---|---|
bound | true |
disconnectInteractive
Disconnect an interactive MCP grant (Fabric unbind).
POST
Usage:
const result = await swirls.client.mcpServers.disconnectInteractive({
projectId: '...',
name: '...',
})Input:
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | |
name | string | Yes |
Output:
| Field | Type | Description |
|---|---|---|
disconnected | true |