Skip to content

Commit e61f365

Browse files
Add the tools returned by jupyter_mcp_tools (#109)
* deps: jupyter-mcp-tools 0.1.1 * chore: depend on jupyter-mcp-tools 0.1.2 * docs: links * jupyterlab mode + automatic notebook opening * fix get_tools * correct setup automated release notes --------- Co-authored-by: Eléonore Charles <[email protected]>
1 parent 3d33704 commit e61f365

File tree

20 files changed

+559
-88
lines changed

20 files changed

+559
-88
lines changed

.github/workflows/release.yml

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,21 +116,20 @@ jobs:
116116
id: version
117117
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
118118

119+
- name: Create Release with Auto-Generated Notes
120+
run: |
121+
gh release create ${{ github.ref_name }} \
122+
--title "Release ${{ steps.version.outputs.VERSION }}" \
123+
--generate-notes \
124+
--notes "## 🚀 Release ${{ steps.version.outputs.VERSION }}
125+
126+
### 🔗 Links
127+
128+
- [PyPI](https://pypi.org/project/jupyter-mcp-server/${{ steps.version.outputs.VERSION }}/)
129+
- [Docker Hub](https://hub.docker.com/r/datalayer/jupyter-mcp-server)
119130
120-
- name: Create Release
121-
uses: actions/create-release@v1
131+
---
132+
133+
### What's Changed"
122134
env:
123135
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
124-
with:
125-
tag_name: ${{ github.ref }}
126-
release_name: Release ${{ steps.version.outputs.VERSION }}
127-
body: |
128-
## 🚀 Release ${{ steps.version.outputs.VERSION }}
129-
130-
### 🔗 Links
131-
132-
- [PyPI](https://pypi.org/project/jupyter-mcp-server/${{ steps.version.outputs.VERSION }}/)
133-
- [Docker Hub](https://hub.docker.com/r/datalayer/jupyter-mcp-server)
134-
draft: false
135-
prerelease: false
136-
generate_release_notes: true

README.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<a href="https://archestra.ai/mcp-catalog/datalayer__jupyter-mcp-server"><img src="https://archestra.ai/mcp-catalog/api/badge/quality/datalayer/jupyter-mcp-server" alt="Trust Score" width="150"></a>
2929

3030

31-
> 🚨 **Latest Release: v0.14.0**: **Multi-notebook support!** You can now seamlessly switch between multiple notebooks in a single session. [📋 Read more in the release notes](https://jupyter-mcp-server.datalayer.tech/releases)
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)
3232
3333
![Jupyter MCP Server Demo](https://assets.datalayer.tech/jupyter-mcp/mcp-demo-multimodal.gif)
3434

@@ -42,14 +42,14 @@
4242
- [Contributing](#-contributing)
4343
- [Resources](#-resources)
4444

45-
4645
## 🚀 Key Features
4746

4847
-**Real-time control:** Instantly view notebook changes as they happen.
4948
- 🔁 **Smart execution:** Automatically adjusts when a cell run fails thanks to cell output feedback.
5049
- 🧠 **Context-aware:** Understands the entire notebook context for more relevant interactions.
5150
- 📊 **Multimodal support:** Support different output types, including images, plots, and text.
5251
- 📚 **Multi-notebook support:** Seamlessly switch between multiple notebooks.
52+
- 🎨 **JupyterLab integration:** Enhanced UI integration like automatic notebook opening.
5353
- 🤝 **MCP-compatible:** Works with any MCP client, such as Claude Desktop, Cursor, Windsurf, and more.
5454

5555
Compatible with any Jupyter deployment (local, JupyterHub, ...) and with [Datalayer](https://datalayer.ai/) hosted Notebooks.
@@ -89,6 +89,14 @@ The server provides a rich set of tools for interacting with Jupyter notebooks,
8989
| `insert_execute_code_cell` | A convenient tool to insert a new code cell and execute it in one step. |
9090
| `execute_ipython` | Execute IPython code directly in the kernel, including magic and shell commands. |
9191

92+
### JupyterLab Integration
93+
94+
*Available only when JupyterLab mode is enabled. It is enabled by default.*
95+
96+
| Name | Description |
97+
|:---|:---|
98+
| `notebook_run-all-cells` | Execute all cells in the current notebook sequentially using JupyterLab's native commands. |
99+
92100
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).
93101

94102
## 🏁 Getting Started
@@ -98,7 +106,7 @@ For comprehensive setup instructions—including `Streamable HTTP` transport, ru
98106
### 1. Set Up Your Environment
99107

100108
```bash
101-
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel
109+
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel
102110
pip uninstall -y pycrdt datalayer_pycrdt
103111
pip install datalayer_pycrdt==0.12.17
104112
```

docs/docs/configure/index.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ Options:
1717
Defaults to 'stdio'.
1818
--provider [jupyter|datalayer] The provider to use for the document and
1919
runtime. Defaults to 'jupyter'.
20+
--jupyterlab BOOLEAN Enable JupyterLab mode for enhanced UI
21+
integration like automatic notebook opening.
22+
Defaults to True.
2023
--runtime-url TEXT The runtime URL to use. For the jupyter
2124
provider, this is the Jupyter server URL.
2225
For the datalayer provider, this is the

docs/docs/deployment/jupyter/index.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ The Jupyter MCP Server acts as a bridge between the MCP client and the JupyterLa
66

77
You can customize the setup further based on your requirements. Refer to the [server configuration](/configure) for more details on the possible configurations.
88

9+
:::tip JupyterLab Mode
10+
11+
**New in v0.17.0**: Enable JupyterLab mode for enhanced UI integration! When enabled, notebooks automatically open in JupyterLab and additional UI tools become available. See the [JupyterLab Mode configuration](/configure#jupyterlab-mode) for details.
12+
13+
:::
14+
915
Jupyter MCP Server supports two types of transport to connect to your MCP client: **STDIO** and **Streamable HTTP**. Choose the one that best fits your needs.
1016
For more details on the different transports, refer to the official MCP documentation [here](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports).
1117

docs/docs/deployment/jupyter/stdio/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
Make sure you have the following packages installed in your environment. The collaboration package is needed as the modifications made on the notebook can be seen thanks to [Jupyter Real Time Collaboration](https://jupyterlab.readthedocs.io/en/stable/user/rtc.html).
88

99
```bash
10-
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel
10+
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel
1111
pip uninstall -y pycrdt datalayer_pycrdt
1212
pip install datalayer_pycrdt==0.12.17
1313
```

docs/docs/deployment/jupyter/streamable-http/jupyter-extension/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Make sure you have the following packages installed in your environment. The col
99
```bash
1010
pip install "jupyter-mcp-server>=0.15.0" "jupyterlab==4.4.1" "jupyter-collaboration==4.0.2" "ipykernel"
1111
pip uninstall -y pycrdt datalayer_pycrdt
12-
pip install datalayer_pycrdt==0.12.17
12+
pip install datalayer_pycrdt==0.12.17 jupyter_mcp_tools
1313
```
1414

1515
### JupyterLab and MCP start

docs/docs/deployment/jupyter/streamable-http/standalone/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
Make sure you have the following packages installed in your environment. The collaboration package is needed as the modifications made on the notebook can be seen thanks to [Jupyter Real Time Collaboration](https://jupyterlab.readthedocs.io/en/stable/user/rtc.html).
88

99
```bash
10-
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel
10+
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel
1111
pip uninstall -y pycrdt datalayer_pycrdt
1212
pip install datalayer_pycrdt==0.12.17
1313
```

docs/docs/index.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ Key features include:
2626
- 🧠 **Context-aware:** Understands the entire notebook context for more relevant interactions.
2727
- 📊 **Multimodal support:** Support different output types, including images, plots, and text.
2828
- 📁 **Multi-notebook support:** Seamlessly switch between multiple notebooks.
29+
- 🎛️ **JupyterLab integration:** Enhanced UI integration like automatic notebook opening.
2930
- 🤝 **MCP-compatible:** Works with any MCP client, such as [Claude Desktop](/clients/claude_desktop), [Cursor](/clients/cursor), [Cline](/clients/cline), [Windsurf](/clients/windsurf) and more.
3031

3132
To use Jupyter MCP Server, you first need to decide which setup fits your needs:

docs/docs/releases/index.mdx

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# Releases
22

3-
## 0.16.x - 13 Oct 2025
3+
## Latest Release
4+
5+
See the latest release notes on the [GitHub Releases page](https://github.com/datalayer/jupyter-mcp-server/releases).
6+
7+
## Older Releases
8+
9+
### 0.16.x - 13 Oct 2025
410

511
- [Merge the three execute tools into a single unified tool](https://github.com/datalayer/jupyter-mcp-server/pull/111)
612
- [Docs: update readme and contributing](https://github.com/datalayer/jupyter-mcp-server/pull/112)
@@ -10,45 +16,45 @@
1016
- [Refactor: separate and simplify the server.py](https://github.com/datalayer/jupyter-mcp-server/pull/123)
1117
- [Feat/add JUPYTER_URL and JUPYTER_TOKEN](https://github.com/datalayer/jupyter-mcp-server/pull/125)
1218

13-
## 0.15.x - 08 Oct 2025
19+
### 0.15.x - 08 Oct 2025
1420

1521
- [Run as Jupyter Server Extension + Tool registry + Use tool](https://github.com/datalayer/jupyter-mcp-server/pull/95)
1622
- [simplify tool implementations](https://github.com/datalayer/jupyter-mcp-server/pull/101)
1723
- [add uvx as alternative MCP server startup method](https://github.com/datalayer/jupyter-mcp-server/pull/101)
1824
- [document as a Jupyter Extension](https://github.com/datalayer/jupyter-mcp-server/pull/101)
1925
- Fix Minor Bugs: [#108](https://github.com/datalayer/jupyter-mcp-server/pull/108),[#110](https://github.com/datalayer/jupyter-mcp-server/pull/110)
2026

21-
## 0.14.0 - 03 Oct 2025
27+
### 0.14.0 - 03 Oct 2025
2228

2329
- [Additional Tools & Bug fixes](https://github.com/datalayer/jupyter-mcp-server/pull/93).
2430
- [Execute IPython](https://github.com/datalayer/jupyter-mcp-server/pull/90).
2531
- [Multi notebook management](https://github.com/datalayer/jupyter-mcp-server/pull/88).
2632

27-
## 0.13.0 - 25 Sep 2025
33+
### 0.13.0 - 25 Sep 2025
2834

2935
- [Add multimodal output support for Jupyter cell execution](https://github.com/datalayer/jupyter-mcp-server/pull/75).
3036
- [Unify cell insertion functionality](https://github.com/datalayer/jupyter-mcp-server/pull/73).
3137

32-
## 0.11.0 - 01 Aug 2025
38+
### 0.11.0 - 01 Aug 2025
3339

3440
- [Rename room to document](https://github.com/datalayer/jupyter-mcp-server/pull/35).
3541

36-
## 0.10.2 - 17 Jul 2025
42+
### 0.10.2 - 17 Jul 2025
3743

3844
- [Tools docstring improvements](https://github.com/datalayer/jupyter-mcp-server/pull/30).
3945

40-
## 0.10.1 - 11 Jul 2025
46+
### 0.10.1 - 11 Jul 2025
4147

4248
- [CORS Support](https://github.com/datalayer/jupyter-mcp-server/pull/29).
4349

44-
## 0.10.0 - 07 Jul 2025
50+
### 0.10.0 - 07 Jul 2025
4551

4652
- More [fixes](https://github.com/datalayer/jupyter-mcp-server/pull/28) issues for nbclient stop.
4753

48-
## 0.9.0 - 02 Jul 2025
54+
### 0.9.0 - 02 Jul 2025
4955

5056
- Fix issues with `nbmodel` stops.
5157

52-
## 0.6.0 - 01 Jul 2025
58+
### 0.6.0 - 01 Jul 2025
5359

5460
- Configuration change, see details on the [clients page](/clients) and [server configuration](/configure).

docs/docs/tools/index.mdx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Tools
22

3-
The server currently offers 16 tools organized into 3 categories:
3+
The server currently offers 16 tools organized into 3 categories, plus 1 additional JupyterLab-specific tool:
44

55
## Server Management Tools (3 tools)
66

@@ -164,3 +164,16 @@ The server currently offers 16 tools organized into 3 categories:
164164
- `timeout`(int): Execution timeout in seconds (default: 60s)
165165
- Returns:
166166
- `list[Union[str, ImageContent]]`: List of outputs from the executed code (supports multimodal output including images)
167+
168+
## JupyterLab-Specific Tools (1 tool)
169+
170+
*Available only when JupyterLab mode is enabled (`--jupyterlab` or `jupyterlab: true` in config). It is set to `True` by default.*
171+
172+
#### 17. `notebook_run-all-cells`
173+
174+
- Execute all cells in the current notebook sequentially.
175+
- This tool provides a convenient way to run the entire notebook from start to finish, which is particularly useful for batch execution or notebook validation.
176+
- Only available when JupyterLab mode is enabled for enhanced UI integration.
177+
- Input: None
178+
- Returns: Success message indicating that all cells have been executed
179+
- Note: This tool uses JupyterLab's native execution commands for optimal performance and UI feedback.

0 commit comments

Comments
 (0)