<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: cshara</title>
    <description>The latest articles on DEV Community by cshara (@cshara).</description>
    <link>https://dev.to/cshara</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3746689%2F5e4ea226-e10d-4986-a907-a6071af58385.png</url>
      <title>DEV Community: cshara</title>
      <link>https://dev.to/cshara</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cshara"/>
    <language>en</language>
    <item>
      <title>I created small mcp server for Jupyter Notebook.</title>
      <dc:creator>cshara</dc:creator>
      <pubDate>Mon, 02 Feb 2026 06:48:45 +0000</pubDate>
      <link>https://dev.to/cshara/i-created-small-mcp-server-for-jupyter-notebook-14l6</link>
      <guid>https://dev.to/cshara/i-created-small-mcp-server-for-jupyter-notebook-14l6</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;When working with AI agents like Claude or Antigravity, one common hurdle is dealing with Jupyter Notebook (&lt;code&gt;.ipynb&lt;/code&gt;) files. &lt;/p&gt;

&lt;p&gt;While agents are great at writing code, directly editing the complex JSON structure of a notebook can lead to corruption. Furthermore, security restrictions often prevent agents from executing code directly in a notebook environment.&lt;/p&gt;

&lt;p&gt;To solve this, I developed &lt;strong&gt;Easy Jupyter Editor MCP&lt;/strong&gt; — a lightweight Model Context Protocol (MCP) server that allows AI agents to structurally and safely edit notebook files.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is it?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;easy-jupyter-editor-mcp&lt;/code&gt; is a tool that exposes standard notebook manipulation functions to any MCP-compliant client. It uses the &lt;code&gt;nbformat&lt;/code&gt; library to ensure that any changes made to the &lt;code&gt;.ipynb&lt;/code&gt; file are valid and won't break the JSON structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why structural editing?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Safety&lt;/strong&gt;: No more broken JSON syntax errors when an AI tries to append a cell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution Bypassing&lt;/strong&gt;: Sometimes you just want the agent to &lt;em&gt;write&lt;/em&gt; the code so you can review and run it yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity&lt;/strong&gt;: It doesn't require a running Jupyter kernel, making it extremely fast and lightweight.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;The server provides several tools that agents can use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;read_notebook&lt;/code&gt;: Get a summary of all cells.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_cell&lt;/code&gt;: Retrieve the exact code of a cell.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;add_cell&lt;/code&gt; / &lt;code&gt;delete_cell&lt;/code&gt;: Manage the notebook structure.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;edit_cell&lt;/code&gt;: Update existing code or markdown.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;create_notebook&lt;/code&gt;: Bootstrap a new notebook from scratch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to use it
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;This MCP server is designed to work seamlessly with &lt;strong&gt;uv&lt;/strong&gt;. If you haven't installed it yet, you can do so with a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-LsSf&lt;/span&gt; https://astral.sh/uv/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For other platforms, please refer to the &lt;a href="https://docs.astral.sh/uv/getting-started/installation/" rel="noopener noreferrer"&gt;official uv documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuration for Claude Desktop
&lt;/h3&gt;

&lt;p&gt;To use this MCP server with &lt;strong&gt;Claude Desktop&lt;/strong&gt;, edit your &lt;code&gt;claude_desktop_config.json&lt;/code&gt; file:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Path&lt;/strong&gt;: &lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt; (macOS)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"easy-jupyter-editor"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"uvx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"easy-jupyter-editor-mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configuration for Antigravity
&lt;/h3&gt;

&lt;p&gt;To use this with &lt;strong&gt;Antigravity&lt;/strong&gt;, you need to add the same configuration to the Antigravity config file.&lt;br&gt;
&lt;em&gt;(Note: The path varies by installation, please check your Antigravity documentation, typically found in &lt;code&gt;~/Library/Application Support/Antigravity/config.json&lt;/code&gt;)&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuration for Antigravity Extension in VS Code
&lt;/h3&gt;

&lt;p&gt;VS Code itself does not support MCP natively; you need an extension (like &lt;strong&gt;Antigravity&lt;/strong&gt;) to act as the MCP client.&lt;/p&gt;

&lt;p&gt;If you are using the &lt;strong&gt;Antigravity extension&lt;/strong&gt; in VS Code, you can configure the MCP server directly through the editor's UI:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Settings&lt;/strong&gt; (&lt;code&gt;Cmd + ,&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Search for &lt;code&gt;Antigravity&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Locate the &lt;strong&gt;MCP Servers&lt;/strong&gt; (or similar) section in the Antigravity extension settings.&lt;/li&gt;
&lt;li&gt;Add the server configuration JSON.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Setting it up in VS Code allows the agent to visually interact with your notebooks in real-time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflow
&lt;/h2&gt;

&lt;p&gt;Once configured, the workflow is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Request&lt;/strong&gt;: Ask the agent to modify a notebook.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action&lt;/strong&gt;: The agent uses &lt;code&gt;easy-jupyter-editor-mcp&lt;/code&gt; tools to safely update the &lt;code&gt;.ipynb&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt;: You see the updates instantly in VS Code and can run the cells yourself.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Behind the Scenes
&lt;/h2&gt;

&lt;p&gt;This project was born out of a specific need: giving the Antigravity AI agent the ability to assist in notebook development without granting it full execution permissions or risking file corruption.&lt;/p&gt;

&lt;p&gt;The project is open source and available on PyPI. Check it out if you're building AI-assisted data science workflows!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PyPI&lt;/strong&gt;: &lt;a href="https://pypi.org/project/easy-jupyter-editor-mcp/" rel="noopener noreferrer"&gt;easy-jupyter-editor-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/YourUsername/easy-jupyter-editor-mcp" rel="noopener noreferrer"&gt;easy-jupyter-editor-mcp&lt;/a&gt; (Replace with your repo!)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Happy coding with AI!&lt;/p&gt;

</description>
      <category>agents</category>
      <category>mcp</category>
      <category>python</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
