Open Notebook Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Open Notebook Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: io.github.Epochal-dev/open-notebook -->
An MCP (Model Context Protocol) server that provides tools to interact with the Open Notebook API. This server enables AI assistants like Claude to manage notebooks, sources, notes, search content, and interact with AI models through Open Notebook.
search_capabilities# Clone the repository
git clone https://github.com/PiotrAleksander/open-notebook-mcp.git
cd open-notebook-mcp
# Install with uv
uv syncpip install -e .The server requires configuration to connect to your Open Notebook instance:
Create a .env file or set these environment variables:
# Required: URL of your Open Notebook instance
OPEN_NOTEBOOK_URL=http://localhost:5055
# Optional: Authentication password (if APP_PASSWORD is set in Open Notebook)
OPEN_NOTEBOOK_PASSWORD=your_password_here
# Optional: Transport configuration (default: stdio)
MCP_TRANSPORT=stdio # or streamable-http for remote deploymentFor local development with default Open Notebook settings:
# .env
OPEN_NOTEBOOK_URL=http://localhost:5055If you've configured authentication in Open Notebook:
# .env
OPEN_NOTEBOOK_URL=http://localhost:5055
OPEN_NOTEBOOK_PASSWORD=my_secure_password#### Development Mode (STDIO)
For local use with AI assistants:
uv run open-notebook-mcpOr using the MCP CLI:
mcp dev src/open_notebook_mcp/server.py#### Production Mode (Streamable HTTP)
For remote deployment:
MCP_TRANSPORT=streamable-http HOST=0.0.0.0 PORT=8000 uv run open-notebook-mcpAdd to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"open-notebook": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/open-notebook-mcp",
"open-notebook-mcp"
],
"env": {
"OPEN_NOTEBOOK_URL": "http://localhost:5055",
"OPEN_NOTEBOOK_PASSWORD": "your_password_if_needed"
}
}
}
}The server implements progressive disclosure. Use the search_capabilities tool to discover available functionality:
# Get a summary of all tools
search_capabilities(query="", detail="summary", limit=50)
# Search for specific functionality
search_capabilities(query="notebook", detail="summary", limit=10)
# Get full details for a specific tool
search_capabilities(query="create_notebook", detail="full", limit=1)#### Creating and Managing Notebooks
# Create a new notebook
result = create_notebook(
name="AI Research",
description="Research on AI applications"
)
notebook_id = result["notebook"]["id"]
# List all notebooks
notebooks = list_notebooks(archived=False, limit=20)
# Update a notebook
update_notebook(
notebook_id=notebook_id,
name="AI Research (Updated)"
)
# Get a specific notebook
notebook = get_notebook(notebook_id=notebook_id)#### Adding Sources
# Add a web source
source = create_source(
notebook_id=notebook_id,
type="link",
url="https://example.com/ai-article",
title="AI Research Article",
embed=True # Generate embeddings
)
# List sources in a notebook
sources = list_sources(notebook_id=notebook_id, limit=20)#### Creating Notes
# Create a note
note = create_note(
notebook_id=notebook_id,
title="Key Findings",
content="Important insights about AI applications...",
topics=["AI", "Research"]
)
# Update a note
update_note(
note_id=note["note"]["id"],
content="Updated insights..."
)#### Searching and Asking Questions
# Search content
results = search(
query="artificial intelligence",
type="vector",
notebook_id=notebook_id,
limit=10
)
# List available models first
models = list_models(limit=50)
model_id = models["models"][0]["id"]
# Ask a question
answer = ask_simple(
question="What are the main AI applications mentioned?",
strategy_model=model_id,
answer_model=model_id,
final_answer_model=model_id,
notebook_id=notebook_id
)#### Chat Sessions
# Create a chat session
session = create_chat_session(
notebook_id=notebook_id,
title="Research Discussion"
)
session_id = session["session"]["id"]
# Build context
context = get_chat_context(notebook_id=notebook_id)
# Send a message
response = execute_chat(
session_id=session_id,
message="What are the key insights from my research?",
context=context["context"]
)
# Get session history
history = get_chat_session(session_id=session_id)The server provides 39 tools across multiple categories:
search_capabilities - Progressive tool discoverylist_notebooks, get_notebook, create_notebook, update_notebook, delete_notebooklist_sources, get_source, create_source, update_source, delete_sourcelist_notes, get_note, create_note, update_note, delete_notesearch, ask_question, ask_simplelist_models, get_model, create_model, delete_model, get_default_modelslist_chat_sessions, create_chat_session, get_chat_session, update_chat_session, delete_chat_session, execute_chat, get_chat_contextget_settings, update_settingsThis server follows MCP best practices:
search_capabilities to minimize context usageopen-notebook-mcp/
├── src/
│ └── open_notebook_mcp/
│ ├── __init__.py
│ └── server.py # Main MCP server implementation
├── tests/ # (to be added)
├── pyproject.toml
├── README.md
└── .env.exampleTest the server using the MCP Inspector:
mcp dev src/open_notebook_mcp/server.pyor
npx @modelcontextprotocol/inspector uv --directory ./src/open_notebook_mcp "run" "server.py"This opens an interactive inspector where you can:
To add new tools:
Capability entry to the CAPABILITIES tuple@mcp.tool() decoratorverb_noun (e.g., list_notebooks)request_idmcp[cli]>=1.23.2, httpx>=0.28.1Contributions are welcome! Please ensure:
CAPABILITIES indexSee LICENSE file for details.
For issues related to:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.