mcpField
C
Clippy

Clippy

本地服务
github.com生产力2508 周前更新

关于 Clippy

Clippy 是面向 macOS 的命令行工具,可将文件以可粘贴的引用形式复制到剪贴板,并可将 Markdown 渲染为富文本邮件或 Slack 消息。它面向习惯在终端中工作的用户,并内置 MCP 服务供 AI 助手调用。

主要功能

  1. 01以文件引用形式复制到剪贴板
  2. 02复制最近下载的文件或通过 Spotlight 查找文件
  3. 03管道数据转为文件
  4. 04Markdown 转富文本邮件(md2rich)
  5. 05Markdown 转 Slack 格式消息(md2slack)
  6. 06内置 MCP 服务,提供剪贴板与缓冲区工具

适用场景

  1. 01在终端中复制文件并粘贴到 Slack 或邮件
  2. 02将 AI 助手生成的邮件草稿复制到 Gmail
  3. 03将 Markdown 内容转换为带格式的 Slack 消息

MCP 相关

Clippy 内置 MCP 服务(clippy mcp-server),向 MCP 客户端暴露 clipboard_copy、copy_email、clipboard_paste、get_recent_downloads 以及用于文件字节操作的 buffer_* 工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbclippy_1.9.1.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Clippy 📎

Homebrew Release CI Go Version License

在终端中复制文件,让它们能直接粘贴到 GUI 应用中。无需再切换到 Finder。

仅限 macOS — 专为 Mac 剪贴板系统打造。

为什么选择 Clippy?

pbcopy 复制的是文件 内容,但 GUI 应用需要的是文件 引用。当你执行 pbcopy < image.png 时,无法将其粘贴到 Slack 或电子邮件中——这些应用需要的是文件,而不是原始字节。

Clippy 通过检测你的需求并使用正确的剪贴板格式,弥合了这一差距:

# Copy files as references (paste into any GUI app)
clippy report.pdf         # ⌘V into Slack/email - uploads the file
clippy *.jpg             # Multiple files at once

# Pipe data as files
curl -sL https://picsum.photos/300 | clippy  # Download → clipboard as file

# Copy your most recent download (immediate)
clippy -r                # Grabs the file you just downloaded
clippy -r 3              # Copy 3 most recent downloads

# Interactive picker for recent files
clippy -i               # Choose from list of recent downloads
clippy -i 5m            # Show picker for last 5 minutes only

留在终端中。复制任何内容。随处粘贴。

安装:

brew install clippy

终端优先的剪贴板套件:Clippy 可将文件复制到剪贴板,并为 AI 助手提供 MCP 服务;Pasty 可智能粘贴;Draggy(可选 GUI)可衔接拖放工作流。你也可以将其用作 Go 库,进行自定义集成。所有功能都旨在减少你从终端切换到其他应用的次数。

核心功能

1. 智能文件复制
clippy document.pdf    # Copies as file reference (paste into any app)
clippy notes.txt       # Also copies as file reference
clippy -t notes.txt    # Use -t flag to copy text content instead
clippy *.jpg          # Multiple files at once
2. 最近下载
# Immediate copy (no UI)
clippy -r              # Copy your most recent download
clippy -r 3            # Copy 3 most recent downloads
clippy -r 5m           # Copy all downloads from last 5 minutes

# Interactive picker
clippy -i              # Choose from list of recent downloads
clippy -i 3            # Show picker with 3 most recent files
clippy -i 5m           # Show picker for last 5 minutes only

# Copy and paste in one step
clippy -r --paste      # Copy most recent and paste here
clippy -i --paste      # Pick file, copy it, and paste here
3. 使用 Spotlight 查找文件
clippy -f invoice      # Search for files matching "invoice"
clippy -f screenshot   # Find screenshots
clippy -f .pdf         # Find all PDF files (by extension)
clippy -f report.xlsx  # Find specific file "report.xlsx"
# Shows interactive picker with results

无需再切换到 Finder 搜索文件——直接在终端中查找并复制文件。

4. 将管道数据作为文件
curl -sL https://example.com/image.jpg | clippy
cat archive.tar.gz | clippy
5. 复制和粘贴一气呵成
clippy ~/Downloads/report.pdf --paste  # Copy to clipboard AND paste here
clippy -r --paste          # Copy recent download and paste here
clippy -i --paste           # Pick file, copy it, and paste here
6. 清空剪贴板
clippy --clear         # Empty the clipboard
echo -n | clippy       # Also clears the clipboard
7. 内容类型检测

还有一个贴心功能:clippy 会自动检测内容类型(JSON、HTML、XML),让接收应用能正确处理——这是 pbcopy 做不到的。因此,当你粘贴到支持富内容的应用时,它们会正确处理内容——JSON 查看器会进行语法高亮,HTML 会渲染,等等。

echo '{"key": "value"}' | clippy          # Recognized as JSON
clippy -t page.html                       # Recognized as HTML
clippy -t file.txt --mime application/json  # Manual override when needed
8. 适用于 Gmail 的 Markdown 邮件

复制 Markdown,将其渲染为富文本邮件内容,然后像往常一样粘贴到 Gmail、 Mimestream、Mail 或其他富文本编辑器中:

clippy md2rich draft.md        # from a file
cat draft.md | clippy md2rich  # from a pipe
clippy md2rich                 # render the clipboard in place

剪贴板会同时携带 HTML、RTF 和纯文本格式。富文本编辑器会保留有意设置的段落间距、强调样式、链接、列表、行内代码和 Mimestream 风格的围栏代码块;纯文本目标仍会收到易于阅读的备用内容。

9. 原生 Slack 消息

编写 Markdown,然后粘贴到任意 Slack 编辑框,即可获得真正的格式 — 而不是字面上的星号:

clippy md2slack notes.md         # from a file
cat notes.md | clippy md2slack   # from a pipe
clippy md2slack                  # render the clipboard in place

Slack 的编辑框会将消息存储为 Quill Delta 文档,并在你从中复制内容时将同一文档放入剪贴板。md2slack 会生成完全相同的格式,因此普通的 Command-V 就能呈现粗体、斜体、删除线、行内代码、代码块、引用块、标题、链接以及项目符号列表或编号列表(包括嵌套列表)——效果就像直接在 Slack 中输入消息一样。

Slack 不支持表格、图片或水平分隔线,因此表格会变成未对齐的文本行,图片会变成链接,分隔线会变成分隔线文本。无法识别 Slack 格式的内容会显示为纯文本。

要让列对齐,请在围栏代码块中使用以空格填充的文本。将两个围栏各自放在单独一行,并在各行之间使用实际换行:

Current values:

```
  name   value
  alpha  10
  beta   20
```

围栏内的缩进会保留;创建代码块并不依赖缩进。编辑时请保留现有的列间距。输入使用 CommonMark/GFM 语法(**bold**、~~strikethrough~~),而非 Slack 的 mrkdwn 语法。

copy_slack MCP 工具会返回 formatting 计数和 warnings。对于包含一个围栏表格的消息,请设置 expected_code_blocks: 1:如果计数不匹配,会在更改剪贴板前返回错误。preview: true 会报告相同的计数和警告,但不会复制内容。clippy --verbose md2slack 也会报告计数,并且 CLI 始终会打印格式警告。

这些计数描述的是生成的格式,并不代表已验证 Slack 中的粘贴效果。请使用普通的 Command-V。纯文本剪贴板读取会省略格式和围栏标记,因此无法验证代码块。如果计数正确但粘贴效果不对,请检查剪贴板/粘贴路径,再考虑修改 Markdown。MCP 工具和 CLI 使用相同的渲染器。

10. 实用标志
clippy -v file.txt     # Show what happened
clippy --debug file.txt # Technical details for debugging

为什么叫“Clippy”?

因为它是一位贴心的剪贴板助手,懂你想做什么!📎


MCP 服务

Clippy 内置了 MCP(Model Context Protocol)服务,可让 AI 助手将生成的内容直接复制到你的剪贴板。

让 Claude 生成任意文本——代码、电子邮件、文档——然后就能立即粘贴到任何地方:

  • “编写一个用于处理 CSV 文件的 Python 脚本,并复制到我的剪贴板”
  • “起草一封关于会议的电子邮件,并放到我的剪贴板上”
  • “生成那个正则表达式并复制它,这样我就能粘贴到编辑器里”

不必再从聊天界面手动选择和复制内容。

对于电子邮件草稿,系统会向模型提供专用的 copy_email 工具。 请优先使用明确的 salutation、body_markdown 和 signoff 字段,以便保留电子邮件结构,而无需猜测不同语言的问候语。 完整正文的 markdown 字段仍可用于兼容。该工具只会复制草稿;不会填写收件人或发送邮件。

设置

Claude Code:

# Install for all your projects (recommended)
claude mcp add --scope user clippy $(which clippy) mcp-server

# Or for current project only
claude mcp add clippy $(which clippy) mcp-server

注意:$(which clippy) 会查找系统上的 clippy 二进制文件。在 Apple Silicon Mac 上通常是 /opt/homebrew/bin/clippy,在 Intel Mac 上通常是 /usr/local/bin/clippy。

Claude Desktop:

添加到你的配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "clippy": {
      "command": "clippy",
      "args": ["mcp-server"]
    }
  }
}
元数据覆盖(可选)

你可以自定义 MCP 工具/提示词/示例的描述,而不改变其行为:

clippy mcp-server \
  --tools /path/to/tools.json \
  --prompts /path/to/prompts.json \
  --examples /path/to/examples.json

默认情况下,覆盖文件可以只包含部分内容。添加 --strict-metadata,即可要求覆盖所有工具、提示词和参数。

可用工具
系统剪贴板工具
  • clipboard_copy - 将文本或文件复制到系统剪贴板
  • copy_email - 将结构化电子邮件草稿复制为适用于 Gmail 的富文本(绝不会发送)
  • clipboard_paste - 将剪贴板内容粘贴到文件/目录
  • get_recent_downloads - 列出最近下载的文件
Agent 缓冲区工具
  • buffer_copy - 将文件字节(可选指定行范围)复制到 Agent 的专属缓冲区
  • buffer_cut - 将文件中的行剪切到缓冲区(从源文件复制并删除)
  • buffer_paste - 以追加/插入/替换模式将字节粘贴到文件
  • buffer_list - 显示缓冲区元数据(行数、源文件、范围)

为什么需要缓冲区工具? 它解决了大模型“记住并重新输出”的问题。MCP 服务直接读取/写入文件字节,Agent 无需为复制的内容生成令牌。它支持精准重构(复制第 17–32 行,再粘贴以替换第 5–8 行),确保逐字节准确,而且不会触碰系统剪贴板。


Pasty - 智能剪贴板粘贴

在 Finder 中复制文件,然后在终端按 ⌘V,得到的只是文件名文本。Pasty 会直接将文件复制到当前目录。

核心用例

1. 在 Finder 中复制文件 → 在终端粘贴实际文件

# 1. Copy any file in Finder (⌘C)
# 2. Switch to terminal and run:
pasty
# File gets copied to your current directory (not just the filename!)

2. 智能处理文本文件

# Copy a text file in Finder (⌘C), then:
pasty                    # Outputs the file's text content to stdout
pasty notes.txt          # Saves the file's text content to notes.txt

3. 保存浏览器中的图片

# Right-click "Copy Image" in any browser, then:
pasty photo.png          # Saves the image (auto-converts TIFF to PNG)
pasty --preserve-format  # Keep original format if needed

它还支持包含嵌入图片的富文本(来自 TextEdit/Notes 的 .rtfd 包)。

4. 调试和提取纯文本

pasty --inspect          # Show clipboard types + paste priority (metadata only)
pasty --plain notes.txt  # Force plain text, strip all formatting
pasty -f existing.txt    # Overwrite existing files instead of creating duplicates

默认情况下,如果文件已存在,pasty 会采用 Finder 风格的重复文件命名方式。


Draggy - 可视化剪贴板助手

Draggy 是一款菜单栏应用,为剪贴板工作流带来可视化功能。clippy 负责从终端复制内容,而 Draggy 则提供可视化界面,可将文件拖到应用中,并查看最近下载的文件。

重要: Draggy 是独立的可选工具,不会随 clippy 自动安装。

功能
核心功能
  • 拖放桥接 - 让剪贴板中的文件可拖动到 Web 浏览器、Slack 和其他应用中
  • 最近下载查看器 - 单击即可在剪贴板和最近下载之间切换
  • 文件缩略图 - 直接在文件列表中预览图片和 PDF
  • 快速预览 - 悬停时按住 ⌥ Option,可查看更大的预览
  • 零后台活动 - 不会轮询或耗费电量,仅在需要时激活
用户体验
  • 双击打开 - 无需离开菜单即可快速访问文件
  • 键盘快捷键 - 按 ESC 关闭,按 Space 刷新
设计理念
  • 不是剪贴板管理器 - 没有历史记录、数据库,也不复杂
  • 终端优先的工作流 - 旨在配合终端使用,而非取而代之
  • 简约但完整 - 每项功能都服务于特定的工作流需求
安装
# Separate brew install (not included with clippy)
brew install --cask neilberkman/clippy/draggy

⚠️ 首次启动: 由于 Draggy 未经过代码签名,macOS 可能会显示安全警告。如果看到“Draggy 已损坏,无法打开”:

  • Homebrew cask 会在安装时自动移除隔离标记
  • 如果警告仍然出现,请运行:xattr -dr com.apple.quarantine /Applications/Draggy.app
  • 或者右键点击 Draggy.app 并选择“打开”,以绕过 Gatekeeper
使用方法
# Copy files in terminal:
clippy ~/Downloads/*.pdf    # Copy PDFs with clippy
curl -sL image.jpg | clippy # Pipe downloads to clipboard
clippy -r                   # Copy most recent download

# Use Draggy GUI:
# 1. Click Draggy icon in menu bar
# 2. Drag files to browser upload fields, Slack, etc.
# 3. Toggle to Recent Downloads view with clock icon
# 4. Hold ⌥ Option to preview files
# 5. Double-click to open files
工作流示例

将屏幕截图上传到 GitHub:

# Take screenshot (macOS saves to Desktop)
# In terminal: clippy ~/Desktop/Screenshot*.png
# In Draggy: Drag to GitHub comment box

快速分享文件:

# Terminal: clippy ~/Downloads/report.pdf
# Draggy: Shows thumbnail, drag to Slack or email

最近下载工作流:

# Download file in browser
# Click Draggy → Click clock icon → See your download
# Drag where needed or double-click to open
理念

Draggy 有意不做剪贴板管理器。没有历史记录、搜索或数据库。它是终端剪贴板工作流与 GUI 应用之间的可视化桥梁。对于偶尔需要查看剪贴板内容或将文件拖到其他位置,然后继续工作的终端用户来说,它恰到好处。


从源代码构建

# Clone and build
git clone https://github.com/neilberkman/clippy.git
cd clippy
go build -o clippy ./cmd/clippy
go build -o pasty ./cmd/pasty
sudo mv clippy pasty /usr/local/bin/

# Or use go install
go install github.com/neilberkman/clippy/cmd/clippy@latest
go install github.com/neilberkman/clippy/cmd/pasty@latest

库

Clippy 可作为 Go 库用于你自己的应用程序:

go get github.com/neilberkman/clippy
高级 API
import "github.com/neilberkman/clippy"

// Smart copy - automatically detects text vs binary files
err := clippy.Copy("document.pdf")

// Copy multiple files as references
err := clippy.CopyMultiple([]string{"image1.jpg", "image2.png"})

// Copy text content
err := clippy.CopyText("Hello, World!")

// Copy data from reader (handles text/binary detection)
reader := strings.NewReader("Some content")
err := clippy.CopyData(reader)

// Copy from stdin
err := clippy.CopyData(os.Stdin)

// Get clipboard content
text, ok := clippy.GetText()
files := clippy.GetFiles()
功能
  • 智能检测:自动判断是以文件引用还是文本内容的形式复制
  • 多个文件:一次操作即可复制多个文件
  • 读取器支持:从任何 io.Reader 复制,并自动检测格式
  • 剪贴板访问:读取当前剪贴板内容(文本或文件路径)
  • 跨平台类型:使用标准 Go 类型,并在内部处理平台特定的剪贴板操作

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。