Knowledge

io.github.seayniclabs由 GitHub 帳號 seayniclabs 發布v0.2.1更新於 Nov 3, 2026

Search, read and write your self-hosted Open Notebook knowledge base from an AI assistant.

已驗證STDIO僅桌面檔案與儲存知識與記憶

概覽

AI 產生的概覽

把 AI 助理連接到自架的 Open Notebook 知識庫,可列出、搜尋與閱讀筆記本、筆記和來源,並在你核准後儲存新筆記或連結。

可以做什麼
  • 列出筆記本及其中的筆記,分頁顯示,最近更新的排在前面
  • 依關鍵字或語意搜尋來源與筆記,可限定在單一筆記本內
  • 讀取單一筆記或來源,包含標題、主題、擷取文字與處理狀態
  • 在預覽並經你核准後,於筆記本中建立筆記,或把網頁連結、本機檔案加入為來源
  • 查看已啟用的模組、缺少的設定,以及各工具的用途
  • 使用內建技能提示完成入門、附來源引用的研究、週報、會議記錄、決策記錄與 Markdown 慣例
適用情境
當你的筆記與研究資料存放在自架的 Open Notebook,並希望助理據此附引用作答、草擬週報或決策記錄,或把新筆記與連結歸檔到合適的筆記本時適用。
執行需求
以本機 Python 套件執行(需 Python 3.11 或更新版本,可用 uvx 或 pip 安裝),預設透過 stdio 通訊,也可選用本機 HTTP 傳輸。需要以 KNOWLEDGE_OPEN_NOTEBOOK_URL 填寫 Open Notebook 伺服器位址;僅當伺服器設有密碼時才需要 KNOWLEDGE_OPEN_NOTEBOOK_PASSWORD。選用設定包括 KNOWLEDGE_OPEN_NOTEBOOK_REQUIRE_CONFIRM、KNOWLEDGE_OPEN_NOTEBOOK_ALLOWED_NOTEBOOKS、KNOWLEDGE_APPROVAL_LOG、模組開關以及設定檔。向量搜尋需在伺服器端設定嵌入模型。
安裝前請注意
有兩個工具會寫入筆記本:建立筆記與加入來源。預設每次寫入都需你在 MCP 用戶端核准;若把 KNOWLEDGE_OPEN_NOTEBOOK_REQUIRE_CONFIRM 設為 false,或在 KNOWLEDGE_OPEN_NOTEBOOK_ALLOWED_NOTEBOOKS 中預先核准筆記本,助理即可不經詢問直接寫入。你指定的本機檔案會上傳到 Open Notebook 伺服器,加入的連結也由該伺服器擷取。疑似憑證的文字會被拒絕,核准紀錄保存在本機。請使用 https 位址,並只把密碼交給本工具。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Knowledge,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Knowledge

Made by Seaynic Labs. Need tools like this built around your own systems? We do that.

Knowledge lets an AI assistant search, read and write the notes in your self-hosted Open Notebook, and comes with skills that teach it to do that work well: meeting notes, decision records, weekly reviews and source-backed research.

It is a bundle: tools, skills and instructions in one install. The tools are one server made of modules. You switch on the modules you use. New modules arrive switched off, so an update never changes what your assistant can do until you choose to.

Security card
NetworkOnly the Open Notebook server you configure (KNOWLEDGE_OPEN_NOTEBOOK_URL). Open Notebook fetches the links you add, not Knowledge. Nothing else, no telemetry.
FilesReads its config file (/.config/knowledge/config.toml). Reads a local file only when you name it in open_notebook_add_source, and only after you approve it (the file goes to your Open Notebook server). Writes one local approval log (/.local/state/knowledge/approvals.jsonl).
SecretsAPI keys and passwords come from your environment or config file. They are never tool arguments and never returned to the model.
Read-only tools6: open_notebook_notebooks, open_notebook_search, open_notebook_notes, open_notebook_note_get, open_notebook_source_get, knowledge_modules
Needs your approvalopen_notebook_note_create, open_notebook_add_source: you approve each write in your app, or pre-approve notebooks in settings (not for local files). The AI cannot approve for you.
Startup costabout 4,600 tokens (8 tools, 7 skill prompts)
ChangesTool descriptions are locked by hash (tool-manifest.lock.json); CI fails if they change silently.

Skills

SkillWhat it doesSource
getting-startedChecks the settings, runs the first calls, explains approvals and errorsSeaynic Labs (MIT)
research-with-sourcesAnswers from your notebooks, cites each claim, flags sources that disagreeSeaynic Labs (MIT)
weekly-reviewDone, open and next-week items from the notes you changed this weekSeaynic Labs (MIT)
meeting-notesStructured meeting notes as a Markdown file, optionally saved to a notebookSeaynic Labs (MIT)
decision-recordA numbered Architecture Decision Record in a Decisions/ folderSeaynic Labs (MIT)
icm-architectOrganises a knowledge base as a folder structure that agents can walkJake Van Clief (MIT), credits
obsidian-markdownObsidian-flavoured Markdown: wikilinks, callouts, propertiesSteph Ango (MIT), credits

Skills reach every app. Claude Code and other skill-aware apps read the skills/ folder. Any MCP app gets the same text as prompts: getting-started, for example, is the prompt named getting-started. Third-party skills keep their own license files. See CREDITS.md.

Install

Knowledge needs Python 3.11 or newer. With uv you don't install anything ahead of time:

bash
uvx knowledge-bundle-mcp --version

Or with pip:

bash
pip install knowledge-bundle-mcp

Pinned install. For a fixed setup, pin the exact version. The plugin manifest pins it the same way:

bash
uvx knowledge-bundle-mcp==0.2.1 --version

As a Claude Code plugin. One install gives you the MCP server and the skills. This needs the seayniclabs/plugins marketplace, which is published with the release:

/plugin marketplace add seayniclabs/plugins/plugin install knowledge@seayniclabs

The plugin still needs your Open Notebook address in its settings. The plugin file is .claude-plugin/plugin.json.

First five minutes

  1. Set KNOWLEDGE_OPEN_NOTEBOOK_URL to your server's address (step 2 below shows where).

  2. Run the check. It prints ok or FIX for each item and exits 0 when everything is ready:

    bash
    knowledge-bundle-mcp --doctor
  3. Start your assistant and ask it to list your notebooks. It calls open_notebook_notebooks and shows you the names.

  4. Ask it to search a word you know is in one of your notes. It calls open_notebook_search.

  5. Ask it to save a note. It shows a preview first, then asks you to approve the save in your app.

Settings

Set these as environment variables in your MCP client's config, or put them in a config file (see below). Knowledge starts without any of them and tells you what's missing when you call a tool.

VariableModuleWhat it is
KNOWLEDGE_OPEN_NOTEBOOK_URLopen_notebookAddress of your Open Notebook server, e.g. https://notebook.example.com. No path.
KNOWLEDGE_OPEN_NOTEBOOK_PASSWORDopen_notebookOnly if your server has a password (OPEN_NOTEBOOK_PASSWORD on the server). Leave it unset otherwise.
KNOWLEDGE_OPEN_NOTEBOOK_REQUIRE_CONFIRMopen_notebooktrue by default: you approve each new note and link. false lets the assistant save them on its own. Local files always need your approval.
KNOWLEDGE_OPEN_NOTEBOOK_ALLOWED_NOTEBOOKSopen_notebookOptional. Comma-separated notebook names the assistant may save links and notes to without asking, e.g. Research,Inbox
KNOWLEDGE_APPROVAL_LOGanyOptional. Where the approval log is written. Default: ~/.local/state/knowledge/approvals.jsonl
KNOWLEDGE_<MODULE>_ENABLEDanyfalse turns a module off, e.g. KNOWLEDGE_OPEN_NOTEBOOK_ENABLED=false

Config file (optional). Knowledge also reads ~/.config/knowledge/config.toml, or the file named by KNOWLEDGE_CONFIG. Environment variables win over the file.

toml
[open_notebook]url = "https://notebook.example.com"password = "change-me"require_confirm = true

Add it to your MCP client

Most clients use the same JSON shape. Put it where your client keeps MCP servers:

json
{  "mcpServers": {    "knowledge": {      "command": "uvx",      "args": ["knowledge-bundle-mcp"],      "env": {        "KNOWLEDGE_OPEN_NOTEBOOK_URL": "https://notebook.example.com"      }    }  }}
ClientWhere the config goes
Claude Desktopclaude_desktop_config.json (Settings → Developer → Edit Config)
Claude Codeclaude mcp add knowledge -- uvx knowledge-bundle-mcp, then add the env values, or a project .mcp.json
Cursor~/.cursor/mcp.json, or .cursor/mcp.json in a project
VS Code.vscode/mcp.json, using "servers" instead of "mcpServers"
Sonique, Hermes, OpenClaw, othersAny client that launches a stdio MCP server: command uvx, args ["knowledge-bundle-mcp"], plus the env values

Over HTTP. For clients that connect to a URL instead of launching a process:

bash
knowledge-bundle-mcp --transport http --port 8765

It serves streamable HTTP at http://127.0.0.1:8765/mcp. It listens only on your own machine by default. Put authentication in front of it before exposing it anywhere else.

Try these

Paste any of these into your assistant once Knowledge passes --doctor:

  1. "List my notebooks and tell me which one changed most recently."
  2. "Search my notebooks for what I wrote about the Q3 budget, and cite each note."
  3. "Write a weekly review of the notes I changed this week, using the weekly-review skill."
  4. "Make an ADR for choosing SQLite over Postgres for the prototype, with the alternatives table filled in."
  5. "Save this link to my Research notebook: https://example.com/article. Show me the preview first."

Tools

ToolWhat it returns
knowledge_modulesWhich modules are on, which settings are missing, the skills, and the publisher. Call this first.
open_notebook_notebooksYour notebooks, most recently updated first, paged
open_notebook_searchMatching sources and notes. mode is text (keywords) or vector (meaning; needs an embedding model on the server). Optional notebook_id. Paged.
open_notebook_notesThe notes in one notebook, titles only, paged
open_notebook_note_getOne note's content, cut at max_chars
open_notebook_source_getOne source: title, topics, extracted text, notebooks, processing status
open_notebook_note_createSaves a note after you approve it. Without confirm=true it only returns a preview.
open_notebook_add_sourceAdds a web link, or a local file you name, as a source. Preview first; you approve it. Processed in the background.

Every tool returns structured data with a published schema, so an assistant can work with the results instead of parsing text. Errors always look like knowledge.<module>.<code>: <message> Fix: <hint>.

Safety

  • Knowledge only calls the Open Notebook server you configure. It sends nothing anywhere else and keeps no data of its own.
  • open_notebook_note_create and open_notebook_add_source change your notebooks, so you approve each one. When the assistant asks to save, Knowledge asks you directly through your MCP client (MCP elicitation) and shows the notebook, the title and the full text or link. The assistant can't answer that question for you.
  • A local file is read only after you name it, and it is uploaded only after you approve its full path and size. Files named like credential stores (.env, .netrc, private keys, *.pem, *.key) and files in ~/.ssh, ~/.aws or ~/.gnupg are refused.
  • Some MCP clients can't ask you questions yet. In those, Knowledge refuses to write unless you've pre-approved the notebook with KNOWLEDGE_OPEN_NOTEBOOK_ALLOWED_NOTEBOOKS, or turned approval off with KNOWLEDGE_OPEN_NOTEBOOK_REQUIRE_CONFIRM=false. Local files are never pre-approved.
  • Before anything is written or sent, text that looks like a credential (API keys, tokens, private keys, passwords in URLs) is refused. The error names the kind of credential found, never the value.
  • Use an https:// address for your server, and give the password only to Knowledge, not to other tools.

Develop

bash
uv venv && uv pip install -e '.[dev]'.venv/bin/pytestpython3 scripts/check_skills.py.venv/bin/python scripts/tool_lock.py --check.venv/bin/python scripts/security_card.py --check

scripts/tool_lock.py (without --check) rewrites tool-manifest.lock.json after a deliberate change to a tool, prompt or instruction. Add a changelog line in the same commit.

Security

Report a vulnerability privately through GitHub (Security tab, "Report a vulnerability"). See SECURITY.md. Every approval, decline and refusal is logged locally in ~/.local/state/knowledge/approvals.jsonl: titles, notebook names and sizes, never the text. Set KNOWLEDGE_APPROVAL_LOG to move it.

License

MIT. Published by Seaynic Labs. Third-party skills are credited in CREDITS.md and keep their own licenses.


Built by Seaynic Labs. We build tools like this around a business's own systems: local-first, with a person approving every change. See custom integrations.

來源:README.md,提交 604dc67

工具

8

open_notebook_notebooks

List your notebooks, most recently updated first. Page with offset=<next_offset>.

輸入參數limitoffsetinclude_archived

open_notebook_notes

List the notes in one notebook, titles only. Read a note with open_notebook_note_get. Page with offset=<next_offset>.

輸入參數limitoffsetnotebook_id必填

open_notebook_note_get

Read one note. Long content is cut at max_chars (up to 50000) and marked truncated.

輸入參數note_id必填max_chars

open_notebook_source_get

Read one source: its title, topics, extracted text (cut at max_chars, up to 50000) and the notebooks it belongs to.

輸入參數max_charssource_id必填

open_notebook_note_create

Create a note in a notebook. Without confirm=true it only returns a preview. With confirm=true you are asked to approve it (unless the notebook is pre-approved in settings); the assistant cannot approve on your behalf. Text that looks like a credential is refused.

輸入參數title必填confirmcontent必填notebook_id必填

open_notebook_add_source

Add a web link or a local file as a source in one notebook. Give exactly one of url or file_path. Without confirm=true it only returns a preview. With confirm=true you are asked to approve it; the assistant cannot approve for you. A local file is always approved by you, with its full path and size shown, and is never pre-approved in settings. Open Notebook processes the source in the background: check progress with open_notebook_source_get.

輸入參數urltitleconfirmfile_pathnotebook_id必填

knowledge_modules

Which modules are on, what settings are missing, and what each tool does. Pass a module name for its full settings list.

輸入參數module

版本歷史

1
  1. v0.2.1最新Oct 29, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分