You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+53-34Lines changed: 53 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,10 +8,10 @@
8
8
9
9
[](https://github.com/sponsors/datalayer)
10
10
11
-
12
11
<divalign="center">
13
12
14
13
<!-- omit in toc -->
14
+
15
15
# 🪐✨ Jupyter MCP Server
16
16
17
17
**An [MCP](https://modelcontextprotocol.io) server developed for AI to connect and manage Jupyter Notebooks in real-time**
📢 **Upcoming JupyterCon 2025**: We'll be presenting Jupyter MCP Server at [JupyterCon 2025](https://jupytercon2025.sched.com/event/28H3z) on November 4! Join us to learn about ✨ AI-powered notebook interactions and the future of 🪐 Jupyter workflows.
29
31
32
+
</td>
33
+
<tdwidth="40%"align="center">
30
34
31
-
> 🚨 **Latest Release: v17.0**: **JupyterLab Mode Integration!** Enhanced UI integration with automatic notebook opening. [📋 Read more in the release notes](https://jupyter-mcp-server.datalayer.tech/releases)
|`notebook_run-all-cells`| Execute all cells in the current notebook sequentially using JupyterLab's native commands. |
99
112
100
113
For more details on each tool, their parameters, and return values, please refer to the [official Tools documentation](https://jupyter-mcp-server.datalayer.tech/tools).
@@ -135,14 +148,17 @@ Next, configure your MCP client to connect to the server. We offer two primary m
135
148
<summary><b>📦 Using uvx (Quick Start)</b></summary>
136
149
137
150
First, install `uv`:
151
+
138
152
```bash
139
153
pip install uv
140
154
uv --version
141
155
# should be 0.6.14 or higher
142
156
```
157
+
143
158
See more details on [uv installation](https://docs.astral.sh/uv/getting-started/installation/).
144
159
145
160
Then, configure your client:
161
+
146
162
```json
147
163
{
148
164
"mcpServers": {
@@ -165,6 +181,7 @@ Then, configure your client:
165
181
<summary><b>🐳 Using Docker (Production)</b></summary>
166
182
167
183
**On macOS and Windows:**
184
+
168
185
```json
169
186
{
170
187
"mcpServers": {
@@ -188,6 +205,7 @@ Then, configure your client:
188
205
```
189
206
190
207
**On Linux:**
208
+
191
209
```json
192
210
{
193
211
"mcpServers": {
@@ -214,11 +232,12 @@ Then, configure your client:
214
232
</details>
215
233
216
234
> [!TIP]
235
+
>
217
236
> 1.**Port Configuration**: Ensure the `port` in your Jupyter URLs matches the one used in the `jupyter lab` command. For simplified config, set this in `JUPYTER_URL`.
218
-
> 2.**Server Separation**: Use `JUPYTER_URL` when both services are on the same server, or set individual variables for advanced deployments. The different URL variables exist because some deployments separate notebook storage (`DOCUMENT_URL`) from kernel execution (`RUNTIME_URL`).
219
-
> 3.**Authentication**: In most cases, document and runtime services use the same authentication token. Use `JUPYTER_TOKEN` for simplified config or set `DOCUMENT_TOKEN` and `RUNTIME_TOKEN` individually for different credentials.
220
-
> 4.**Notebook Path**: The `DOCUMENT_ID` parameter specifies the path to the notebook the MCP client default to connect. It should be relative to the directory where JupyterLab was started. If you omit `DOCUMENT_ID`, the MCP client can automatically list all available notebooks on the Jupyter server, allowing you to select one interactively via your prompts.
221
-
> 5.**Image Output**: Set `ALLOW_IMG_OUTPUT` to `false` if your LLM does not support mutimodel understanding.
237
+
> 1.**Server Separation**: Use `JUPYTER_URL` when both services are on the same server, or set individual variables for advanced deployments. The different URL variables exist because some deployments separate notebook storage (`DOCUMENT_URL`) from kernel execution (`RUNTIME_URL`).
238
+
> 1.**Authentication**: In most cases, document and runtime services use the same authentication token. Use `JUPYTER_TOKEN` for simplified config or set `DOCUMENT_TOKEN` and `RUNTIME_TOKEN` individually for different credentials.
239
+
> 1.**Notebook Path**: The `DOCUMENT_ID` parameter specifies the path to the notebook the MCP client default to connect. It should be relative to the directory where JupyterLab was started. If you omit `DOCUMENT_ID`, the MCP client can automatically list all available notebooks on the Jupyter server, allowing you to select one interactively via your prompts.
240
+
> 1.**Image Output**: Set `ALLOW_IMG_OUTPUT` to `false` if your LLM does not support mutimodel understanding.
222
241
223
242
For detailed instructions on configuring various MCP clients—including [Claude Desktop](https://jupyter-mcp-server.datalayer.tech/clients/claude_desktop), [VS Code](https://jupyter-mcp-server.datalayer.tech/clients/vscode), [Cursor](https://jupyter-mcp-server.datalayer.tech/clients/cursor), [Cline](https://jupyter-mcp-server.datalayer.tech/clients/cline), and [Windsurf](https://jupyter-mcp-server.datalayer.tech/clients/windsurf) — see the [Clients documentation](https://jupyter-mcp-server.datalayer.tech/clients).
224
243
@@ -255,12 +274,12 @@ Looking for blog posts, videos, or other materials about Jupyter MCP Server?
255
274
<imgsrc="https://api.star-history.com/svg?repos=datalayer/jupyter-mcp-server&type=Date"alt="Star History Chart">
0 commit comments