Kadmia MCP Server
README.md
# Kadmia MCP Server
A Model Context Protocol (MCP) server for integrating the Kadmia JavaScript learning platform with AI assistants like Claude Code, Cursor, and others.
## Prerequisites
- **Node.js 18+** - [Download here](https://nodejs.org/)
- **Kadmia account** - [Sign up free](https://thekadmia.com)
## Quick Start
### 1. Get your Kadmia credentials
Log into [Kadmia](https://thekadmia.com/kadmia-mcp) to get your **Firebase UID** and **API Key**.
### 2. Configure Claude Code
Open your terminal and edit the Claude config file:
```bash
# macOS/Linux
nano ~/.claude.json
# Windows
notepad %USERPROFILE%\.claude.json
```
Add the following (replace the placeholder values with your credentials from Kadmia):
```json
{
"mcpServers": {
"kadmia": {
"command": "npx",
"args": ["-y", "kadmia-mcp"],
"env": {
"KADMIA_LEARNER_ID": "your-firebase-uid-here",
"KADMIA_API_KEY": "your-api-key-here"
}
}
}
}
```
**Alternative:** Use the `/mcp` command inside Claude Code to add the server interactively.
### 3. Configure Cursor (Alternative)
1. Open Cursor and go to **Settings** (gear icon) → **MCP**
2. Click **Add Server** and enter:
- **Command**: `npx -y kadmia-mcp`
- **Environment variables**:
- `KADMIA_LEARNER_ID=your-firebase-uid-here`
- `KADMIA_API_KEY=your-api-key-here`
### 4. Verify It Works
Restart Claude Code or Cursor, then ask:
> "Use the Kadmia explain_concept tool to explain closures"
If configured correctly, you'll get a personalized explanation based on your Kadmia skill level.
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `KADMIA_LEARNER_ID` | Yes | Your Firebase UID from [thekadmia.com/kadmia-mcp](https://thekadmia.com/kadmia-mcp) |
| `KADMIA_API_KEY` | Yes | Your API key from [thekadmia.com/kadmia-mcp](https://thekadmia.com/kadmia-mcp) |
| `KADMIA_API_BASE` | No | API base URL (default: Kadmia staging API) |
## Available Tools
### get_learner_progress
Get your learning progress from Kadmia (requires authentication).
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| — | — | — | No input required |
**Output:** Progress data including subjects, recent activity, and learning insights.
---
### explain_concept
Explain a JavaScript concept at your skill level. Returns an explanation tailored to your Kadmia progress with examples, common mistakes, and links to relevant lessons.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `concept` | string | Yes | The JavaScript concept to explain (e.g., "closures", "event loop", "prototype chain") |
| `code_context` | string | No | Code snippet to make the explanation more relevant |
| `depth` | `"brief"` \| `"standard"` \| `"deep"` | No | How detailed the explanation should be (default: "standard") |
## How It Works
The Kadmia MCP server creates a bridge between your coding environment and the Kadmia learning app:
```
┌─────────────────┐ ┌─────────────────┐
│ IDE/Coding │ │ Kadmia App │
│ │ ──── MCP ────► │ │
│ • Explanations │ │ • Skill levels │
│ • Progress │ ◄──── MCP ──── │ • Mastery data │
└─────────────────┘ └─────────────────┘
```
- **Explanations** are tailored to your skill level from Kadmia
- **Progress** data personalizes your learning experience
## Future Tools
- `bookmark_concept` — Save concepts to study later in the Kadmia app
- `generate_challenge` — Get coding challenges calibrated to your skill level
- `js_comedy_hour` — Hear the JS joke of the day
## Development
```bash
# Run with auto-reload
npm run dev
# Build TypeScript
npm run build
# Run the server
npm start
```
TDQS
A4/5.0
Scored across 4 tools
Disambiguation5/5
Each tool targets a distinct operation: saving concepts, explaining concepts, generating challenges, and retrieving progress. No functional overlap.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern (bookmark_concept, explain_concept, generate_challenge, get_learner_progress).
Tool Count5/5
4 tools is well-scoped for a learning support server, covering key actions without being too minimal or excessive.
Completeness4/5
Covers core learning workflows (saving, explaining, challenging, tracking), but missing a way to list saved concepts or review past challenges, a minor gap.
Maintenance
ActivityMaintained
ResponsivenessNo issues