Jupyter MCP Server:讓 AI 與你的 Jupyter 環(huán)境無縫協(xié)作 原創(chuàng)
在當今數(shù)字化時代,數(shù)據(jù)科學和機器學習的結(jié)合正變得越來越緊密。而 Jupyter Notebook 作為數(shù)據(jù)科學家和開發(fā)者的得力助手,其功能也在不斷拓展。今天,我們要介紹的 Jupyter MCP Server,正是這樣一個能夠?qū)⒋笮驼Z言模型(LLM)與 Jupyter 環(huán)境實時集成的神器。它通過實現(xiàn)模型上下文協(xié)議(MCP),讓 AI 模型能夠以安全且有上下文感知的方式與 Jupyter 的內(nèi)核、文件系統(tǒng)和終端進行交互。接下來,就讓我們一起深入了解 Jupyter MCP Server 的魅力所在。
為什么我們需要 MCP 服務(wù)器?
在傳統(tǒng)的數(shù)據(jù)科學和機器學習工作中,AI 模型往往處于一個“真空”狀態(tài),它們無法感知到預設(shè)變量的存在,這極大地限制了它們的能力和潛力。想象一下,如果一個 AI 模型無法獲取到代碼歷史、變量值、數(shù)據(jù)集以及執(zhí)行結(jié)果等實時上下文信息,它在運行過程中就很容易出錯。而 MCP(模型上下文協(xié)議)服務(wù)器的出現(xiàn),正是為了解決這一問題。它為 AI 模型提供了實時的上下文感知能力,讓它們能夠在實時環(huán)境中進行推理、執(zhí)行和改進,從而變得更加智能、精確和高效。
Jupyter MCP Server 是什么?
Jupyter MCP Server 是一個強大的工具,它通過模型上下文協(xié)議(MCP)作為橋梁,將大型語言模型與用戶的實時 Jupyter 環(huán)境連接起來。它打破了傳統(tǒng)模型的局限性,無需再手動復制和粘貼代碼和數(shù)據(jù)。通過 MCP 的安全協(xié)議,模型可以訪問和交互 Jupyter 生態(tài)系統(tǒng)的各個組件,從而實現(xiàn)集成化、有上下文感知能力且強大的 AI 驅(qū)動輔助。
Jupyter MCP Server 的強大功能
Jupyter MCP Server 通過模型上下文協(xié)議(MCP),為外部應(yīng)用程序與 Jupyter 核心組件之間的交互提供了一種結(jié)構(gòu)化的方式。它具備以下幾大功能:
內(nèi)核交互
Jupyter MCP Server 能夠在用戶的活躍內(nèi)核中運行代碼,檢查內(nèi)核狀態(tài),獲取執(zhí)行結(jié)果,甚至管理內(nèi)核生命周期。具體來說,它可以通過以下幾種方式實現(xiàn):
- 運行代碼單元格
- 獲取變量值
- 檢查內(nèi)核狀態(tài)
- 中斷或重啟內(nèi)核
其工作原理是:MCP 客戶端向 MCP API 發(fā)送請求,指定目標內(nèi)核和操作,然后 MCP 服務(wù)器與 Jupyter 的內(nèi)核管理器通信以處理請求。
文件系統(tǒng)訪問
Jupyter MCP Server 提供對用戶工作區(qū)的受控訪問,允許外部應(yīng)用程序讀取、寫入或管理文件和目錄。它遵循 Jupyter 內(nèi)容管理器和 MCP 安全策略的規(guī)則來執(zhí)行文件操作。
終端訪問
Jupyter MCP Server 還能夠與 Jupyter 的終端會話進行交互。MCP 客戶端可以向特定的終端會話發(fā)送命令,Jupyter 的終端管理器會處理請求并返回任何輸出。通過這種方式,用戶可以執(zhí)行以下操作:
- 運行 shell 命令
- 安裝包
- 管理后臺進程
- 自動化系統(tǒng)任務(wù)
實時協(xié)作
Jupyter MCP Server 支持多人或 AI 代理同時查看和編輯筆記本,這對于團隊協(xié)作和實時反饋非常有幫助。
筆記本管理
Jupyter MCP Server 還提供了高效的筆記本管理功能,包括保存和檢索筆記本信息,確保數(shù)據(jù)的完整性和可訪問性。
如何集成 Jupyter MCP Server?
在開始集成 Jupyter MCP Server 之前,我們需要先了解一些必要的前提條件:
前提條件
- Python 3.8 或更高版本:Jupyter MCP Server 基于現(xiàn)代 Python 特性構(gòu)建,需要一個更新的環(huán)境。
- Jupyter Server:MCP Server 作為 Jupyter Server 的擴展運行。如果尚未安裝,可以通過以下命令添加:
pip install jupyter-server
安裝步驟
標準安裝
你可以直接從 PyPI 使用 pip 安裝 Jupyter MCP Server:
pip install jupyter-mcp-server
開發(fā)安裝
你也可以從 GitHub 克隆源代碼倉庫:
git clone https://github.com/datalayer/jupyter-mcp-server.git
cd jupyter-mcp-server
然后使用以下命令以可編輯模式安裝,這樣你對源代碼所做的更改將立即生效:
pip install -e .
如果你計劃運行測試并做出貢獻,可以使用以下命令:
pip install -e ".[dev]"
激活擴展
安裝完成后,你需要為 Jupyter Server 啟用擴展,以加載和使用 MCP Server 功能。你可以通過以下命令完成此操作:
jupyter server extension enable jupyter_mcp_server
完成以上步驟后,你可以通過以下命令驗證安裝是否成功:
jupyter server extension list
如果在列表中看到 ??jupyter_mcp_server?
?,則說明擴展已成功激活。
Jupyter MCP Server 的工作原理
Jupyter MCP Server 并不是一個可見的界面,而是隱藏在 JupyterLab 或 Notebook 內(nèi)部。它提供了一個 HTTP API,供其他工具(如 Claude Desktop、AI 模型、后端或插件)使用。
當使用 Claude Desktop 時,你需要在 ??claude_desktop_config.json?
?? 文件中進行一些配置。??TOKEN?
?? 值和 ??NOTEBOOK_PATH?
? 可以在運行 Jupyter Notebook 時從終端獲取。
以下是 Windows 和 Linux 系統(tǒng)的配置代碼:
Windows
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERVER_URL",
"-e",
"TOKEN",
"-e",
"NOTEBOOK_PATH",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://host.docker.internal:8888",
"TOKEN": "MY_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
Linux
CLAUDE_CONFIG=${HOME}/.config/Claude/claude_desktop_config.json
cat <<EOF > $CLAUDE_CONFIG
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERVER_URL",
"-e",
"TOKEN",
"-e",
"NOTEBOOK_PATH",
"--network=host",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://localhost:8888",
"TOKEN": "MY_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
EOF
cat $CLAUDE_CONFIG
一旦配置完成,如果需要與你的 Jupyter 會話進行交互,它會向該 API 發(fā)送請求。MCP Server 會處理請求,檢查是否允許,與 Jupyter 的相應(yīng)部分(如內(nèi)核、文件系統(tǒng)或終端)通信,并返回必要的響應(yīng)。
MCP 擴展提供的 API 端點位于 ??/mcp/v1?
??,這是你的 Jupyter Server 基礎(chǔ) URL 的一個附加路徑。因此,如果你的 Jupyter 服務(wù)器在本地運行于 ??http://localhost:8888/?
??,那么你可以在 ??http://localhost:8888/mcp/v1?
? 找到 MCP API。外部工具(如 Jupyter MCP Server)將通過此路徑與你的 Jupyter 環(huán)境進行通信。
Jupyter MCP Server 會根據(jù)任務(wù)發(fā)送 HTTP 請求,如 GET、POST、PUT 或 DELETE。每個請求都會發(fā)送到 ??/mcp/v1?
? 下的特定子路徑。這些請求模式和數(shù)據(jù)結(jié)構(gòu)構(gòu)成了所謂的模型上下文協(xié)議(MCP)。更多詳情可以參考項目中的主 README 文件,了解端點的作用。
實踐應(yīng)用
在實際應(yīng)用中,Jupyter MCP Server 可以幫助我們完成以下任務(wù):
添加代碼單元格
代碼單元格是你可以編寫和運行代碼的部分。通過 Jupyter MCP Server,你可以輕松地在筆記本中添加新的代碼單元格,無需手動復制和粘貼代碼。
運行代碼
只需點擊一個按鈕,你就可以立即看到代碼的運行結(jié)果。這種即時反饋對于快速迭代和調(diào)試代碼非常有幫助。
添加帶有 Markdown 的文本
使用 Markdown 單元格,你可以編寫筆記、解釋或標題,讓你的工作看起來更有條理。這不僅有助于你自己的理解和回顧,也方便與他人分享和協(xié)作。
上下文管理和安全性
Jupyter MCP Server 的一個重要特點是它不僅僅是提供訪問權(quán)限,而是確保訪問是受控且安全的。MCP 協(xié)議強制執(zhí)行授權(quán)和作用域限制,即僅允許明確允許的訪問。用戶可以清楚地看到哪些應(yīng)用程序可以訪問他們的會話以及它們可以執(zhí)行的操作。這不僅防止了未經(jīng)授權(quán)的訪問,還保護了用戶數(shù)據(jù),確保了 Jupyter 環(huán)境的安全性。
總結(jié)
希望這篇關(guān)于 Jupyter MCP Server 的教程對你有所幫助!Jupyter MCP Server 為你的 Jupyter 環(huán)境帶來了更智能的 AI 驅(qū)動交互。它通過模型上下文協(xié)議(MCP)以安全且標準化的方式實現(xiàn)了這一點。該服務(wù)器已經(jīng)可用且易于設(shè)置。隨著其采用率的增加,我們可以期待更多智能的、有上下文感知能力的工具,它們不僅能夠提供幫助,還能真正理解我們的工作流程。因此,Jupyter MCP Server 正在彌合強大 AI 模型與動態(tài)環(huán)境之間的差距。
本文轉(zhuǎn)載自??Halo咯咯?? 作者:基咯咯
