Skip to main content
Glama
german-borisevich

Apache Zeppelin MCP Server

clone_paragraph

Duplicate a paragraph within the same notebook directly below the source, preserving code, title, and chart configuration; copied titles get a “ (copy)” suffix.

Instructions

Clone a paragraph within the same notebook. The copy is created directly below the source paragraph and carries over its code, title, and visualization/chart config. The clone's title gets a " (copy)" suffix; untitled paragraphs stay untitled.

Zeppelin has no dedicated clone-paragraph endpoint, so this reads the source paragraph,
creates a new one with the same content, then copies its config in a single tool call.

Args:
    notebook_id: The notebook ID containing the paragraph
    paragraph_id: The paragraph ID to clone

Input Schema

NameRequiredDescriptionDefault
notebook_idYes
paragraph_idYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.1

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare this is a mutating, non-idempotent, non-destructive operation. The description adds substantial behavioral detail: the copy is placed directly below the source, carries over code/title/visualization config, title gets a " (copy)" suffix, and untitled paragraphs remain untitled. It also discloses the internal read/create/config-copy sequence needed because Zeppelin has no dedicated clone endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and behavior, then uses a short Args section. The implementation note about Zeppelin's endpoint limitation earns its place because it explains why the tool performs multiple internal steps in one call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value details need not be described. With annotations covering mutation safety and non-idempotency, the description supplies the remaining behavioral context an agent needs: copy placement, content carryover, title handling, and the internal multi-step implementation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the two parameters. It lists notebook_id as the notebook containing the paragraph and paragraph_id as the paragraph to clone, which clarifies their roles but adds little format or validation detail. This is minimally adequate for two self-named IDs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Clone a paragraph within the same notebook." It also clarifies the copy location and what is carried over, so the operation is easy to understand. However, it does not explicitly differentiate this from sibling tools such as add_paragraph or update_paragraph.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the clone semantics, but the description does not explicitly state when to use this tool versus alternatives like add_paragraph or update_paragraph. It provides useful context that Zeppelin lacks a dedicated clone endpoint, but not when-not conditions or alternative routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.