opencore-x/openotes
If you are the rightful owner of openotes and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The openotes MCP Server is a robust Model Context Protocol server designed to integrate AI agents with markdown knowledge bases, facilitating efficient note management.
openotes_config_set
Configure notes directory path
openotes_config_get
Get current configuration
openotes_list
List markdown files with optional filtering
openotes_search_files
Search by filename patterns
openotes_search_content
Full-text content search
openotes_get_structure
Get complete directory tree
openotes_read
Read specific markdown file
openotes_read_multiple
Read multiple files efficiently
openotes_get_metadata
Get file metadata (size, dates, etc.)
openotes_create
Create new markdown file
openotes_write
Write/overwrite entire file
openotes_append
Append content to existing file
openotes_create_directory
Create subdirectories
openotes_move_file
Move/rename files
openotes MCP Server
A powerful MCP (Model Context Protocol) server that bridges AI agents with your markdown knowledge base for seamless reading, writing, and organizing notes.
Features
Core Capabilities
- Configuration Management: Set and manage your notes directory
- File Discovery: List, search, and explore your markdown files
- Content Search: Full-text search across all your notes
- File Operations: Read, write, create, and organize markdown files
- Directory Management: Create directories and move files for better organization
Available Tools
Configuration Tools
openotes_config_set
- Configure notes directory pathopenotes_config_get
- Get current configuration
Discovery Tools
openotes_list
- List markdown files with optional filteringopenotes_search_files
- Search by filename patternsopenotes_search_content
- Full-text content searchopenotes_get_structure
- Get complete directory tree
Reading Tools
openotes_read
- Read specific markdown fileopenotes_read_multiple
- Read multiple files efficientlyopenotes_get_metadata
- Get file metadata (size, dates, etc.)
Writing Tools
openotes_create
- Create new markdown fileopenotes_write
- Write/overwrite entire fileopenotes_append
- Append content to existing file
Organization Tools
openotes_create_directory
- Create subdirectoriesopenotes_move_file
- Move/rename files
Installation
- Clone or download this repository
- Install dependencies:
npm install
- Build the project:
npm run build
Usage
With Claude Code
-
Locate your Claude Code configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/claude/claude_desktop_config.json
- macOS:
-
Add the openotes MCP server to your configuration:
{
"mcpServers": {
"openotes": {
"command": "node",
"args": ["/path/to/your/openotes/project/build/index.js"],
"env": {
"NODE_PATH": "/path/to/your/openotes/project/node_modules"
}
}
}
}
Note: Replace /path/to/your/openotes/project
with the absolute path to your openotes
project directory.
-
Restart Claude Code to load the new MCP server
-
Verify the connection by asking Claude Code to list available tools - you should see all the
openotes_*
tools
With Gemini CLI
- Install Gemini CLI if you haven't already:
npm install -g @google/gemini-cli
- Configure MCP server by creating or updating your Gemini CLI configuration file at
~/.gemini/settings.json
:
{
"mcpServers": {
"openotes": {
"command": "node",
"args": ["/path/to/your/openotes/project/build/index.js"],
"env": {
"NODE_PATH": "/path/to/your/openotes/project/node_modules"
}
}
}
}
Note: Replace /path/to/your/openotes/project
with the absolute path to your openotes
project directory.
- Start Gemini CLI with MCP support:
echo "Use openotes_config_get to show my current configuration" | gemini --allowed-mcp-server-names=openotes
- Test the connection by running the command above. You should see a response like:
OK. Your notes directory is /Users/your-username/Documents/Notes.
Configuration
On first use, openotes will create a default configuration at ~/.openotes/config.json
:
{
"notesDirectory": "/Users/your-username/Documents/Notes",
"maxSearchResults": 50,
"defaultFilePattern": "**/*.md",
"excludePatterns": ["node_modules/**", ".git/**", "**/.*"]
}
Use openotes_config_set
to update your notes directory with an absolute path:
{
"notesDirectory": "/Users/your-username/path/to/your/notes"
}
Important: Always use absolute paths for notesDirectory
to avoid configuration issues. Examples:
- ā
Good:
/Users/john/Documents/MyNotes
- ā
Good:
/home/user/Obsidian/vault
- ā Avoid:
~/Documents/Notes
- ā Avoid:
../my-notes
Example Workflows
Save Conversation Insights
- During a conversation with an AI agent, use
openotes_create
to save interesting insights - Organize them using
openotes_create_directory
andopenotes_move_file
Research and Retrieval
- Use
openotes_search_content
to find relevant information from your notes - Use
openotes_read_multiple
to efficiently load several related files - The AI agent can then use this information to provide informed responses
Note Organization
- Use
openotes_list
to see all your notes - Use
openotes_get_structure
to understand your current organization - Use organization tools to restructure as needed
Development
Scripts
npm run dev
- Run in development mode with hot reloadnpm run build
- Build the projectnpm run test
- Run testsnpm run lint
- Lint the code
Project Structure
src/
āāā index.ts # Main MCP server
āāā config/
ā āāā manager.ts # Configuration management
āāā tools/ # (Future: Individual tool implementations)
āāā utils/
ā āāā file-operations.ts
ā āāā search.ts
āāā types/
āāā index.ts # TypeScript definitions
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
License
MIT License - see LICENSE file for details
openotes MCP Server - Supercharge your notes with AI