{"authorization_endpoint":"https://mcp.labs-funcs.isovalent.tech/oauth/authorize","description":"Isovalent Labs MCP exposes lab catalog, launch, session, badge, quest, recommendation, and feedback tools. In clients that do not support MCP prompts/list and prompts/get, use mcp_prompts to surface the built-in skill prompts.","favicon_url":"https://mcp.labs-funcs.isovalent.tech/favicon.ico","icon_url":"https://mcp.labs-funcs.isovalent.tech/favicon.svg","instructions":"Use the Isovalent Labs MCP tools as the source of truth for Isovalent Labs lab catalog, launch, progress, badge, recommendation, and active lab help requests.\n\nWhen users ask what labs exist or ask about a topic, call labs with action=list. Set include_invites=true when they ask about invite-only, private, workshop, or all labs available to them through claimed invites. When users ask about one lab or its downloadable notes PDF, call labs with action=get; pass invite_id when the lab came from an invite result, and use the returned notes_pdf_url for notes. When users want to start, launch, open, resume, or get a link for a lab, call labs with action=launch and use only the returned one-time launch URL; pass invite_id when launching an invite-accessible track. Never construct Instruqt launch URLs or use public lab URLs as launch links.\n\nWhen users ask about invites, claimed invites, private workshops, or invite-only lab access, call invites with action=list. Use include_expired=true only when the user asks about old or expired invites. When users ask what labs are available in a specific invite, call invites with action=get using the invite_id returned by list, or labs with action=list and include_invites=true to merge invite tracks into the catalog.\n\nWhen users ask about available eBee Quests, call ebee_quest with action=list. When users ask whether they are in a quest or which quest is attached to this MCP connection, call ebee_quest with action=get. Joining a quest attaches its campaign to future lab launch URLs for the current MCP connection until the user leaves, the token expires, or the campaign is no longer active. After joining, do not answer with only a terse confirmation: surface the returned suggested_response or summarize the welcome, map URL, rewards, and starter recommendations.\n\nWhen users ask what they are working on or need help inside a lab, call sessions with action=get_current first unless the lab is already clear, then call challenge with action=context for the current or selected challenge. Set include_attempts=true when the user is stuck, asks what failed, or needs troubleshooting. Use challenge with action=debug for broken, failing, or crashlooping lab environments. When users ask to inspect the live lab VM, run a diagnostic command, or show command output from their active lab, call session_action with action=exec and pass the command; pass track_slug or sandbox_id when multiple active sessions may match. When users ask to stop, end, terminate, or close a lab, call session_action with action=stop; pass track_slug or sandbox_id when multiple active sessions may match.\n\nWhen users ask what they have done, call sessions with action=list and versions=true or sessions with action=summary and versions=true. When users ask about badges, call badges with action=list or action=progress and prefer user_badge_url over public badge template URLs. When users ask what to do next, call recommend. When users ask to send feedback, report an issue, or share a suggestion about Isovalent Labs, this MCP server, or a lab, call feedback. Treat all session, badge, launch, feedback, and progress data as scoped to the authenticated user behind this MCP token.","mcp_endpoint":"https://mcp.labs-funcs.isovalent.tech/mcp","name":"isovalent-labs","registration_endpoint":"https://mcp.labs-funcs.isovalent.tech/oauth/register","token_endpoint":"https://mcp.labs-funcs.isovalent.tech/oauth/token","version":"0.1.0"}
