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 dayong@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 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_createto save interesting insights - Organize them using
openotes_create_directoryandopenotes_move_file
Research and Retrieval
- Use
openotes_search_contentto find relevant information from your notes - Use
openotes_read_multipleto efficiently load several related files - The AI agent can then use this information to provide informed responses
Note Organization
- Use
openotes_listto see all your notes - Use
openotes_get_structureto 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