{
  "info": {
    "name": "CompanyCam — mcp.ai",
    "description": "REST API for the CompanyCam 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/companycam",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "companycam_add_comment",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/add/comment",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "add",
            "comment"
          ]
        },
        "description": "Add a comment to either a CompanyCam project or photo.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"content\": \"\",\n  \"target_id\": \"\",\n  \"target_type\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_add_photo_tags",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/add/photo/tags",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "add",
            "photo",
            "tags"
          ]
        },
        "description": "Attach media tags by display name. CompanyCam reuses matching media tags and creates reusable media tags for names that do not exist.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"photo_id\": \"\",\n  \"tag_names\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_add_project_labels",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/add/project/labels",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "add",
            "project",
            "labels"
          ]
        },
        "description": "Attach project labels by display name. CompanyCam reuses matching global labels and creates reusable global labels for names that do not exist.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"project_id\": \"\",\n  \"label_names\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_add_project_photo_from_url",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/add/project/photo/from/url",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "add",
            "project",
            "photo",
            "from",
            "url"
          ]
        },
        "description": "Add a photo to a CompanyCam project by having CompanyCam fetch a publicly reachable HTTPS image URL.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"photo_url\": \"\",\n  \"tag_names\": \"\",\n  \"project_id\": \"\",\n  \"captured_at\": 0,\n  \"coordinates\": {},\n  \"description\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_create_customer",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/customer",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "customer"
          ]
        },
        "description": "Create a CompanyCam customer with optional contact details, company status, notes, address, and initial contacts.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"email\": \"\",\n  \"notes\": \"\",\n  \"address\": {},\n  \"contacts\": \"\",\n  \"is_company\": false,\n  \"phone_number\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_create_project",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/project",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "project"
          ]
        },
        "description": "Create a CompanyCam project with its required address and optional contact, customer, location, and template details.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"city\": \"\",\n  \"name\": \"\",\n  \"state\": \"\",\n  \"country\": \"\",\n  \"geofence\": \"\",\n  \"coordinates\": {},\n  \"customer_id\": \"\",\n  \"postal_code\": \"\",\n  \"primary_contact\": {},\n  \"street_address_1\": \"\",\n  \"project_template_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_create_project_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/project/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "project",
            "task"
          ]
        },
        "description": "Create a task on a CompanyCam project with task details and optional assignees.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"details\": \"\",\n  \"project_id\": \"\",\n  \"assignee_ids\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_create_tag",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/tag",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "tag"
          ]
        },
        "description": "Create a reusable CompanyCam media tag for organizing photos.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"display_value\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_get_account_context",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/account/context",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "account",
            "context"
          ]
        },
        "description": "Return the connected CompanyCam user and company so an agent can identify the account, role, and company before acting.",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_get_photo",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/photo",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "photo"
          ]
        },
        "description": "Get one CompanyCam photo by ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"photo_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_get_project",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/project",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "project"
          ]
        },
        "description": "Get one CompanyCam project by ID.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_list_comments",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/comments",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "comments"
          ]
        },
        "description": "List comments attached to either a CompanyCam project or photo.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"target_id\": \"\",\n  \"target_type\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_list_customers",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/customers",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "customers"
          ]
        },
        "description": "List or search CompanyCam customers by name or contact text.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"query\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_list_labels",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/labels",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "labels"
          ]
        },
        "description": "List reusable CompanyCam project labels that can be attached to projects.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"cursor\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_list_project_photos",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/project/photos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "project",
            "photos"
          ]
        },
        "description": "List and filter photos in a CompanyCam project by tags, users, or groups, one cursor page at a time.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"cursor\": \"\",\n  \"tag_ids\": \"\",\n  \"user_ids\": \"\",\n  \"group_ids\": \"\",\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_list_project_tasks",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/project/tasks",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "project",
            "tasks"
          ]
        },
        "description": "List tasks for a CompanyCam project, including status, completion, assignees, and attached media.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_list_projects",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/projects",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "projects"
          ]
        },
        "description": "List projects with optional lifecycle and assigned-user filters, one cursor page at a time.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"cursor\": \"\",\n  \"archived\": false,\n  \"include_total\": false,\n  \"assigned_user_ids\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_list_tags",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/tags",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "tags"
          ]
        },
        "description": "List reusable CompanyCam media tags and return an opaque cursor for the next page.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"cursor\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_list_users",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/users",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "users"
          ]
        },
        "description": "List CompanyCam users available for task assignment and project workflows.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"cursor\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_search_projects",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/search/projects",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "search",
            "projects"
          ]
        },
        "description": "Search CompanyCam projects by a free-text query when project list filters are insufficient.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"query\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_set_photo_description",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/set/photo/description",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "set",
            "photo",
            "description"
          ]
        },
        "description": "Create or replace the description attached to a CompanyCam photo. Setting a description replaces the photo's existing description rather than appending to it.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"content\": \"\",\n  \"photo_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_update_customer",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/customer",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "customer"
          ]
        },
        "description": "Update the name, notes, city, or postal code of an existing CompanyCam customer.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"notes\": \"\",\n  \"address\": {},\n  \"customer_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_update_project",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/project",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "project"
          ]
        },
        "description": "Update editable project identity, address, or primary-contact fields without changing archive state.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"city\": \"\",\n  \"name\": \"\",\n  \"state\": \"\",\n  \"project_id\": \"\",\n  \"primary_contact\": {},\n  \"street_address_1\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "companycam_update_project_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/project/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "project",
            "task"
          ]
        },
        "description": "Update a CompanyCam project task's details or add and retain assignees. This tool cannot remove existing assignees because removal requires provider-specific assignee-removal records that this tool do",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"details\": \"\",\n  \"task_id\": \"\",\n  \"project_id\": \"\",\n  \"assignee_ids\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}