Token导航 LogoToken导航TokenDH.com
Notebook Library MCP Server logo
搜索检索stdio官方级别未说明来源级核验

Notebook Library MCP Server

MCP Server

为AI代理提供高效的分块、嵌入和索引文档的语义搜索功能,适用于本地文档管理。

工具数

8

提示词数

0

GitHub Stars

1

资源数

0
搜索本地处理Python文档处理向量数据库

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

clotho2

提供方

clotho2

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r mcp_servers/notebook_library/requirements.txt

详细介绍

笔记本库MCP服务器

用于底物AI代理的令牌高效文档检索。将PDF、文本文件和markdown放入笔记本文件夹中——它们会被分块、嵌入和索引以进行语义搜索。查询只返回最相关的段落(约2500个标记),而不是加载整个文档(50000+)。

它的作用

您的AI代理将获得 notebook_library 工具执行以下操作:

动作描述
list_notebooks查看所有可用笔记本
create_notebook创建新的笔记本收藏
query_notebook笔记本中的语义搜索(最主要的!)
browse_notebook在笔记本中列出文档
read_document逐块深度读取特定文档
notebook_stats获取笔记本的统计信息
sync_notebook添加/更改文件后重新同步
remove_document从搜索索引中删除文档

支持的文件格式: .pdf, .txt, .md, .text, .markdown

建筑

data/
├── notebooks/               # Your document folders
│   ├── Research_Papers/     # Each subfolder = one notebook
│   │   ├── paper1.pdf
│   │   └── notes.md
│   └── Business_Docs/
│       └── plan.txt
└── notebook_chromadb/       # Vector database (auto-created)
    └── manifests/           # File change tracking

mcp_servers/
└── notebook_library/
    ├── server.py              # MCP server (if running standalone)
    ├── notebook_manager.py    # Core: ChromaDB ingestion + search
    ├── document_processor.py  # Text extraction + chunking
    ├── file_watcher.py        # Auto-ingestion on file changes
    └── requirements.txt

backend/tools/
├── notebook_library_tool.py        # Tool wrapper for consciousness loop
└── notebook_library_tool_schema.json  # Tool schema definition

嵌入策略(多层回退):

  1. 拥抱脸 (jinaai/jina-embeddings-v2-base-de)--本地、免费、多语言
  2. 奥拉玛 (nomic-embed-text)--如果HF失败,则进行本地回退

不需要外部API密钥。一切都在本地运行。

安装指南

1.安装依赖项

从您的基质根:

pip install -r mcp_servers/notebook_library/requirements.txt

关键依赖关系:

  • chromadb==0.4.18 --矢量数据库
  • transformers + torch --拥抱面部嵌入(初级)
  • ollama --嵌入回退
  • PyMuPDF --PDF文本提取
  • watchdog --文件系统监控
注: 第一次运行将下载拥抱脸嵌入模型(约270MB)。这是一次性下载。

2.创建数据目录

mkdir -p data/notebooks
mkdir -p data/notebook_chromadb

3.复制MCP服务器文件

复制整个 mcp_servers/notebook_library/ 目录到您的基板:

your_substrate/
└── mcp_servers/
    └── notebook_library/
        ├── __init__.py
        ├── server.py
        ├── notebook_manager.py
        ├── document_processor.py
        ├── file_watcher.py
        └── requirements.txt

4.复制工具包装

将这两个文件复制到您的 backend/tools/ 目录:

backend/tools/notebook_library_tool.py --你的意识循环调用的工具功能。这个进口 NotebookManager 直接(无子流程)。

backend/tools/notebook_library_tool_schema.json --工具模式,以便您的代理知道如何调用它。

5.在你的意识循环中注册该工具

三个集成点:

a) 导入 integration_tools.py

添加到您的导入中:

from tools.notebook_library_tool import notebook_library_tool as _notebook_library_tool

将包装器方法添加到您的 IntegrationTools 类别:

def notebook_library(self, **kwargs) -> Dict[str, Any]:
    """
    Notebook Library — token-efficient document retrieval.
    """
    try:
        result = _notebook_library_tool(**kwargs)
        return result
    except Exception as e:
        return {
            "status": "error",
            "message": f"Notebook library error: {str(e)}"
        }

添加 'notebook_library_tool' 将JSON模式添加到您的工具模式加载列表中,以便提取JSON模式。

b) 在中添加工具调用处理程序 consciousness_loop.py

在您的工具执行块中(您处理 elif tool_name == "..." 案例),添加:

elif tool_name == "notebook_library":
    result = self.tools.notebook_library(**arguments)

c) 验证架构加载

工具架构文件(notebook_library_tool_schema.json)必须在 backend/tools/ 与其他工具模式一起。如果模式加载器遵循与其他工具相同的模式,它应该会自动拾取它。

6.添加文档

创建笔记本文件夹并将文件放入:

mkdir -p data/notebooks/My_Research
cp ~/some_paper.pdf data/notebooks/My_Research/
cp ~/notes.md data/notebooks/My_Research/

当您的代理首次查询笔记本时,文档会自动获取,或者您可以通过以下方式触发手动同步 sync_notebook 行动。

环境变量(可选)

所有这些都有合理的违约。仅在需要时覆盖:

变量默认值描述
NOTEBOOK_LIBRARY_PATHdata/notebooks笔记本文件夹所在的位置
NOTEBOOK_CHROMADB_PATHdata/notebook_chromadb矢量数据库存储
OLLAMA_BASE_URLhttp://192.168.2.175:11434Ollama服务器(回退嵌入)
OLLAMA_EMBEDDING_MODELnomic-embed-textOlama型号名称
NOTEBOOK_CHUNK_SIZE2000每块字符数
NOTEBOOK_CHUNK_OVERLAP200块之间的重叠

重要提示: 更新 OLLAMA_BASE_URL 如果你使用Ollama回退,请指向你自己的Ollama实例。默认值指向原始开发人员的本地网络。

运作原理

  1. 摄入: 文档被分割成块(每个约2000个字符,重叠200个字符),使用Hugging Face或Ollama嵌入,并存储在ChromaDB集合中(每个笔记本电脑一个)。
  1. 查询: 代理的查询嵌入了相同的模型,然后ChromaDB通过余弦相似度找到最相似的块。仅返回前N个段落(默认值5)。
  1. 文件跟踪: 清单系统(MD5哈希)跟踪哪些文件已被摄入。更改的文件会被重新处理;跳过未更改的文件。
  1. 文件监视: 基于监视器的文件监视器监视笔记本文件夹,并通过2秒的去抖动自动摄取新的/修改的文件。

代理使用示例

一旦集成,您的代理可以像这样使用它:

# List what's available
notebook_library(action="list_notebooks")

# Search for something specific
notebook_library(action="query_notebook", notebook="Research_Papers", query="transformer attention mechanisms")

# Browse a notebook's contents
notebook_library(action="browse_notebook", notebook="Research_Papers")

# Deep-read a specific document
notebook_library(action="read_document", notebook="Research_Papers", filename="paper1.pdf")

# Create a new notebook
notebook_library(action="create_notebook", name="Meeting_Notes", description="Weekly team meetings")

故障排除

“未找到笔记本” --确保 data/notebooks/ 存在,并且至少有一个子文件夹包含文件。

第一次查询速度慢 --对笔记本的第一个查询会触发摄取(分块+嵌入所有文档)。后续查询很快。对于大型收藏,请运行 sync_notebook 第一。

嵌入模型下载 --第一次运行下载Jina嵌入模型(约270MB)。如果这在防火墙后失败,系统将回退到Ollama。确保HF模型访问或Ollama实例可用。

ChromaDB版本不匹配 --固定到 chromadb==0.4.18.较新的版本可能有突破性的API更改。

OLLAMA_BASE_URL地址 --如果你看到Ollama连接错误,而你没有使用Ollama,那很好——这只是HF成功后的回退失败。如果HF也失败,请将此URL更新到您的Ollama实例。

目录标签

目录标签

搜索本地处理Python文档处理向量数据库语义搜索本地部署文档管理AI工具

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotokenlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP