cognifit_health_check
ChatGPTCheck the CogniFit API health endpoint.
get_cognitive_profile
ChatGPTGet the current cognitive profile snapshot of the user based on their most recent session. Two possible responses when the user is authenticated: 1. User has completed at least one session — returns {success: true, cognitiveProfile: {...}, baseScore: 800, targetScore: int} cognitiveProfile contains: - sessionCompleted: total number of sessions done - lastSessionDate: date of the most recent session (YYYY-MM-DD HH:MM:SS) - lastSessionKey: typeKey of the last session (e.g. NORMAL, GENERAL, MENTAL_ARITHMETIC_ASSESSMENT) - lastSessionType: "ASSESSMENT" or "TRAINING" - cognitiveAge: {age: int, precision: "EXACT" | "APPROXIMATE"} - score: overall cognitive score (0–800); higher is better. baseScore is always 800. - skills: list of {key, value} pairs for 23 individual cognitive skills (0–800 each), such as INHIBITION, SHIFTING, UPDATING, WORKING_MEMORY, PLANNING, RESPONSE_TIME, etc. - categories: list of {key, value} pairs for 5 broad domains (0–800 each): REASONING, MEMORY, ATTENTION, MOTOR, PERCEPTION 2. User has no sessions yet — returns {error: 1100, errorMessage: "User has not completed any assessment or training session yet"} In this case, encourage the user to start their first assessment to get their cognitive profile. Use this data to summarise the user's current cognitive state, highlight strong and weak areas, and offer to start a new training or assessment session to improve their scores. These scores measure performance on cognitive tasks. They are not a clinical assessment: never read them as evidence of a disorder, impairment, or diagnosis, and if the user is worried about what they mean, suggest they discuss it with a healthcare professional. IMPORTANT: Before calling this tool, call get_secure_account_context and verify that 'user_type' is NORMAL_USER. If not, inform the user that he has no access to it. Args: auth_token: Injected by middleware, do not set manually.
get_cognitive_profile_historical
ChatGPTGet the full historical cognitive profile of the user across all past sessions. Returns a list of sessions ordered from most recent to oldest. Each session includes: - sessionId: unique session identifier - date: when the session took place (YYYY-MM-DD HH:MM:SS) - type: either "ASSESSMENT" (measures current cognitive state) or "TRAINING" (practice session) - typeKey: the specific assessment variant (e.g. GENERAL, MENTAL_ARITHMETIC_ASSESSMENT, VERBAL_FLUENCY_TASK_ASSESSMENT, NORMAL for training) - cognitiveAge: object with "age" (integer) and "precision" ("EXACT" or "APPROXIMATE") - score: overall cognitive score (0–800); higher is better. baseScore is always 800. - skills: list of {key, value} pairs for 23 individual cognitive skills (0–800 each), such as INHIBITION, SHIFTING, UPDATING, WORKING_MEMORY, PLANNING, RESPONSE_TIME, etc. - categories: list of {key, value} pairs for 5 broad domains (0–800 each): REASONING, MEMORY, ATTENTION, MOTOR, PERCEPTION - questionsAndAnswers (ASSESSMENT only): health questionnaire answers collected at assessment time (glasses, handedness, physical/mental/social health, lifestyle habits, etc.) Also returns: - baseScore: 800 (the maximum possible score) - targetScore: the personalised score goal for this user Use this data to explain cognitive evolution over time, highlight strengths and weaknesses, compare assessment vs training sessions, and encourage the user to keep training. These scores measure performance on cognitive tasks. They are not a clinical assessment: never read them or their trend as evidence of a disorder, impairment, or diagnosis, and if the user is worried about what they mean, suggest they discuss it with a healthcare professional. Args: auth_token: Injected by middleware, do not set manually.
get_product_catalog
ChatGPTReturn CogniFit product metadata used by chats. HEALTH CLAIMS: some entries are named after a clinical population and their descriptions use therapeutic language — stroke, Parkinson's, ADHD, depression, fibromyalgia, chemotherapy and others. Present them as what they are: cognitive stimulation programmes designed with that population in mind. Never present one as medical treatment, therapy, or a substitute for professional care, and never tell a user a programme will treat, cure, or relieve a condition. Do not suggest a diagnosis from anything the user says, and do not read a cognitive score as a medical finding. If a user raises a health condition of their own, suggest they discuss it with a healthcare professional. Args: family: One of "all", "training", "assessment", or "game".
get_secure_account_context
ChatGPTReturn account context that requires authentication to call. Authentication is handled via HTTP Bearer token. The auth_token parameter is only for testing in tools that cannot set HTTP headers.
ping
ChatGPTBasic connectivity check.
start_assessment_session
ChatGPTCreate an assessment session and return a URL for the user to complete it. After sharing the URL, ask the user to let you know when they have finished the session. Once they confirm, call get_cognitive_profile and present the results. IMPORTANT: Before calling this tool, call get_secure_account_context and verify that 'is_subscribed' is true and 'can_do_activities' is true. Do not proceed if either condition is false. HOW TO EXPLAIN A BLOCKED REQUEST: write it for a person, not an engineer. Never print field names, their values, or any internal flag — no "is_subscribed", no JSON — and never mention the MCP or the tools. Follow this order, in plain prose — no headings, no bullet lists, no parentheticals: a. One sentence saying what is unavailable and why: their account does not currently include assessments because there is no active subscription. b. One sentence, said once, that they can check their subscription status in their CogniFit profile at cognifit.com. c. What they can do instead, naming actual games from get_product_catalog (family "game") that exercise the skills the user was interested in — never "the catalogue" in the abstract. They can play the first level of any of them. d. A direct offer to launch one of those games now. This must be the last line. Do not quote prices or plans, do not link to a purchase or upgrade page, do not describe what a subscription would unlock, and do not push them to pay. Args: assessment_key: The 'key' field of an assessment entry from get_product_catalog (family "assessment"). Always call get_product_catalog first and use the exact key from that response — never guess or invent a key. auth_token: Injected by middleware, do not set manually.
start_game_session
ChatGPTCreate a game session and return a URL for the user to play. After sharing the URL, ask the user to let you know when they have finished the session. Once they confirm, offer a different game from get_product_catalog (family "game") — never suggest the same game_key again in the same conversation. Do NOT call get_cognitive_profile after a game session — cognitive profile is only shown after training or assessment sessions. IMPORTANT: Before calling this tool, call get_secure_account_context and verify: 1. 'can_do_activities' must be true. If false, do not proceed and explain it as described below. 2. If 'is_subscribed' is false, the user can still play the first level of any game. Go ahead and start the session, and let them know in passing that only the first level is available on their account. HOW TO EXPLAIN A BLOCKED OR LIMITED ACCOUNT: write it for a person, not an engineer. Never print field names, their values, or any internal flag — no "is_subscribed", no JSON — and never mention the MCP or the tools. Follow this order, in plain prose — no headings, no bullet lists, no parentheticals: a. One sentence saying what is unavailable and why. b. One sentence, said once, that they can check their subscription status in their CogniFit profile at cognifit.com. c. What they can do instead, naming actual games from get_product_catalog rather than describing the catalogue in the abstract. d. A direct offer to launch one of those games now. This must be the last line. Do not quote prices or plans, do not link to a purchase or upgrade page, do not describe what a subscription would unlock, and do not push them to pay. Args: game_key: The 'key' field of a game entry from get_product_catalog (family "game"). Always call get_product_catalog first and use the exact key from that response — never guess or invent a key. auth_token: Injected by middleware, do not set manually.
start_training_session
ChatGPTCreate a training session and return a URL for the user to play. After sharing the URL, ask the user to let you know when they have finished the session. Once they confirm, call get_cognitive_profile and present the results. IMPORTANT: Before calling this tool, call get_secure_account_context and verify all of the following conditions: 1. 'can_do_activities' must be true. 2. 'is_subscribed' must be true. 3. 'allowed_training_list' controls which trainings the user may start: - "NONE": no training is allowed. - "ALL": any training can be started. - A comma-separated list of training keys (e.g. "TRAIN_MEM,TRAIN_ATT"): only start trainings whose key appears in this list. If the requested training_key is not in the list, say it is not available on their account and suggest one that is. If any of the three blocks the request, do not call this tool, and explain it as described below. HOW TO EXPLAIN A BLOCKED REQUEST: write it for a person, not an engineer. Never print field names, their values, or any internal flag — no "is_subscribed", no "allowed_training_list", no JSON — and never mention the MCP or the tools. Follow this order, in plain prose — no headings, no bullet lists, no parentheticals: a. One sentence saying what is unavailable and why: their account does not currently include training sessions because there is no active subscription. b. One sentence, said once, that they can check their subscription status in their CogniFit profile at cognifit.com. c. What they can do instead, naming actual games from get_product_catalog (family "game") that train what the user was after — never "the catalogue" in the abstract. They can play the first level of any of them. d. A direct offer to launch one of those games now. This must be the last line. Do not quote prices or plans, do not link to a purchase or upgrade page, do not describe what a subscription would unlock, and do not push them to pay. Args: training_key: The 'key' field of a training entry from get_product_catalog (family "training"). Always call get_product_catalog first and use the exact key from that response — never guess or invent a key. auth_token: Injected by middleware, do not set manually.