AI Scratchpad

AI Scratchpad

Manages a global scratchpad file on your Desktop for tracking interruptions, ideas, tasks, and focus across all projects with secure input validation and rate limiting.

Category
访问服务器

README

AI Scratchpad MCP Server

A secure Model Context Protocol (MCP) server for managing a global AI scratchpad file. Track interruptions, ideas, tasks, and maintain focus across all your projects with a single scratchpad on your Desktop.

🔒 Security Features

  • Input Validation: Comprehensive sanitization of all user inputs
  • Rate Limiting: 60 requests/minute protection against abuse
  • Path Traversal Protection: Workspace boundary enforcement
  • Content Size Limits: Max 1MB file size, 500 char notes
  • Allowed Directory Restrictions: Only approved locations
  • Error Sanitization: Prevents sensitive information disclosure

Features

  • 📝 Log Interruptions: Capture ideas without losing focus
  • 🎯 Track Current Focus: Update and maintain your current task
  • 🔄 Review Later: Queue items for follow-up consideration
  • Mark Completed: Track accomplishments with timestamps
  • 🗑️ Archive Items: Dismiss or archive old ideas
  • 📊 Auto Statistics: Automatically tracks logged, completed, and archived items
  • 🌍 Global Scratchpad: Single scratchpad on Desktop accessible from all projects
  • 📋 Organized Storage: Markdown-based scratchpad with sections
  • 🔐 Secure by Design: Input validation, rate limiting, path protection
  • Fast & Lightweight: Minimal dependencies, quick operations

Installation

Prerequisites

  • Python 3.8+
  • MCP-compatible client (Claude Desktop, etc.)

Setup

  1. Clone or download this project:
cd ~/Documents/GitHub/scratchpad
  1. Install dependencies:
pip install -r requirements.txt
  1. Make the server executable:
chmod +x src/server.py

Usage

As an MCP Server

Add to your MCP client configuration (e.g., Claude Desktop):

{
  "mcpServers": {
    "scratchpad": {
      "command": "python3",
      "args": ["/path/to/scratchpad/src/server.py"]
    }
  }
}

The scratchpad will be created at ~/Desktop/scratchpad/scratchpad.md and accessible from all your projects.

Available Tools

1. scratchpad_create

Create a new scratchpad file at ~/Desktop/scratchpad/scratchpad.md.

No parameters required.

2. scratchpad_get_path

Get the scratchpad file path and check if it exists.

No parameters required.

3. scratchpad_read

Read the entire scratchpad contents.

No parameters required.

4. scratchpad_log_interruption

Log an idea, bug, or interruption.

Parameters:

  • note (required): The note to log (max 500 chars)
  • type (optional): One of: idea, bug, feature, question, contact, refactor, task, note
  • priority (optional): One of: high, medium, low

Example:

{
  "note": "Add error handling to API client",
  "type": "bug",
  "priority": "high"
}

5. scratchpad_update_focus

Update your current focus/task.

Parameters:

  • task (required): Description of current task (max 200 chars)

Example:

{
  "task": "Implementing user authentication flow"
}

6. scratchpad_add_to_review_later

Add an item to the "To Review Later" section for follow-up.

Parameters:

  • note (required): The item to add (max 500 chars)

Example:

{
  "note": "Research better caching strategy for API calls"
}

7. scratchpad_mark_completed

Mark an item as completed. Adds it to "Completed Today" with timestamp and removes it from Interruptions/Review Later.

Parameters:

  • note (required): The completed item (max 500 chars)

Example:

{
  "note": "Fixed authentication bug in login flow"
}

8. scratchpad_archive_item

Archive/dismiss an item. Moves it to "Archived / Dismissed" section and removes it from Interruptions/Review Later.

Parameters:

  • note (required): The item to archive (max 500 chars)

Example:

{
  "note": "Old idea that's no longer relevant"
}

🔒 Security Configuration

Scratchpad Location

The scratchpad is always located at:

  • Primary: ~/Desktop/scratchpad/scratchpad.md
  • Fallback: ~/scratchpad/scratchpad.md (if Desktop doesn't exist)

This fixed location prevents path traversal attacks and unauthorized file access.

File Restrictions

  • Extensions: Only .md, .txt, .markdown
  • Max size: 1MB
  • Path length: 256 characters max

Rate Limiting

  • Limit: 60 requests per minute
  • Window: Rolling 60-second window
  • Scope: Per-process (resets on server restart)

Input Sanitization

All inputs are sanitized to prevent:

  • Path traversal attacks (.., ~)
  • Command injection (`, $)
  • XSS attempts (<script>, javascript:)
  • Null byte injection (\x00)

Content Limits

  • Notes: 500 characters maximum
  • Tasks: 200 characters maximum
  • File size: 1MB maximum

Security Best Practices

1. File Permissions

Ensure the scratchpad directory has appropriate permissions:

chmod 755 ~/Desktop/scratchpad
chmod 644 ~/Desktop/scratchpad/scratchpad.md

2. Regular Cleanup

Monitor scratchpad file sizes and archive old content regularly.

3. Error Monitoring

Check stderr output for security warnings:

python3 src/server.py 2>scratchpad-errors.log

Troubleshooting

"Rate limit exceeded" Error

Wait for the specified time or restart the server to reset the rate limiter.

"Scratchpad not found" Error

The scratchpad doesn't exist yet. Use scratchpad_create to create it at ~/Desktop/scratchpad/scratchpad.md.

Desktop Not Found

If ~/Desktop doesn't exist, the scratchpad will be created at ~/scratchpad/scratchpad.md instead.

Development

Testing

Test the server directly:

cd ~/Documents/GitHub/scratchpad
python3 src/server.py

Debugging

The server outputs operational info to stderr:

🔒 Scratchpad MCP initialized
📁 Scratchpad location: /Users/username/Desktop/scratchpad/scratchpad.md
✅ Created scratchpad: /Users/username/Desktop/scratchpad/scratchpad.md
📝 Logged: Bug - Add error handling...

License

MIT License - feel free to use and modify as needed.

Security Reporting

If you discover a security vulnerability, please report it privately rather than creating a public issue.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选