Workspaces / MCP

Create integration credential

Store a BYOK integration credential for the workspace (bring your own API key/token). Rejects pipedrive, close, and ghl/gohighlevel - those integrations are retired. Auth secrets are masked in the response.

tools/callDeterministic operation

Parameters

workspaceIdOptional · string
Optional workspace ID or slug. Required when this credential can access multiple workspaces and no workspace was configured on the client.
service_slugRequired · string
Integration service slug, e.g. ai_ark, crustdata, fullenrich, bettercontact, wiza, signalbase, adyntel, prospeo, instantly, or hubspot.
nameOptional · string
Optional display name. Defaults to "<Service> API key".
auth_typeOptional · string
Optional. Defaults to the service preset's auth type.api_key · bearer · basic · oauth2 · custom_header
auth_configOptional · object
Explicit auth config map (e.g. { api_key: "..." }). For Adyntel use { username: "account@email.com", password: "api-key" }. Takes precedence over api_key/bearer_token shorthand.
api_keyOptional · string
Shorthand for auth_config when auth_type is api_key.
bearer_tokenOptional · string
Shorthand for auth_config when auth_type is bearer.
scopeOptional · string
Optional. Defaults to the service preset's scope, usually workspace.personal · workspace
external_idOptional · string
Optional external identifier for the credential (e.g. account id at the provider).
Request example
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create-integration-credential",
    "arguments": {
      "service_slug": "example"
    }
  }
}
Full input schema
Input schema
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "minLength": 1,
      "description": "Optional workspace ID or slug. Required when this credential can access multiple workspaces and no workspace was configured on the client."
    },
    "service_slug": {
      "type": "string",
      "description": "Integration service slug, e.g. ai_ark, crustdata, fullenrich, bettercontact, wiza, signalbase, adyntel, prospeo, instantly, or hubspot."
    },
    "name": {
      "type": "string",
      "description": "Optional display name. Defaults to \"<Service> API key\"."
    },
    "auth_type": {
      "type": "string",
      "enum": [
        "api_key",
        "bearer",
        "basic",
        "oauth2",
        "custom_header"
      ],
      "description": "Optional. Defaults to the service preset's auth type."
    },
    "auth_config": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Explicit auth config map (e.g. { api_key: \"...\" }). For Adyntel use { username: \"account@email.com\", password: \"api-key\" }. Takes precedence over api_key/bearer_token shorthand."
    },
    "api_key": {
      "type": "string",
      "description": "Shorthand for auth_config when auth_type is api_key."
    },
    "bearer_token": {
      "type": "string",
      "description": "Shorthand for auth_config when auth_type is bearer."
    },
    "scope": {
      "type": "string",
      "enum": [
        "personal",
        "workspace"
      ],
      "description": "Optional. Defaults to the service preset's scope, usually workspace."
    },
    "external_id": {
      "type": "string",
      "description": "Optional external identifier for the credential (e.g. account id at the provider)."
    }
  },
  "required": [
    "service_slug"
  ]
}
See this operation inCLI REST API TypeScript SDK
MCP reference | Pipeline v2 preview