Skip to main content
Glama

DeepLearning.AI MCP Server (dlai-mcp)

License: MIT Python 3.10+ Model Context Protocol

A Model Context Protocol (MCP) server providing AI agents (Claude Desktop, Cursor, Antigravity, custom agent loops) with direct programmatic access to DeepLearning.AI Short Courses on learn.deeplearning.ai.

Designed for autonomous note-taking, code & lab extraction, and instant course research.


Features

  • πŸ“š Full Course Catalog Access: Browse 100+ DeepLearning.AI short courses with partners, topics, and duration.

  • πŸ“‘ Complete Syllabi & Outlines: Query module hierarchies, lesson indices, durations, and lesson types.

  • πŸŽ™οΈ Timestamped Video Transcripts: Extract caption tracks with structured timestamp markers ([00:14]) for exact citation.

  • πŸ’» Jupyter Lab & Code Extraction: Read .ipynb notebooks and code exercises rendered in clean Markdown.

  • ⚑ Zero-Auth Direct API: High-speed public tRPC queries without browser overhead.

  • πŸ” Offline SQLite Cache & FTS5 Search: Instant full-text search with BM25 ranking across all synced materials.

  • πŸ” Interactive CLI Login: Simple one-time login command (dlai-mcp login) to authenticate your account.


Related MCP server: Coursera MCP

Installation

Using uv (Recommended)

# Clone the repository
git clone https://github.com/WilliamAxelC/deeplearning.ai-MCP-Server.git
cd deeplearning.ai-MCP-Server

# Create virtual environment and install
uv venv
source .venv/bin/activate
uv pip install -e .

Using pip

pip install -e .

Quickstart & CLI Commands

1. Interactive Authentication (Optional for Public Data, Required for Enrolled Labs)

dlai-mcp login

Opens a Chromium browser window for you to log into your DeepLearning.AI account.

2. Check Status & Local Cache Statistics

dlai-mcp status

3. Pre-fetch Course Transcripts for Offline Agent Access

# Sync a specific course by slug
dlai-mcp sync --course chatgpt-prompt-eng

# Or sync all courses
dlai-mcp sync --all

4. Search Indexed Course Transcripts via CLI

dlai-mcp search "temperature parameter"

5. Start the MCP Server

# Standard stdio mode (for Claude Desktop / Cursor / Antigravity)
dlai-mcp serve

# Or SSE / HTTP network mode
dlai-mcp serve --transport sse --port 8000

Configuring MCP Clients

Claude Desktop Configuration (claude_desktop_config.json)

{
  "mcpServers": {
    "deeplearning-ai": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/deeplearning.ai-MCP-Server",
        "run",
        "dlai-mcp",
        "serve"
      ]
    }
  }
}

Cursor / Antigravity Configuration

{
  "mcpServers": {
    "deeplearning-ai": {
      "command": "/path/to/deeplearning.ai-MCP-Server/.venv/bin/dlai-mcp",
      "args": ["serve"]
    }
  }
}

Available MCP Tools

Tool

Parameters

Description

list_courses

query: Optional[str], partner: Optional[str], topic: Optional[str]

List and filter short courses.

get_course_structure

course_slug: str

Retrieve syllabus, modules, and all lessons.

get_lesson_transcript

course_slug: str, lesson_slug_or_index: str, include_timestamps: bool

Fetch timestamped transcript text.

get_lesson_lab

course_slug: str, lesson_slug_or_index: str, raw_json: bool

Extract Jupyter notebook code & markdown.

search_course_content

query: str, course_slug: Optional[str], limit: int

SQLite FTS5 BM25 search across transcripts.

sync_course

course_slug: str, force_refresh: bool

Pre-fetch and index an entire course into SQLite.

get_auth_status

none

Check active user session and account details.


Author

  • William Axel C (@WilliamAxelC) - williamaxelcuangdinata@gmail.com


License

MIT

Available Tools

7 tools
get_auth_statusA

Check the current DeepLearning.AI authentication status and user account info.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of telling the agent this is a non-mutating, read-only operation. The verb 'Check' and the noun 'status' clearly imply a query with no side effects. The phrase 'current' adds the notion of a point-in-time snapshot. While it doesn't explicitly state 'this does not modify anything', the semantics strongly convey a safe read operation, which is adequate for this kind of tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise, front-loaded sentence effectively states the tool's purpose with no wasted words. Every part of the description adds value: the authentication subject, the status check, and the user account info. No irrelevant details are included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is as simple as a 0-parameter auth-status check. The description covers what it does, and an output schema presumably defines the returned fields, so the description doesn't need to enumerate result semantics. The main gap is a lack of any note about whether authentication is required or how the tool behaves when unauthed, but for a status checker the completeness bar is generally low.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty (0 parameters), so there are no parameter names or semantics for the description to clarify. Per the rubric, a zero-parameter tool receives a baseline of 4 because the description needs to do no parametric heavy lifting. The description accurately matches the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Check', and a concrete resource, 'DeepLearning.AI authentication status and user account info'. It clearly distinguishes itself from the sibling tools, which all deal with courses, content, or syncing. An agent can tell immediately what this tool does and that it is the auth-oriented outlier among course-management siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool's role is apparent: it is the authentication status check among course tools. However, the description does not explicitly state when to invoke it, such as 'before making API calls' or 'to verify login state', nor does it mention when not to use it or alternatives. The usage guidance is only implied by the name and description, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_course_structureA

Retrieve the complete syllabus and lesson outline for a DeepLearning.AI course. Returns module hierarchy, lesson indices, slugs, durations, and lesson types (video, video_notebook, quiz).

ParametersJSON Schema
NameRequiredDescriptionDefault
course_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It does so partially by disclosing the return categories (module hierarchy, lesson indices, slugs, durations, lesson types), but it does not mention pagination, required authentication, or whether the response is cached. The absence of safety annotations makes the read-only nature implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences that front-load the main purpose and then enumerate the key returned fields. Every sentence earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple single-parameter retrieval, and the description covers the resource and the key return elements. It is complete enough for an agent to call it correctly. A minor gap is the lack of guidance on how to obtain the course_slug, but this is not a severe omission given the context signals and the simple schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only defines one parameter, course_slug, with 0% schema description coverage. The description implies that the course_slug identifies the course for which the structure is retrieved, but it doesn't provide guidance on how to obtain a valid slug or format expectations. With a single straightforward parameter, the description adds moderate value but still leaves slug resolution to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Retrieve'), names the resource ('complete syllabus and lesson outline'), and explicitly lists the kinds of data returned (module hierarchy, lesson indices, slugs, durations, lesson types). This clearly distinguishes it from sibling tools like list_courses or get_lesson, which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is used to fetch a course structure for a given course_slug, but it does not explicitly state when to prefer this over siblings like search_course_content or get_lesson. It gives enough context for straightforward use, but lacks explicit exclusions or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lesson_labA

Get the Jupyter Lab notebook and code for a lesson. Returns clean interleaved Markdown (explanations + code blocks) by default, or raw .ipynb JSON if raw_json=True.

ParametersJSON Schema
NameRequiredDescriptionDefault
raw_jsonNo
course_slugYes
lesson_slug_or_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Because no annotations are provided, the description carries the full burden of behavioral disclosure, and it does well by explaining the default return format (clean interleaved Markdown) and the alternative (raw .ipynb JSON via raw_json=True). It does not discuss prerequisites or side effects, but 'Get' makes the read-only nature clear enough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler: the first states the purpose, the second explains the output variants and the controlling flag. Every phrase adds value and the key detail (raw_json behavior) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description together with an provided output schema covers the main return behavior (interleaved Markdown vs raw JSON). It lacks guidance on option disambiguation or prerequisites (e.g., whether need to have the course synced, or authentication), but for a simple read-oriented tool this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions provide 0% coverage, so the description must explain parameters, but it only explains raw_json and its default. course_slug and lesson_slug_or_index are reasonably self-explanatory from their names, yet the description does not clarify what an 'index' means or expected string formats, so the compensation is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resourceβ€”'Get the Jupyter Lab notebook and code for a lesson'β€”immediately making clear what the tool retrieves. It distinguishes itself from siblings like get_lesson_transcript or get_course_structure by identifying the lesson's code/notebook as the object.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (whenever a lesson's notebook/code is needed), but it does not explicitly mention alternatives or exclusions. It does not state 'use this instead of get_lesson_transcript when code is needed,' so usage guidance is left largely inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lesson_transcriptA

Get the full timestamped transcript for a lesson in a DeepLearning.AI course. Pass either the lesson index (e.g. '1', '2') or the lesson slug (e.g. 'creating-an-app-with-ai').

ParametersJSON Schema
NameRequiredDescriptionDefault
course_slugYes
include_timestampsNo
lesson_slug_or_indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It states exactly what is returned (full timestamped transcript) and that timestamps are included by default via include_timestamps parameter. It does not mention failure cases, authentication requirements, or whether the transcript is always available for every lesson item. A 3 is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences. First sentence states the purpose; second sentence provides the exact identifier format. Example values are placed inline, avoid unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only transcript fetch with an output schema present, the description is nearly complete. It explains the key identifier, the defaults and potential mitigations like timestamp control. It doesn't explicitly explain course_slug semantics, but the parameter name and the domain ('course') make that inferable. The output schema presumably carries return shape, so no extra description needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must add semantic value for the parameters. It explains what lesson_slug_or_index is and provides concrete examples. course_slug is described in the schema by its name, but the description does not explicitly explain what a course_slug looks like or how to obtain it. include_timestamps is semantically clear from its name and defaults in the schema. The description adds some value for the core parameter but not full compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get'), a specific resource ('full timestamped transcript for a lesson in a DeepLearning.AI course'), and gives both accepted identifiers. It clearly distinguishes itself as a lesson-level retrieval tool and differs from siblings like get_lesson_lab or search_course_content because it returns the lesson transcript.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context: it is the tool for retrieving lesson transcripts. It also gives an explicit input convention (lesson index or slug) and an example. It does not explicitly rule out alternatives like search_course_content, but its scope is clear enough that an agent can select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_coursesA

List available Short Courses from DeepLearning.AI. Filter by keyword search query, partner organization (e.g. OpenAI, LangChain, Anthropic), or topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
topicNo
partnerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates read-only listing behavior and describes available filters, but no annotations are present to cover safety or side effects.It does not discuss response scope, optionality of filters, pagination, or whether results are course-level summaries. Still, 'List' and the filter description give a reasonable core behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences: the first states the core behavior and the second states the filters. The partner examples add genuine value without redundancy. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list/filter tool with an output schema and three self-describing filters, the description gives enough to call it correctly. It lacks explicit differentiation from search_course_content and does not state default behavior when no filters are supplied, but these are minor gaps given the simple scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema_description_coverage, the description compensates well by mapping each parameter: query = keyword search, partner = partner organization with concrete examples, topic = topic. It does not specify null handling/case sensitivity or whether filters combine, but it conveys the essential meaning of every parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('available Short Courses from DeepLearning.AI') and explains the filtering dimensions. This clearly identifies the tool's catalog-level purpose and distinguishes it from the content- and lesson-level sibling tools such as search_course_content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies a listing/filtering usage: list all available courses or filter by keyword, partner, or topic. However, it provides no explicit when-not-to-use guidance and does not name any sibling tools as alternatives, so an agent must infer that content-level search belongs to search_course_content or get_lesson_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_course_contentA

Full-text search across indexed transcripts, lesson materials, and notebooks using SQLite FTS5 with BM25 ranking. Returns matched snippets, timestamp citations, and direct URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
course_slugNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations available, the description carries the disclosure burden. It does well by revealing the underlying query engine (SQLite FTS5, BM25 ranking) and what results will include (snippets, citations, URLs). It does not cover edge cases like empty results or required permissions, but the core behavior is clearly communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief, front-loaded, and information-dense, fitting both the tool's purpose and key execution details into two sentences. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and a simple parameter set, the description provides sufficient context about the tool's role and expected result format. It doesn't explicitly mention the optional course_slug filtering behavior, but the main functional context for an agent to decide to call is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the tool description does little to explain what limit or course_slug do. The query parameter is implicitly clear as the search term, but the other two parameters are left to the agent to infer from the schema alone. The description should compensate for missing schema documentation but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Full-text search') and a clear resource scope ('indexed transcripts, lesson pages, and notebooks'). It also specifies the output type ('snippets, timestamp citations, direct URLs'), which immediately sets it apart from sibling retrieval tools like get_lesson_transcript or list_courses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when an agent needs to search within course content, but it never explicitly states when to prefer this tool over alternatives such as get_lesson_transcript or get_course_structure. There is no direct 'use this when...' guidance, but the purpose is recognizable from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_courseA

Pre-fetch and index all lesson transcripts and syllabus for a course into the local SQLite database. Enables instant offline search and note-taking.

ParametersJSON Schema
NameRequiredDescriptionDefault
course_slugYes
force_refreshNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavior disclosure. It does disclose a meaningful side effect: prefetching and indexing into a local SQLite database. But it doesn't describe whether force_refresh is needed, whether existing data os overwritten, whether this is idempotent, or what the return shape indicates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, core action and benefit both meaningfully expressed. It earns its length completely and remains easy to digest.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides context for the operation, but with no annotations, no parameter guidance, and no explicitystatement of what force_refresh controls, the tool is not fully documented for correct invocation. In partial output schema exists so return details are not unneeded, but usage and refresh behavior remain unfinished.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the parameters, but it only says 'all lesson transcripts and syllabus for a course' which reasonably implies course_slug. It fails to mention force_refresh entirely, leaving the sole optional parameter undocumented by both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource pair: 'Pre-fetch and index all lesson transcripts and syllabus for a course'. It clearly indicates the tool's scope and its local SQLite target, distinguishing it from sibling retrieval tools like get_lesson_transcript and search_course_content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage β€” the tool prepares course content for offline search and note-taking, so an agent can infer when to call it before other content access. However, it never names alternatives, states when not to use it, or contrasts with search_course_content/get_lesson_transcript.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.0
    • First observedget_auth_status
    • First observedget_course_structure
    • First observedget_lesson_lab
    • First observedget_lesson_transcript
    • First observedlist_courses
    • First observedsearch_course_content
    • First observedsync_course

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: course listing, course structure, lesson transcript, lesson lab, course-level search, sync/offline indexing, and auth status. There is no meaningful overlap or ambiguity among the tool names or their responsibilities.

Naming Consistency5/5

Tools consistently use snake_case verb_noun naming: list_courses, get_ourse_structure, get_lesson_transcript, search_course_ontent, sync_course. The pattern is obvious and predictable for an agent routing to tools.

Tool Count5/5

Seven tools fit the server's scope well: discovery, course inspection, lesson content retrieval, search, and sync. It feels complete without unnecessary bulk or missing core steps.

Completeness4/5

The main learning workflow is covered: find a course, get its structure, fetch lesson transcripts and labs, and search indexed content. Minor gaps exist, such as no direct quiz content fetch and only a limited auth status check, but these do not block the core set.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to browse and teach the Deep Learning DIY course, providing access to modules, notebooks, transcripts, quizzes, slides, and homework via MCP tools.
    18
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to programmatically interact with Coursera, including enrolling in courses, completing lectures, solving quizzes, submitting assignments, earning certificates, and pushing them to LinkedIn.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables fetching enrolled course lists, lessons, transcripts, video frames, and slides from DeepLearning.AI short courses, so an AI can summarize them and pass notes to other tools.
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WilliamAxelC/deeplearning.ai-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server