{
  "schema_version": "2025-06-18",
  "name": "GLP-101",
  "title": "GLP-101 — GLP-1 Medication Education",
  "description": "GLP-101 is an educational platform for GLP-1 medication learning. Connect over MCP to browse lessons and collections, search a clinically-reviewed knowledge base, look up GLP-1 providers, and track learning progress and daily habits — scoped to your account and subscription tier.",
  "version": "1.0.0",
  "vendor": {
    "name": "GLP-101",
    "url": "https://dose.glp-101.com"
  },
  "documentation_url": "https://dose.glp-101.com/",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://dose.glp-101.com/mcp"
  },
  "authentication": {
    "type": "oauth2",
    "protected_resource_metadata": "https://dose.glp-101.com/.well-known/oauth-protected-resource",
    "authorization_servers": [
      "https://glp-101-prod.us.auth0.com/"
    ]
  },
  "capabilities": {
    "tools": true,
    "resources": true,
    "prompts": false
  },
  "tools": [
    {
      "name": "get_help",
      "description": "List all available GLP-101 tools and what they can do. Shows only tools you have permission to use."
    },
    {
      "name": "get_home",
      "description": "GLP-101 Home - Main navigation and welcome screen"
    },
    {
      "name": "list_collections",
      "description": "Browse GLP-101 lesson collections. Shows available topics or a specific collection. When listing, paginated: returns up to `limit` collections (default 10) starting at `offset`; use the response's `pagination.nextOffset` while `pagination.hasMore` is true to page through the full set."
    },
    {
      "name": "list_lessons",
      "description": "View GLP-101 lessons. Shows lesson cards or filtered by collection. Paginated: returns up to `limit` lessons (default 10) starting at `offset`; the response's `pagination.nextOffset` pages through the full set when `pagination.hasMore` is true."
    },
    {
      "name": "search_lessons",
      "description": "Search GLP-101 lessons by keyword. Searches across lesson titles, descriptions, and video transcripts. Returns matching lessons ranked by relevance with context snippets. Paginated: returns up to `limit` results (default 10) starting at `offset`; use the response's `pagination.nextOffset` while `pagination.hasMore` is true to page through additional matches."
    },
    {
      "name": "search_providers",
      "description": "Search the GLP-1 provider directory to find where consumers can access GLP-1 medications. Covers 40+ providers across 10 access channels including telehealth programs, retail pharmacies, compounding pharmacies, manufacturer hubs, and discount platforms. Returns provider details, pricing info, safety warnings, and access channels."
    },
    {
      "name": "get_lesson",
      "description": "Get a single lesson by slug or ID. Returns lesson details including title, description, tags, and resources."
    },
    {
      "name": "get_collection",
      "description": "Get a single collection by slug or ID with its lessons."
    },
    {
      "name": "get_provider",
      "description": "Get detailed information about a single GLP-1 provider by slug. Returns provider details including channels, medications, pricing, safety warnings, and clinical notes."
    },
    {
      "name": "calculate_glp1_cost",
      "description": "Estimate the monthly and total cost of a GLP-1 weight-loss course. Takes an optional medication, payment model, insurance answer, and either a weight goal or a duration. Returns an itemized estimate with the cheapest path, a per-option comparison, the assumptions used, an 'as of' date, and an educational-estimate disclaimer. Weight inputs are never stored."
    },
    {
      "name": "search_recipes",
      "description": "Search the GLP-101 recipe library — a large collection including celebrity-chef and purpose-built GLP-1-friendly meals. Filter by meal type, cuisine, gluten-free, prep time, and GLP-1 side-effect tags (nausea-friendly, early-satiety-friendly, constipation-support, and more). Returns recipe summaries with attribution. Recipes are food, not medical advice."
    },
    {
      "name": "get_recipe",
      "description": "Get full details for a single recipe by slug — ingredients, instructions, nutrition, protein swaps, gluten notes, and attribution. Recipes are food, not medical advice."
    },
    {
      "name": "get_profile",
      "description": "View your GLP-101 profile with learning progress, settings, and account information."
    },
    {
      "name": "update_profile",
      "description": "Update your profile information (display name, avatar). Requires authentication."
    },
    {
      "name": "get_progress",
      "description": "Get your learning progress including lessons started/completed, collection progress, and stats."
    },
    {
      "name": "track_progress",
      "description": "Update learning progress. Can save video playback position or mark a lesson as complete. Requires authentication."
    },
    {
      "name": "check_in",
      "description": "Record a daily habit check-in. Tracks nutrition, movement, hydration, sleep, medication, and togetherness."
    },
    {
      "name": "log_tracking",
      "description": "Log a medication dose, side effect, or meal note for GLP-1 tracking. Supports three entry types: medication (taken/not taken), symptom (category + severity), and meal_note (free text). Date defaults to today if omitted."
    },
    {
      "name": "get_tracking_summary",
      "description": "Get a summary of GLP-1 medication tracking data including adherence stats, injection-cycle symptom patterns, severity trends, and top symptoms. Covers the last 7, 30, or 90 days (default: 30 days). Requires authentication."
    },
    {
      "name": "list_drops",
      "description": "List drops for a lesson. Returns unlocked drops and locked previews with tier/progress indicators, plus narration hints for the agent."
    },
    {
      "name": "get_partner_activities",
      "description": "Get the partner activities available to you based on your referring partner (e.g., Calm, Oura). Returns your attributed partner and its suggested activities, or nothing if you have no partner."
    },
    {
      "name": "get_pathway",
      "description": "Get the learner's current GLP-1 pathway: the ordered curriculum of lessons, collections, and partner activities, with completion state and progress. Partner activities appear only when relevant to the user."
    },
    {
      "name": "complete_pathway_activity",
      "description": "Mark a partner activity in your pathway as done (self-reported). Idempotent — repeating is safe. Use the activity slug from get_pathway."
    },
    {
      "name": "complete_curriculum_item",
      "description": "Check off any item in your pathway curriculum — a lesson, a collection, a feed card, or a partner activity — by hand. Works alongside automatic completion (finishing a video still completes a lesson on its own). Idempotent — repeating is safe. Marking a collection complete does not change the lessons inside it. Use the slug from get_pathway; pass id only when no slug is known. Un-checking is not available here — use the app."
    },
    {
      "name": "select_pathway",
      "description": "Switch the learner to a different GLP-1 pathway. Pathway choice is not permanent — the user can switch anytime. Use the pathway slug."
    },
    {
      "name": "favorite",
      "description": "Save an item to the user's favorites so they can come back to it later. Works for five content types: collections, lessons, feed cards, lesson resources, and GLP-1 providers. Idempotent — favoriting an already-saved item succeeds without creating a duplicate. Use list_favorites to browse what is saved and unfavorite to remove one."
    },
    {
      "name": "unfavorite",
      "description": "Remove an item from the user's favorites. Works for the same five content types as favorite: collections, lessons, feed cards, lesson resources, and GLP-1 providers. Idempotent — unfavoriting something that was never saved succeeds without error. Only the favorite is removed; the content itself is untouched."
    },
    {
      "name": "list_favorites",
      "description": "List the items the user has saved to their favorites — collections, lessons, feed cards, lesson resources, and GLP-1 providers in one flat list, newest first. Filter to a single kind with `targetType`. Paginated: returns up to `limit` favorites (default 10, max 50) starting at `offset`; page through with `pagination.nextOffset` while `pagination.hasMore` is true. Items whose content is no longer available are omitted."
    },
    {
      "name": "search_knowledge",
      "description": "Ask questions about GLP-1 medications and get AI-generated answers based on lesson content. Uses semantic search over video transcripts to find relevant information and synthesize accurate, sourced responses."
    },
    {
      "name": "play_video",
      "description": "Play a lesson video with Mux streaming. Provide either lessonId or lessonSlug to identify the video."
    },
    {
      "name": "list_resources",
      "description": "List downloadable lesson resources (worksheets, guides, links) for a lesson or tag. Returns title, type, parent lesson, and a resolvable URL for paid users. Requires a paid subscription."
    },
    {
      "name": "get_resource",
      "description": "Get a single downloadable lesson resource by id. Returns title, type, parent lesson, and a resolvable URL for paid users. Requires a paid subscription."
    }
  ]
}