kalvium-livebooks
A read-only MCP server that lets you browse Kalvium Livebooks using your existing browser session, listing livebooks and lessons and retrieving lesson content as Markdown.
README
Kalvium MCP
Kalvium MCP is a Model Context Protocol server for Claude Desktop that lets authenticated Kalvium students access their own Livebooks through Playwright browser automation. It uses your local Chrome profile to retrieve the Livebooks and lessons available to your Kalvium account, then returns lesson content as Markdown for use in Claude.
Features
- ✓ List the Livebooks available to your Kalvium account.
- ✓ List lessons within a selected Livebook.
- ✓ Fetch individual lesson content.
- ✓ Convert lesson HTML into readable Markdown.
- ✓ Integrate directly with Claude Desktop through MCP.
- ✓ Install dependencies, Playwright, Chromium, and the MCP registration with
setup.py. - ✓ Migrate an existing browser profile to
profiles/defaultautomatically.
Demo
A GIF or screenshot demonstrating Kalvium MCP in Claude Desktop will be added here.
Requirements
- Windows 10 or Windows 11
- Python 3.11 or later
- Claude Desktop
- An active Kalvium account
Installation
Clone the repository and create a virtual environment:
git clone https://github.com/L-Sandeep/kalvium-mcp
cd kalvium-mcp
python -m venv .venv
Activate the environment on Windows:
.venv\Scripts\Activate.ps1
Install dependencies and run the installer:
pip install -r requirements.txt
python setup.py
First-Time Setup
setup.py checks your environment before changing anything and skips work that is already complete. It will:
- verify Python, pip, FastMCP, Playwright, Claude Desktop, the Claude configuration, and your browser profile;
- install missing Python dependencies, including Playwright;
- install Playwright Chromium when it is not already available;
- create a valid empty Claude Desktop configuration if one is missing;
- register Kalvium MCP with Claude Desktop without removing other MCP servers;
- use
profiles/defaultas the browser profile and migrate a legacyplaywright-profiledirectory when present.
After setup, open the browser profile when prompted by the server and sign in to https://app.kalvium.community if you are not already authenticated. Keep the profile closed while Claude is using Kalvium MCP, because Chrome cannot share the same profile concurrently.
Usage
- Restart Claude Desktop after running
python setup.py. - Start a new chat in Claude Desktop.
- Ask Claude to use your Kalvium Livebooks.
Example prompts:
List my livebooksList lessons in Full Stack Web DevelopmentExplain Request Response LifecycleSummarize lesson 1.4Open lesson 2.3
Claude will invoke the MCP tools when the request requires your Kalvium content. The server only accesses app.kalvium.community and uses the authentication already stored in your local browser profile.
Project Structure
kalvium-mcp/
├── auth.py # Persistent Playwright profile and browser lifecycle
├── browser.py # Browser debugging utility
├── markdown.py # HTML-to-Markdown conversion helpers
├── scraper.py # Kalvium Livebook and lesson scraping logic
├── server.py # FastMCP server entry point
├── setup.py # Idempotent Windows installer for Claude Desktop
├── tools.py # MCP tool definitions
├── requirements.txt # Runtime dependencies
├── pyproject.toml # Package metadata and build configuration
├── dev/ # Development and inspection scripts
├── docs/ # Project documentation
├── installer/ # Installer-related assets
├── profiles/ # Local browser profiles (not committed)
├── samples/ # Saved sample output for development
└── src/kalvium_mcp/ # Python package namespace
How It Works
Claude Desktop
↓
FastMCP Server
↓
Playwright
↓
Authenticated Kalvium Browser Profile
↓
Lesson Extraction
↓
Markdown Response
Claude Desktop calls the FastMCP server over the MCP protocol. The server opens a persistent Chrome context with Playwright, using the local authenticated profile in profiles/default. It reads accessible Livebook pages, extracts the requested lesson information, converts lesson HTML to Markdown, and sends the result back to Claude.
Troubleshooting
Claude Desktop is not installed
Install Claude Desktop from the official download page, open it once, and run python setup.py again.
Browser profile is missing
The server creates profiles/default automatically. Sign in to Kalvium in the Chrome window opened by the server, then close the browser window before using Claude Desktop again.
Login has expired
Run the server or a browser utility, sign in again at https://app.kalvium.community, and close Chrome cleanly so the updated session is saved in profiles/default.
Playwright is not installed
Activate the virtual environment and run:
python setup.py
The installer checks for Playwright and installs missing dependencies.
Kalvium MCP does not appear in Claude
Restart Claude Desktop after installation. If it is still unavailable, run python setup.py again and confirm that its Claude Desktop configuration check succeeds. Ensure the configured Python executable is the same virtual environment where dependencies were installed.
Roadmap
- [x] GitHub repository
- [x] MCP server
- [x] Playwright automation
- [x] Lesson extraction
- [x] Automatic installer
- [ ] Automatic login flow
- [ ] Self-test after installation
- [ ] Search lessons
- [ ] Search lesson content
- [ ] Package for pip installation
- [ ] macOS support
- [ ] Linux support
Contributing
Contributions are welcome. Please open an issue to discuss significant changes, then submit a focused pull request with a clear description and appropriate tests or manual verification notes.
License
MIT License. A license file will be added to the repository.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.