Book and move appointments, text clients.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Activate client journey in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
This tool takes no arguments.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http aestheticspro https://cotlet.dev/mcp/v1/aestheticspro/connect
Activate client journey in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Add a client in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Add equipment in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Adjust scheduled outreach in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Apply client gender identity in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Assign lead in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Book an appointment online in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Book through Client Portal in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Choose reminder channel in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Configure appointment confirmations in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Configure Book Now in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Configure client journey in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Configure Client Portal in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Configure gender identity and pronouns in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create appointment in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create email list in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create email template in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create lead in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create room calendar in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create schedule template in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create SMS template in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create staff announcement in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create staff calendar in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Create text list in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Customize outreach campaign in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Draft client communication with Kai in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Draft client journey in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Draft outreach campaign with AI in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Enable Touchpoints in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Export contacts to Constant Contact in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Map services to scheduling resources in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Modify appointment in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Notify client of an opening in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Read client texts in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Schedule a virtual appointment in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Schedule E-Blast in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Search clients in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Search leads in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Segment leads in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Send automated appointment reminders in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Send client text in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Send review request in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Send SMS blast in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Set appointment duration in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Set appointment reminder timing in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Set staff schedule in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Sync appointments to Apple Calendar in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Sync appointments to Google Calendar in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View appointment calendar in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View appointment history in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View appointment reports in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View Book Now availability in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View client appointment history in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View client contact details in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View Client/Lead Demographics in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View communication dashboard in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View email and SMS engagement in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View lead list in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View outreach calendar in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}View scheduling changes and availability in the user's own AestheticsPro account from ChatGPT, Claude or any AI agent. Returns how to do it in AestheticsPro step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's AestheticsPro Cloud Browser. AestheticsPro's official API: AestheticsPro offers "Custom API solutions" only as custom work on its $350 a month Enterprise plan, arranged with AestheticsPro, and publishes no public API documentation or self-serve API key page (checked 11 Nov 2026).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}How to work in an app by clicking in the user's Cloud Browser with Cotlet's browser tools: which browser to use for this workspace and the sign-in link, the method step by step, the app's screens, menus and actions, notes, and the app's dedicated tools when Cotlet has them. Call it before the first browser step in an app. Works for any web app; one outside Cotlet's catalog gets the general method. Free, no browser session. For AestheticsPro it covers these actions: Search clients, Search leads, Add a client, View client contact details, Configure gender identity and pronouns, Apply client gender identity, View appointment calendar, View scheduling changes and availability, Create appointment, Modify appointment, View Book Now availability, Book an appointment online, Book through Client Portal, View appointment history, Configure Book Now, Configure Client Portal, Create staff calendar, Create room calendar, Add equipment, Map services to scheduling resources, Set appointment duration, Set staff schedule, Create schedule template, Notify client of an opening, Sync appointments to Google Calendar, Sync appointments to Apple Calendar, Schedule a virtual appointment, Configure appointment confirmations, Set appointment reminder timing, Choose reminder channel, Send automated appointment reminders, Read client texts, Send client text, Draft client communication with Kai, View lead list, Create lead, Segment leads, Assign lead, View Client/Lead Demographics, Export contacts to Constant Contact, View communication dashboard, View outreach calendar, Create email template, Create SMS template, Draft outreach campaign with AI, Customize outreach campaign, Create text list, Send SMS blast, Create email list, Schedule E-Blast, Enable Touchpoints, Draft client journey, Configure client journey, Activate client journey, Adjust scheduled outreach, View email and SMS engagement, View appointment reports, Create staff announcement, View client appointment history, Send review request.
| Argument | Type | Description |
|---|---|---|
| app | string | The app's name or Cotlet slug. Default: AestheticsPro. |
The apps of the user's workspace and whether each works now: the app account in the user's Cloud Browser (connected, signed out, signed in but not connected), and the one step the user has to take, with the console link. Free. Needs the user's Cotlet API key or sign-in.
| Argument | Type | Description |
|---|---|---|
| app | string | Only this app, e.g. skool. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"description": "Only this app, e.g. skool."
}
},
"additionalProperties": false
}The user's current credit balance. Free. Needs the user's Cotlet API key or sign-in.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Clicks element `element`, or point `x`, `y` of the screenshot; `double` double-clicks, `button: right` right-clicks. Answers the page after it: the elements and text in view, with the same numbers. Says when nothing changed. A link that would open a new tab opens in this one. Buttons that pay or buy, and sign-in and account pages, are refused.
| Argument | Type | Description |
|---|---|---|
| x | number | Instead of `element`: pixels from the left of the screenshot. |
| y | number | With `x`: pixels from the top of the screenshot. |
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| button | string | right opens the page's own context menu. Default: left. |
| dialog | string | How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog. |
| double | boolean | Double-click. |
| element | integer | The element's number from the last read or step answer. |
Ends the browser session when the task is done: the browser keeps its cookies and sleeps, and the per-minute charge stops. Answers the session's minutes and credits.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
}
},
"additionalProperties": false
}Gets the file that clicking `element` (a download link or button) or opening `url` starts: answers its name, type, size and a link valid 15 minutes; CSV, JSON and other text files also as text.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| url | string | A public http or https address, e.g. https://example.com. |
| element | integer | The element's number from the last read or step answer. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"url": {
"type": "string",
"format": "uri",
"description": "A public http or https address, e.g. https://example.com."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The element's number from the last read or step answer."
}
},
"additionalProperties": false
}Drags from one element or point to another: a card between columns, a piece on a board, a slider's handle. Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| to* | object | An element number, or x and y of the screenshot. |
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| from* | object | An element number, or x and y of the screenshot. |
| dialog | string | How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog. |
| dialog_text | string | Text for a prompt dialog this step opens; implies accept. |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"description": "Instead of `element`: pixels from the left of the screenshot."
},
"y": {
"type": "number",
"minimum": 0,
"description": "With `x`: pixels from the top of the screenshot."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The element's number from the last read or step answer."
}
},
"description": "An element number, or x and y of the screenshot.",
"additionalProperties": false
},
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"from": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"description": "Instead of `element`: pixels from the left of the screenshot."
},
"y": {
"type": "number",
"minimum": 0,
"description": "With `x`: pixels from the top of the screenshot."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The element's number from the last read or step answer."
}
},
"description": "An element number, or x and y of the screenshot.",
"additionalProperties": false
},
"dialog": {
"enum": [
"accept",
"dismiss"
],
"type": "string",
"description": "How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog."
},
"dialog_text": {
"type": "string",
"maxLength": 1000,
"description": "Text for a prompt dialog this step opens; implies accept."
}
},
"additionalProperties": false
}Runs a JavaScript function body on the page and answers what it returns, as JSON. Use it to extract data the page holds (a table, a list, attributes); act with the other tools. It cannot send requests, click, submit, or read cookies or storage; a filled field's value reads [hidden by Cotlet]. Example: return [...document.querySelectorAll('h2')].map(h => h.innerText)
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| script* | string | A function body that returns. |
{
"type": "object",
"required": [
"script"
],
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"script": {
"type": "string",
"maxLength": 20000,
"description": "A function body that returns."
}
},
"additionalProperties": false
}Fills several fields in one step: text fields take text, drop-downs an option's label, checkboxes, radios and switches true or false. Stops at the first field that fails and names those filled. Does not send the form: click its button after. Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| dialog | string | How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog. |
| fields* | array | The fields in the order a person fills them. |
| dialog_text | string | Text for a prompt dialog this step opens; implies accept. |
{
"type": "object",
"required": [
"fields"
],
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"dialog": {
"enum": [
"accept",
"dismiss"
],
"type": "string",
"description": "How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog."
},
"fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"element",
"value"
],
"properties": {
"value": {
"type": [
"string",
"boolean"
],
"description": "Text, option, or true/false."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The element's number from the last read or step answer."
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1,
"description": "The fields in the order a person fills them."
},
"dialog_text": {
"type": "string",
"maxLength": 1000,
"description": "Text for a prompt dialog this step opens; implies accept."
}
},
"additionalProperties": false
}Finds `text` on the whole current page, frames included: the elements whose label holds it, with their numbers, and each line of text that holds it. Use it instead of reading or scrolling a long page for one thing.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| kind | string | Only elements of this kind. Default: any. |
| text* | string | Words to look for, any case. |
{
"type": "object",
"required": [
"text"
],
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"kind": {
"enum": [
"link",
"button",
"field",
"any"
],
"type": "string",
"description": "Only elements of this kind. Default: any."
},
"text": {
"type": "string",
"maxLength": 200,
"description": "Words to look for, any case."
}
},
"additionalProperties": false
}Rests the pointer on an element or a point, to open a hover menu, a tooltip or a preview. Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| x | number | Instead of `element`: pixels from the left of the screenshot. |
| y | number | With `x`: pixels from the top of the screenshot. |
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| element | integer | The element's number from the last read or step answer. |
{
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"description": "Instead of `element`: pixels from the left of the screenshot."
},
"y": {
"type": "number",
"minimum": 0,
"description": "With `x`: pixels from the top of the screenshot."
},
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The element's number from the last read or step answer."
}
},
"additionalProperties": false
}Opens `url` in the current tab, or goes `history` back or forward. Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| url | string | A public http or https address, e.g. https://example.com. |
| dialog | string | How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog. |
| history | string | Instead of `url`. |
| dialog_text | string | Text for a prompt dialog this step opens; implies accept. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"url": {
"type": "string",
"format": "uri",
"description": "A public http or https address, e.g. https://example.com."
},
"dialog": {
"enum": [
"accept",
"dismiss"
],
"type": "string",
"description": "How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog."
},
"history": {
"enum": [
"back",
"forward"
],
"type": "string",
"description": "Instead of `url`."
},
"dialog_text": {
"type": "string",
"maxLength": 1000,
"description": "Text for a prompt dialog this step opens; implies accept."
}
},
"additionalProperties": false
}Starts the user's Cloud Browser (a real Chrome on Cotlet, where the user is signed in to their sites) and opens `url`. Call it first. The URL goes to the site's open tab, else to a new tab, so the user's own tabs stay. Answers the page after it: the elements and text in view, with the same numbers. In AestheticsPro it serves these actions: Search clients, Search leads, Add a client, View client contact details, Configure gender identity and pronouns, Apply client gender identity, View appointment calendar, View scheduling changes and availability, Create appointment, Modify appointment, View Book Now availability, Book an appointment online, Book through Client Portal, View appointment history, Configure Book Now, Configure Client Portal, Create staff calendar, Create room calendar, Add equipment, Map services to scheduling resources, Set appointment duration, Set staff schedule, Create schedule template, Notify client of an opening, Sync appointments to Google Calendar, Sync appointments to Apple Calendar, Schedule a virtual appointment, Configure appointment confirmations, Set appointment reminder timing, Choose reminder channel, Send automated appointment reminders, Read client texts, Send client text, Draft client communication with Kai, View lead list, Create lead, Segment leads, Assign lead, View Client/Lead Demographics, Export contacts to Constant Contact, View communication dashboard, View outreach calendar, Create email template, Create SMS template, Draft outreach campaign with AI, Customize outreach campaign, Create text list, Send SMS blast, Create email list, Schedule E-Blast, Enable Touchpoints, Draft client journey, Configure client journey, Activate client journey, Adjust scheduled outreach, View email and SMS engagement, View appointment reports, Create staff announcement, View client appointment history, Send review request.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
Presses a key on the focused element: Enter to send, Tab to the next field, Escape to close a pop-up, arrows in a list or slider, or one character (a site's shortcut). Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| key* | string | One of Enter, Tab, Shift+Tab, Escape, Backspace, Delete, Space, ArrowDown, ArrowUp, ArrowLeft, ArrowRight, PageDown, PageUp, Home, End, or one character such as a or 5. |
| dialog | string | How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog. |
| repeat | integer | Times to press it. Default 1. |
| dialog_text | string | Text for a prompt dialog this step opens; implies accept. |
{
"type": "object",
"required": [
"key"
],
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"key": {
"type": "string",
"anyOf": [
{
"enum": [
"Enter",
"Tab",
"Shift+Tab",
"Escape",
"Backspace",
"Delete",
"Space",
"ArrowDown",
"ArrowUp",
"ArrowLeft",
"ArrowRight",
"PageDown",
"PageUp",
"Home",
"End"
]
},
{
"pattern": "^[ -~]$"
}
],
"description": "One of Enter, Tab, Shift+Tab, Escape, Backspace, Delete, Space, ArrowDown, ArrowUp, ArrowLeft, ArrowRight, PageDown, PageUp, Home, End, or one character such as a or 5."
},
"dialog": {
"enum": [
"accept",
"dismiss"
],
"type": "string",
"description": "How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog."
},
"repeat": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Times to press it. Default 1."
},
"dialog_text": {
"type": "string",
"maxLength": 1000,
"description": "Text for a prompt dialog this step opens; implies accept."
}
},
"additionalProperties": false
}The whole current page: its text (up to 20,000 characters) and a numbered list of its links, buttons, fields and other controls, open dialogs first. Use it on a new page or when a step's answer is not enough; `element` reads only inside one element (a dialog, a form, a list). Never returns field values, cookies or storage.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| element | integer | Read only inside this element. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "Read only inside this element."
}
},
"additionalProperties": false
}A JPEG of the visible part of the page. Use it for boards, canvases, maps, charts and layout that the text does not show, then click or drag by `x`, `y` of the image.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
}
},
"additionalProperties": false
}Scrolls with the mouse wheel: `down` or `up` by `screens`, to `top` or `bottom`, until `element` is in view, or inside a panel or list (`inside`). Content that loads on scroll appears. Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| inside | integer | Scroll inside this element, not the page. |
| element | integer | Scroll until this element is in view. |
| screens | number | Viewport heights, for down and up. Default: 0.8. |
| direction | string | Default: down. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"inside": {
"type": "integer",
"minimum": 1,
"description": "Scroll inside this element, not the page."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "Scroll until this element is in view."
},
"screens": {
"type": "number",
"maximum": 10,
"description": "Viewport heights, for down and up. Default: 0.8.",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"down",
"up",
"top",
"bottom"
],
"type": "string",
"description": "Default: down."
}
},
"additionalProperties": false
}Chooses `option` (its label as listed, or its value) in drop-down `element`. For a home-made drop-down, click it, then click the option. Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| dialog | string | How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog. |
| option* | string | The option. |
| element* | integer | The element's number from the last read or step answer. |
| dialog_text | string | Text for a prompt dialog this step opens; implies accept. |
{
"type": "object",
"required": [
"element",
"option"
],
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"dialog": {
"enum": [
"accept",
"dismiss"
],
"type": "string",
"description": "How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog."
},
"option": {
"type": "string",
"maxLength": 300,
"description": "The option."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The element's number from the last read or step answer."
},
"dialog_text": {
"type": "string",
"maxLength": 1000,
"description": "Text for a prompt dialog this step opens; implies accept."
}
},
"additionalProperties": false
}The tabs of the user's web browser, where they keep their signed-in sites open. `list` (default) answers each tab's id, URL and title and which is shown; `switch` with `tab` shows that tab, and every later step acts on it; `new` with `url` opens a tab (at most 8); `close` with `tab` closes it. Work in the tab of the site the task is about and close only the tabs you opened.
| Argument | Type | Description |
|---|---|---|
| tab | string | A tab's id from list, for switch and close. |
| url | string | For new: the public http or https address the tab opens. |
| action | string | What to do. Default: list. |
{
"type": "object",
"properties": {
"tab": {
"type": "string",
"maxLength": 64,
"description": "A tab's id from list, for switch and close."
},
"url": {
"type": "string",
"format": "uri",
"description": "For new: the public http or https address the tab opens."
},
"action": {
"enum": [
"list",
"new",
"switch",
"close"
],
"type": "string",
"description": "What to do. Default: list."
}
},
"additionalProperties": false
}Types `text` into field `element`, replacing what it held; `submit` presses Enter after it. For several fields use fill_form. Without `element` the text goes where the focus is, as a person types after clicking: for spreadsheet cells and editors that read does not number (Google Sheets, Docs), click the place first; there a tab in `text` presses Tab and a line break Enter, so one call fills a table. Answers the page after it: the elements and text in view, with the same numbers. Password, card and one-time code fields are refused: the user types them.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| text* | string | The text to type. |
| dialog | string | How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog. |
| slowly | boolean | Key by key, for a search or address field whose suggestions do not appear. |
| submit | boolean | Press Enter after typing, e.g. to search. |
| element | integer | The field's number from the last read. Leave it out to type where the focus is. |
Puts files into file field or upload button `element`: each file is {"url": "https://..."} or {"file_id": "..."} of a file uploaded to Cotlet; up to 10 files, 20 MB each. Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| files* | array | The files. |
| element* | integer | The element's number from the last read or step answer. |
{
"type": "object",
"required": [
"element",
"files"
],
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "A public file URL."
},
"file_id": {
"type": "string",
"description": "A file uploaded to Cotlet."
}
},
"additionalProperties": false
},
"maxItems": 10,
"minItems": 1,
"description": "The files."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The element's number from the last read or step answer."
}
},
"additionalProperties": false
}Waits until `text` shows on the page (at most `seconds`, default 5, up to 20), or just `seconds`: for results that load slowly. Says whether the text appeared. Answers the page after it: the elements and text in view, with the same numbers.
| Argument | Type | Description |
|---|---|---|
| app | string | Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote. |
| text | string | Text to wait for. |
| seconds | number | At most. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"text": {
"type": "string",
"maxLength": 200,
"description": "Text to wait for."
},
"seconds": {
"type": "number",
"maximum": 20,
"description": "At most.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Status of an earlier Cotlet call, by its call_id: pending (waits for the owner's approval in the Cotlet console), approved, running, success, rejected, expired, blocked or failed. For a call that answered with status pending or running.
| Argument | Type | Description |
|---|---|---|
| call_id* | string | call_id from the earlier call |
{
"type": "object",
"required": [
"call_id"
],
"properties": {
"call_id": {
"type": "string",
"description": "call_id from the earlier call"
}
},
"additionalProperties": false
}Sends a report to the Cotlet team: a tool that failed or returned wrong data, an error you could not get past, or a step the browser could not do, with the page, the step and what you saw. A missing dedicated tool is not a problem to report: do the task in the browser. A feature the user asks for goes as feature_request. A report promises nothing: tell the user it was sent, never that something will be built or fixed, or when. The report carries the error text and call_id when there is one, never passwords or tokens. Needs the user's Cotlet API key or sign-in.
| Argument | Type | Description |
|---|---|---|
| app | any | App slug the report is about, e.g. 'skool', or for a site in the web browser its host, e.g. 'app.example.com'. |
| kind* | string | bug: a tool did the wrong thing or returned wrong data. error: a call failed or returned an error you could not get past. feature_request: something new the user asked for. missing_feature: a step the task needed that you tried and could not do, in the browser or with a tool. other: anything else. |
| tool | any | Tool or endpoint name, e.g. 'skool_list_members'. |
| title* | string | One line, e.g. 'skool_list_members stops after 50 members'. |
| client | any | Agent or tool sending this, e.g. 'Claude Code'. |
| call_id | any | call_id of the call that went wrong, if any. |
Returns a one-time upload_url and a file_id for a local file (an image for a post, an attachment). The file is sent to upload_url with an HTTP PUT; an argument that takes a file accepts {"file_id": "..."}. Up to 25 MB, the URL works once. Free. Needs the user's Cotlet API key or sign-in.
| Argument | Type | Description |
|---|---|---|
| name | string | File name, e.g. photo.jpg. |
| content_type | string | MIME type, e.g. image/jpeg. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "File name, e.g. photo.jpg."
},
"content_type": {
"type": "string",
"description": "MIME type, e.g. image/jpeg."
}
},
"additionalProperties": false
}The Cotlet account this connection acts as: email, workspace, access status, the API key or OAuth client in use with its scope, the apps the workspace may call and its credit balance. Free. Needs the user's Cotlet API key or sign-in.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.
| task | string | What the user wants done in the app, in their words. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"maxLength": 120,
"description": "The app's name or Cotlet slug. Default: AestheticsPro."
},
"task": {
"type": "string",
"maxLength": 500,
"description": "What the user wants done in the app, in their words."
}
},
"additionalProperties": false
}| dialog_text |
| string |
| Text for a prompt dialog this step opens; implies accept. |
{
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"description": "Instead of `element`: pixels from the left of the screenshot."
},
"y": {
"type": "number",
"minimum": 0,
"description": "With `x`: pixels from the top of the screenshot."
},
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"button": {
"enum": [
"left",
"right"
],
"type": "string",
"description": "right opens the page's own context menu. Default: left."
},
"dialog": {
"enum": [
"accept",
"dismiss"
],
"type": "string",
"description": "How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog."
},
"double": {
"type": "boolean",
"description": "Double-click."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The element's number from the last read or step answer."
},
"dialog_text": {
"type": "string",
"maxLength": 1000,
"description": "Text for a prompt dialog this step opens; implies accept."
}
},
"additionalProperties": false
}| url | string | A public http or https address, e.g. https://example.com. |
{
"type": "object",
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"url": {
"type": "string",
"format": "uri",
"description": "A public http or https address, e.g. https://example.com."
}
},
"additionalProperties": false
}| dialog_text | string | Text for a prompt dialog this step opens; implies accept. |
{
"type": "object",
"required": [
"text"
],
"properties": {
"app": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
"description": "Leave it out: the step runs in the user's web browser. Only when cotlet_app_guide names an app's own Cloud Browser, that app's slug, e.g. milanote."
},
"text": {
"type": "string",
"maxLength": 5000,
"description": "The text to type."
},
"dialog": {
"enum": [
"accept",
"dismiss"
],
"type": "string",
"description": "How to answer a native dialog (confirm, prompt, 'leave this page?') this step opens: accept presses OK, dismiss presses Cancel. Default: OK for an alert, Cancel for every other dialog."
},
"slowly": {
"type": "boolean",
"description": "Key by key, for a search or address field whose suggestions do not appear."
},
"submit": {
"type": "boolean",
"description": "Press Enter after typing, e.g. to search."
},
"element": {
"type": "integer",
"minimum": 1,
"description": "The field's number from the last read. Leave it out to type where the focus is."
},
"dialog_text": {
"type": "string",
"maxLength": 1000,
"description": "Text for a prompt dialog this step opens; implies accept."
}
},
"additionalProperties": false
}| description* |
| string |
| What the user asked for, what you tried, what you expected and what happened, with the error text if there was one. No passwords, tokens or other secrets. |
{
"type": "object",
"title": "AgentReportCreate",
"required": [
"kind",
"title",
"description"
],
"properties": {
"app": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
],
"title": "App",
"default": null,
"description": "App slug the report is about, e.g. 'skool', or for a site in the web browser its host, e.g. 'app.example.com'."
},
"kind": {
"enum": [
"bug",
"error",
"feature_request",
"missing_feature",
"other"
],
"type": "string",
"title": "Kind",
"description": "bug: a tool did the wrong thing or returned wrong data. error: a call failed or returned an error you could not get past. feature_request: something new the user asked for. missing_feature: a step the task needed that you tried and could not do, in the browser or with a tool. other: anything else."
},
"tool": {
"anyOf": [
{
"type": "string",
"maxLength": 160
},
{
"type": "null"
}
],
"title": "Tool",
"default": null,
"description": "Tool or endpoint name, e.g. 'skool_list_members'."
},
"title": {
"type": "string",
"title": "Title",
"maxLength": 200,
"minLength": 3,
"description": "One line, e.g. 'skool_list_members stops after 50 members'."
},
"client": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
],
"title": "Client",
"default": null,
"description": "Agent or tool sending this, e.g. 'Claude Code'."
},
"call_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
],
"title": "Call Id",
"default": null,
"description": "call_id of the call that went wrong, if any."
},
"description": {
"type": "string",
"title": "Description",
"maxLength": 5000,
"minLength": 10,
"description": "What the user asked for, what you tried, what you expected and what happened, with the error text if there was one. No passwords, tokens or other secrets."
}
},
"description": "Body of POST /api/v1/reports and the arguments of the MCP tool cotlet_report_issue.",
"additionalProperties": false
}