Memos MCP Server
A Model Context Protocol (MCP) server to interact with usememos/memos (an open-source, self-hosted memo hub). Built using the official Python MCP SDK with FastMCP and Pydantic v2 for type-safe validation.
Features
This server exposes a set of tools to any MCP-compatible client (e.g., Claude Desktop, Cursor) allowing them to manage your Memos instance:
- Get User Info: Retrieve details about the authenticated user and verify connectivity.
- List Memos: List memos with support for sorting, state filtering (
NORMAL/ARCHIVED), and pagination. - Get Memo: Fetch a specific memo by ID or resource name.
- Create Memo: Create new memos with optional visibility (
PRIVATE,PROTECTED,PUBLIC) and pinning. - Update Memo: Update existing memo content, visibility, pin state, or archival status.
- Delete Memo: Permanently delete a memo.
- Search Memos: Easily search memos by content text and/or hashtags.
Prerequisites
- Python:
>=3.14(configured viapyproject.toml) - uv: Modern Python package manager
- Memos: A running Memos instance (compatible with Memos v1 API)
- Access Token: A Personal Access Token (PAT) from your Memos account settings
Setup
- Clone the Repository
- Create Environment Configuration
Copy the example environment file:
cp .example.env .env
Edit.envand fill in your Memos server details:MEMOS_URL="https://your-memos-instance.com" MEMOS_TOKEN="your_personal_access_token_here"
Configuration
To integrate this server with Claude Desktop, add the following configuration to your Claude Desktop config file (typically ~/Library/Application Support/Claude/claude_desktop_config.json on macOS).
Option 1: Running with uvx (Recommended, no cloning required)
You can run the server directly from PyPI using uvx without setting up a local repository:
{
"mcpServers": {
"memos": {
"command": "uvx",
"args": ["rmc-memos-mcp"],
"env": {
"MEMOS_URL": "https://your-memos-instance.com",
"MEMOS_TOKEN": "your_personal_access_token_here"
}
}
}
}
Option 2: Running from Local Source
If you are developing locally and want to run the server from this cloned repository, use the following configuration:
{
"mcpServers": {
"memos": {
"command": "uv",
"args": ["run", "-m", "memos_mcp"],
"cwd": "/absolute/path/to/memos_mcp",
"env": {
"MEMOS_URL": "https://your-memos-instance.com",
"MEMOS_TOKEN": "your_personal_access_token_here"
}
}
}
}
Make sure to replace /absolute/path/to/memos_mcp with your actual directory path.
Development & Testing
This project uses uv for dependency management, and includes linting, type-checking, and test tools.
Installing Dependencies
uv sync
Running Linter and Formatter (Ruff)
uv run ruff check .
Running Type Checker (Mypy)
uv run mypy .
Running Unit Tests (Pytest)
PYTHONPATH=src uv run pytest
Debugging with MCP Inspector
You can debug the MCP server interactively using the official Inspector tool:
npx @modelcontextprotocol/inspector uv run -m memos_mcp
This launches a web interface to test the tools manually.
Metadata
Release files for rmc-memos-mcp 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| rmc_memos_mcp-0.1.7.tar.gz | 90.8 kB | Without provenance | Details for rmc_memos_mcp-0.1.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rmc_memos_mcp-0.1.7-py3-none-any.whl | Python 3 | none | any | Details for rmc_memos_mcp-0.1.7-py3-none-any.whl |
Total release size: 99.0 kB
Release files / rmc_memos_mcp-0.1.7.tar.gz
| Download URL | rmc_memos_mcp-0.1.7.tar.gz |
|---|---|
| Size | 90.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe817faa462efdf8b6d1db1fd93d5e24d3553fba6c2208a43e587b3d9493fc02
|
|
BLAKE2b-256 checksum How to use checksums |
08a1a01ca208511517cca2e253951c5daee9ace761b2a74f241ac9f446586ae4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rmc_memos_mcp-0.1.7-py3-none-any.whl
| Download URL | rmc_memos_mcp-0.1.7-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eabb98248fdac18835290f1711ff68d5799c92d6bfcbbb346ef9e0ecdd4d476a
|
|
BLAKE2b-256 checksum How to use checksums |
10e4cb39dca987ab2b8e2829c7fd3f1ddc89d05da2662c10d9b5e028ac7ba235
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for rmc-memos-mcp 0.1.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.