MFIT Personal
by mcp-dir · remote · no sign-in to list tools · v0.1.0 · published by GitHub user mcp-dir
Client, workout, body composition, retention and finance management for personal trainers.
48 tools: 4 can delete or cancel things, 15 change things and 29 only read.
Scanned Oct 21, 2026
- Deletes or cancels4Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things15Claude Code: ask: see these tools
- Only reads29Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http mfit https://api.mcp.ai/p_mfitFindings
Matches of fixed checks, with the text they matched.
- Infoconnect
The description mentions "credentials".
What this check looks forMatched text
description: "...nticated:true and empty pending[]. When credentials are missing, returns connect_url for th..."
- Infomarketplace
The description mentions "credential".
What this check looks forMatched text
description: "...ating the tool list. If the MCP needs a credential/login, invoke returns a connect link; i..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
48 tools
Deletes or cancels 4Claude Code: deny
mfit_client_files_deleteDelete a student file (irreversible).No findings
Why it is in this group
- The name "mfit_client_files_delete" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a student file (irreversible). Bulk support: accepts client_ids, file_ids for batched execution.
Annotations the server declares
- title: mfit_client_files_delete
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
mfit_workout_delete_exerciseDestructive operations on workout routines, sessions, and exercises.No findings
Why it is in this group
- The name "mfit_workout_delete_exercise" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Destructive operations on workout routines, sessions, and exercises. Actions: delete_routine — soft-delete a routine (moves to "Excluídas"; reversible) delete_session — remove a session from a routine (irreversible) delete_exercise — remove an exercise from a session (irreversible). Get exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].idExercSession. [Flattened action: delete_exercise] Bulk support: accepts routine_ids, session_ids, exercise_session_ids for batched execution.
Annotations the server declares
- title: mfit_workout_delete_exercise
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
mfit_workout_delete_routineDestructive operations on workout routines, sessions, and exercises.No findings
Why it is in this group
- The name "mfit_workout_delete_routine" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Destructive operations on workout routines, sessions, and exercises. Actions: delete_routine — soft-delete a routine (moves to "Excluídas"; reversible) delete_session — remove a session from a routine (irreversible) delete_exercise — remove an exercise from a session (irreversible). Get exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].idExercSession. [Flattened action: delete_routine] Bulk support: accepts routine_ids, session_ids, exercise_session_ids for batched execution.
Annotations the server declares
- title: mfit_workout_delete_routine
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
mfit_workout_delete_sessionDestructive operations on workout routines, sessions, and exercises.No findings
Why it is in this group
- The name "mfit_workout_delete_session" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Destructive operations on workout routines, sessions, and exercises. Actions: delete_routine — soft-delete a routine (moves to "Excluídas"; reversible) delete_session — remove a session from a routine (irreversible) delete_exercise — remove an exercise from a session (irreversible). Get exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].idExercSession. [Flattened action: delete_session] Bulk support: accepts routine_ids, session_ids, exercise_session_ids for batched execution.
Annotations the server declares
- title: mfit_workout_delete_session
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Changes things 15Claude Code: ask
authenticateMCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.
Annotations the server declares
- title: Authenticate
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
marketplaceThe official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...ating the tool list. If the MCP needs a credential/login, invoke returns a connect link; i..."
Description, as the server wrote it The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.
Annotations the server declares
- title: Marketplace
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
mfit_client_files_writeUpdate a student file: rename or change sharing settings.No findings
Why it is in this group
- The name "mfit_client_files_write" says "write": a word for a change.
Description, as the server wrote it Update a student file: rename or change sharing settings. Bulk support: accepts file_ids for batched execution.
Annotations the server declares
- title: mfit_client_files_write
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_client_write_createCreate / update / deactivate students in MFIT.No findings
Why it is in this group
- The name "mfit_client_write_create" says "write": a word for a change.
Description, as the server wrote it Create / update / deactivate students in MFIT. Actions: create — register new student (name, email, phone required) update — edit student fields (partial update) deactivate — set student inactive (reversible via update) Field types — STATIC: gender (m/f). DYNAMIC: groupId (per-trainer, call mfit_client list_groups first). [Flattened action: create] Bulk support: accepts client_ids for batched execution.
Annotations the server declares
- title: mfit_client_write_create
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_client_write_deactivateCreate / update / deactivate students in MFIT.No findings
Why it is in this group
- The name "mfit_client_write_deactivate" says "write": a word for a change.
Description, as the server wrote it Create / update / deactivate students in MFIT. Actions: create — register new student (name, email, phone required) update — edit student fields (partial update) deactivate — set student inactive (reversible via update) Field types — STATIC: gender (m/f). DYNAMIC: groupId (per-trainer, call mfit_client list_groups first). [Flattened action: deactivate] Bulk support: accepts client_ids for batched execution.
Annotations the server declares
- title: mfit_client_write_deactivate
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_client_write_updateCreate / update / deactivate students in MFIT.No findings
Why it is in this group
- The name "mfit_client_write_update" says "write": a word for a change.
Description, as the server wrote it Create / update / deactivate students in MFIT. Actions: create — register new student (name, email, phone required) update — edit student fields (partial update) deactivate — set student inactive (reversible via update) Field types — STATIC: gender (m/f). DYNAMIC: groupId (per-trainer, call mfit_client list_groups first). [Flattened action: update] Bulk support: accepts client_ids for batched execution.
Annotations the server declares
- title: mfit_client_write_update
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_get_client_notes_writeSave (overwrite) notes/observations for a student.No findings
Why it is in this group
- The name "mfit_get_client_notes_write" says "get": a word for reading.
- The description's first verb is "save": a word for a change.
Description, as the server wrote it Save (overwrite) notes/observations for a student. Replaces any existing notes text. Bulk support: accepts client_ids for batched execution.
Annotations the server declares
- title: mfit_get_client_notes_write
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_workout_write_add_exerciseCreate / update workout routines, sessions, and exercises in MFIT.No findings
Why it is in this group
- The name "mfit_workout_write_add_exercise" says "write": a word for a change.
Description, as the server wrote it Create / update workout routines, sessions, and exercises in MFIT. Actions: create_routine — create a new workout routine for a student update_routine — edit routine name, dates, goal, difficulty, etc. archive_routine — archive a routine (status=1, reversible) unarchive_routine — restore archived routine to active (status=0) create_session — add a training session (day) to a routine add_exercise — add an exercise to a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set — use update_serie to configure. update_serie — set reps, weight, rest for a serie. Get serie_id and exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].series[0].id and .idExercSession. Static options: trainingType: 1=Dia da Semana, 2=Numérico goal: 1=Hipertrofia, 2=Redução de gordura, 3=Redução de gordura/hipertrofia, 4=Definição muscular, 5=Condicionamento físico, 6=Qualidade de vida difficulty: 1=Iniciante, 2=Intermediário, 3=Avançado, 4=Adaptação day (session): 1=Domingo, 2=Segunda, 3=Terça, 4=Quarta, 5=Quinta, 6=Sexta, 7=Sábado For destructive operations (delete routine / session / exercise) use mfit_workout_delete. [Flattened action: add_exercise] Bulk support: accepts client_ids, routine_ids, session_ids, exercise_ids, exercise_session_ids, serie_ids for batched execution.
Annotations the server declares
- title: mfit_workout_write_add_exercise
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_workout_write_archive_routineCreate / update workout routines, sessions, and exercises in MFIT.No findings
Why it is in this group
- The name "mfit_workout_write_archive_routine" says "write": a word for a change.
Description, as the server wrote it Create / update workout routines, sessions, and exercises in MFIT. Actions: create_routine — create a new workout routine for a student update_routine — edit routine name, dates, goal, difficulty, etc. archive_routine — archive a routine (status=1, reversible) unarchive_routine — restore archived routine to active (status=0) create_session — add a training session (day) to a routine add_exercise — add an exercise to a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set — use update_serie to configure. update_serie — set reps, weight, rest for a serie. Get serie_id and exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].series[0].id and .idExercSession. Static options: trainingType: 1=Dia da Semana, 2=Numérico goal: 1=Hipertrofia, 2=Redução de gordura, 3=Redução de gordura/hipertrofia, 4=Definição muscular, 5=Condicionamento físico, 6=Qualidade de vida difficulty: 1=Iniciante, 2=Intermediário, 3=Avançado, 4=Adaptação day (session): 1=Domingo, 2=Segunda, 3=Terça, 4=Quarta, 5=Quinta, 6=Sexta, 7=Sábado For destructive operations (delete routine / session / exercise) use mfit_workout_delete. [Flattened action: archive_routine] Bulk support: accepts client_ids, routine_ids, session_ids, exercise_ids, exercise_session_ids, serie_ids for batched execution.
Annotations the server declares
- title: mfit_workout_write_archive_routine
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_workout_write_create_routineCreate / update workout routines, sessions, and exercises in MFIT.No findings
Why it is in this group
- The name "mfit_workout_write_create_routine" says "write": a word for a change.
Description, as the server wrote it Create / update workout routines, sessions, and exercises in MFIT. Actions: create_routine — create a new workout routine for a student update_routine — edit routine name, dates, goal, difficulty, etc. archive_routine — archive a routine (status=1, reversible) unarchive_routine — restore archived routine to active (status=0) create_session — add a training session (day) to a routine add_exercise — add an exercise to a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set — use update_serie to configure. update_serie — set reps, weight, rest for a serie. Get serie_id and exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].series[0].id and .idExercSession. Static options: trainingType: 1=Dia da Semana, 2=Numérico goal: 1=Hipertrofia, 2=Redução de gordura, 3=Redução de gordura/hipertrofia, 4=Definição muscular, 5=Condicionamento físico, 6=Qualidade de vida difficulty: 1=Iniciante, 2=Intermediário, 3=Avançado, 4=Adaptação day (session): 1=Domingo, 2=Segunda, 3=Terça, 4=Quarta, 5=Quinta, 6=Sexta, 7=Sábado For destructive operations (delete routine / session / exercise) use mfit_workout_delete. [Flattened action: create_routine] Bulk support: accepts client_ids, routine_ids, session_ids, exercise_ids, exercise_session_ids, serie_ids for batched execution.
Annotations the server declares
- title: mfit_workout_write_create_routine
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_workout_write_create_sessionCreate / update workout routines, sessions, and exercises in MFIT.No findings
Why it is in this group
- The name "mfit_workout_write_create_session" says "write": a word for a change.
Description, as the server wrote it Create / update workout routines, sessions, and exercises in MFIT. Actions: create_routine — create a new workout routine for a student update_routine — edit routine name, dates, goal, difficulty, etc. archive_routine — archive a routine (status=1, reversible) unarchive_routine — restore archived routine to active (status=0) create_session — add a training session (day) to a routine add_exercise — add an exercise to a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set — use update_serie to configure. update_serie — set reps, weight, rest for a serie. Get serie_id and exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].series[0].id and .idExercSession. Static options: trainingType: 1=Dia da Semana, 2=Numérico goal: 1=Hipertrofia, 2=Redução de gordura, 3=Redução de gordura/hipertrofia, 4=Definição muscular, 5=Condicionamento físico, 6=Qualidade de vida difficulty: 1=Iniciante, 2=Intermediário, 3=Avançado, 4=Adaptação day (session): 1=Domingo, 2=Segunda, 3=Terça, 4=Quarta, 5=Quinta, 6=Sexta, 7=Sábado For destructive operations (delete routine / session / exercise) use mfit_workout_delete. [Flattened action: create_session] Bulk support: accepts client_ids, routine_ids, session_ids, exercise_ids, exercise_session_ids, serie_ids for batched execution.
Annotations the server declares
- title: mfit_workout_write_create_session
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_workout_write_unarchive_routineCreate / update workout routines, sessions, and exercises in MFIT.No findings
Why it is in this group
- The name "mfit_workout_write_unarchive_routine" says "write": a word for a change.
Description, as the server wrote it Create / update workout routines, sessions, and exercises in MFIT. Actions: create_routine — create a new workout routine for a student update_routine — edit routine name, dates, goal, difficulty, etc. archive_routine — archive a routine (status=1, reversible) unarchive_routine — restore archived routine to active (status=0) create_session — add a training session (day) to a routine add_exercise — add an exercise to a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set — use update_serie to configure. update_serie — set reps, weight, rest for a serie. Get serie_id and exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].series[0].id and .idExercSession. Static options: trainingType: 1=Dia da Semana, 2=Numérico goal: 1=Hipertrofia, 2=Redução de gordura, 3=Redução de gordura/hipertrofia, 4=Definição muscular, 5=Condicionamento físico, 6=Qualidade de vida difficulty: 1=Iniciante, 2=Intermediário, 3=Avançado, 4=Adaptação day (session): 1=Domingo, 2=Segunda, 3=Terça, 4=Quarta, 5=Quinta, 6=Sexta, 7=Sábado For destructive operations (delete routine / session / exercise) use mfit_workout_delete. [Flattened action: unarchive_routine] Bulk support: accepts client_ids, routine_ids, session_ids, exercise_ids, exercise_session_ids, serie_ids for batched execution.
Annotations the server declares
- title: mfit_workout_write_unarchive_routine
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_workout_write_update_routineCreate / update workout routines, sessions, and exercises in MFIT.No findings
Why it is in this group
- The name "mfit_workout_write_update_routine" says "write": a word for a change.
Description, as the server wrote it Create / update workout routines, sessions, and exercises in MFIT. Actions: create_routine — create a new workout routine for a student update_routine — edit routine name, dates, goal, difficulty, etc. archive_routine — archive a routine (status=1, reversible) unarchive_routine — restore archived routine to active (status=0) create_session — add a training session (day) to a routine add_exercise — add an exercise to a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set — use update_serie to configure. update_serie — set reps, weight, rest for a serie. Get serie_id and exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].series[0].id and .idExercSession. Static options: trainingType: 1=Dia da Semana, 2=Numérico goal: 1=Hipertrofia, 2=Redução de gordura, 3=Redução de gordura/hipertrofia, 4=Definição muscular, 5=Condicionamento físico, 6=Qualidade de vida difficulty: 1=Iniciante, 2=Intermediário, 3=Avançado, 4=Adaptação day (session): 1=Domingo, 2=Segunda, 3=Terça, 4=Quarta, 5=Quinta, 6=Sexta, 7=Sábado For destructive operations (delete routine / session / exercise) use mfit_workout_delete. [Flattened action: update_routine] Bulk support: accepts client_ids, routine_ids, session_ids, exercise_ids, exercise_session_ids, serie_ids for batched execution.
Annotations the server declares
- title: mfit_workout_write_update_routine
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mfit_workout_write_update_serieCreate / update workout routines, sessions, and exercises in MFIT.No findings
Why it is in this group
- The name "mfit_workout_write_update_serie" says "write": a word for a change.
Description, as the server wrote it Create / update workout routines, sessions, and exercises in MFIT. Actions: create_routine — create a new workout routine for a student update_routine — edit routine name, dates, goal, difficulty, etc. archive_routine — archive a routine (status=1, reversible) unarchive_routine — restore archived routine to active (status=0) create_session — add a training session (day) to a routine add_exercise — add an exercise to a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set — use update_serie to configure. update_serie — set reps, weight, rest for a serie. Get serie_id and exercise_session_id from mfit_workout get_session → exerciciosMontados.k{id}[0].series[0].id and .idExercSession. Static options: trainingType: 1=Dia da Semana, 2=Numérico goal: 1=Hipertrofia, 2=Redução de gordura, 3=Redução de gordura/hipertrofia, 4=Definição muscular, 5=Condicionamento físico, 6=Qualidade de vida difficulty: 1=Iniciante, 2=Intermediário, 3=Avançado, 4=Adaptação day (session): 1=Domingo, 2=Segunda, 3=Terça, 4=Quarta, 5=Quinta, 6=Sexta, 7=Sábado For destructive operations (delete routine / session / exercise) use mfit_workout_delete. [Flattened action: update_serie] Bulk support: accepts client_ids, routine_ids, session_ids, exercise_ids, exercise_session_ids, serie_ids for batched execution.
Annotations the server declares
- title: mfit_workout_write_update_serie
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
report_bugReport a bug, missing feature, or send feedback.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
Annotations the server declares
- title: Report Bug
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 29Claude Code: allow
connectReturns connection status and URLs.1 finding
Why it is in this group
- The description's first verb is "return": a word for reading.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...nticated:true and empty pending[]. When credentials are missing, returns connect_url for th..."
Description, as the server wrote it Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
Annotations the server declares
- title: Connection Status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_client_files_getRead student files/attachments (diet plans, exams, planners, misc).No findings
Why it is in this group
- The name "mfit_client_files_get" says "get": a word for reading.
Description, as the server wrote it Read student files/attachments (diet plans, exams, planners, misc). Actions: list (all files for a student), get (file detail with sharing info). [Flattened action: get] Bulk support: accepts client_ids, file_ids for batched execution.
Annotations the server declares
- title: mfit_client_files_get
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_client_files_listRead student files/attachments (diet plans, exams, planners, misc).No findings
Why it is in this group
- The name "mfit_client_files_list" says "list": a word for reading.
Description, as the server wrote it Read student files/attachments (diet plans, exams, planners, misc). Actions: list (all files for a student), get (file detail with sharing info). [Flattened action: list] Bulk support: accepts client_ids, file_ids for batched execution.
Annotations the server declares
- title: mfit_client_files_list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_client_getRead students in MFIT.No findings
Why it is in this group
- The name "mfit_client_get" says "get": a word for reading.
Description, as the server wrote it Read students in MFIT. Actions: list — paginated list, filter by status/name get — full student profile list_groups — trainer's custom groups (DYNAMIC — call before creating/updating a student to get valid groupId) Field types — STATIC: status (0=active/1=inactive). [Flattened action: get] Bulk support: accepts client_ids for batched execution.
Annotations the server declares
- title: mfit_client_get
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_client_listRead students in MFIT.No findings
Why it is in this group
- The name "mfit_client_list" says "list": a word for reading.
Description, as the server wrote it Read students in MFIT. Actions: list — paginated list, filter by status/name get — full student profile list_groups — trainer's custom groups (DYNAMIC — call before creating/updating a student to get valid groupId) Field types — STATIC: status (0=active/1=inactive). [Flattened action: list] Bulk support: accepts client_ids for batched execution.
Annotations the server declares
- title: mfit_client_list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_client_list_groupsRead students in MFIT.No findings
Why it is in this group
- The name "mfit_client_list_groups" says "list": a word for reading.
Description, as the server wrote it Read students in MFIT. Actions: list — paginated list, filter by status/name get — full student profile list_groups — trainer's custom groups (DYNAMIC — call before creating/updating a student to get valid groupId) Field types — STATIC: status (0=active/1=inactive). [Flattened action: list_groups] Bulk support: accepts client_ids for batched execution.
Annotations the server declares
- title: mfit_client_list_groups
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_anamnesis_modelsGet available anamnesis form templates (e.g.No findings
Why it is in this group
- The name "mfit_get_anamnesis_models" says "get": a word for reading.
Description, as the server wrote it Get available anamnesis form templates (e.g. PAR-Q) that can be sent to students.
Annotations the server declares
- title: mfit_get_anamnesis_models
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_client_countGet a summary count of active and inactive students.No findings
Why it is in this group
- The name "mfit_get_client_count" says "get": a word for reading.
Description, as the server wrote it Get a summary count of active and inactive students.
Annotations the server declares
- title: mfit_get_client_count
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_client_evaluationsGet evaluations for one or many students: heart rate zones, VO2max, and training frequency.No findings
Why it is in this group
- The name "mfit_get_client_evaluations" says "get": a word for reading.
Description, as the server wrote it Get evaluations for one or many students: heart rate zones, VO2max, and training frequency.
Annotations the server declares
- title: mfit_get_client_evaluations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_client_notesRead notes/observations for one or many students (bulk via client_ids).No findings
Why it is in this group
- The name "mfit_get_client_notes" says "get": a word for reading.
Description, as the server wrote it Read notes/observations for one or many students (bulk via client_ids).
Annotations the server declares
- title: mfit_get_client_notes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_client_workoutsGet all workout routines assigned to one or many students.No findings
Why it is in this group
- The name "mfit_get_client_workouts" says "get": a word for reading.
Description, as the server wrote it Get all workout routines assigned to one or many students. Supports bulk via client_ids.
Annotations the server declares
- title: mfit_get_client_workouts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_exercise_favoritesGet the trainer's favorite exercises.No findings
Why it is in this group
- The name "mfit_get_exercise_favorites" says "get": a word for reading.
Description, as the server wrote it Get the trainer's favorite exercises.
Annotations the server declares
- title: mfit_get_exercise_favorites
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_feedbacksGet all unread workout feedbacks from students.No findings
Why it is in this group
- The name "mfit_get_feedbacks" says "get": a word for reading.
Description, as the server wrote it Get all unread workout feedbacks from students. Each feedback includes: student name, Borg RPE score (1-10 perceived effort), text feedback, workout date/time, duration. Shows which students completed workouts and how they felt.
Annotations the server declares
- title: mfit_get_feedbacks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_financesGet financial overview: transactions in date range, wallet/payment info, seller status.No findings
Why it is in this group
- The name "mfit_get_finances" says "get": a word for reading.
Description, as the server wrote it Get financial overview: transactions in date range, wallet/payment info, seller status.
Annotations the server declares
- title: mfit_get_finances
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_invoicesGet invoices/billing for one or many students (bulk via client_ids).No findings
Why it is in this group
- The name "mfit_get_invoices" says "get": a word for reading.
Description, as the server wrote it Get invoices/billing for one or many students (bulk via client_ids).
Annotations the server declares
- title: mfit_get_invoices
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_profileGet the trainer's own MFIT profile: name, email, plan, payment country.No findings
Why it is in this group
- The name "mfit_get_profile" says "get": a word for reading.
Description, as the server wrote it Get the trainer's own MFIT profile: name, email, plan, payment country.
Annotations the server declares
- title: mfit_get_profile
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_retentionGet student retention dashboard: active clients, engagement rate, growth rate, churn rate, NPS.No findings
Why it is in this group
- The name "mfit_get_retention" says "get": a word for reading.
Description, as the server wrote it Get student retention dashboard: active clients, engagement rate, growth rate, churn rate, NPS. Compare current period vs previous.
Annotations the server declares
- title: mfit_get_retention
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_retention_clientsList students by retention status: AT_RISK (may churn), ABANDONED (stopped training), ACTIVE, or all.No findings
Why it is in this group
- The name "mfit_get_retention_clients" says "get": a word for reading.
Description, as the server wrote it List students by retention status: AT_RISK (may churn), ABANDONED (stopped training), ACTIVE, or all. Shows days since last workout, avg weekly workouts, WhatsApp link. Much more useful than listing clients — this tells you WHO NEEDS ATTENTION.
Annotations the server declares
- title: mfit_get_retention_clients
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_today_checkinsCheck which students trained today.No findings
Why it is in this group
- The name "mfit_get_today_checkins" says "get": a word for reading.
Description, as the server wrote it Check which students trained today. Scans all active students and returns two lists: who_trained and who_didnt. Single call, no need to check one by one.
Annotations the server declares
- title: mfit_get_today_checkins
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_training_frequencyGet which days one or many students trained in a date range.No findings
Why it is in this group
- The name "mfit_get_training_frequency" says "get": a word for reading.
Description, as the server wrote it Get which days one or many students trained in a date range. Returns true/false per day of week.
Annotations the server declares
- title: mfit_get_training_frequency
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_training_rankingRanking of students who trained the most in a period (default: current month).No findings
Why it is in this group
- The name "mfit_get_training_ranking" says "get": a word for reading.
Description, as the server wrote it Ranking of students who trained the most in a period (default: current month). Uses bulk frequency checks and returns top performers.
Annotations the server declares
- title: mfit_get_training_ranking
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_user_exercisesGet custom exercises created by the trainer.No findings
Why it is in this group
- The name "mfit_get_user_exercises" says "get": a word for reading.
Description, as the server wrote it Get custom exercises created by the trainer.
Annotations the server declares
- title: mfit_get_user_exercises
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_get_workout_libraryBrowse the trainer's workout library folders and saved routines.No findings
Why it is in this group
- The name "mfit_get_workout_library" says "get": a word for reading.
Description, as the server wrote it Browse the trainer's workout library folders and saved routines. Use folder_id=0 for the root. Bulk support: accepts folder_ids for batched execution.
Annotations the server declares
- title: mfit_get_workout_library
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_list_accountsList all MFIT accounts linked to this install.No findings
Why it is in this group
- The name "mfit_list_accounts" says "list": a word for reading.
Description, as the server wrote it List all MFIT accounts linked to this install. Returns each account's id, email, label, and an "is_default" flag (true when only one is linked — no need to pass `account` in other tools). When multiple accounts are linked, every other mfit_* tool accepts an optional `account` parameter; pass id, email, or label (full or partial).
Annotations the server declares
- title: mfit_list_accounts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_search_exercisesSearch the exercise library by name (Portuguese or English).No findings
Why it is in this group
- The name "mfit_search_exercises" says "search": a word for reading.
Description, as the server wrote it Search the exercise library by name (Portuguese or English). Returns exercise name, category, muscle group, and video/image URL.
Annotations the server declares
- title: mfit_search_exercises
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_workout_get_routineRead workout routines and sessions in MFIT.No findings
Why it is in this group
- The name "mfit_workout_get_routine" says "get": a word for reading.
Description, as the server wrote it Read workout routines and sessions in MFIT. Actions: get_routine — routine details with all sessions get_session — session prescription with all exercises, series, and exercise IDs [Flattened action: get_routine] Bulk support: accepts routine_ids, session_ids for batched execution.
Annotations the server declares
- title: mfit_workout_get_routine
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mfit_workout_get_sessionRead workout routines and sessions in MFIT.No findings
Why it is in this group
- The name "mfit_workout_get_session" says "get": a word for reading.
Description, as the server wrote it Read workout routines and sessions in MFIT. Actions: get_routine — routine details with all sessions get_session — session prescription with all exercises, series, and exercise IDs [Flattened action: get_session] Bulk support: accepts routine_ids, session_ids for batched execution.
Annotations the server declares
- title: mfit_workout_get_session
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
show_versionShow the current MCP platform and adapter versions.No findings
Why it is in this group
- The name "show_version" says "show": a word for reading.
Description, as the server wrote it Show the current MCP platform and adapter versions.
Annotations the server declares
- title: Show Version
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
toolkit_infoReturns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
Annotations the server declares
- title: Toolkit Info
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- 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 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http mfit https://api.mcp.ai/p_mfitRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__mfit__mfit_list_accounts",
"mcp__mfit__mfit_get_profile",
"mcp__mfit__mfit_client_list",
"mcp__mfit__mfit_client_get",
"mcp__mfit__mfit_client_list_groups",
"mcp__mfit__mfit_get_client_count",
"mcp__mfit__mfit_get_client_notes",
"mcp__mfit__mfit_client_files_list",
"mcp__mfit__mfit_client_files_get",
"mcp__mfit__mfit_get_client_workouts",
"mcp__mfit__mfit_workout_get_routine",
"mcp__mfit__mfit_workout_get_session",
"mcp__mfit__mfit_get_workout_library",
"mcp__mfit__mfit_search_exercises",
"mcp__mfit__mfit_get_exercise_favorites",
"mcp__mfit__mfit_get_user_exercises",
"mcp__mfit__mfit_get_client_evaluations",
"mcp__mfit__mfit_get_training_frequency",
"mcp__mfit__mfit_get_retention",
"mcp__mfit__mfit_get_finances",
"mcp__mfit__mfit_get_invoices",
"mcp__mfit__mfit_get_anamnesis_models",
"mcp__mfit__mfit_get_today_checkins",
"mcp__mfit__mfit_get_training_ranking",
"mcp__mfit__mfit_get_feedbacks",
"mcp__mfit__mfit_get_retention_clients",
"mcp__mfit__show_version",
"mcp__mfit__connect",
"mcp__mfit__toolkit_info"
],
"ask": [
"mcp__mfit__mfit_client_write_create",
"mcp__mfit__mfit_client_write_update",
"mcp__mfit__mfit_client_write_deactivate",
"mcp__mfit__mfit_get_client_notes_write",
"mcp__mfit__mfit_client_files_write",
"mcp__mfit__mfit_workout_write_create_routine",
"mcp__mfit__mfit_workout_write_update_routine",
"mcp__mfit__mfit_workout_write_archive_routine",
"mcp__mfit__mfit_workout_write_unarchive_routine",
"mcp__mfit__mfit_workout_write_create_session",
"mcp__mfit__mfit_workout_write_add_exercise",
"mcp__mfit__mfit_workout_write_update_serie",
"mcp__mfit__report_bug",
"mcp__mfit__marketplace",
"mcp__mfit__authenticate"
],
"deny": [
"mcp__mfit__mfit_client_files_delete",
"mcp__mfit__mfit_workout_delete_routine",
"mcp__mfit__mfit_workout_delete_session",
"mcp__mfit__mfit_workout_delete_exercise"
]
}
}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 mfit. Review it before you use it.
