priv/docs/mcp_portal.md

# MCP Portal

## Create a new MCP Portal

**POST** `/accounts/{account_id}/access/ai-controls/mcp/portals`



### Responses

#### 201 Returns the created Object

> Data is at `body["result"]`

```json
{
  "created_at": "*string*",
  "created_by": "*string*",
  "description": "*string*",
  "hostname": "*string*",
  "id": "*string*",
  "modified_at": "*string*",
  "modified_by": "*string*",
  "name": "*string*",
  "secure_web_gateway": "*boolean*"
}
```

#### 400 Input Validation Error

```json
{
  "errors": [
    {
      "code": "*number*",
      "message": "*string*",
      "path": [
        "*string*"
      ]
    }
  ],
  "success": "*boolean*"
}
```



## List MCP Portals

**GET** `/accounts/{account_id}/access/ai-controls/mcp/portals`



### Responses

#### 200 List objects

> Data is at `body["result"]`

```json
[
  {
    "created_at": "*string*",
    "created_by": "*string*",
    "description": "*string*",
    "hostname": "*string*",
    "id": "*string*",
    "modified_at": "*string*",
    "modified_by": "*string*",
    "name": "*string*",
    "secure_web_gateway": "*boolean*"
  }
]
```

#### 400 Bad Request

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Update a MCP Portal

**PUT** `/accounts/{account_id}/access/ai-controls/mcp/portals/{id}`



### Responses

#### 200 Returns the updated Object

> Data is at `body["result"]`

```json
{
  "created_at": "*string*",
  "created_by": "*string*",
  "description": "*string*",
  "hostname": "*string*",
  "id": "*string*",
  "modified_at": "*string*",
  "modified_by": "*string*",
  "name": "*string*",
  "secure_web_gateway": "*boolean*"
}
```

#### 400 Input Validation Error

```json
{
  "errors": [
    {
      "code": "*number*",
      "message": "*string*",
      "path": [
        "*string*"
      ]
    }
  ],
  "success": "*boolean*"
}
```

#### 404 Not Found

```json
{
  "errors": [
    {
      "code": "*number*",
      "message": "*string*"
    }
  ],
  "success": "*boolean*"
}
```



## Read details of an MCP Portal

**GET** `/accounts/{account_id}/access/ai-controls/mcp/portals/{id}`



### Responses

#### 200 Returns a single object if found

> Data is at `body["result"]`

```json
{
  "created_at": "*string*",
  "created_by": "*string*",
  "description": "*string*",
  "hostname": "*string*",
  "id": "*string*",
  "modified_at": "*string*",
  "modified_by": "*string*",
  "name": "*string*",
  "secure_web_gateway": "*boolean*",
  "servers": [
    {
      "auth_type": "*string*",
      "created_at": "*string*",
      "created_by": "*string*",
      "default_disabled": "*boolean*",
      "description": "*string*",
      "error": "*string*",
      "hostname": "*string*",
      "id": "*string*",
      "last_successful_sync": "*string*",
      "last_synced": "*string*",
      "modified_at": "*string*",
      "modified_by": "*string*",
      "name": "*string*",
      "on_behalf": "*boolean*",
      "prompts": [
        {}
      ],
      "status": "*string*",
      "tools": [
        {}
      ],
      "updated_prompts": [
        {}
      ],
      "updated_tools": [
        {}
      ]
    }
  ]
}
```

#### 404 Not Found

```json
{
  "errors": [
    {
      "code": "*number*",
      "message": "*string*"
    }
  ],
  "success": "*boolean*"
}
```



## Delete a MCP Portal

**DELETE** `/accounts/{account_id}/access/ai-controls/mcp/portals/{id}`



### Responses

#### 200 Returns the Object if it was successfully deleted

> Data is at `body["result"]`

```json
{
  "created_at": "*string*",
  "created_by": "*string*",
  "description": "*string*",
  "hostname": "*string*",
  "id": "*string*",
  "modified_at": "*string*",
  "modified_by": "*string*",
  "name": "*string*",
  "secure_web_gateway": "*boolean*"
}
```

#### 404 Not Found

```json
{
  "errors": [
    {
      "code": "*number*",
      "message": "*string*"
    }
  ],
  "success": "*boolean*"
}
```