Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deep Learning with Python — MCP Knowledge Base

An MCP (Model Context Protocol) server that turns the book Deep Learning with Python (François Chollet) into a searchable knowledge base, so Claude can act as a deep-learning/ML expert grounded in the book's content.

The server runs locally over stdio. It reads the PDF in input/ and builds an in-memory index of the book's ~200 leaf sections (down to subsections like 3.4.3) from the PDF's own bookmark outline. The book has to be put in place manually.

Roadmap

  • Create MCP MVP
  • Connect and validate
  • Add error handling
  • Add MCP inspector

Setup

# from the project root
pip install -r requirements.txt

Requires the book PDF at input/Deep_Learning_with_Python_Chollet.pdf

Running standalone

.venv\Scripts\python.exe server.py

This blocks, speaking MCP over stdio — it's meant to be launched by an MCP client, not run interactively. Ctrl+C to stop.

Connecting to a client

Claude Code (from the project root):

claude mcp add dl-python-expert -- "C:\Users\leowa\Projekte\mcp_deepLearning\.venv\Scripts\python.exe" "C:\Users\leowa\Projekte\mcp_deepLearning\server.py"

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "dl-python-expert": {
      "command": "C:\\Users\\leowa\\Projekte\\mcp_deepLearning\\.venv\\Scripts\\python.exe",
      "args": ["C:\\Users\\leowa\\Projekte\\mcp_deepLearning\\server.py"]
    }
  }
}

What's registered

Tools

  • search_book(query, top_k=5) — keyword-ranked search over all book sections; returns id, title, breadcrumb, page, and a snippet.
  • get_section(section_id) — full text of one section by id (e.g. 3.4.3, 6.2.2), as returned by search_book or list_sections. Only leaf sections are addressable; a heading with subsections (e.g. 5.1) is not itself fetchable — use its children instead.
  • list_sections(chapter=None) — no argument lists chapters/appendices; passing one of those exact strings lists its sections and ids.

Resource

  • book://toc — the full table of contents with section ids and page numbers, for browsing structure without a tool call.

Prompt

  • explain_concept(topic) — instructs Claude to search the book, cite section id and page for claims, and include the book's Keras code examples where relevant.

Example usage

Once connected, ask Claude things like:

Using the DL knowledge base, explain how dropout fights overfitting, with the book's code example.

Claude will call search_book, pull the relevant section(s) via get_section, and answer citing e.g. [4.4.3] Adding dropout (p. 130).

Design notes / known limitations

  • Search is simple keyword/term-overlap scoring (stdlib only) — no embeddings. Good enough for retrieval-then-explain; Claude does the actual reasoning.
  • Section granularity is leaf-only. A few sentences of "chapter intro" text that sits between a parent heading and its first subsection isn't attached to any section and is effectively skipped.
  • The index is rebuilt from the PDF on every server start (~3s for 384 pages); there's no persistent cache, by design, so book content never lands in a file that could accidentally get committed.
  • Indexed scope is the book's technical content only (chapters 1–9 + appendices A/B) — front matter and the back-of-book index are excluded.

Files

  • server.py — entry point; creates the MCPServer, registers tools from tools.py, runs over stdio.
  • tools.py — tool/resource/prompt definitions.
  • knowledge_base.py — PDF loading, outline-based section indexing, and search.
  • input/ — source PDF (gitignored).

About

An MCP (Model Context Protocol) server that turns the book *Deep Learning with Python* (François Chollet) into a searchable knowledge base, so Claude can act as a deep-learning/ML expert grounded in the book's content.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages