Skip to main content
Glama

Khan Academy MCP Server

An open-source Model Context Protocol (MCP) server that lets AI assistants search, browse, and read Khan Academy's educational content. No API key required.

Quick Start

npx khanmcp

Or install globally:

npm install -g khanmcp
khanacademy-mcp

Related MCP server: Reddit MCP Server

Claude Desktop Configuration

Add this to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "khanacademy": {
      "command": "npx",
      "args": ["-y", "khanmcp"]
    }
  }
}

Tools

Tool

Description

search

Search Khan Academy for videos, articles, exercises, and courses

list_subjects

List all top-level subjects and popular courses

get_topic_tree

Browse the subject/topic hierarchy by slug with configurable depth

get_content

Get details about a specific content item (video, article, exercise)

get_course

Get full course structure with units, lessons, and content items

get_transcript

Get video transcripts (timestamped or full text)

get_article

Read the full text content of a Khan Academy article

get_lesson

Get all content items in a specific lesson

embed_video

Embed a video with thumbnail image, metadata, chapters, and optional transcript

get_exercise

Get exercise details with related study content (videos, articles) and practice URL

get_quiz

List all quizzes, unit tests, and course challenge for a course with prep material

study_guide

Build a structured study plan for any topic

Tool Details

query: string    — Search query (e.g., "photosynthesis", "quadratic formula")
limit?: number   — Max results (1-30, default: 10)
kind?: string    — "all", "video", "article", or "exercise" (default: "all")

list_subjects

No parameters. Returns all top-level subjects and popular courses.

get_topic_tree

slug: string     — Topic slug (e.g., "math", "science/biology")
depth?: number   — Levels to fetch (0-3, default: 1)

get_content

slug: string     — Content slug or full URL

get_course

slug: string     — Course slug or URL (e.g., "math/algebra")

get_transcript

slug: string     — Video slug, KA URL, YouTube URL, or YouTube ID
language?: string — Language code (default: "en")
format?: string  — "full", "timestamped", or "both" (default: "full")

get_article

slug: string     — Article slug or full URL (articles have "/a/" in the path)

get_lesson

slug: string     — Lesson slug or full URL

embed_video

slug: string              — Video slug, KA URL, YouTube URL, or YouTube ID
include_transcript?: bool — Include the full transcript (default: false)
language?: string         — Language code for transcript (default: "en")

get_exercise

slug: string     — Exercise slug or full URL (exercises have "/e/" in the path)

get_quiz

slug: string     — Course slug or URL (e.g., "math/algebra")
kind?: string    — "all", "quiz", "unit-test", or "course-challenge" (default: "all")

study_guide

topic: string    — Topic or concept to study (e.g., "quadratic equations")
depth?: string   — "quick", "standard", or "comprehensive" (default: "standard")

Workflows

Topic exploration: list_subjects → get_topic_tree → get_course → get_lesson → get_content / get_transcript

Quick lookup: search → get_content or get_article → get_transcript (if video)

Study session: search or get_topic_tree → study_guide for review, then get_article / get_transcript for deep dives

Course overview: get_course → pick a unit/lesson → get_lesson → get_content

Test prep: get_quiz → review covered lessons → get_exercise for practice → get_transcript / get_article to study weak areas

Development

git clone https://github.com/aicoder2009/khanacademyMCP.git
cd khanacademyMCP
npm install
npm run build

Test with:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node dist/index.js

How It Works

Khan Academy deprecated their public API in 2020. This MCP server uses:

  • Khan Academy's internal GraphQL API — safelisted queries for content metadata and search

  • YouTube transcript API — fetches video captions/subtitles

  • Page scraping — extracts structured data from Khan Academy web pages as a fallback

  • Static catalog — hardcoded top-level subjects for reliable list_subjects

All access is read-only with rate limiting (500ms between requests) and in-memory caching to be respectful of Khan Academy's servers.

Limitations

  • No authentication — cannot access user-specific data (progress, recommendations)

  • Khan Academy's internal API may change without notice — static fallbacks ensure basic functionality

  • Transcript availability depends on YouTube captions being present

  • Rate-limited to avoid overloading Khan Academy's servers

License

MIT

Available Tools

6 tools
get_contentA

Get details about a specific Khan Academy content item (video, article, or exercise). Accepts a slug or full URL. Returns title, description, type, and metadata.

Inputs: slug (required).

get_courseA

Get the full structure of a Khan Academy course, including units, lessons, and content items. Use list_subjects or search to find course slugs.

Inputs: slug (required).

get_topic_treeA

Browse Khan Academy's subject/topic hierarchy. Given a topic slug, returns its subtopics and content items. Use list_subjects first to get valid slugs, then drill down.

Inputs: slug (required), depth.

get_transcriptA

Get the transcript of a Khan Academy video. Returns timestamped text and a full-text version. Accepts a KA video slug/URL or YouTube URL/ID.

Inputs: slug (required), language, format.

list_subjectsA

List all top-level Khan Academy subjects and popular courses. Returns subject names, slugs, and descriptions. Use this as a starting point to explore Khan Academy's content.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: get_content retrieves details of a specific item, get_course provides course structure, get_topic_tree explores hierarchical topics, get_transcript fetches video transcripts, list_subjects lists top-level subjects, and search performs general searches. There is no overlap in functionality, making tool selection straightforward for an agent.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case: get_content, get_course, get_topic_tree, get_transcript, list_subjects, and search. The verbs 'get' and 'list' are used appropriately, and there are no deviations in naming conventions throughout the set.

    Tool Count5/5

    With 6 tools, the server is well-scoped for exploring and retrieving Khan Academy content. Each tool serves a specific, non-redundant function, covering key operations like browsing, searching, and fetching details without being overly sparse or bloated.

    Completeness4/5

    The tool set provides comprehensive coverage for browsing, searching, and retrieving Khan Academy content, including subjects, courses, topics, items, and transcripts. A minor gap is the lack of tools for user-specific actions like tracking progress or saving content, but this is reasonable for a content-focused server, and agents can still perform core exploration tasks effectively.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables academic research through the OpenAlex API, allowing users to search for papers, authors, and institutions, retrieve citations, and fetch full-text content when available. Perfect for building intelligent research assistants that can explore academic literature and related works.
      8
      7
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Provides AI assistants with read-only access to Reddit's API for browsing subreddits, reading posts and comments, searching Reddit, and retrieving user/subreddit information. Enables safe exploration of Reddit content without posting capabilities through natural language interactions.
      -
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI assistants to search arXiv papers, retrieve metadata, browse categories, and read paper text.
      4
      MIT