kkalyan opened a new pull request, #5277: URL: https://github.com/apache/zeppelin/pull/5277
### What is this PR for? Adds `zeppelin-mcp`, a Model Context Protocol (MCP) server that lets AI coding agents — Claude Code, Kiro, Codex, Cursor, and any other MCP client — operate an Apache Zeppelin instance: select or create a notebook, run paragraphs in any interpreter, read results, delete paragraphs, clear output, restart a stuck interpreter, and write a summary back into the notebook. The server is a thin client over the existing Zeppelin REST API, so it works against any reachable Zeppelin server without server-side changes. It is implemented in Python on the official MCP SDK (FastMCP), mirroring the existing `python/` module's precedent for Python-in-the-reactor. This PR also adds `zeppelin-mcp/GETTING_STARTED.md`, a build-from-source guide for the current experimental phase: prerequisites, venv install, a stdio smoke test, the env-var configuration table, MCP client wiring for Claude Code / Kiro / Codex / generic clients, the tool reference, and troubleshooting. ### What type of PR is it? Feature ### What is the Jira issue? https://issues.apache.org/jira/browse/ZEPPELIN-6434 ### How should this be tested? `mvn test -pl zeppelin-mcp` creates a venv under `target/venv` and runs the pytest suite (61 tests, 97% line coverage) against an in-memory fake Zeppelin — no live server required. RAT passes (0 unapproved licenses). For a manual end-to-end check, point an MCP client at a local Zeppelin: claude mcp add zeppelin --env ZEPPELIN_URL=http://localhost:8080 -- zeppelin-mcp ### Open items (tracked for follow-up, not blocking) - **Binary distribution.** Whether to bundle the `zeppelin-mcp` console script inside the Zeppelin binary distribution vs. publishing to PyPI for `pip install`. Currently build-from-source only. - **Standard distribution channel** — PyPI release cadence and versioning. - **Semantic search as agent knowledge.** Optionally index notebook/paragraph text plus interpreter metadata so an agent can discover relevant notebooks by meaning (e.g. a `search_notebooks` tool) and build richer context, rather than only operating on an explicitly selected note. Not implemented today. ### Questions: * Does the license files need to update? No * Is there breaking changes for older versions? No * Does this needs documentation? Module README + GETTING_STARTED.md added; a docs page under `docs/` can follow. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
