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
- Clone the repository:
git clone https://github.com/M-Pineapple/TextEdit-MCP.git
cd TextEdit-MCP
- Run the installer:
./install.sh
- 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
- MCP Protocol: Implements the Model Context Protocol to communicate with Claude Desktop
- NSAttributedString: Uses macOS native APIs for rich text formatting
- NSTextTable: Creates real RTF tables with proper borders and cell formatting
- 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
- Maintain compatibility with macOS TextEdit
- Follow Swift naming conventions
- Add tests for new features
- Update documentation
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 ๐