MCP server for Memos built with FastMCP - self-hosted note-taking tool
Project description
Memos MCP Server
MCP server for Memos - the open-source, self-hosted note-taking tool. Built with FastMCP.
Features
Tools
Memo CRUD:
create_memo- Create a new memo with content, visibility, and tagsget_memo- Get a memo by IDupdate_memo- Update memo content, visibility, or pinned statusdelete_memo- Delete a memolist_memos- List memos with filters (state, custom filter)search_memos- Search memos by content or tags
Tag Management:
list_tags- List all tags with usage countsrename_tag- Rename a tag across all memosdelete_tag- Delete a tag from all memos
Visibility Control:
set_visibility- Set memo visibility (PRIVATE, PROTECTED, PUBLIC)list_public_memos- List all public memoslist_private_memos- List all private memos
Resources
memos://list- Recent 20 memos summary (ID, title, tags, time, visibility)memos://{memo_id}- Full details of a specific memomemos://tags- All tags with usage countsmemos://stats- Statistics (total memos, by visibility/state, tags count, pinned)
Prompts
search_by_tag- Quick search for memos with a specific tagcreate_quick_note- Create a simple memo with optional tagfind_recent_notes- Find memos from past N daysorganize_by_visibility- Review and organize memos by visibilityupdate_memo_prompt- Update a specific memo's content with verification
Installation
# Using pip
pip install memos-fastmcp
# Using uvx (recommended)
uvx memos-fastmcp
Configuration
Get API Token
- Open your Memos instance
- Go to Settings > API Keys
- Generate a new API token
Environment Variables
MEMOS_URL=http://your-memos-instance:5230
MEMOS_TOKEN=your-api-token
Optional:
MEMOS_API_VERSION=v1 # Default: v1
MEMOS_REQUEST_TIMEOUT=30.0 # Default: 30.0 seconds
DISPLAY_STYLE=list # Default: list (options: list, table)
Output Format
Query tools (list_memos, search_memos, get_memo, list_public_memos, list_private_memos) return Markdown format with two display styles:
| Style | Description |
|---|---|
list |
Detailed list items with full timestamps and status indicators (default) |
table |
Compact table format for quick scanning |
Example list style:
## 📝 V2xmw6RkAEDo4TimKhCGNL
🔗 [查看详情](http://localhost:5230/memos/V2xmw6RkAEDo4TimKhCGNL)
**创建时间:** 2026-04-12 14:30:25
**状态:** 置顶 | 公开
**标签:** #work #project
项目计划已完成初步设计...
Example table style:
| ID | 创建时间 | 状态 | 标签 | 内容 |
|----|----------|------|------|------|
| V2xmw6RkAEDo4TimKhCGNL | 2026-04-12 | 置顶 \| 公开 | #work #project | 项目计划已完成... |
Notes:
- ID column is not truncated (easy to copy for subsequent operations)
- Content truncated: 200 chars in list style, 50 chars in table style
- Hyperlinks point to browser-accessible memo detail pages
Usage with MCP Clients
Claude Desktop / Claude Code
Add to your MCP configuration:
{
"mcpServers": {
"memos": {
"command": "uvx",
"args": ["memos-fastmcp"],
"env": {
"MEMOS_URL": "http://your-memos-instance:5230",
"MEMOS_TOKEN": "your-api-token"
}
}
}
}
For Claude Desktop, place this in:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
For Claude Code, place this in .claude/settings.json in your project.
Other MCP Clients
# Run directly with environment variables
MEMOS_URL=http://your-memos-instance:5230 \
MEMOS_TOKEN=your-api-token \
uvx memos-fastmcp
Example Usage
Once configured, you can interact with Memos through Claude:
User: "Create a memo about my project plan with tag 'work'"
Claude: [Uses create_memo tool] "Created memo with ID: abc123..."
User: "Search for all memos tagged 'work'"
Claude: [Uses search_memos tool] "Found 5 memos tagged 'work'..."
User: "What are my most used tags?"
Claude: [Uses memos://tags resource] "Your top tags are: work (12), ideas (8)..."
User: "Show me recent memos from the past week"
Claude: [Uses find_recent_notes prompt] "Here are 7 memos from the past week..."
User: "Pin memo abc123"
Claude: [Uses update_memo tool] "Successfully pinned memo abc123"
Development
Local Setup
git clone https://github.com/Jiraiya8/memos-mcp.git
cd memos-mcp
# Install dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run locally
MEMOS_URL=http://localhost:5230 MEMOS_TOKEN=your-token python -m memos_mcp.server
Build & Publish
python -m build
twine upload dist/*
API Compatibility
Compatible with Memos API v1. Requires Memos 0.22.0 or later.
License
MIT License - see LICENSE for details.
Links
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 memos_fastmcp-0.2.1.tar.gz.
File metadata
- Download URL: memos_fastmcp-0.2.1.tar.gz
- Upload date:
- Size: 58.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd0e761e86dbbfaf5aa753c3870d9a140cb086027179cac3de8dddaef6382006
|
|
| MD5 |
ea1e6a6a6b2a25b1d472e1a1eba59268
|
|
| BLAKE2b-256 |
ae5a5cd881ca00ced55b58c1aecc8fd92744e45891c9be33b0fe91964052d145
|
File details
Details for the file memos_fastmcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: memos_fastmcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 19.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd6f2bc8743758df4f920146ac6c5aa3d8b66d47b5e824f45b797a76539562d5
|
|
| MD5 |
67ea4ff2d4ad928123de325bebfa34b8
|
|
| BLAKE2b-256 |
20110452c4e91a4b52ebf7cbcb3cf7465c8fe0e344f9268f620d18d416e45fc8
|