P

mcp-notes

...
Created 1/12/2025bytruaxki

Language:

Python

Stars:

6

Forks:

4

MCP Notes Server

smithery badge

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

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]

Last updated: 3/5/2025

Publisher info

truaxki's avatar

Kirk Truax

0
followers
8
following
35
repos

More MCP servers built with Python

apollo-io-mcp-server

MCP server that exposes the Apollo.io API functionalities as tools

By Edward Choh
mcp-openvision

MCP Server using OpenRouter models to get descriptions for images

By Nazruden2
DeepView MCP

Enables IDEs like Cursor and Windsurf to analyze large codebases using Gemini's extensive context window.

By ai-1st