claude-nb-mcp
Integrates nb command-line note-taking with Claude Code, enabling adding, listing, searching, and showing notes organized by project directory.
README
claude-nb-mcp
MCP server for integrating nb (command-line note-taking) with Claude Code.
Features
- Working Directory-based Notebooks: Automatically organizes notes by project/working directory
- Claude Folder Organization: Separates Claude-generated notes from manual notes
- 4 Core Tools: Add, list, search, and show notes
- Secure: Prevents command injection and provides proper error handling
- Easy Setup: Simple integration with Claude Code
Folder Structure
Claude-generated notes are automatically organized in a claude/ subfolder within each notebook:
~/.nb/
├── dotfiles/
│ ├── claude/ # Claude-generated notes
│ │ └── 20260101171752.md
│ └── manual-note.md # Your manual notes
└── my-app/
├── claude/ # Claude-generated notes
└── manual-note.md # Your manual notes
This separation allows you to:
- Keep Claude's automatic notes separate from your manual notes
- Easily filter or search only Claude's notes
- Maintain a cleaner organization
Prerequisites
- nb (v7.x recommended)
- Node.js >= 18.0.0
- Claude Code
Installing nb
# macOS
brew install nb
# Or using the installer
curl -L https://raw.github.com/xwmx/nb/master/nb -o /usr/local/bin/nb && chmod +x /usr/local/bin/nb
Installation
- Clone this repository:
cd ~/workspace # or your preferred location
git clone https://github.com/lowbridgee/claude-nb-mcp.git
cd claude-nb-mcp
- Install dependencies:
npm install
- Build the project:
npm run build
- Register with Claude Code:
claude mcp add --transport stdio nb --scope user -- node /absolute/path/to/claude-nb-mcp/dist/index.js
Replace /absolute/path/to/claude-nb-mcp with the actual absolute path.
Usage
Automatic Notebook Selection
When you run Claude Code in a project directory, notes are automatically saved to a notebook named after that directory:
| Working Directory | Notebook Name |
|---|---|
/Users/you/dotfiles |
dotfiles |
/Users/you/projects/my-app |
my-app |
Available Tools
nb_add
Add a new note to the current project's notebook.
Parameters:
content(required): Note contenttitle(optional): Note titletags(optional): Array of tags
Example:
nb_add({
content: "This is a technical note about the authentication bug.",
title: "Auth Bug Analysis",
tags: ["bug", "authentication"]
})
nb_list
List notes from the current project's notebook.
Parameters:
limit(optional, default: 20): Maximum number of notestype(optional): Filter by type (note,bookmark,todo)
Example:
nb_list({ limit: 10, type: "note" })
nb_search
Search notes in the current project's notebook.
Parameters:
query(required): Search querylimit(optional, default: 10): Maximum results
Example:
nb_search({ query: "authentication", limit: 5 })
nb_show
Show the full content of a specific note.
Parameters:
id(required): Note ID (fromnb_listoutput)
Example:
nb_show({ id: 3 })
Custom Notebook Name
You can override the automatic notebook name by setting the NB_NOTEBOOK environment variable:
{
"mcpServers": {
"nb": {
"type": "stdio",
"command": "node",
"args": ["/path/to/claude-nb-mcp/dist/index.js"],
"env": {
"NB_NOTEBOOK": "my-custom-notebook"
}
}
}
}
Development
# Build
npm run build
# Watch mode
npm run dev
How It Works
- Notebook Detection: On startup, the server reads
PWDorprocess.cwd()to determine the working directory - Notebook Name: Uses the basename of the working directory (e.g.,
dotfilesfrom/Users/you/dotfiles) - nb Commands: Executes
nb <notebook>:<command>for all operations
Troubleshooting
"nb command not found"
Install nb:
brew install nb
# or
curl -L https://raw.github.com/xwmx/nb/master/nb -o /usr/local/bin/nb && chmod +x /usr/local/bin/nb
Notes not showing up
Check which notebooks exist:
nb notebooks
Verify the notebook name matches your project directory:
nb dotfiles:list # Replace 'dotfiles' with your directory name
Permission errors
Ensure the MCP server has execute permissions on nb:
which nb
nb --version
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.