Skip to main content
Glama
MCP Notes Server

MCP Notes Server

by truaxki

MCP Notes Server

A Model Context Protocol (MCP) server implementation for managing notes with persistent storage.

Features

  • Create, read, update, and delete notes

  • Persistent storage using JSON

  • Timestamp tracking for creation and modifications

  • Note summarization via prompts

  • Resource-based access using note:// URI scheme

Related MCP server: Beeper MCP Note Server

Installation

Installing via Smithery

To install notes for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install notes --client claude

Manual Installation

  1. Ensure you have Python 3.10 or later installed

  2. Create a virtual environment:

    python -m venv .venv
    
    # On Unix/MacOS:
    source .venv/bin/activate
    
    # On Windows:
    .venv\Scripts\activate
  3. Install requirements:

    pip install MCP

Project Structure

notes/
├── __init__.py          # Package initialization
├── server.py           # Main server implementation
├── storage.py          # Note persistence layer
├── resources.py        # Resource handling (note:// URIs)
├── prompts.py         # LLM prompt generation
└── tools/             # Server tools
    ├── __init__.py    # Tools package initialization
    ├── list_tools.py  # Tool listing functionality
    └── handle_tools.py # Tool handling implementation

Available Tools

  • add-note: Create a new note

  • list-all-notes: Display all stored notes

  • update-note: Modify an existing note

  • delete-note: Remove a note

Usage

  1. Start the server:

    mcp install src/notes
    mcp start Notes
  2. Example operations:

    # Create a note
    await client.call_tool("add-note", {
        "name": "example",
        "content": "This is a test note"
    })
    
    # List all notes
    await client.call_tool("list-all-notes")
    
    # Update a note
    await client.call_tool("update-note", {
        "name": "example",
        "content": "Updated content"
    })
    
    # Delete a note
    await client.call_tool("delete-note", {
        "name": "example"
    })

Storage

Notes are stored in notes_storage.json with the following structure:

{
    "note_name": {
        "content": "Note content",
        "created_at": "2025-01-12T11:28:16.721704",
        "modified_at": "2025-01-12T11:28:16.721704"
    }
}

Resource Access

Notes can be accessed as resources using the note:// URI scheme:

  • List resources: Returns all available notes as resources

  • Read resource: Access a specific note using note://internal/note_name

Prompt Generation

The server includes a prompt generation feature for note summarization:

  • Supports both brief and detailed summaries

  • Formats notes for language model input

  • Available via the "summarize-notes" prompt

Development

To modify or extend the server:

  1. Clone the repository

  2. Install development dependencies

  3. Make changes in the appropriate module

  4. Test thoroughly before deploying

Testing

Tests should cover:

  • Basic CRUD operations

  • Multiple note handling

  • Error cases

  • Resource access

  • Prompt generation

License

[Add your license here]

Available Tools

4 tools
add-noteC

Create a new note

Inputs: content (required), name (required).

delete-noteC

Delete an existing note

Inputs: name (required).

list-all-notesB

Read all stored notes

Inputs: no named parameters.

update-noteC

Update an existing note

Inputs: content (required), name (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose targeting specific CRUD operations on notes: add-note for creation, delete-note for deletion, list-all-notes for reading all, and update-note for updates. There is no overlap in functionality, making tool selection unambiguous.

    Naming Consistency4/5

    The tools follow a mostly consistent verb-noun pattern (add-note, delete-note, update-note), but list-all-notes deviates slightly by including 'all'. This minor inconsistency does not significantly hinder readability or predictability.

    Tool Count5/5

    With 4 tools, the server is well-scoped for a notes management system, covering the essential CRUD operations. Each tool earns its place without being overly sparse or bloated, fitting the typical 3-15 tool range appropriately.

    Completeness5/5

    The tool set provides complete CRUD coverage for the notes domain: create (add-note), read (list-all-notes), update (update-note), and delete (delete-note). There are no obvious gaps, allowing agents to handle full note lifecycles without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers