zeppelin-mcp
# @mihnea.dev/zeppelin-mcp
MCP (Model Context Protocol) server for Apache Zeppelin. Gives Claude Code direct access to the Zeppelin REST API for AI-assisted data engineering workflows.
## Install
```bash
npm install -g @mihnea.dev/zeppelin-mcp
```
## Claude Code Setup
Add to `~/.claude.json`:
```json
{
"mcpServers": {
"zeppelin": {
"command": "zeppelin-mcp",
"env": {
"ZEPPELIN_URL": "https://your-zeppelin-instance",
"SOCKS5_PROXY": ""
}
}
}
}
```
Or run directly with npx (no install needed):
```json
{
"mcpServers": {
"zeppelin": {
"command": "npx",
"args": ["-y", "@mihnea.dev/zeppelin-mcp"],
"env": {
"ZEPPELIN_URL": "https://your-zeppelin-instance",
"SOCKS5_PROXY": ""
}
}
}
}
```
## Environment Variables
- `ZEPPELIN_URL` (required) — Base URL of the Zeppelin instance
- `SOCKS5_PROXY` (optional) — SOCKS5 proxy address for tunneled access
## Tools
| Tool | Description |
|------|-------------|
| `zeppelin_login` | Authenticate with username/password |
| `list_notebooks` | List all notebooks (IDs + paths) |
| `get_notebook` | Get notebook with all paragraphs |
| `create_notebook` | Create a new notebook |
| `delete_notebook` | Delete a notebook |
| `get_paragraph` | Read paragraph text and output |
| `update_paragraph` | Write/modify paragraph text |
| `create_paragraph` | Add a new paragraph |
| `delete_paragraph` | Remove a paragraph |
| `run_paragraph` | Execute a paragraph, return output |
| `run_all_paragraphs` | Execute all paragraphs in a notebook |
| `restart_interpreter` | Restart an interpreter (spark, python, etc.) |
## Development
```bash
git clone https://github.com/mihneamanolache/zeppelin-mcp
cd zeppelin-mcp
npm install
npm run build
```
TDQS
Scored across 14 tools
Each tool has a clearly distinct purpose: notebook lifecycle, paragraph lifecycle, execution control, interpreter restart, and authentication. Descriptions clarify boundaries (e.g., get_notebook vs get_paragraph). No overlap or ambiguity.
All tools follow a consistent verb_noun pattern with underscores (e.g., create_notebook, delete_paragraph, run_all_paragraphs). The only slight deviation is zeppelin_login, but it still fits the pattern of action_resource. Naming is uniform and predictable.
14 tools provide a well-scoped surface for managing Zeppelin notebooks. It covers CRUD for notebooks and paragraphs, execution commands, interpreter restart, and authentication—neither too sparse nor excessive for the domain.
The toolset covers core notebook and paragraph operations, execution, and interpreter management. Minor gaps include no logout, no interpreter listing, and no notebook import/export, but the set is sufficient for typical agent interactions with Zeppelin.