Skip to main content
Glama

Memos MCP Server

An MCP (Model Context Protocol) server that provides tools for interacting with a Memos instance. This server allows AI assistants to search, create, and update memos through the Memos API.

Features

  • Search Memos: Search for memos with filters like creator, tags, visibility, and content

  • Create Memos: Create new memos with markdown support

  • Update Memos: Update existing memos (content, visibility, pinned status)

  • Get Memo: Retrieve a specific memo by UID

Related MCP server: memos-mcp-server

Installation

  1. Clone this repository:

git clone <repository-url>
cd memos_mcp
  1. Install dependencies:

uv sync

Using pip

pip install -r requirements.txt

Configuration

Set the following environment variables:

  • MEMOS_BASE_URL: The base URL of your Memos instance (default: http://localhost:5230)

  • MEMOS_API_TOKEN: Your Memos API authentication token (optional for public instances)

Getting an API Token

  1. Log into your Memos instance

  2. Go to Settings → Access Tokens

  3. Create a new access token

  4. Copy the token and set it as the MEMOS_API_TOKEN environment variable

Example:

export MEMOS_BASE_URL="https://memos.example.com"
export MEMOS_API_TOKEN="your-token-here"

Usage

Running the Server

Using uvx (no installation required)

# Run directly with uvx
uvx --from . memos-mcp

Using uv after installation

# After running 'uv sync'
uv run memos-mcp

Using FastMCP directly

fastmcp run server.py

Programmatic usage

from server import mcp

# The server is ready to use

Available Tools

1. search_memos

Search for memos with optional filters.

Parameters:

  • query (optional): Text to search for in memo content

  • creator_id (optional): Filter by creator user ID

  • tag (optional): Filter by tag name

  • visibility (optional): Filter by visibility (PUBLIC, PROTECTED, PRIVATE)

  • limit (default: 10): Maximum number of results

  • offset (default: 0): Number of results to skip

Example:

result = await search_memos(query="meeting notes", limit=5)

2. create_memo

Create a new memo.

Parameters:

  • content: The content of the memo (supports Markdown)

  • visibility (default: PRIVATE): Visibility level (PUBLIC, PROTECTED, PRIVATE)

Example:

result = await create_memo(
    content="# Meeting Notes\n\n- Discuss project timeline\n- Review budget",
    visibility="PRIVATE"
)

3. update_memo

Update an existing memo.

Parameters:

  • memo_uid: The UID of the memo to update

  • content (optional): New content for the memo

  • visibility (optional): New visibility level

  • pinned (optional): Whether to pin the memo

Example:

result = await update_memo(
    memo_uid="abc123",
    content="Updated content",
    pinned=True
)

4. get_memo

Get a specific memo by its UID.

Parameters:

  • memo_uid: The UID of the memo to retrieve

Example:

result = await get_memo(memo_uid="abc123")

Integration with MCP Clients

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "memos": {
      "command": "uvx",
      "args": ["--from", "/path/to/memos_mcp", "memos-mcp"],
      "env": {
        "MEMOS_BASE_URL": "http://localhost:5230",
        "MEMOS_API_TOKEN": "your-token-here"
      }
    }
  }
}

Using uv (after installation)

{
  "mcpServers": {
    "memos": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/memos_mcp", "memos-mcp"],
      "env": {
        "MEMOS_BASE_URL": "http://localhost:5230",
        "MEMOS_API_TOKEN": "your-token-here"
      }
    }
  }
}

Using Python directly

{
  "mcpServers": {
    "memos": {
      "command": "python",
      "args": ["-m", "fastmcp", "run", "/path/to/memos_mcp/server.py"],
      "env": {
        "MEMOS_BASE_URL": "http://localhost:5230",
        "MEMOS_API_TOKEN": "your-token-here"
      }
    }
  }
}

API Reference

This server is built on the Memos API v1. The API follows Google's API Improvement Proposals (AIPs) design guidelines.

API Endpoints Used

  • GET /api/v1/memos - List/search memos

  • POST /api/v1/memos - Create a memo

  • GET /api/v1/memos/{uid} - Get a specific memo

  • PATCH /api/v1/memos/{uid} - Update a memo

Authentication

The server supports Bearer token authentication. Include your access token in the Authorization header:

Authorization: Bearer your-token-here

Development

Running Tests

pytest

Code Structure

  • server.py: Main MCP server implementation with all tools

  • requirements.txt: Python dependencies

About Memos

Memos is a lightweight, self-hosted memo hub with knowledge management and social networking features. Learn more at:

License

MIT License - see LICENSE file for details

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Available Tools

4 tools
create_memoB

Create a new memo.

Args: content: The content of the memo (supports Markdown) visibility: Visibility level - PUBLIC, PROTECTED, or PRIVATE (default: PRIVATE)

Returns: JSON string containing the created memo details

Inputs: content (required), visibility. Returns: result

get_memoA

Get a specific memo by its UID.

Args: memo_uid: The UID of the memo to retrieve (e.g., "abc123")

Returns: JSON string containing the memo details

Inputs: memo_uid (required). Returns: result

search_memosA

Search for memos with optional filters.

Args: query: Text to search for in memo content creator_id: Filter by creator user ID tag: Filter by tag name visibility: Filter by visibility (PUBLIC, PROTECTED, PRIVATE) limit: Maximum number of results to return (default: 10) offset: Number of results to skip (default: 0)

Returns: JSON string containing the list of matching memos

Inputs: query, creator_id, tag, visibility, +2 more. Returns: result

update_memoB

Update an existing memo.

Args: memo_uid: The UID of the memo to update (e.g., "abc123") content: New content for the memo (optional) visibility: New visibility level - PUBLIC, PROTECTED, or PRIVATE (optional) pinned: Whether to pin the memo (optional)

Returns: JSON string containing the updated memo details

Inputs: memo_uid (required), content, visibility, pinned. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap: create_memo for creation, get_memo for retrieval by UID, search_memos for filtered searching, and update_memo for modifications. The actions (create, get, search, update) target the same resource (memos) but operate in non-overlapping ways, making misselection unlikely.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with 'memo' as the noun: create_memo, get_memo, search_memos, update_memo. The pattern is uniform throughout, using snake_case and clear action verbs, making the set predictable and easy to understand.

    Tool Count5/5

    With 4 tools, this server is well-scoped for a memos management system. Each tool earns its place by covering essential CRUD operations (create, get, update) plus search functionality, which is appropriate for the domain without being overly sparse or bloated.

    Completeness4/5

    The tool set covers core CRUD operations (create, get, update) and search, but lacks a delete_memo tool for full lifecycle coverage. This minor gap might require workarounds for deletion tasks, though the existing tools support most common workflows effectively.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to interact with Memos instances for personal note-taking and knowledge management. Supports creating, searching, updating, and organizing memos with tags, dates, and visibility settings through natural language.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Connects to Memos note-taking service to read, write, search, filter, and manage memos, including creating comments and managing users.
      8
      1
      MIT
    • F
      license
      A
      quality
      D
      maintenance
      Enables to interact with Memos note-taking service, allowing search, creation, retrieval, and updating of notes through natural language.
      4
      9 npm
      4
      -