Portrait Care MCP server Let your AI agent run the Portrait schedule.

Your AI agent books consults and treatments from messages, moves a provider's day and finds patients due back. Sign in to Portrait once in your own Cloud Browser. Charts stay untouched.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Portrait Care
Portrait Care logo Portrait Care Cloud Browser

5 tools Read and write

Message to booking

What can your AI agent do in Portrait Care? The front desk work between the message and the treatment room.

  • Book from messages

  • Find free slots per provider

  • Move a provider's day

  • Find patients due back

  • See tomorrow per provider

  • Charts stay untouched

No public API

Does Portrait Care have an MCP server or an API? No public API, no Zapier, and no MCP server.

Portrait Care has no MCP server, no ChatGPT or Claude app, no public API and no Zapier app; it is built as a closed all-in-one platform (checked 9 Nov 2026). Cotlet runs 5 Portrait Care tools hosted, over MCP for agents and REST for scripts, in your own Portrait login, for the schedule and patient contact details only.

  • Portrait Care publishes no developer docs.
  • Portrait Care has no Zapier app.
  • Portrait Care has no connector in the ChatGPT apps directory or in Claude.
The Portrait Care API, other options and Cotlet compared
What you need Portrait APIBy handCotlet
Schedule and free times No API Yes, one by one Yes
Book or move No API Yes, one by one Yes, after your OK
Patients due back No API Patient by patient Yes
Ask in ChatGPT or Claude No No Yes
Charts and notes No API Yes Not touched

Checked 8 Nov 2026. Sources: Portrait Care site · Portrait vs Mindbody (features, integrations) · Portrait web app login

Set up once

How does the Portrait Care MCP server work? Your agent works in your own Portrait Care login.

  1. 1Sign in to Portrait Care

    Once, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Hand it the busywork

    It drafts the work, you OK what customers get.

We never keep your Portrait password, the tools never open charts, and no booking or move goes through until you approve it. Who can see your session

Any MCP client

How to connect Portrait Care to your AI agent

  1. 1

    Sign in to Portrait Care in a Cloud Browser. Create a Cotlet account, open Portrait Care in its Cloud Browser, sign in with your Portrait login and press Enable for agents.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

Portrait Care shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned Portrait Care on after connecting? Refresh the connector and the 5 tools appear.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: portrait_care_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: portrait_care_write
3 read, 2 write

All 5 Portrait Care MCP tools

Schedule4

Free slots come from the schedule. Bookings and moves wait for your OK; Portrait sends its usual messages.

  • list_appointments Appointments for a day or range, by provider. read

    Returns appointments with patient name, service, provider, start time and status from the schedule.

    MCP callportrait_care_read → list_appointments

    REST endpointGET https://cotlet.dev/api/v1/portrait-care/appointments

    Parameters

    Parameters: list_appointments
    NameTypeDescription
    date_from string required string ISO date.
    date_to string string ISO date. Default: date_from.
    provider string string Provider name.
    page integer integer Page number. Default: 1.

    Example input

    {
      "date_from": "date from"
    }

    Example response

    {
      "appointments": [
        {
          "appointment_id": "AP-50812",
          "patient": "Jessica Moreno",
          "service": "Neurotoxin",
          "provider": "Dr. Patel",
          "start": "2026-11-12T11:00",
          "status": "Booked"
        }
      ],
      "page": 1
    }
  • find_free_slots Open times for a service, optionally with one provider. read

    Reads the schedule and returns start times where the service fits.

    MCP callportrait_care_read → find_free_slots

    REST endpointGET https://cotlet.dev/api/v1/portrait-care/free-slots/find

    Parameters

    Parameters: find_free_slots
    NameTypeDescription
    service string required string Service name.
    date string required string ISO date.
    provider string string Provider name.

    Example input

    {
      "service": "service",
      "date": "date"
    }

    Example response

    {
      "service": "Dermal filler consult",
      "slots": [
        {
          "provider": "Dr. Patel",
          "start": "2026-11-13T14:30"
        }
      ]
    }
  • book_appointment Books a service for a patient with a provider. writeasks first

    Creates the appointment on the schedule. Portrait sends its usual confirmation and intake forms by your settings. By default you confirm each call; you can switch that off for this tool.

    MCP callportrait_care_write → book_appointment

    REST endpointPOST https://cotlet.dev/api/v1/portrait-care/patients/{patient_id}/appointments

    Parameters

    Parameters: book_appointment
    NameTypeDescription
    patient_id string required string Patient ID from list_patients.
    service string required string Service name.
    provider string required string Provider name.
    start string required string ISO date and time.

    Example input

    {
      "patient_id": "PT-7790",
      "service": "Dermal filler consult",
      "provider": "Dr. Patel",
      "start": "2026-11-13T14:30"
    }

    Example response

    {
      "appointment_id": "AP-50877",
      "patient": "Emily Carter",
      "service": "Dermal filler consult",
      "provider": "Dr. Patel",
      "start": "2026-11-13T14:30",
      "status": "Booked"
    }
  • reschedule_appointment Moves an appointment to a new time or provider. writeasks first

    Moves the appointment on the schedule; your settings decide what the patient hears. By default you confirm each call; you can switch that off for this tool.

    MCP callportrait_care_write → reschedule_appointment

    REST endpointPOST https://cotlet.dev/api/v1/portrait-care/appointments/{appointment_id}/reschedule

    Parameters

    Parameters: reschedule_appointment
    NameTypeDescription
    appointment_id string required string Appointment ID from list_appointments.
    start string required string New ISO date and time.
    provider string string New provider. Default: unchanged.

    Example input

    {
      "appointment_id": "appointment_8c41d2",
      "start": "start"
    }

    Example response

    {
      "appointment_id": "AP-50812",
      "start": "2026-11-14T10:00",
      "provider": "Dr. Patel",
      "status": "Booked"
    }

Patients1

Contact details, last visit and last service only. No charts or clinical notes.

  • list_patients Patients, searchable by name, phone or email, with last visit. read

    Returns patient contact details, last visit and last service. No charts or clinical notes.

    MCP callportrait_care_read → list_patients

    REST endpointGET https://cotlet.dev/api/v1/portrait-care/patients

    Parameters

    Parameters: list_patients
    NameTypeDescription
    query string string Name, phone or email.
    not_visited_days integer integer Only patients with no visit in this many days.
    page integer integer Page number. Default: 1.

    Example response

    {
      "patients": [
        {
          "patient_id": "PT-7712",
          "name": "Danielle Brooks",
          "phone": "(512) 555-0188",
          "last_visit": "2026-06-18",
          "last_service": "Neurotoxin"
        }
      ],
      "page": 1
    }
Encrypted, revocable

Who can see my Portrait Care session, and how do I revoke it?

  • What we store

    Your signed-in Portrait Care profile, AES-256-GCM encrypted, in Finland. No password.

  • What your agent gets

    The 5 Portrait Care tools, never the session cookie.

  • What the session sees

    What your login sees on the schedule and patient contact details.

  • What no tool touches

    Charts, clinical notes, exams, payments, inventory, deletes.

  • If Portrait Care signs you out

    You sign in again yourself, in the same Cloud Browser.

  • How to cut access

    Disable for agents, reset the browser, or change your Portrait Care password.

Cotlet never types your password: you sign in yourself, and the agent only uses the session. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

Tested every 12 h

What happens when Portrait Care changes? We repair the tool; your prompts stay the same.

between tests of the Portrait Care reads
12 h
between tests of sends a customer would notice
24 h
for a call to a Portrait Care tool paused for repair
$0

When Portrait moves a button on the schedule or renames a patient tab, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.

2 tools ask first

Approvals, undo and mistakes Customers get nothing until you say so.

  1. 01 Finds the patient By name, phone or email.
  2. 02 Checks free slots For the service and provider.
  3. 03 Proposes the booking With time and provider.
  4. 04 Waits, then books The booking shows up in your Cotlet console first.
Which Portrait Care actions can be undone
ActionUndo
Book an appointmentYes, cancel it
Move an appointmentMove it back; a message already sent stays sent

2 of 5 tools ask first: book_appointment, reschedule_appointment. You can turn the wait off per tool once you trust a routine.

MCP call
{
  "name": "book_appointment",
  "arguments": {
    "patient_id": "PT-7790",
    "service": "Dermal filler consult",
    "provider": "Dr. Patel",
    "start": "2026-11-13T14:30"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/portrait-care/patients/PT-7790/appointments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service":"Dermal filler consult","provider":"Dr. Patel","start":"2026-11-13T14:30"}'
Response
{
  "appointment_id": "AP-50877",
  "patient": "Emily Carter",
  "service": "Dermal filler consult",
  "provider": "Dr. Patel",
  "start": "2026-11-13T14:30",
  "status": "Booked"
}

A cron job or n8n flow can call the same tools over REST at /api/v1/portrait-care with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.

Pay per call

How much does the Portrait Care MCP server cost?

About $27 a monthfor a med spa with 2 providers, 4,690 credits. Your Portrait Care plan stays as it is.

A month of Portrait scheduling for a 2-provider med spa, in credits
JobCallsCredits
Booking from a message3 × 802,400
Patients due back, weekly2 × 480
Appointment moved3 × 15450
Tomorrow checked, daily1 × 26260
Cloud Browser, 30 days1,500
Total4,690
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works on your current Portrait plan

Portrait publishes no booking counts, so the month is our example. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Portrait Care MCP server on GitHub, Zapier or hosted: which to use No API and no Zapier.

Other ways to connect Portrait Care, checked 8 Nov 2026
OptionWhat it doesWhere it stops
Portrait online bookingPatients book themselves.Only the patient books; no moves or lists for you.
Portrait CRMFollow-ups inside Portrait.Set up in Portrait; nothing you can ask in plain words.
By handEvery screen of Portrait, one booking at a time.Your front desk's time.

Portrait Care has no API or Zapier app, so there is nothing to connect a script to. To book, move and bring patients back from ChatGPT or Claude this week, Cotlet works in the Portrait account you already have.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), in business since 2019, led by its founders Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Portrait Care tools go to contact@cotlet.dev.

Portrait Care MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev, open Portrait Care under Integrations in the console and sign in to Portrait Care in its Cloud Browser. The trial starts with your first app and asks for no card.

How do I connect Portrait Care to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Portrait Care once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Portrait Care account through Cotlet, in their phone apps too.

What can ChatGPT do in Portrait Care?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Portrait Care: book consults from messages; bring patients back; move a provider's day. You ask in plain words, and anything that reaches other people waits for your OK first.

Is there an official ChatGPT or Claude app for Portrait Care?

No. Portrait Care has no ChatGPT or Claude connector of its own and Portrait Care has no official MCP server (checked 9 Nov 2026). Cotlet is an independent one that works in ChatGPT, Claude, Cursor and any MCP client, on your signed-in account.

Can ChatGPT book appointments in Portrait Care?

Yes, with Cotlet. ChatGPT finds the patient, checks free slots and books the service with the provider you name. Booking waits for your OK by default.

Can ChatGPT find patients due back in Portrait Care?

Yes, with Cotlet. ChatGPT lists patients who have not been back in the time you name, with their last service, so your team can reach out.

Does Cotlet read patient charts in Portrait Care?

No. The Portrait Care tools cover the schedule and patient contact details. Charts, clinical notes and Good Faith Exams are not part of them.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 5 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with Portrait Care?

No. Cotlet is independent and not affiliated with Portrait Care.

Hand the Portrait schedule to your agent.

Free 7-day trial with 2,000 credits, no card needed.