# CompanyCam — MCP server on mcp.ai > Connect your CompanyCam account and use 24 tools for project management straight from your AI agent. Connect with your own API key. CompanyCam is a photo-first jobsite management platform for documenting projects, coordinating teams, and sharing project updates. By: mcp.ai · official Page: https://mcp.ai/companycam ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_companycam?ms=1787291400000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/companycam/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/companycam/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/companycam/skill.md Postman collection (v2.1): https://mcp.ai/companycam/postman.json ## Tools - companycam_add_comment(content: string, target_id: string, target_type: string) — Add a comment to either a CompanyCam project or photo. - companycam_add_photo_tags(photo_id: string, tag_names: string[]) — Attach media tags by display name. CompanyCam reuses matching media tags and creates reusable media tags for names that do not exist. - companycam_add_project_labels(project_id: string, label_names: string[]) — Attach project labels by display name. CompanyCam reuses matching global labels and creates reusable global labels for names that do not exist. - companycam_add_project_photo_from_url(photo_url: string, tag_names?: string[], project_id: string, captured_at?: integer, coordinates?: object, description?: string) — Add a photo to a CompanyCam project by having CompanyCam fetch a publicly reachable HTTPS image URL. - companycam_create_customer(name: string, email?: string, notes?: string, address?: object, contacts?: object[], is_company?: boolean, phone_number?: string) — Create a CompanyCam customer with optional contact details, company status, notes, address, and initial contacts. - companycam_create_project(city: string, name: string, state: string, country: string, geofence?: object[], coordinates?: object, customer_id?: string, postal_code: string, primary_contact?: object, street_address_1: string, project_template_id?: string) — Create a CompanyCam project with its required address and optional contact, customer, location, and template details. - companycam_create_project_task(details: string, project_id: string, assignee_ids?: string[]) — Create a task on a CompanyCam project with task details and optional assignees. - companycam_create_tag(display_value: string) — Create a reusable CompanyCam media tag for organizing photos. - companycam_get_account_context() — Return the connected CompanyCam user and company so an agent can identify the account, role, and company before acting. - companycam_get_photo(photo_id: string) — Get one CompanyCam photo by ID. - companycam_get_project(project_id: string) — Get one CompanyCam project by ID. - companycam_list_comments(target_id: string, target_type: string) — List comments attached to either a CompanyCam project or photo. - companycam_list_customers(query?: string) — List or search CompanyCam customers by name or contact text. - companycam_list_labels(limit?: integer, cursor?: string) — List reusable CompanyCam project labels that can be attached to projects. - companycam_list_project_photos(limit?: integer, cursor?: string, tag_ids?: string[], user_ids?: string[], group_ids?: string[], project_id: string) — List and filter photos in a CompanyCam project by tags, users, or groups, one cursor page at a time. - companycam_list_project_tasks(project_id: string) — List tasks for a CompanyCam project, including status, completion, assignees, and attached media. - companycam_list_projects(limit?: integer, cursor?: string, archived?: boolean, include_total?: boolean, assigned_user_ids?: string[]) — List projects with optional lifecycle and assigned-user filters, one cursor page at a time. - companycam_list_tags(limit?: integer, cursor?: string) — List reusable CompanyCam media tags and return an opaque cursor for the next page. - companycam_list_users(limit?: integer, cursor?: string) — List CompanyCam users available for task assignment and project workflows. - companycam_search_projects(query: string) — Search CompanyCam projects by a free-text query when project list filters are insufficient. - companycam_set_photo_description(content: string, photo_id: string) — Create or replace the description attached to a CompanyCam photo. Setting a description replaces the photo's existing description rather than appending to it. - companycam_update_customer(name?: string, notes?: string, address?: object, customer_id: string) — Update the name, notes, city, or postal code of an existing CompanyCam customer. - companycam_update_project(city?: string, name?: string, state?: string, project_id: string, primary_contact?: object, street_address_1?: string) — Update editable project identity, address, or primary-contact fields without changing archive state. - companycam_update_project_task(details?: string, task_id: string, project_id: string, assignee_ids?: string[]) — 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 ## Example prompts - "What can I do in CompanyCam?" - "Show me a summary of my CompanyCam account" ## Links Docs: https://mcp.ai/docs/mcps/companycam Website: https://mcp.ai/mcps/companycam