MCP Connectors
This document describes API for MCP Connectors.
Permissions
To manage MCP Connectors a following permissions will be used.
| Permission | Manageable via Roles | Description |
|---|---|---|
| list | false | Allow list |
| view | false | Allow view details |
| create | false | Allow create |
| edit | false | Allow edit |
| delete | false | Allow delete |
Permissions are not manageable. Only Super Admins are granted these permissions, except for list, which is available to all authenticated users.
POST /api/mcp/connectors/
Creates MCP Connector.
Permissions
Requires authentication and mcp_connectors.create permission.
Request example
- Headers
Request Method: POST
Content-Type: application/json
Authorization: JWT access_tokenBody
| Key | Type | Required | Notes |
|---|---|---|---|
| name | string | True | |
| integration | uuid | True | UUID of an existing AI MCP integration |
| description | string | False | |
| is_enabled | bool | False | |
| allowed_tools | Array | False | Array of tools names |
Validations
- name
- Is required
- Max length: 100
- Is unique
- integration
- Is required
- is UUID of an existing AI MCP integration
- Maximum number of MCP Connectors: 100.
Sample request body
POST /api/mcp/connectors/
{
"name": "Claude - analytics",
"integration": "a982601a-36c9-4735-9746-d251ae84ed71",
"description": "A connector for Claude agents preparing analytics reports",
"is_enabled": true,
"allowed_tools": ["search_object_classes", "get_object_record_document"]
}Response
- Successful status
201 Created - Response body:
{
"id": 16,
"name": "Claude - analytics",
"integration": "a982601a-36c9-4735-9746-d251ae84ed71",
"description": "A connector for Claude agents preparing analytics reports",
"is_enabled": true,
"status": "enabled",
"server_url": "https://acme.autologyx.com/mcp?connector=16",
"client_id": "<client_id>",
"client_secret": "<client_secret>",
"created_at": "2026-07-14T11:26:32.751496+03:00",
"created_by": {
"id": 1,
"first_name": "John",
"last_name": "Smith",
"username": "j.smith@autologyx.com",
"company_name": "Autologyx",
"is_deleted": false
},
"modified_at": "2026-07-14T11:26:32.751520+03:00",
"modified_by": {
"id": 1,
"first_name": "John",
"last_name": "Smith",
"username": "j.smith@autologyx.com",
"company_name": "Autologyx",
"is_deleted": false
},
"_meta": {
"permissions": {
"list": true,
"create": true,
"view": true,
"edit": true,
"delete": true
}
},
"allowed_tools": ["search_object_classes", "get_object_record_document"]
}⚠️ Warning: Because the client_secret is stored securely on the server as a hashed value, it is returned only once, immediately after the POST request. It cannot be recovered later, so it must be captured and stored by the user for later use.
Errors
Non-standard validation errors.
| Error | Response code | Message |
|---|---|---|
| Integration is not AI MCP | 400 Bad Request | "integration": ["{uuid} is not a valid AI MCP integration."] |
PATCH /api/mcp/connectors/connector_id/
Updates MCP Connector.
Permissions
Requires authentication and mcp_connectors.edit permission.
Request example
- Headers
Request Method: POST
Content-Type: application/json
Authorization: JWT access_tokenBody
| Key | Type | Notes |
|---|---|---|
| name | string | |
| description | string | |
| is_enabled | bool | |
| allowed_tools | Array | Array of tools names |
Validations
- name
- Max length: 100
- Is unique
- description
- Max length: 500
Sample request body
PATCH /api/mcp/connectors/connector_id/
{
"name": "Claude - analytics",
"description": "A connector for Claude agents preparing analytics reports",
"is_enabled": true,
"allowed_tools": ["search_object_classes"]
}Response
- Successful status
200 Ok - Response body:
{
"id": 16,
"name": "Claude - analytics",
"integration": "a982601a-36c9-4735-9746-d251ae84ed71",
"description": "A connector for Claude agents preparing analytics reports",
"is_enabled": true,
"status": "enabled",
"server_url": "https://acme.autologyx.com/mcp?connector=16",
"client_id": "<client_id>",
"created_at": "2026-07-14T11:26:32.751496+03:00",
"created_by": {
"id": 1,
"first_name": "John",
"last_name": "Smith",
"username": "j.smith@autologyx.com",
"company_name": "Autologyx",
"is_deleted": false
},
"modified_at": "2026-07-14T11:50:31.851520+03:00",
"modified_by": {
"id": 1,
"first_name": "John",
"last_name": "Smith",
"username": "j.smith@autologyx.com",
"company_name": "Autologyx",
"is_deleted": false
},
"_meta": {
"permissions": {
"list": true,
"create": true,
"view": true,
"edit": true,
"delete": true
}
},
"allowed_tools": ["search_object_classes"]
}Errors
Standard validation errors.
GET /api/mcp/connectors/
Returns list of MCP Connectors.
Permissions
Requires authentication.
Request example
Headers
Request Method: GET
Content-Type: application/json
Authorization: JWT access_tokenResponse
| Key | Type | Notes |
|---|---|---|
| limit | int | |
| offset | int | |
| total_count | int | Total number of forms visible to the user (based on permissions). |
| filtered_count | int | Number of forms visible to the user (based on permissions) with filters applied. |
| next | URL / null | Next page URL (null if there is no next page) |
| previous | URL / null | Previous page URL (null if there is no previous page) |
| results | Array | Described in the next table. |
Response results array
| Key | Type | Notes |
|---|---|---|
| id | int | |
| name | string | |
| description | string | |
| integration | UUID | |
| is_enabled | bool | |
| status | enum | Values: enabled, disabled |
| created_at | datetime | |
| created_by | user | |
| modified_at | datetime | |
| modified_by | user | |
| _meta.permissions | Object | Dict describing permissions. |
Response example
- Status
200 OK - Body
{
"limit": 100,
"offset": 0,
"filtered_count": 1,
"total_count": 20,
"next": null,
"previous": null,
"results": [
{
"id": 5,
"name": "Claude connector",
"description": "The connector for Claude agents"
"integration": "87138c1b-ac83-4588-9be0-aa092e7753b0",
"is_enabled": true,
"status": "enabled",
"created_at": "2026-07-12T11:21:51.877690+02:00",
"created_by": <user>,
"modified_at": "2026-07-14T11:11:31.127734+02:00",
"modified_by": <user>,
"_meta": {
"permissions": {
"list": true,
"view": true,
"edit": true,
"create": true,
"delete": true,
}
}
}
]
}Sorting
| Parameter | Example | Notes |
|---|---|---|
| id | {build}/api/mcp/connectors/?ordering=id | Ascending |
| id | {build}/api/mcp/connectors/?ordering=-id | Descending (-) |
| name | {build}/api/mcp/connectors/?ordering=name | Ascending |
| name | {build}/api/mcp/connectors/?ordering=-name | Descending (-) |
| created_at | {build}/api/mcp/connectors/?ordering=created_at | Ascending |
| created_at | {build}/api/mcp/connectors/?ordering=-created_at | Descending (-) |
| modified_at | {build}/api/mcp/connectors/?ordering=modified_at | Ascending |
| modified_at | {build}/api/mcp/connectors/?ordering=-modified_at | Descending (-) |
Filtering
| Parameter | Predicates | Example |
|---|---|---|
| id | = | {build}/api/mcp/connectors/?id=9 |
| name | standard string | {build}/api/mcp/connectors/?name__icontains=foobar |
| integration | =, in | {build}/api/mcp/connectors/?integration__in=uuid1,uuid2 |
| is_enabled | standard bool | {build}/api/mcp/connectors/?is_enabled=true |
| created_at | standard datetime | {build}/api/mcp/connectors/?created_at__gte=2022-01-01 |
| created_by | standard set | {build}/api/mcp/connectors/?created_by__in=123,234,345 |
| modified_at | standard datetime | {build}/api/mcp/connectors/?modified_at__range=2022-01-01,2022-01-31 |
| modified_by | standard set | {build}/api/mcp/connectors/?modified_by=123 |
Errors
| Error | Response code | Message |
|---|---|---|
| Not authenticated | 401 Unauthorized | "detail": "Authentication credentials were not provided." |
GET /api/mcp/connectors/connector_id/
Retrieves the MCP Connector details.
Permissions
Requires authentication and mcp_connectors.view permission.
URL parameters
| Key | Type | Notes |
|---|---|---|
| connector_id | int |
Request example
- Headers
Request Method: GET
Content-Type: application/json
Authorization: JWT access_tokenResponse
| Key | Type | Notes |
|---|---|---|
| id | int | Automatically generated by the backend. |
| name | string | |
| description | string | |
| integration | UUID | |
| is_enabled | bool | |
| status | enum | Values: enabled, disabled |
| server_url | string | |
| client_id | string | |
| created_at | datetime | |
| created_by | user | |
| modified_at | datetime | |
| modified_by | user | |
| _meta.permissions | Object | Object describing permissions. |
| allowed_tools | Array | Array of allowed tools names. |
Response example
- Status
200 OK - Body
{
"id": 5,
"name": "Claude connector",
"description": "The connector for Claude agents",
"integration": "87138c1b-ac83-4588-9be0-aa092e7753b0",
"is_enabled": true,
"status": "enabled",
"created_at": "2026-07-12T11:21:51.877690+02:00",
"created_by": <user>,
"modified_at": "2026-07-14T11:11:31.127734+02:00",
"modified_by": <user>,
"_meta": {
"permissions": {
"list": true,
"view": true,
"edit": true,
"create": true,
"delete": true,
}
},
"allowed_tools": ["search_object_classes"]
}POST /api/mcp/connectors/connector_id/reset-client-secret/
Resets client secret for the MCP Connector.
Permissions
Requires authentication and the User must be a Super Admin.
URL parameters
| Key | Type | Notes |
|---|---|---|
| connector_id | int |
Request example
- Headers
Request Method: POST
Content-Type: application/json
Authorization: JWT access_tokenResponse
| Key | Type | Notes |
|---|---|---|
| id | int | |
| name | string | |
| server_url | string | |
| client_id | string | |
| client_secret | string |
Response example
- Status
200 OK - Body
{
"id": 16,
"name": "Claude connector",
"server_url": "https://acme.autologyx.com/mcp?connector=16",
"client_id": "<client_id>",
"client_secret": "<client_secret>"
}OPTIONS /api/mcp/connectors/
Permissions
Requires authentication only.
Request
- Headers
Content-Type: application/json
Authorization: JWT access_token- Schema
OPTIONS /api/mcp/connectors/
Response
- Successful status
200 OK - Response body:
{
"list": {
"columns": [
{
"alias": "id",
"type": "int",
"predicates": [
"exact",
"gt",
"gte",
"lt",
"lte",
"range"
],
"sort_ok": true
},
{
"alias": "name",
"type": "string",
"predicates": [
"exact",
"iexact",
"contains",
"icontains",
"startswith",
"istartswith",
"endswith",
"iendswith"
],
"sort_ok": true
},
{
"alias": "integration",
"type": "uuid",
"predicates": [
"exact",
"in"
],
"sort_ok": false
},
{
"alias": "description",
"type": "string",
"predicates": [],
"sort_ok": false
},
{
"alias": "is_enabled",
"type": "bool",
"predicates": [
"exact"
],
"sort_ok": false
},
{
"alias": "status",
"type": "enum",
"predicates": [],
"sort_ok": false,
"values": [
{
"value": "enabled",
"text": "enabled"
},
{
"value": "disabled",
"text": "disabled"
}
]
},
{
"alias": "created_at",
"type": "datetime",
"predicates": [
"exact",
"gt",
"gte",
"lt",
"lte",
"range"
],
"sort_ok": true
},
{
"alias": "created_by",
"type": "user",
"predicates": [
"exact",
"in"
],
"sort_ok": false,
"autocomplete": "/api/users/autocomplete/?text__icontains="
},
{
"alias": "modified_at",
"type": "datetime",
"predicates": [
"exact",
"gt",
"gte",
"lt",
"lte",
"range"
],
"sort_ok": true
},
{
"alias": "modified_by",
"type": "user",
"predicates": [
"exact",
"in"
],
"sort_ok": false,
"autocomplete": "/api/users/autocomplete/?text__icontains="
}
]
},
"details": {
"schema": [
{
"alias": "name",
"type": "string",
"required": true,
"validators": [
{
"type": "min_length",
"length": 1
},
{
"type": "max_length",
"length": 100
}
]
},
{
"alias": "description",
"type": "string",
"required": false,
"validators": [
{
"type": "max_length",
"length": 500
}
]
},
{
"alias": "is_enabled",
"type": "bool",
"required": false
},
{
"alias": "integration",
"type": "uuid",
"required": true
},
{
"alias": "allowed_tools",
"type": "set",
"required": false
}
]
},
"restrictions": {
"limit_items": 100
}
}