# Mariana Tek MCP tools

> Every Mariana Tek MCP tool on the Cotlet server: tool names, input schemas, a tools/call example and an example result for each tool.

Source: https://cotlet.dev/docs/mcp/mariana-tek

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

15 tools for Mariana Tek on the Cotlet MCP server. Your agent picks them from tools/list.

- MCP server: `https://cotlet.dev/mcp/v1`
- Connects with: Your own Mariana Tek Admin account (studio owner or employee); what your agent can do follows your role
- Integration page: https://cotlet.dev/integrations/mariana-tek-api-mcp-server

## Endpoints

| Endpoint | Access | Description |
|---|---|---|
| `mariana-tek_list_locations` | read | Your studio locations with address and time zone. |
| `mariana-tek_list_classes` | read | Classes on the schedule of a location, with time, class type, instructor and open spots. |
| `mariana-tek_get_class_roster` | read | Reservations in a class with spot, payment used and status, plus the waitlist and standby list. |
| `mariana-tek_find_customer` | read | Search customer accounts by name, email or phone, as Find Customer does. |
| `mariana-tek_get_customer` | read | Customer profile: contact details, tags, notes, active memberships and credit packages. |
| `mariana-tek_list_customer_reservations` | read | Upcoming reservations or reservation history of a customer, with class, instructor, payment used and status. |
| `mariana-tek_list_customer_credits` | read | Credit packages of a customer with remaining credits, expiration and usage history. |
| `mariana-tek_book_reservation` | write | Reserve a spot for a customer in a class, paid with one of the customer's memberships or credits. |
| `mariana-tek_add_to_waitlist` | write | Add a customer to the waitlist of a full class. |
| `mariana-tek_cancel_reservation` | write | Cancel a reservation. Inside the late cancel window you choose whether the penalty applies. |
| `mariana-tek_check_in_customer` | write | Mark a reservation as checked in. |
| `mariana-tek_give_complimentary_credits` | write | Add complimentary credits of one credit type to a customer's account. |
| `mariana-tek_add_customer_note` | write | Add a note to a customer account. |
| `mariana-tek_assign_substitute` | write | Put a substitute instructor on a class. Customers are not emailed; use message_class for that. |
| `mariana-tek_message_class` | write | Email everyone in a class, including waitlist and standby, from the studio's default address. |

## List locations

MCP tool: `mariana-tek_list_locations`

Access: read.

Returns every studio location your Admin account can see. Use location_id from each item in list_classes. Times in other tools use the location's time zone.

### Parameters

No parameters.

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_list_locations",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "locations": [
      {
        "location_id": "loc_01",
        "name": "Downtown Studio",
        "address": "120 Main St, Brooklyn, NY",
        "time_zone": "America/New_York"
      },
      {
        "location_id": "loc_02",
        "name": "Riverside Studio",
        "address": "48 River Rd, Hoboken, NJ",
        "time_zone": "America/New_York"
      }
    ]
  },
  "isError": false
}
```

## List classes

MCP tool: `mariana-tek_list_classes`

Access: read.

Returns the classes of one location between two dates, earliest first. Filter by instructor to find all classes of one person. Each item has the class_id that the roster and booking tools take, and the number of open spots.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `location_id` | string | no | Location ID from list_locations. Default: your main location. |
| `from` | date | yes | First day, inclusive. |
| `to` | date | no | Last day, inclusive. Default: same as from. |
| `instructor` | string | no | Only classes taught by this instructor (name). |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_list_classes",
    "arguments": {
      "from": "2026-10-01"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "classes": [
      {
        "class_id": "418203",
        "name": "Pilates Sculpt",
        "start": "2026-10-17T09:00:00-04:00",
        "instructor": "Sam Ortiz",
        "capacity": 3,
        "spots_open": 0,
        "waitlist": 1
      },
      {
        "class_id": "418230",
        "name": "HIIT 45",
        "start": "2026-10-17T18:00:00-04:00",
        "instructor": "Alex Rivera",
        "capacity": 20,
        "spots_open": 6,
        "waitlist": 0
      }
    ]
  },
  "isError": false
}
```

## Get class roster

MCP tool: `mariana-tek_get_class_roster`

Access: read.

Returns the roster of one class: every reservation with the spot (Pick-A-Spot layouts only), the payment used and its status, then the waitlist and the standby list. Waitlisted customers are not on the class until Mariana Tek auto-fills a freed spot or staff add them. Use reservation_id from each item to check in or cancel.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `class_id` | string | yes | Class ID from list_classes. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_get_class_roster",
    "arguments": {
      "class_id": "class_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "class_id": "418203",
    "class": "Pilates Sculpt",
    "capacity": 3,
    "reservations": [
      {
        "reservation_id": "7710342",
        "customer_id": "90517",
        "customer": "Jamie Park",
        "spot": "1",
        "payment_used": "Unlimited Monthly",
        "status": "reserved"
      },
      {
        "reservation_id": "7710343",
        "customer_id": "90544",
        "customer": "Riley Chen",
        "spot": "2",
        "payment_used": "10 Class Pack",
        "status": "reserved"
      },
      {
        "reservation_id": "7710344",
        "customer_id": "90561",
        "customer": "Morgan Diaz",
        "spot": "3",
        "payment_used": "Intro Offer",
        "status": "reserved"
      }
    ],
    "waitlist": [
      {
        "customer_id": "90602",
        "customer": "Casey Wong",
        "payment_option": "5 Class Pack"
      }
    ],
    "standby": []
  },
  "isError": false
}
```

## Find customer

MCP tool: `mariana-tek_find_customer`

Access: read.

Searches customer accounts by name, email or phone number and returns the matches with their customer_id. Pass customer_id to get_customer and the booking tools.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `query` | string | yes | Name, email or phone number. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_find_customer",
    "arguments": {
      "query": "query"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "customers": [
      {
        "customer_id": "90517",
        "name": "Jamie Park",
        "email": "jamie@example.com",
        "phone": "+1 555 0100"
      }
    ]
  },
  "isError": false
}
```

## Get customer

MCP tool: `mariana-tek_get_customer`

Access: read.

Returns one customer account with contact details, tags, notes, active memberships and credit packages. Each membership or package has an id you pass as payment_option_id when booking.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `customer_id` | string | yes | Customer ID from find_customer. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_get_customer",
    "arguments": {
      "customer_id": "customer_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "customer_id": "90517",
    "name": "Jamie Park",
    "email": "jamie@example.com",
    "tags": [
      "founding member"
    ],
    "notes": [],
    "memberships": [
      {
        "payment_option_id": "mbr_2231",
        "name": "Unlimited Monthly",
        "status": "active"
      }
    ],
    "credit_packages": []
  },
  "isError": false
}
```

## List customer reservations

MCP tool: `mariana-tek_list_customer_reservations`

Access: read.

Returns the reservations of one customer, upcoming by default, soonest first. Switch scope to history to see past classes with their final status. Use reservation_id from each item to cancel.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `customer_id` | string | yes | Customer ID from find_customer. |
| `scope` | enum | no | upcoming or history. Default: upcoming. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_list_customer_reservations",
    "arguments": {
      "customer_id": "customer_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "reservations": [
      {
        "reservation_id": "7710401",
        "class_id": "418251",
        "class": "Pilates Sculpt",
        "start": "2026-10-19T07:00:00-04:00",
        "instructor": "Sam Ortiz",
        "payment_used": "Unlimited Monthly",
        "status": "reserved"
      }
    ]
  },
  "isError": false
}
```

## List customer credits

MCP tool: `mariana-tek_list_customer_credits`

Access: read.

Returns the credit packages of one customer with credits remaining, the expiration date and how the credits were used. Complimentary credits are included. Set status to expired to see packages that have run out.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `customer_id` | string | yes | Customer ID from find_customer. |
| `status` | enum | no | active or expired. Default: active. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_list_customer_credits",
    "arguments": {
      "customer_id": "customer_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "credit_packages": [
      {
        "name": "10 Class Pack",
        "credits_remaining": 2,
        "expires_on": "2026-10-31",
        "usage": [
          {
            "class": "HIIT 45",
            "date": "2026-10-08"
          }
        ]
      }
    ]
  },
  "isError": false
}
```

## Book reservation

MCP tool: `mariana-tek_book_reservation`

Access: write. Confirm: waits for the user's OK before it runs.

Books one customer into one class and pays with a membership or credit package of that customer. Leave payment_option_id out to use the first valid option. For Pick-A-Spot classes pass spot, otherwise any open spot is used. The reservation is pending until Mariana Tek confirms it. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `class_id` | string | yes | Class ID from list_classes. |
| `customer_id` | string | yes | Customer ID from find_customer. |
| `payment_option_id` | string | no | Membership or credit package from get_customer. Default: the first valid option. |
| `spot` | string | no | Spot for Pick-A-Spot layouts. Default: any open spot. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_book_reservation",
    "arguments": {
      "class_id": "418203",
      "customer_id": "90517",
      "payment_option_id": "mbr_2231"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "reservation_id": "7710342",
    "class_id": "418203",
    "class": "Pilates Sculpt",
    "start": "2026-10-17T09:00:00-04:00",
    "customer": "Jamie Park",
    "payment_used": "Unlimited Monthly",
    "spot": "1",
    "status": "pending"
  },
  "isError": false
}
```

## Add to waitlist

MCP tool: `mariana-tek_add_to_waitlist`

Access: write. Confirm: waits for the user's OK before it runs.

Puts one customer on the waitlist of a class that is full, with the payment option you choose. The customer is not booked yet: inside the waitlist auto-fill window Mariana Tek moves the top customer in when a spot frees up; after it, staff add people by hand. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `class_id` | string | yes | Class ID from list_classes. |
| `customer_id` | string | yes | Customer ID from find_customer. |
| `payment_option_id` | string | no | Membership or credit package from get_customer. Default: the first valid option. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_add_to_waitlist",
    "arguments": {
      "class_id": "class_8c41d2",
      "customer_id": "customer_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "class_id": "418203",
    "customer_id": "90602",
    "customer": "Casey Wong",
    "payment_option": "5 Class Pack",
    "status": "waitlisted",
    "position": 1
  },
  "isError": false
}
```

## Cancel reservation

MCP tool: `mariana-tek_cancel_reservation`

Access: write. Confirm: waits for the user's OK before it runs.

Cancels one reservation. Inside the late cancel window, waive_penalty true cancels without the fee (a Graced Cancel) if your role has that permission; without it the fee applies. The cancellation stays in the customer's history. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `reservation_id` | string | yes | Reservation ID from get_class_roster or list_customer_reservations. |
| `waive_penalty` | boolean | no | Cancel without the late cancel fee, if your role allows it. Default: false. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_cancel_reservation",
    "arguments": {
      "reservation_id": "7710401",
      "waive_penalty": true
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "reservation_id": "7710401",
    "class_id": "418251",
    "status": "graced_cancel",
    "penalty_applied": false
  },
  "isError": false
}
```

## Check in customer

MCP tool: `mariana-tek_check_in_customer`

Access: write. Confirm: waits for the user's OK before it runs.

Marks one reservation as checked in. It takes a reservation_id, so waitlisted customers cannot be checked in. Nothing is sent to the customer. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `reservation_id` | string | yes | Reservation ID from get_class_roster or list_customer_reservations. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_check_in_customer",
    "arguments": {
      "reservation_id": "reservation_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "reservation_id": "7710342",
    "class_id": "418203",
    "customer": "Jamie Park",
    "status": "checked_in"
  },
  "isError": false
}
```

## Give complimentary credits

MCP tool: `mariana-tek_give_complimentary_credits`

Access: write. Confirm: waits for the user's OK before it runs.

Gives one customer a quantity of one credit type, like Give Credits on the Credits tab in Admin. The credit type must be active in your studio. Credits expire at midnight local time on the date you set, and the reason is saved on the account. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `customer_id` | string | yes | Customer ID from find_customer. |
| `credit_type` | string | yes | Credit type name, as set up in your studio. |
| `quantity` | integer | yes | Number of credits. |
| `expires_on` | date | yes | Expiration, at midnight local time. |
| `reason` | string | yes | Reason saved on the account. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_give_complimentary_credits",
    "arguments": {
      "customer_id": "90517",
      "credit_type": "Class Credit",
      "quantity": 1,
      "expires_on": "2026-11-11",
      "reason": "Class cut short"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "customer_id": "90517",
    "credit_type": "Class Credit",
    "quantity": 1,
    "expires_on": "2026-11-16",
    "reason": "Class cut short by power outage",
    "status": "given"
  },
  "isError": false
}
```

## Add customer note

MCP tool: `mariana-tek_add_customer_note`

Access: write.

Adds a note to one customer account. It sends nothing to the customer or anyone else, so add_customer_note runs without asking first.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `customer_id` | string | yes | Customer ID from find_customer. |
| `text` | string | yes | Note text. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_add_customer_note",
    "arguments": {
      "customer_id": "customer_8c41d2",
      "text": "text"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "customer_id": "90517",
    "note": "Travelling Oct 19 to 23, late cancels waived by studio.",
    "status": "added"
  },
  "isError": false
}
```

## Assign substitute

MCP tool: `mariana-tek_assign_substitute`

Access: write. Confirm: waits for the user's OK before it runs.

Sets a substitute instructor on one class. It changes the instructor only and sends no email; use message_class to tell the class. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `class_id` | string | yes | Class ID from list_classes. |
| `instructor` | string | yes | Substitute instructor name. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_assign_substitute",
    "arguments": {
      "class_id": "418230",
      "instructor": "Taylor Kim"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "class_id": "418230",
    "class": "HIIT 45",
    "instructor": "Taylor Kim",
    "previous_instructor": "Alex Rivera",
    "customers_notified": false
  },
  "isError": false
}
```

## Message class

MCP tool: `mariana-tek_message_class`

Access: write. Confirm: waits for the user's OK before it runs.

Emails everyone booked in one class, plus the waitlist and standby customers, from the studio's default address. The response counts the recipients. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `class_id` | string | yes | Class ID from list_classes. |
| `message` | string | yes | Message text. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mariana-tek_message_class",
    "arguments": {
      "class_id": "class_8c41d2",
      "message": "message"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "class_id": "418230",
    "recipients": 14,
    "reservations": 12,
    "waitlist": 2,
    "standby": 0,
    "status": "sent"
  },
  "isError": false
}
```
