Skip to main content
Glama

TextEdit MCP

Licence: MIT Swift Stars M-Pineapple/TextEdit-MCP MCP server

Ask your AI (Claude, ChatGPT, Cursor or any MCP client) for a formatted document. Open a real RTF in TextEdit.

Simulated demo, not a live macOS capture. The tool is create_rtf_document. It writes a real .rtf you can open in TextEdit, Pages, or Word.

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

Quick start

macOS, Swift 5.9 or later, and an MCP client.

  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 your MCP client and ask for a formatted RTF on your Desktop.

Related MCP server: TruePath Office

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)

  • šŸ›”ļø Path guard

    • New .rtf files only, inside the home folder

    • Hidden paths, overwrites, and symlinks that resolve outside home are refused

Installation

Prerequisites

  • macOS (required for NSAttributedString and RTF generation)

  • Swift 5.0 or later

  • 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

See Quick start for the three commands.

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     |
[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
ā”œā”€ā”€ docs/
│   ā”œā”€ā”€ demo.gif                 # Simulated README demo
│   └── generate-demo-gif.py     # Regenerates the demo GIF
ā”œā”€ā”€ 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 this saves you time, a star helps others find it.

If you find this tool useful, consider supporting development:

More MCP servers by M-Pineapple

Other MCP servers in this portfolio:

Licence

MIT Licence. See LICENSE for details.

Acknowledgments

  • Created for use with Claude Desktop

  • Built with Swift and AppKit

  • Uses Model Context Protocol (MCP)


Created by Pineapple šŸ

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A local MCP server that lets Claude, Cursor, Codex, or any MCP client work with Office documents on your Mac: evaluate spreadsheet formulas, read/write XLSX and PPTX, extract structured DOCX content, and merge/split/protect PDFs. 100% local, no network calls, no account. 14 tools.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A native Swift MCP server for full macOS automation, providing 63 tools for controlling windows, browsers, clipboard, screen capture, OCR, input simulation, and more.
    16
    MIT