项目简介
NotebookLLM 是一个Python包,旨在帮助大型语言模型(LLM)更高效地处理 Jupyter Notebook 文件(.ipynb)。传统的 .ipynb 文件由于其复杂的 JSON 格式和包含大量元数据,会导致 LLM 在处理时消耗大量 token,增加成本,并容易超出上下文窗口限制。NotebookLLM 通过将 .ipynb 文件转换为一种简化的、token友好的纯文本格式(保留代码和 Markdown 结构,但去除元数据),大大降低了 LLM 处理的难度和成本。同时,它也支持将这种纯文本格式转换回 .ipynb 文件。
这个仓库包含了一个基于 Model Context Protocol (MCP) 实现的服务器,将 NotebookLLM 的核心功能以工具的形式暴露给 LLM 客户端, enabling LLMs to programmatically interact with and manipulate notebooks efficiently.
主要功能点
- 将 Jupyter Notebook (.ipynb) 文件转换为 LLM 更容易理解的、token消耗更低的纯文本格式。
- 将特定格式的纯文本(包含代码和 Markdown 标记)转换回标准的 Jupyter Notebook (.ipynb) 文件。
- 允许 LLM 通过调用工具,在加载到服务器内存中的 Notebook 对象上执行操作,如添加代码单元格、添加 Markdown 单元格、以及保存修改后的 Notebook。
- 通过 MCP 协议,为 LLM 提供一套标准化的接口来访问和操作 Jupyter Notebook 内容。
安装步骤
要安装 NotebookLLM 包,包括其 MCP 服务器组件,您可以使用 pip:
pip install notebookllm
或者从源代码安装:
git clone https://github.com/yasirrazaa/notebookllm.git cd notebookllm pip install .
服务器配置
MCP 服务器通常由 MCP 客户端(如某些 LLM 应用程序或集成环境)根据需要启动。您需要在您的 MCP 客户端中配置 NotebookLLM MCP 服务器的启动命令和参数。具体的配置方式取决于您使用的客户端应用程序。
典型的 MCP 客户端配置会包含服务器的名称 (server name)、用于启动服务器进程的命令 (command) 和参数 (args)。以下是根据 NotebookLLM 仓库信息生成的启动方式示例,您需要根据您实际的安装方式来配置客户端:
-
如果使用 'uvx' 运行服务器 (推荐):
- 命令 (command): uvx
- 参数 (args): ["notebookllm-server"]
- (这指示客户端使用 'uvx' 工具来执行 'notebookllm-server' 命令)
-
如果通过 'pip install notebookllm' 安装后运行服务器:
-
命令 (command): notebookllm-server
-
参数 (args): []
-
(这指示客户端直接执行安装到系统路径中的 'notebookllm-server' 命令)
-
如果 'notebookllm-server' 命令不可用,或者想直接运行 Python 模块:
- 命令 (command): python
- 参数 (args): ["-m", "notebookllm.mcp_server"]
- (这指示客户端使用 Python 解释器运行 'notebookllm.mcp_server' 模块)
-
配置成功后,您的 MCP 客户端将能够发现 NotebookLLM MCP 服务器提供的工具。
基本使用方法
一旦 MCP 服务器在客户端中配置并运行,LLM 就可以通过调用服务器暴露的工具来与 Jupyter Notebook 交互:
- 加载 Notebook: LLM 可以调用工具加载指定的 .ipynb 文件到服务器内存中,以便进行后续操作。
- 获取文本内容: LLM 可以调用工具获取当前加载的 Notebook 的纯文本表示,这个文本是优化过的,适合 LLM 阅读和修改。
- 根据文本创建/更新 Notebook: LLM 可以提供修改后的纯文本内容,调用工具将其转换回 .ipynb 格式,并指定保存路径。这会创建或更新一个 Notebook 文件。
- 操作加载的 Notebook: LLM 还可以调用工具直接对加载到内存中的 Notebook 进行操作,例如添加新的代码单元格或 Markdown 单元格。
- 保存 Notebook: LLM 可以调用工具将当前加载到内存中的 Notebook 保存到文件,可以选择保存到原路径或新路径。
通过这些工具,LLM 可以高效地执行 Notebook 内容分析、代码编写、文档生成、结构调整等任务,而无需直接处理复杂的 .ipynb JSON 结构。
信息
分类
开发者工具