NotePlan MCP Server
The NotePlan MCP Server enables seamless interaction between Claude Desktop and NotePlan, allowing you to manage your notes programmatically.
Read Notes: Retrieve all notes, specific notes by ID, or notes from specific folders
Search Notes: Perform full-text searches across all notes using keywords or phrases
Create Notes: Add new notes with specified titles, content, and folder organization
Daily Notes: Generate daily notes with optional content and specific dates (YYYY-MM-DD format)
Update Notes: Modify existing note titles and content by specifying the note ID
Folder Organization: Organize, filter and retrieve notes by folders
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NotePlan MCP Serversearch for notes about project planning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NotePlan MCP Server
A Message Control Protocol (MCP) server that enables Claude Desktop to interact with NotePlan.co. This server provides seamless integration between Claude and your NotePlan notes, allowing you to query, search, create, and update notes directly from Claude conversations.
Features
Read Notes: Get all notes, specific notes by ID, or notes from specific folders
Search: Full-text search across all your notes
Create Notes: Create new notes with titles, content, and folder organization
Daily Notes: Create and manage daily notes with automatic date formatting
Update Notes: Modify existing note titles and content
Folder Organization: Organize and filter notes by folders
Related MCP server: Notes MCP
Installation
Option 1: Clone from GitHub
git clone https://github.com/bscott/noteplan-mcp.git
cd noteplan-mcp
npm installOption 2: Install as NPM Package (Coming Soon)
npm install -g noteplan-mcpQuick Start
Install dependencies:
npm installBuild the project:
npm run buildTest the server:
npm startYou should see: "NotePlan MCP server running on stdio"
Configure Claude Desktop (see detailed setup below)
Claude Desktop Configuration
To use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop config file:
Step 1: Locate Your Config File
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Step 2: Add NotePlan MCP Server
Add this configuration to your claude_desktop_config.json:
{
"mcpServers": {
"noteplan": {
"command": "node",
"args": ["/absolute/path/to/noteplan-mcp/build/index.js"],
"cwd": "/absolute/path/to/noteplan-mcp"
}
}
}Important: Replace /absolute/path/to/noteplan-mcp with the actual path where you cloned this repository.
Step 3: Restart Claude Desktop
After saving the configuration, restart Claude Desktop completely for the changes to take effect.
Available Tools
Once configured, you can use these tools in Claude conversations:
Tool | Description | Parameters |
| Get all notes from NotePlan | None |
| Get a specific note by ID |
|
| Search notes by query |
|
| Get notes from a folder |
|
| Create a new note |
|
| Create a daily note |
|
| Update existing note |
|
Example Usage in Claude
Once set up, you can ask Claude things like:
"Show me all my notes"
"Search for notes containing 'project planning'"
"Create a new note titled 'Meeting Notes' in the 'Work' folder"
"Get today's daily note"
"Update note ID 'note123' with new content"
Claude will automatically use the appropriate NotePlan MCP tools to fulfill these requests.
Development
Development Mode
npm run devThis builds the TypeScript and starts the server with auto-restart on file changes using nodemon.
Building
npm run buildCompiles TypeScript to JavaScript in the build/ directory.
Testing
npm testLinting
npm run lintProject Structure
noteplan-mcp/
├── src/
│ ├── index.ts # Main MCP server implementation
│ ├── index.js # HTTP server (alternative)
│ └── services/
│ └── noteService.ts # Note management logic
├── build/ # Compiled JavaScript output
│ ├── index.js # Compiled MCP server
│ └── services/
│ └── noteService.js # Compiled note service
├── tests/
│ └── index.test.js # Test files
├── tsconfig.json # TypeScript configuration
├── package.json
└── README.mdTroubleshooting
Claude Desktop Not Connecting
Check file paths: Ensure the paths in
claude_desktop_config.jsonare absolute and correctCheck Node.js: Make sure Node.js is installed and accessible from your PATH
Check logs: Look for error messages in Claude Desktop's logs:
macOS:
~/Library/Logs/Claude/mcp-server-noteplan.logWindows:
%LOCALAPPDATA%\Claude\Logs\mcp-server-noteplan.log
Common Error Messages
"Cannot find module '/src/mcp-server.js'"
The path in your config is incorrect. Use absolute paths, not relative ones.
"Server disconnected"
Check that Node.js is installed and the server can start with
npm start
Testing Your Setup
Test the server manually:
cd /path/to/noteplan-mcp npm run build npm startUse the MCP inspector for debugging:
npm run inspectorCheck Claude Desktop logs for connection status
Try a simple command in Claude: "Can you show me my notes?"
Configuration
Custom NotePlan Directory
By default, the server looks for NotePlan files in standard locations. If you use a custom directory, you can modify the noteService.js file to point to your NotePlan data directory.
Environment Variables
Currently, no environment variables are required, but future versions may support:
NOTEPLAN_DATA_DIR: Custom NotePlan data directoryMCP_LOG_LEVEL: Logging verbosity
Contributing
Fork the repository
Create a feature branch:
git checkout -b my-new-featureMake your changes and add tests
Run the test suite:
npm testRun the linter:
npm run lintCommit your changes:
git commit -am 'Add some feature'Push to the branch:
git push origin my-new-featureSubmit a pull request
License
MIT License - see LICENSE file for details.
Support
Open an issue on GitHub for bugs or feature requests
Check the MCP Documentation for general MCP questions
Review Claude Desktop documentation for setup issues
Available Tools
7 toolscreate_daily_noteD
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | The date for the daily note (YYYY-MM-DD format) | |
| content | No | Initial content for the daily note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_noteD
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The title of the note | |
| content | No | The content of the note | |
| folder | No | The folder to create the note in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_note_by_idD
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the note to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notesD
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notes_by_folderD
| Name | Required | Description | Default |
|---|---|---|---|
| folder | Yes | The folder name to search in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_notesD
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_noteD
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the note to update | |
| title | No | New title for the note | |
| content | No | New content for the note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v1.0.0- Changed
get_notes1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
7 tool updates
- First observed
create_daily_note - First observed
create_note - First observed
get_note_by_id - First observed
get_notes - First observed
get_notes_by_folder - First observed
search_notes - First observed
update_note
TDQS
Most tools have distinct purposes targeting different operations on notes (create, get, search, update). However, 'create_daily_note' and 'create_note' could cause confusion without descriptions to clarify their differences, as they appear to overlap in creating notes.
All tool names follow a consistent verb_noun pattern with snake_case (e.g., create_note, get_notes, update_note). There are no deviations in naming conventions, making the set predictable and readable.
With 7 tools, this server is well-scoped for note management. The count is appropriate, covering core operations without being too sparse or overwhelming, fitting typical MCP server ranges.
The tool set provides good coverage for note CRUD operations (create, get, update) and additional utilities like search and folder-based retrieval. A minor gap is the lack of a delete_note tool, which could limit full lifecycle management, but agents can still handle most workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Message Control Protocol server that enables Claude Desktop and other applications to interact with Day One journals, allowing automated journal entry creation through a simple API.18MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants like Claude to access and manipulate Apple Notes on macOS, allowing for retrieving, creating, and managing notes through natural language interactions.82MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that connects Claude Desktop to AI Note task management, enabling task creation, updates and management through natural language conversations.552MIT
- AlicenseNot gradedqualityDmaintenanceBidirectional MCP server that connects Claude with an Obsidian vault, enabling note management, full-text search, graph traversal, and daily notes operations.4,785MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bscott/noteplan-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server