Skip to main content
Glama
vedantparmar12

Sticky Notes MCP Server

README.md
# Sticky Notes MCP Server

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

## Overview

The Sticky Notes MCP server provides a simple interface for creating, reading, updating, and deleting sticky notes. It uses a text file for persistent storage and integrates with MCP-compatible clients like Claude Desktop.

## Project Structure

```
šŸ“ Sticky-notes-mcp/
  šŸ main.py (1.9 KB)      # Main MCP server implementation
  šŸ“„ notes.txt (0.0 KB)   # Persistent storage for notes
  šŸ“„ pyproject.toml (0.2 KB) # Project configuration
  šŸ“„ uv.lock              # Dependency lock file
```

## Features

- **Create Notes**: Add new sticky notes with content
- **Read Notes**: View existing notes by ID or list all notes
- **Update Notes**: Modify existing note content
- **Delete Notes**: Remove notes from storage
- **Persistent Storage**: Notes are saved to `notes.txt` file
- **MCP Integration**: Full compatibility with MCP protocol

## Installation & Setup

### Prerequisites

- Python 3.8+
- UV package manager
- MCP-compatible client (e.g., Claude Desktop)

### Installation Steps

1. **Clone or download the project** to your desired location
2. **Install dependencies** using UV:
   ```bash
   cd C:\Users\{Your path}\Sticky-notes-mcp
   uv sync
   ```

### MCP Server Configuration

Add the following configuration to your MCP client settings file:

```json
{
  "mcpServers": {
    "ai-sticky-notes": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\{Your path}\\Sticky-notes-mcp",
        "run",
        "python",
        "main.py"
      ]
    }
  }
}
```

**Important**: Replace `{Your path}` with your actual username or the full path to the project directory.

#### For Claude Desktop

1. Open Claude Desktop
2. Navigate to Settings → Developer
3. Edit the MCP servers configuration
4. Add the above configuration
5. Restart Claude Desktop

## Usage

Once configured, you can interact with the sticky notes through your MCP client:

### Available Commands

- **Create a note**: "Create a sticky note with content: [your content]"
- **List all notes**: "Show me all my sticky notes"
- **Read specific note**: "Show me note with ID [note_id]"
- **Update a note**: "Update note [note_id] with new content: [new content]"
- **Delete a note**: "Delete note with ID [note_id]"

### Example Interactions

```
User: Create a sticky note: "Remember to buy groceries"
Assistant: Created note with ID 1: "Remember to buy groceries"

User: Show me all my notes
Assistant: Your notes:
1: Remember to buy groceries

User: Update note 1 with: "Remember to buy groceries and milk"
Assistant: Updated note 1: "Remember to buy groceries and milk"
```

## Technical Details

### Dependencies

The project uses minimal dependencies managed through `pyproject.toml`:
- Python standard library for core functionality
- UV for package management

### File Storage

Notes are stored in a simple text file format (`notes.txt`) with each note on a separate line, prefixed with its ID.

### MCP Protocol Compliance

The server implements the standard MCP protocol for:
- Tool definitions and invocations
- Resource management
- Error handling
- Logging capabilities

## Development

### Project Metrics

- **Total Files**: 6
- **Total Lines**: 535
- **Languages**: Python
- **Main File**: `main.py` (1,933 bytes)

### File Descriptions

- **`main.py`**: Core MCP server implementation with note management logic
- **`notes.txt`**: Persistent storage file for all sticky notes
- **`pyproject.toml`**: Project configuration and dependency definitions
- **`uv.lock`**: Dependency lock file ensuring reproducible builds

## Troubleshooting

### Common Issues

1. **Server won't start**: Ensure UV is installed and the path in configuration is correct
2. **Notes not persisting**: Check file permissions for `notes.txt`
3. **Connection issues**: Verify MCP server configuration matches the exact path format

### Logs and Debugging

The MCP server provides logging output that can help diagnose issues. Check your MCP client's console or logs for detailed error messages.

## License

This project follows standard open-source practices. Check the project repository for specific license information.

## Contributing

To contribute to this project:
1. Ensure you understand the MCP protocol
2. Test changes thoroughly with MCP clients
3. Maintain backward compatibility with existing note storage format

---

*Documentation generated automatically from codebase analysis*

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation5/5

Each tool serves a clearly distinct purpose: adding to the note file, reading all notes, creating a new notes file, and deleting all notes. No two tools perform the same action, so an agent can confidently select the right one.

Naming Consistency4/5

Tool names follow a mostly consistent verb-noun pattern (add_note, read_notes, delete_notes). The exception is save_to_new_file, which has a more complex verb-phrase structure, but it still uses the same snake_case style and starts with a verb, so the overall pattern remains readable.

Tool Count5/5

Four tools is well-scoped for a sticky notes server: one to add, one to read, one to delete, and one to save to a new file. Each tool earns its place without unnecessary bloat.

Completeness2/5

The set is missing essential operations for managing individual notes. There is no way to update a specific note or delete a single note, forcing users to delete all notes and re-add the ones they want to keep. This is a significant gap for a note-taking tool.

Maintenance

ActivityInactive
ResponsivenessNo issues