Skip to main content
Glama
README.md
# @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

A3.7/5.0

Scored across 14 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivitySlowing
ResponsivenessNo issues