{"apiVersion":"v1","directorySlug":"aynstyn-mcp-a31062e11e","title":"Aynstyn","description":"Meet Aynstyn, your personal AI Exam Agent for competitive exam mastery. Our MAPPT framework identifies knowledge gaps, builds deep competence, and empowers critical thinking for CAT, UPSC, GRE, TOEFL, and GATE.","pageUrl":"https://www.mcpbundles.com/skills/aynstyn-mcp-a31062e11e","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.aynstyn.com/mcp","hostedMcpUrl":null,"toolCount":22,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.aynstyn/aynstyn-mcp-a31062e11e","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_user_profile","description":"Returns the signed-in user's profile at a glance: credit balance, subscription plan, phone verification status, country, and whether autonomous Cal.com booking is available. Call this at the START of any conversation before recommending actions that cost credits or require booking — it tells you upfront whether the user can afford what they want and whether book_appointment will work autonomously. Do NOT skip this and assume the user has credits. Key fields: credits (integer), canBookAutonomousl","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_user_profile","displayName":"get_user_profile","title":"get_user_profile"},{"name":"get_interview_slots","description":"Fetch real available interview/practice session slots from the Aynstyn calendar for the next few days. Call this first when the user wants to book a session — present the slots to the user so they can confirm a time, then call book_appointment with the chosen slot. If the user already said a specific time (e.g. \"tomorrow at 3pm\"), fetch slots and pick the nearest available one automatically.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"mode":{"enum":["phone","web"],"type":"string"},"timezone":{"type":"string"},"daysAhead":{"type":"number","maximum":14,"minimum":1},"sessionType":{"enum":["interview","practice"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_interview_slots","displayName":"get_interview_slots","title":"get_interview_slots"},{"name":"book_appointment","description":"Book an interview or practice session. If the user has a Twilio-verified phone number on their account, the booking is completed fully autonomously via Cal.com — no URL, no hand-off. If no verified phone, returns a pre-filled booking URL instead. Always call get_interview_slots first to get a confirmed available slot ISO string. Do NOT guess slot times — only use ISO values returned by get_interview_slots.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["subject","slot"],"properties":{"mode":{"enum":["phone","web"],"type":"string"},"slot":{"type":"string"},"subject":{"type":"string","minLength":1},"timezone":{"type":"string"},"sessionType":{"enum":["interview","practice"],"type":"string"}},"additionalProperties":false},"logicalName":"book_appointment","displayName":"book_appointment","title":"book_appointment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"assess_knowledge","description":"Assess a user's knowledge on any subject. The user writes their unprompted explanation of what they know — NOT a question. Narrow subjects produce much better results: prefer \"React hooks\" over \"React\", \"Monetary policy\" over \"Economics\". Scores 0–100 across MAPPT dimensions (Memorisation, Application, Pattern recognition, Problem-solving, Transfer). Returns covered topics, missing topics, and personalised feedback. Costs 10 credits. If the user has scored below 60 on the same subject twice, rec","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["subject","input"],"properties":{"input":{"type":"string","maxLength":5000,"minLength":10},"subject":{"type":"string","maxLength":200,"minLength":1}},"additionalProperties":false},"logicalName":"assess_knowledge","displayName":"assess_knowledge","title":"assess_knowledge","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_team_assessment","description":"Create a team knowledge assessment on a shared subject. The creator pays 25 credits — individual members take it for free. Generates an invite link to share. Each member submits their own explanation independently; results are aggregated into a team heatmap showing collective strengths and gaps. Best used by managers or team leads to diagnose shared knowledge gaps before training, onboarding, or a project kickoff. After creating, call invite_to_team to send email invitations.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["title","subject"],"properties":{"subject":{"type":"string","maxLength":200,"minLength":1},"deadline":{"type":"string"},"maxMembers":{"type":"number","maximum":10,"minimum":2}},"additionalProperties":false},"logicalName":"create_team_assessment","displayName":"create_team_assessment","title":"create_team_assessment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"invite_to_team","description":"Send email invitations to team members for a team assessment. Only the team creator can send invitations. Up to 10 emails per call. Members receive a direct link to take the assessment — they do not need an Aynstyn account to join. Call get_team_results after members complete to see the aggregate heatmap.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["teamAssessmentId","emails"],"properties":{"emails":{"type":"string","minLength":1},"teamAssessmentId":{"type":"number"}},"additionalProperties":false},"logicalName":"invite_to_team","displayName":"invite_to_team","title":"invite_to_team","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_team_results","description":"Get the results dashboard for a team assessment. Shows member completion status, individual scores, and aggregate team statistics (average, median, min/max, most covered/missed topics across the team). The \"most missed topics\" field is the most actionable output — it identifies the shared knowledge gaps the team should address together. Requires being a member or creator of the team.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["teamAssessmentId"],"properties":{"teamAssessmentId":{"type":"number"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_team_results","displayName":"get_team_results","title":"get_team_results"},{"name":"get_assessment_history","description":"Get the user's raw past assessment history — scores, covered/missing topics, and feedback for each session. Use this when you need the underlying data. If you want a synthesised gap analysis with recommended next steps, use diagnose_learner instead — it does the interpretation for you.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","maximum":50,"minimum":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_assessment_history","displayName":"get_assessment_history","title":"get_assessment_history"},{"name":"list_playbook_templates","description":"List available playbook templates. A playbook is a curated multi-step learning programme for a common goal (e.g. \"Prepare for a system design interview\", \"Improve communication skills\"). Each step is a structured mix of assessments, AI interviews, and reflections. Always call this before start_playbook_journey — never assume a playbook name or slug.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_playbook_templates","displayName":"list_playbook_templates","title":"list_playbook_templates"},{"name":"start_playbook_journey","description":"Start a playbook journey for the user. Creates a full structured run with actions, assignments, and reflection prompts. Must call list_playbook_templates first to get a valid playbook slug — do not guess slugs. Use playbooks for users who want a pre-built multi-week programme rather than ad hoc assessments.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"timezone":{"type":"string","maxLength":80},"startDate":{"type":"string"},"templateId":{"type":"integer","exclusiveMinimum":0},"sessionMode":{"enum":["web","phone"],"type":"string"},"templateSlug":{"type":"string","maxLength":140,"minLength":1},"plannerAutocreate":{"type":"boolean"}},"additionalProperties":false},"logicalName":"start_playbook_journey","displayName":"start_playbook_journey","title":"start_playbook_journey","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_interview_history","description":"Get the user's AI interview and practice session history. Returns status, duration, and timestamps for recent voice sessions. Useful for understanding whether the user has done voice-based deep-dives on their weak topics, which are not reflected in assess_knowledge scores.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","maximum":50,"minimum":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_interview_history","displayName":"get_interview_history","title":"get_interview_history"},{"name":"send_team_reminder","description":"Send reminder emails to team members who have not yet completed a team assessment. Creator-only. Rate-limited to 2 reminders per week with at least 3 days between sends. Check get_team_results first to confirm there are actually incomplete members before calling this.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["teamAssessmentId"],"properties":{"teamAssessmentId":{"type":"number"}},"additionalProperties":false},"logicalName":"send_team_reminder","displayName":"send_team_reminder","title":"send_team_reminder","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_pending_team_assessments","description":"List team assessments the signed-in user has been invited to but not yet completed. Use this to surface outstanding commitments or to prompt the user to finish a team assessment before their team's deadline.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_pending_team_assessments","displayName":"get_pending_team_assessments","title":"get_pending_team_assessments"},{"name":"create_learning_goal","description":"Create a named learning goal with an auto-generated ordered topic path. Each topic becomes an assessable milestone tracked over time. Use after a gap is identified (e.g. from diagnose_learner or a low assess_knowledge score). The goal title should be specific — \"Master React hooks\" not \"Learn React\". For the topic path itself without creating a goal, use generate_learning_path instead.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["goal"],"properties":{"goal":{"type":"string","maxLength":500,"minLength":3},"targetDate":{"type":"string"}},"additionalProperties":false},"logicalName":"create_learning_goal","displayName":"create_learning_goal","title":"create_learning_goal","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_learning_goals","description":"List the user's active learning goals with their topic paths and progress counts (how many topics assessed vs total). Use this to understand what structured goals already exist before creating a new one — avoid creating duplicate goals for the same subject.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_learning_goals","displayName":"list_learning_goals","title":"list_learning_goals"},{"name":"schedule_ai_interview","description":"Start a voice-based AI interview session on a subject. The AI asks probing follow-up questions to expose depth of understanding — it goes beyond what text assessments can surface. Returns a direct link to begin immediately. Costs 6 credits per minute. Prefer this over assess_knowledge when: (1) the user has scored below 60 on the same subject twice, (2) the subject benefits from conversational probing (e.g. system design, soft skills, ethics), or (3) the user explicitly wants a back-and-forth co","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["subject"],"properties":{"subject":{"type":"string","maxLength":200,"minLength":1},"interviewType":{"type":"string"}},"additionalProperties":false},"logicalName":"schedule_ai_interview","displayName":"schedule_ai_interview","title":"schedule_ai_interview","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"schedule_practice_session","description":"Schedule a targeted practice session focused on weak topics from previous assessments. Unlike schedule_ai_interview (which is a general interview), this pre-loads the session with the user's known gap areas so the AI can drill specifically on those. Use this when the user already has assessment history and wants to work on specific missing topics rather than a full subject re-assessment.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"subject":{"type":"string","maxLength":200,"minLength":1},"assessmentId":{"type":"number"},"preferredMode":{"enum":["phone","web"],"type":"string"}},"additionalProperties":false},"logicalName":"schedule_practice_session","displayName":"schedule_practice_session","title":"schedule_practice_session","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"generate_learning_path","description":"Generate a structured, ordered list of 5–10 topics to master for a given learning goal. Returns assessable topic milestones without creating a saved goal. Costs 5 credits. The goal input should be specific enough to fit in 5–10 topics — if it produces more, the goal is too broad and should be split. Use create_learning_goal instead if you want to save the path and track progress over time.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["goal"],"properties":{"goal":{"type":"string","maxLength":500,"minLength":5}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"generate_learning_path","displayName":"generate_learning_path","title":"generate_learning_path"},{"name":"diagnose_learner","description":"Synthesise the user's full assessment history into a prioritised gap analysis with concrete next steps. This is the single semantic call that replaces manually chaining get_assessment_history + reasoning over scores + deciding what to do next. Use this whenever the user asks \"where should I focus?\", \"what are my weak areas?\", \"what should I study next?\", or any similar orientation question. Returns: persistent weak topics (appear as missing across multiple sessions), stagnant subjects (scored <","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"number","maximum":50,"minimum":5}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"diagnose_learner","displayName":"diagnose_learner","title":"diagnose_learner"},{"name":"plan_autonomous_goal","description":"Take a complex learning goal and generate a multi-step execution plan that the agent will run autonomously. The planner uses AI to decompose the goal into ordered tool calls (assessments, gap analysis, learning goals, interviews, practice sessions). Returns the plan with credit estimates for user review — the user MUST approve before execution. Works for any exam prep, skill building, or career readiness goal. Examples: \"Get me ready for UPSC in 3 months\", \"Master system design interviews\", \"Pre","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["goal"],"properties":{"goal":{"type":"string","maxLength":1000,"minLength":5},"timezone":{"type":"string"},"useAdvisor":{"type":"boolean"}},"additionalProperties":false},"logicalName":"plan_autonomous_goal","displayName":"plan_autonomous_goal","title":"plan_autonomous_goal","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"execute_autonomous_plan","description":"Execute an approved autonomous plan. The plan must have been created by plan_autonomous_goal. The user MUST confirm before execution — never call this without explicit user approval. Checks credit balance, then executes steps sequentially. Each step's results feed into the next. If a required step fails, execution pauses and can be resumed later. Call get_plan_status to check progress.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["planId","confirm"],"properties":{"planId":{"type":"integer","exclusiveMinimum":0},"confirm":{"type":"boolean"}},"additionalProperties":false},"logicalName":"execute_autonomous_plan","displayName":"execute_autonomous_plan","title":"execute_autonomous_plan","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_plan_status","description":"Get the current status and progress of an autonomous plan. Shows step-by-step progress, completed results, and any errors. Use this to check on a plan that is running, completed, paused, or failed. If planId is omitted, returns the most recent plan.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"planId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_plan_status","displayName":"get_plan_status","title":"get_plan_status"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Aynstyn&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AuYXluc3R5bi5jb20vbWNwIn0%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Aynstyn%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.aynstyn.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Aynstyn%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.aynstyn.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Aynstyn&connectorUrl=https%3A%2F%2Fmcp.aynstyn.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Aynstyn\" --url \"https://mcp.aynstyn.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aynstyn-mcp-a31062e11e","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aynstyn-mcp-a31062e11e/tools/{tool}","mcpServerUrl":"https://mcp.aynstyn.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aynstyn-mcp-a31062e11e?live=1"}