Skip to content

M-Pineapple/TextEdit-MCP

Repository files navigation

TextEdit MCP

A Model Context Protocol (MCP) server that enables Claude Desktop to create beautifully formatted RTF documents with native macOS TextEdit compatibility.

Features

  • πŸ“ Rich Text Formatting

    • Bold, italic, underline, strikethrough
    • Headings (H1-H2)
    • Paragraph formatting with customizable spacing
  • 🎨 Colors & Highlighting

    • Text colors: Red, Blue, Green
    • Highlight colors: Yellow, Cyan, Green, Orange
    • Full color support in tables
  • πŸ“Š Tables

    • Real RTF tables with borders
    • Header row styling
    • Full formatting support within cells
    • Automatic cell padding and alignment
  • πŸ”— Hyperlinks

    • Clickable URLs
    • Formatted link text
    • Works in TextEdit, Pages, and Word
  • πŸ“‹ Lists

    • Bullet points
    • Numbered lists
    • Proper indentation
  • 🎯 Templates

    • Business (default)
    • Technical (monospace)
    • Meeting (increased line spacing)

Installation

Prerequisites

  • macOS (required for NSAttributedString and RTF generation)
  • Swift 5.0 or later
  • Claude Desktop

Quick Install

  1. Clone the repository:
git clone https://github.com/M-Pineapple/TextEdit-MCP.git
cd TextEdit-MCP
  1. Run the installer:
./install.sh
  1. Restart Claude Desktop

The installer will:

  • Build the Swift project
  • Install the MCP server binary
  • Update your Claude Desktop configuration
  • Create a backup of your existing config

Usage

In Claude Desktop, you can create RTF documents using natural language:

"Create an RTF document with my meeting notes"
"Make a formatted report with tables and highlights"
"Generate a technical document with code examples"

Or use the tool directly:

Use textedit:create_rtf_document to create a document at ~/Desktop/MyDoc.rtf

Formatting Syntax

The TextEdit MCP uses an intuitive markdown-like syntax:

Text Formatting

  • **Bold text**
  • *Italic text*
  • ***Bold italic text***
  • ~~Strikethrough text~~

Colors

  • {red}Red text{/red}
  • {blue}Blue text{/blue}
  • {green}Green text{/green}

Highlighting

  • ==Yellow highlight==
  • [[Cyan highlight]]
  • {{Green highlight}}
  • ((Orange highlight))

Headings

# Heading 1
## Heading 2
### Heading 3
#### Heading 4

Lists

β€’ Bullet point (or use - )
1. Numbered item
2. Another item

Tables

| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Data 1   | Data 2   | Data 3   |
| More     | Data     | Here     |

Links

[Link text](https://example.com)

Examples

Simple Document

# Meeting Notes

## Agenda
- Review **Q4 results**
- Discuss {red}urgent issues{/red}
- Plan for next quarter

## Action Items
1. ==Update documentation==
2. [[Review code changes]]
3. Schedule follow-up

Table with Formatting

| Task | Status | Owner |
|------|--------|-------|
| **Documentation** | {green}βœ… Complete{/green} | Team A |
| *Testing* | ==In Progress== | Team B |
| Deployment | {red}Blocked{/red} | DevOps |

Development

Building from Source

swift build -c release

Running Tests

swift test

Project Structure

TextEdit-MCP/
β”œβ”€β”€ Sources/
β”‚   └── TextEditMCP/
β”‚       β”œβ”€β”€ main.swift           # Entry point
β”‚       β”œβ”€β”€ MCPServer.swift      # MCP protocol handler
β”‚       β”œβ”€β”€ RTFDocumentService.swift  # RTF generation
β”‚       └── MCPLogger.swift      # Logging utility
β”œβ”€β”€ Package.swift
β”œβ”€β”€ README.md
β”œβ”€β”€ FORMATTING_GUIDE.md
└── install.sh

How It Works

  1. MCP Protocol: Implements the Model Context Protocol to communicate with Claude Desktop
  2. NSAttributedString: Uses macOS native APIs for rich text formatting
  3. NSTextTable: Creates real RTF tables with proper borders and cell formatting
  4. RTF Export: Generates standard RTF files compatible with TextEdit, Pages, and Word

Contributing

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

Guidelines

  1. Maintain compatibility with macOS TextEdit
  2. Follow Swift naming conventions
  3. Add tests for new features
  4. Update documentation

Support

If you find this tool useful, consider supporting development:

Buy Me A Coffee

License

MIT License - See LICENSE file for details

Acknowledgments

  • Created for use with Claude Desktop
  • Built with Swift and AppKit
  • Uses Model Context Protocol (MCP)

Created by Pineapple 🍍

About

Swift-based MCP for creating perfectly formatted RTF documents using Apple's native TextEdit APIs

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published