A personal notes MCP server for Claude Desktop
Project description
memo-mcp
Personal notes MCP server for Claude Desktop. Save, search, and list notes from inside any Claude conversation. Notes are stored locally in SQLite with full-text search powered by FTS5.
Requires Python 3.11+
Installation
pip install memo-mcp
Claude Desktop setup
Add the following to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"memo": {
"command": "memo-mcp",
"args": ["serve"]
}
}
}
If
memo-mcpis not on your PATH (e.g. installed in a virtualenv), use the full path to the executable, or install with uv and useuvxinstead:{ "mcpServers": { "memo": { "command": "uvx", "args": ["memo-mcp", "serve"] } } }
Restart Claude Desktop after editing the config.
Tools
Once connected, Claude can use three tools:
| Tool | Description |
|---|---|
notes.add |
Save a note (plain text, max 10,000 characters) |
notes.search |
Full-text search across all notes (FTS5 syntax supported) |
notes.list |
List notes newest-first with cursor-based pagination |
Custom database path
By default notes are stored at ~/.memo-mcp/notes.db. Override with the MEMO_MCP_DB_PATH environment variable:
{
"mcpServers": {
"memo": {
"command": "memo-mcp",
"args": ["serve"],
"env": {
"MEMO_MCP_DB_PATH": "/path/to/your/notes.db"
}
}
}
}
Rebuilding the search index
If search results seem incomplete after a crash or manual database edit, rebuild the FTS5 index:
memo-mcp reindex
# Reindexed 42 notes in 0.03s
Pass --db to target a non-default database:
memo-mcp reindex --db /path/to/notes.db
Scheduling nightly reindex
macOS / Linux — add to crontab (crontab -e):
0 3 * * * memo-mcp reindex >> ~/.memo-mcp/reindex.log 2>&1
Windows — run once in an elevated PowerShell to create a daily Task Scheduler job:
schtasks /create /tn "memo-mcp reindex" /tr "memo-mcp reindex" /sc daily /st 03:00 /f
Developer notes
Log level — set MEMO_MCP_LOG_LEVEL=debug to enable verbose structured JSON logging to stderr. Default is info. This is a developer-only knob; normal users do not need to set it.
{
"mcpServers": {
"memo": {
"command": "memo-mcp",
"args": ["serve"],
"env": {
"MEMO_MCP_LOG_LEVEL": "debug"
}
}
}
}
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memo_mcp-0.1.0.tar.gz.
File metadata
- Download URL: memo_mcp-0.1.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e8d92149baf5e3015734140b97a791b4bd0aa741a8f71e613f42ea6e4160412
|
|
| MD5 |
7d8c2927c39e544b31b909bd7e0c0f20
|
|
| BLAKE2b-256 |
76c218548f31e04620a1d6fcd0bc80d624c3120092d18d2e6b90f519426e9d16
|
Provenance
The following attestation bundles were made for memo_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on marcobalayongmy/memo-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
memo_mcp-0.1.0.tar.gz -
Subject digest:
1e8d92149baf5e3015734140b97a791b4bd0aa741a8f71e613f42ea6e4160412 - Sigstore transparency entry: 1700134189
- Sigstore integration time:
-
Permalink:
marcobalayongmy/memo-mcp@cb5da7c9e15bb09366b66ff2043d740e8bc1fddf -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/marcobalayongmy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cb5da7c9e15bb09366b66ff2043d740e8bc1fddf -
Trigger Event:
push
-
Statement type:
File details
Details for the file memo_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: memo_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d384e256882f60b846d9847a3eeeddf9482ed8c585664668715a5f31aa7c3edf
|
|
| MD5 |
30ddbfc02ed5df6f3080a5ad5ab97a87
|
|
| BLAKE2b-256 |
a1574c126916b3c7ccc151dfc5d6f2068e0960c2fa2c9ce734abfe75e75a9761
|
Provenance
The following attestation bundles were made for memo_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on marcobalayongmy/memo-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
memo_mcp-0.1.0-py3-none-any.whl -
Subject digest:
d384e256882f60b846d9847a3eeeddf9482ed8c585664668715a5f31aa7c3edf - Sigstore transparency entry: 1700134313
- Sigstore integration time:
-
Permalink:
marcobalayongmy/memo-mcp@cb5da7c9e15bb09366b66ff2043d740e8bc1fddf -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/marcobalayongmy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cb5da7c9e15bb09366b66ff2043d740e8bc1fddf -
Trigger Event:
push
-
Statement type: