剪贴板以支持MCP助手
本地代理监视系统剪贴板,将任何复制的图像上传到Supabase Storage,然后将公共(或签名)URL写回剪贴板。
特性
- 零点击图片托管:复制图片,立即获取URL
- 低延迟:从复制到URL的延迟低于800ms
- 跨平台:适用于macOS、Windows和Linux
- MCP集成:将剪贴板图像上传作为MCP端点公开
- 自动启动:配置为在系统启动时运行
- 高效检测:基于哈希的重复数据删除,CPU使用率低
先决条件
- Node.js 18+
- 启用存储的辅助数据库帐户
- 平台特定依赖关系:
- macOS: pngpaste (brew install pngpaste) - Windows/Linux:本机操作系统剪贴板访问
安装
- 克隆存储库:
git clone https://github.com/martinbowling/clipboard-to-supabase-mcp-helper.git
cd clipboard-to-supabase-mcp-helper- 安装依赖项:
npm install- 创建一个
.env文件基于.env.example:
SUPABASE_URL=https://
.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
BUCKET=media
MCP_PORT=3333- 测试您的Supabase连接:
npm run test:supabase- 构建项目:
npm run build- 作为系统服务安装:
对于macOS:
npm run install:macos对于Linux:
npm run install:linux对于Windows:
npm run install:windows用法
安装并运行后,助手将:
- 监控剪贴板中的图像更改(每300ms轮询一次)
- 将任何复制的图像上传到您的Supabase存储桶
- 将公共URL放回剪贴板,准备粘贴
运行服务
剪贴板助手可以在两种模式下运行:
标准模式(默认)
npm start这将使用StdioServerTransport运行MCP服务器,非常适合命令行使用。
HTTP模式
npm run start:http这将在端口3333(可配置)上运行一个具有正确REST API端点的Express HTTP服务器。
MCP集成
辅助程序公开以下MCP端点:
上传剪贴板图像
使用HTTP服务器模式:
POST http://localhost:3333/mcp请求正文:
{
"id": "1",
"jsonrpc": "2.0",
"method": "tool",
"params": {
"name": "upload_clipboard_image",
"input": {}
}
}答复:
{
"id": "1",
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "https://your-project.supabase.co/storage/v1/object/public/media/clips/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.png"
}
]
}
}清理旧文件
该助手还提供了一个MCP端点,用于手动触发旧文件的清理。
请求正文:
{
"id": "1",
"jsonrpc": "2.0",
"method": "tool",
"params": {
"name": "cleanup_old_files",
"input": {
"days": 30
}
}
}答复:
{
"id": "1",
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "Cleanup completed: Deleted 5 files older than 30 days. Failed: 0."
}
]
}
}这 days 参数是可选的。如果没有提供,它将使用 RETENTION_DAYS 环境变量。
运作原理
- 变化检测:每300ms轮询剪贴板并计算图像数据的SHA-1哈希值
- 去重:仅基于哈希比较处理新的或更改的图像
- 平台适应性:使用特定于平台的方法捕获剪贴板图像
- Supabase集成:使用唯一的UUID将图像上传到您的Supabase存储桶
- MCP端点:通过模型上下文协议向AI代理公开功能
- 自动清理:定期删除超过配置保留期的图像(默认值:30天)
平台特定注意事项
macOS
- 需要
pngpaste:安装brew install pngpaste - 使用LaunchAgent自动启动
视窗
- 使用PowerShell的系统。窗户。形式。用于图像捕获的剪贴板
- 使用Windows注册表自动启动
Linux
- 使用xclip(X11)或wl粘贴(Wayland)访问剪贴板
- 使用systemd自动启动
发展
# Run with live reload (stdio mode)
npm run dev
# Run with live reload (HTTP mode)
npm run dev:http
# Build for production
npm run build
# Run stdio version
npm start
# Run HTTP version
npm run start:http许可证
麻省理工学院
