Connects AI agents to the MFit personal trainer management platform for scheduling and client operations.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The mcp-ai MCP server exposes 48 tools, focused primarily on filesystem and developer capabilities. Its published description reads: "Connects AI agents to the MFit personal trainer management platform for scheduling and client operations". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates mcp-ai F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Data-exfiltration parameters" and "Unguarded destructive tools". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check mcp-ai's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add mcp-ai to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://api.mcp.ai/p_mfitStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
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 multipl
Get the trainer's own MFIT profile: name, email, plan, payment country.
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
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: mfit_get_client_notes_write
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "notes"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: mfit_client_files_delete
Tools that execute commands / write files / make arbitrary requests are exposed without annotations or guards.
nt_files_delete Delete a student file (irreversible). Bulk support: accepts client_iRecommendationAnnotate destructive tools and require human approval.
tool: mfit_workout_write_create_routine
A tool description tries to alter the model’s use of another tool.
a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set —RecommendationDescriptions must describe only their own tool.
tool: mfit_workout_write_update_routine
A tool description tries to alter the model’s use of another tool.
a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set —RecommendationDescriptions must describe only their own tool.
tool: mfit_workout_write_archive_routine
A tool description tries to alter the model’s use of another tool.
a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set —RecommendationDescriptions must describe only their own tool.
tool: mfit_workout_write_unarchive_routine
A tool description tries to alter the model’s use of another tool.
a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set —RecommendationDescriptions must describe only their own tool.
tool: mfit_workout_write_create_session
A tool description tries to alter the model’s use of another tool.
a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set —RecommendationDescriptions must describe only their own tool.
tool: mfit_workout_write_add_exercise
A tool description tries to alter the model’s use of another tool.
a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set —RecommendationDescriptions must describe only their own tool.
tool: mfit_workout_write_update_serie
A tool description tries to alter the model’s use of another tool.
a session (use mfit_search_exercises to find exercise_id). Added with 1 empty set —RecommendationDescriptions must describe only their own tool.
tool: report_bug
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
ck. Include the conversation array with recent messages for reproduction. {"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: marketplace
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
the MCP needs a credential/login, invoke returns a connect link; if it isRecommendationRemove side-channel parameters; constrain tool inputs.
tool: marketplace
A tool description tries to alter the model’s use of another tool.
er-MCP billing; report_bug sends feedback; request_mcp asks us to build aRecommendationDescriptions must describe only their own tool.
tool: authenticate
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
owser, copy the access token. Best: add it to this server's config as a headRecommendationRemove side-channel parameters; constrain tool inputs.
tool: (server instructions)
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
g in and copy a token. No other tools will work until authenticated.RecommendationRemove side-channel parameters; constrain tool inputs.
tool: (server instructions)
A tool description tries to alter the model’s use of another tool.
ion"), call the show_version tool. NEW MCPs/tools/integrations (capabilitiesRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: mfit_client_files_list
One tool both accesses the filesystem and reaches the network. Combining two capability classes in a single tool widens its blast radius and is the substrate for confused-deputy and exfiltration abuse.
ient_files_list Read student files/attachments (diet plans, exams, planners, misc)RecommendationSeparate filesystem and network capabilities into distinct, independently-scoped tools.
tool: mfit_client_files_list
A filesystem tool exposes a path parameter that is a free-form string with no pattern/enum/format constraint, so it accepts absolute paths and "../" traversal. A tool that constrains its path (a rooted `pattern` or an `enum`) does not fire.
unconstrained path parameter "file_id"RecommendationConstrain the path parameter to a rooted allow-list and reject absolute/traversal paths server-side.
tool: mfit_client_files_get
One tool both accesses the filesystem and reaches the network. Combining two capability classes in a single tool widens its blast radius and is the substrate for confused-deputy and exfiltration abuse.
lient_files_get Read student files/attachments (diet plans, exams, planners, misc)RecommendationSeparate filesystem and network capabilities into distinct, independently-scoped tools.
tool: mfit_client_files_get
A filesystem tool exposes a path parameter that is a free-form string with no pattern/enum/format constraint, so it accepts absolute paths and "../" traversal. A tool that constrains its path (a rooted `pattern` or an `enum`) does not fire.
unconstrained path parameter "file_id"RecommendationConstrain the path parameter to a rooted allow-list and reject absolute/traversal paths server-side.
tool: mfit_client_files_delete
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: mfit_client_files_delete
One tool both accesses the filesystem and reaches the network. Combining two capability classes in a single tool widens its blast radius and is the substrate for confused-deputy and exfiltration abuse.
nt_files_delete Delete a student file (irreversible). Bulk support: accepts client_iRecommendationSeparate filesystem and network capabilities into distinct, independently-scoped tools.
tool: mfit_client_files_delete
A filesystem tool exposes a path parameter that is a free-form string with no pattern/enum/format constraint, so it accepts absolute paths and "../" traversal. A tool that constrains its path (a rooted `pattern` or an `enum`) does not fire.
unconstrained path parameter "file_id"RecommendationConstrain the path parameter to a rooted allow-list and reject absolute/traversal paths server-side.
tool: mfit_workout_delete_routine
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: mfit_workout_delete_session
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: mfit_workout_delete_exercise
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: marketplace
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Enables AI agents to issue and manage Brazilian electronic service invoices (NFS-e) through the Nota Fiscal API.
Connects AI agents to the Omie ERP platform for financial and operational management in Brazilian businesses.
Access 99Pay financial data via Brazil's Open Finance for AI assistants.
Connects to Olist Tiny ERP for products, stock, orders, invoices, receivables, contacts, shipping, CRM, and price lists.
Connects to Nuvemshop stores for products, orders, customers, categories, and coupons through the official API.
Connects to Microvix retail ERP for products, inventory, customers, suppliers, sales, billing, orders, sellers, and stores.
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
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
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 (rev
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 (rev
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 (rev
Get a summary count of active and inactive students.
Read notes/observations for one or many students (bulk via client_ids).
Save (overwrite) notes/observations for a student. Replaces any existing notes text. Bulk support: accepts client_ids for batched execution.
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_
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_i
Update a student file: rename or change sharing settings. Bulk support: accepts file_ids for batched execution.
Delete a student file (irreversible). Bulk support: accepts client_ids, file_ids for batched execution.
Get all workout routines assigned to one or many students. Supports bulk via client_ids.
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:
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:
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
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
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
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
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
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
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
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
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
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
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.
Search the exercise library by name (Portuguese or English). Returns exercise name, category, muscle group, and video/image URL.
Get the trainer's favorite exercises.
Get custom exercises created by the trainer.
Get evaluations for one or many students: heart rate zones, VO2max, and training frequency.
Get which days one or many students trained in a date range. Returns true/false per day of week.
Get student retention dashboard: active clients, engagement rate, growth rate, churn rate, NPS. Compare current period vs previous.
Get financial overview: transactions in date range, wallet/payment info, seller status.
Get invoices/billing for one or many students (bulk via client_ids).
Get available anamnesis form templates (e.g. PAR-Q) that can be sent to students.
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.
Ranking of students who trained the most in a period (default: current month). Uses bulk frequency checks and returns top performers.
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
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 c
Show the current MCP platform and adapter versions.
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
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
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
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
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 conne