open_notebook_notebooks
List your notebooks, most recently updated first. Page with offset=<next_offset>.
limitoffsetinclude_archived
io.github.seayniclabsPublished by GitHub account seayniclabsv0.2.1Updated Nov 3, 2026
Search, read and write your self-hosted Open Notebook knowledge base from an AI assistant.
Connects an AI assistant to your self-hosted Open Notebook knowledge base so it can list, search and read notebooks, notes and sources, and save new notes or…
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
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.
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.
Knowledge needs Python 3.11 or newer. With uv you don't install anything ahead of time:
Or with pip:
Pinned install. For a fixed setup, pin the exact version. The plugin manifest pins it the same way:
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:
The plugin still needs your Open Notebook address in its settings. The plugin file is .claude-plugin/plugin.json.
Set KNOWLEDGE_OPEN_NOTEBOOK_URL to your server's address (step 2 below shows where).
Run the check. It prints ok or FIX for each item and exits 0 when everything is ready:
Start your assistant and ask it to list your notebooks. It calls open_notebook_notebooks and shows you the names.
Ask it to search a word you know is in one of your notes. It calls open_notebook_search.
Ask it to save a note. It shows a preview first, then asks you to approve the save in your app.
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.
Config file (optional). Knowledge also reads ~/.config/knowledge/config.toml, or the file named by KNOWLEDGE_CONFIG. Environment variables win over the file.
Most clients use the same JSON shape. Put it where your client keeps MCP servers:
Over HTTP. For clients that connect to a URL instead of launching a process:
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.
Paste any of these into your assistant once Knowledge passes --doctor:
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>.
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..env, .netrc, private keys, *.pem, *.key) and files in ~/.ssh, ~/.aws or ~/.gnupg are refused.KNOWLEDGE_OPEN_NOTEBOOK_ALLOWED_NOTEBOOKS, or turned approval off with KNOWLEDGE_OPEN_NOTEBOOK_REQUIRE_CONFIRM=false. Local files are never pre-approved.https:// address for your server, and give the password only to Knowledge, not to other tools.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.
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.
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.
Source: README.md at commit 604dc67
List your notebooks, most recently updated first. Page with offset=<next_offset>.
limitoffsetinclude_archivedSearch sources and notes. mode 'text' matches keywords; 'vector' matches meaning and needs an embedding model set up on the server. Limit a search to one notebook with notebook_id. Page with offset=<next_offset>.
modelimitqueryrequiredoffsetnotebook_idinclude_notesinclude_sourcesList the notes in one notebook, titles only. Read a note with open_notebook_note_get. Page with offset=<next_offset>.
limitoffsetnotebook_idrequiredRead one note. Long content is cut at max_chars (up to 50000) and marked truncated.
note_idrequiredmax_charsRead one source: its title, topics, extracted text (cut at max_chars, up to 50000) and the notebooks it belongs to.
max_charssource_idrequiredCreate 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.
titlerequiredconfirmcontentrequirednotebook_idrequiredAdd 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_idrequiredWhich modules are on, what settings are missing, and what each tool does. Pass a module name for its full settings list.
module90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
uvx knowledge-bundle-mcp --versionpip install knowledge-bundle-mcpuvx knowledge-bundle-mcp==0.2.1 --version/plugin marketplace add seayniclabs/plugins/plugin install knowledge@seayniclabsknowledge-bundle-mcp --doctor[open_notebook]url = "https://notebook.example.com"password = "change-me"require_confirm = true{ "mcpServers": { "knowledge": { "command": "uvx", "args": ["knowledge-bundle-mcp"], "env": { "KNOWLEDGE_OPEN_NOTEBOOK_URL": "https://notebook.example.com" } } }}knowledge-bundle-mcp --transport http --port 8765uv 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