Skip to main content

Model Context Protocol (MCP) server for usememos/memos

Project description

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 via pyproject.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

  1. Clone the Repository
  2. Create Environment Configuration Copy the example environment file:
    cp .example.env .env
    
    Edit .env and 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rmc_memos_mcp-0.1.2.tar.gz (44.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rmc_memos_mcp-0.1.2-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file rmc_memos_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: rmc_memos_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 44.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rmc_memos_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8b621c259279389d055ef3814d6965915ee554fccc86a4cae005e01bd0c693b1
MD5 fdd16ef50e477bf29083b7d281316c4d
BLAKE2b-256 9a2623a504cf86960caef562e68b49218a683478d37500ec300cbc59001a4fc0

See more details on using hashes here.

File details

Details for the file rmc_memos_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: rmc_memos_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rmc_memos_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 77f0f5fabffd69b2e822fbb96e95f9f1a717945c5da125ff69574adf4e048e8c
MD5 0baae42b8cd692a1bd6458d15157a009
BLAKE2b-256 377f0e234c4c403926c3b0fce45065cbe996bcb7d8f88326ce9eda6f7d7f8f12

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page