{
  "info": {
    "name": "Knack — mcp.ai",
    "description": "REST API for the Knack MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/knack",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "knack_create_object_record",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/object/record",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "object",
            "record"
          ]
        },
        "description": "Tool to create a new record in a specific Knack object. Use when you need to add new data to a Knack database object. Requires object-based API key authentication.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"fields\": {},\n  \"object_key\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_create_view_record",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/view/record",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "view",
            "record"
          ]
        },
        "description": "Tool to create a new record through a form view in Knack. Use when you need to add a record to a Knack object using a form view interface. Only fields that exist in the form will be used, and any reco",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"view_key\": \"\",\n  \"scene_key\": \"\",\n  \"record_data\": {},\n  \"authorization\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_delete_object_record",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/object/record",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "object",
            "record"
          ]
        },
        "description": "Tool to delete a single record from a specific Knack object by its ID. Use when you need to permanently remove a record from an object. This action is permanent and cannot be undone. Requires API key ",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"record_id\": \"\",\n  \"object_key\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_delete_view_record",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/view/record",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "view",
            "record"
          ]
        },
        "description": "Tool to delete a record through a view that contains a delete link. Works with tables, lists, searches, calendars, and details views. This operation is permanent and cannot be undone. Use only after c",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"view_key\": \"\",\n  \"record_id\": \"\",\n  \"scene_key\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_get_object_record",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/object/record",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "object",
            "record"
          ]
        },
        "description": "Tool to retrieve a single record by its ID from a specific Knack object. Returns the complete record with all field values in both formatted and raw formats. Use this for object-based access which req",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"record_id\": \"\",\n  \"object_key\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_list_object_records",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/object/records",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "object",
            "records"
          ]
        },
        "description": "Tool to retrieve multiple records from a specific Knack object (table). Returns up to 1000 records per page with pagination support. Use this for object-based access which requires API key authenticat",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"page\": 0,\n  \"filters\": \"\",\n  \"object_key\": \"\",\n  \"sort_field\": \"\",\n  \"sort_order\": \"\",\n  \"rows_per_page\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_list_view_records",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/view/records",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "view",
            "records"
          ]
        },
        "description": "Tool to retrieve multiple records from a specific Knack view (tables, lists, searches, calendars). Use when you need to fetch data from a view with pagination support. Returns only fields included in ",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"page\": 0,\n  \"view_key\": \"\",\n  \"scene_key\": \"\",\n  \"rows_per_page\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_update_object_record",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/object/record",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "object",
            "record"
          ]
        },
        "description": "Tool to update an existing record in a specific Knack object. Use when you need to modify field values in an existing record. Only fields provided in the request will be updated; all other fields rema",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"fields\": {},\n  \"record_id\": \"\",\n  \"object_key\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_upload_file",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/upload/file",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "upload",
            "file"
          ]
        },
        "description": "Tool to upload a file to a Knack application. This is step 1 of a two-step process - after uploading, use the returned file ID when creating or updating a record with a file field.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"files\": {},\n  \"application_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "knack_upload_image",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/upload/image",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "upload",
            "image"
          ]
        },
        "description": "Tool to upload an image to a Knack application. This is the first step in a two-step process - after uploading, use the returned file ID when creating or updating a record with an image field. Use whe",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"files\": {},\n  \"application_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}