Skip to content

Trainer Connect

by trainerconnect.com.br · remote · no sign-in to list tools · v1.0.0 · published by br.com.trainerconnect

Manage students, workouts, appointments and payments through your personal trainer account.

Deletes · 1Changes · 4

14 tools: 1 can delete or cancel things, 4 change things and 9 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http personal-trainer https://api.trainerconnect.com.br/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "api_read" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "api_read" says "read": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Deletes or cancels 1Claude Code: deny
  • api_writeRuns any POST, PUT, PATCH or DELETE operation from list_operations as the connected trainer, exactly as the app would: edit or archive workouts, assign programs, log or edit a sess…No findings

    Why it is in this group

    • The name "api_write" says "write": a word for a change.
    • The description says "cannot be undone".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Runs any POST, PUT, PATCH or DELETE operation from list_operations as the connected trainer, exactly as the app would: edit or archive workouts, assign programs, log or edit a session, create assessments, diet plans and check-ins, send chat messages, cancel or move classes, create contracts and charges, update the public page, and more. Same permissions, plan limits and validation as the app; a 422 lists what is missing. It can notify students (push, e-mail) and some operations cannot be undone, so confirm with the person first. Withdrawals, bank details, password and account deletion stay in the app.

    Annotations the server declares

    • title: Do anything in Trainer Connect
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
Changes things 4Claude Code: ask
  • api_readRuns any GET operation from list_operations as the connected trainer and returns the same JSON the app gets: a student's assessments, anamnesis, diet plan, workout history and sess…1 finding

    Why it is in this group

    • The name "api_read" says "read": a word for reading.
    • The description's first verb is "run": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "api_read" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "api_read" says "read": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Runs any GET operation from list_operations as the connected trainer and returns the same JSON the app gets: a student's assessments, anamnesis, diet plan, workout history and sessions, check-ins, chat messages, contracts, financial metrics, the exercise library and more. Same permissions as the app.

    Annotations the server declares

    • readOnlyHint: true
    • title: Read anything in Trainer Connect
    • destructiveHint: false
    • openWorldHint: false
  • create_studentAdds a student to the trainer's account, like "Adicionar aluno" in the app: the student gets an e-mail invite to install the app and see workouts.No findings

    Why it is in this group

    • The name "create_student" says "create": a word for a change.
    Description, as the server wrote it
    Adds a student to the trainer's account, like "Adicionar aluno" in the app: the student gets an e-mail invite to install the app and see workouts. Name and e-mail are required; goal, weight, height, birth date and sex are optional. Respects the student limit of the trainer's plan.

    Annotations the server declares

    • title: Add a student
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
  • create_workoutCreates a workout, assigned to a student (student_id) or as a template when student_id is empty, with its exercises: sets, reps (or a range with reps_max), load, rest, duration for…No findings

    Why it is in this group

    • The name "create_workout" says "create": a word for a change.
    Description, as the server wrote it
    Creates a workout, assigned to a student (student_id) or as a template when student_id is empty, with its exercises: sets, reps (or a range with reps_max), load, rest, duration for cardio, notes. Exercises are matched to the Trainer Connect library by name so the student sees the demo video (or pass edb_exercise_id from search_exercises). For a weekly program, call it once per day with the same program name and day_of_week. The student is notified, like in the app.

    Annotations the server declares

    • title: Create a workout
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
  • schedule_classBooks a class or appointment on the trainer's schedule (Brazil time, America/Sao_Paulo), with a student or as a personal block when student_id is empty.No findings

    Why it is in this group

    • The name "schedule_class" says "schedule": a word for a change.
    Description, as the server wrote it
    Books a class or appointment on the trainer's schedule (Brazil time, America/Sao_Paulo), with a student or as a personal block when student_id is empty. The student is notified, like in the app. Cancelling or moving a class is done in the app (or with api_write on /v1/appointments/{id} where that tool exists).

    Annotations the server declares

    • title: Schedule a class
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
Only reads 9Claude Code: allow
  • describe_operationShows what one Trainer Connect operation accepts: route parameters and the validation rules of each field (required, type, allowed values).No findings

    Why it is in this group

    • The name "describe_operation" says "describe": a word for reading.
    Description, as the server wrote it
    Shows what one Trainer Connect operation accepts: route parameters and the validation rules of each field (required, type, allowed values). Use it before api_write so the request is right the first time.

    Annotations the server declares

    • readOnlyHint: true
    • title: See the fields of an operation
    • destructiveHint: false
    • openWorldHint: false
  • find_trainersFind personal trainers listed in the public Trainer Connect directory (most are in Brazil; some are Brazilian trainers abroad), by specialty, name, city or state, and online or in-…No findings

    Why it is in this group

    • The name "find_trainers" says "find": a word for reading.
    Description, as the server wrote it
    Find personal trainers listed in the public Trainer Connect directory (most are in Brazil; some are Brazilian trainers abroad), by specialty, name, city or state, and online or in-person. Specialties are written in Portuguese, e.g. "musculação", "emagrecimento", "funcional", "corrida", "hipertrofia". Returns up to 10 trainers with their public profile link. Contact details are never returned: the person talks to the trainer through the profile page.

    Annotations the server declares

    • readOnlyHint: true
    • title: Find a personal trainer
    • destructiveHint: false
    • openWorldHint: false
  • get_scheduleLists the trainer's classes and appointments between two dates (today and the next 7 days by default): date and time, student, type, status, place and notes.No findings

    Why it is in this group

    • The name "get_schedule" says "get": a word for reading.
    Description, as the server wrote it
    Lists the trainer's classes and appointments between two dates (today and the next 7 days by default): date and time, student, type, status, place and notes. Times are in Brazil time (America/Sao_Paulo).

    Annotations the server declares

    • readOnlyHint: true
    • title: See my schedule
    • destructiveHint: false
    • openWorldHint: false
  • get_studentGets one of the trainer's students: profile (goal, age, weight, height), the active workouts with their exercises, sets, reps and load, and the latest logged sessions with how many…No findings

    Why it is in this group

    • The name "get_student" says "get": a word for reading.
    Description, as the server wrote it
    Gets one of the trainer's students: profile (goal, age, weight, height), the active workouts with their exercises, sets, reps and load, and the latest logged sessions with how many in the last 30 days.

    Annotations the server declares

    • readOnlyHint: true
    • title: See a student
    • destructiveHint: false
    • openWorldHint: false
  • get_trainerShow the public profile of one personal trainer from the Trainer Connect directory: bio, specialties, where they work, online or in person, and the plans they publish with price an…No findings

    Why it is in this group

    • The name "get_trainer" says "get": a word for reading.
    Description, as the server wrote it
    Show the public profile of one personal trainer from the Trainer Connect directory: bio, specialties, where they work, online or in person, and the plans they publish with price and billing period. The person contacts the trainer or signs up for a plan on the profile_url page; this connector never books, pays or sends messages.

    Annotations the server declares

    • readOnlyHint: true
    • title: See a trainer's profile and plans
    • destructiveHint: false
    • openWorldHint: false
  • list_operationsLists the Trainer Connect app operations this connection can run (method, path, summary): students, workouts and programs, exercise library, schedule and classes, workout sessions …No findings

    Why it is in this group

    • The name "list_operations" says "list": a word for reading.
    Description, as the server wrote it
    Lists the Trainer Connect app operations this connection can run (method, path, summary): students, workouts and programs, exercise library, schedule and classes, workout sessions and history, physical assessments, anamnesis, diet plans and nutrition, check-ins, chat, contracts, charges and payments, team, public page, AI generation and more. Filter with a keyword (Portuguese or English, e.g. "workout", "assessment", "diet", "appointment", "charge"). Then use describe_operation to see the fields and api_read or api_write to run it. Also returns the connected trainer_id, used in paths like /v1/trainers/{trainerId}/students.

    Annotations the server declares

    • readOnlyHint: true
    • title: List everything Trainer Connect can do
    • destructiveHint: false
    • openWorldHint: false
  • list_paymentsLists what the trainer's students paid or owe: amount, student, due date, paid date and status.No findings

    Why it is in this group

    • The name "list_payments" says "list": a word for reading.
    Description, as the server wrote it
    Lists what the trainer's students paid or owe: amount, student, due date, paid date and status. Use status "overdue" for unpaid charges past their due date, "open" for everything not paid yet, "paid" for received payments. Totals are in BRL.

    Annotations the server declares

    • readOnlyHint: true
    • title: See payments from my students
    • destructiveHint: false
    • openWorldHint: false
  • list_studentsLists the connected personal trainer's students with status, goal and start date.No findings

    Why it is in this group

    • The name "list_students" says "list": a word for reading.
    Description, as the server wrote it
    Lists the connected personal trainer's students with status, goal and start date. Optionally filter by part of the name. Use the returned student_id with get_student.

    Annotations the server declares

    • readOnlyHint: true
    • title: List my students
    • destructiveHint: false
    • openWorldHint: false
  • search_exercisesSearches the Trainer Connect exercise library (with demo videos), in Portuguese or English: "supino", "agachamento", "remada", "glúteo", "esteira".No findings

    Why it is in this group

    • The name "search_exercises" says "search": a word for reading.
    Description, as the server wrote it
    Searches the Trainer Connect exercise library (with demo videos), in Portuguese or English: "supino", "agachamento", "remada", "glúteo", "esteira". Returns the exercise id to pass as edb_exercise_id in create_workout, so the student sees the video.

    Annotations the server declares

    • readOnlyHint: true
    • title: Search the exercise library
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http personal-trainer https://api.trainerconnect.com.br/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__personal-trainer__list_students",
      "mcp__personal-trainer__get_student",
      "mcp__personal-trainer__get_schedule",
      "mcp__personal-trainer__list_payments",
      "mcp__personal-trainer__search_exercises",
      "mcp__personal-trainer__list_operations",
      "mcp__personal-trainer__describe_operation",
      "mcp__personal-trainer__find_trainers",
      "mcp__personal-trainer__get_trainer"
    ],
    "ask": [
      "mcp__personal-trainer__create_student",
      "mcp__personal-trainer__create_workout",
      "mcp__personal-trainer__schedule_class",
      "mcp__personal-trainer__api_read"
    ],
    "deny": [
      "mcp__personal-trainer__api_write"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as personal-trainer. Review it before you use it.