notes-mcp
README.md
# notes-mcp
An MCP server that exposes your local Markdown notes to AI assistants. Supports keyword search across all `.md` files in a directory.
## Tools
### `search_notes`
Searches all notes using term-frequency scoring and returns ranked results with snippets.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `query` | string | required | Search terms (space-separated) |
| `limit` | integer (1–20) | `5` | Maximum number of results to return |
## Setup
### 1. Install dependencies
```bash
npm install
```
### 2. Build
```bash
npm run build
```
### 3. Configure
Set the `NOTES_DIR` environment variable to the directory containing your `.md` files:
```bash
export NOTES_DIR=/path/to/your/notes
```
### 4. Add to your MCP client
In Claude Code (`~/.claude/claude_desktop_config.json` or similar):
```json
{
"mcpServers": {
"notes": {
"command": "node",
"args": ["/path/to/notes-mcp/build/index.js"],
"env": {
"NOTES_DIR": "/path/to/your/notes"
}
}
}
}
```
## Requirements
- Node.js 18+
- Markdown notes in a flat directory (subdirectories are not searched)
TDQS
A3.6/5.0
Scored across 2 tools
Disambiguation5/5
The two tools have clearly distinct purposes: read_note retrieves full content by exact filename, while search_notes performs keyword searches and returns ranked results. No overlap.
Naming Consistency5/5
Both tools follow a consistent verb_noun pattern using snake_case (read_note, search_notes), making the naming predictable and clear.
Tool Count3/5
With only two tools, the server feels minimal. While it could be acceptable for a read-only archive, typical note management servers benefit from additional tools for creation, deletion, or listing.
Completeness2/5
The tool surface is missing essential operations for managing notes, such as create, update, delete, or list all notes. An agent cannot perform full note lifecycle tasks, leading to likely failures.
Maintenance
ActivityInactive
ResponsivenessNo issues