cliplens
Reads Figma selection metadata from the clipboard, providing structured data about copied design elements to the agent.
Reads and writes Mural's native clipboard format (mly:// base64 JSON), enabling creation of Mural stickies and diagrams via clipboard paste.
Writes clipboard content in Slack's native rich text format (Quill Delta), allowing pasted messages to include bold, italic, lists, links, and code as if typed by a human.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cliplensread the Slack message I just copied and summarize it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Drop ClipLens into any agent — Claude Code, Kiro, Copilot, Gemini, Cursor, your own — and it can read and write the system clipboard in the native formats real apps use: generate a Slack message with real bold/links, a Mural sticky note, an Outlook-ready HTML email, or read back what you copied from Figma/Mural or a console — with no API keys, no OAuth, no marketplace approval. It's provider-agnostic (an MCP server
a plain
SKILL.md) and it just works. Just:
generate → clipboard → paste.
Most integrations die on auth, rate limits, and approval queues. The clipboard doesn't. Every app already speaks it. ClipLens turns that into a universal adapter layer.
Drive it in plain English
No flags to memorize. ClipLens ships as a provider-agnostic agent skill (SKILL.md) — drop
it into any agent (Claude Code, Kiro, Copilot, Gemini, Cursor…) and just say what you want:
"paste this as a Slack message" · "read the Mural I just copied" · "put this table on my clipboard for Outlook" · "clean up this console dump"
Your agent picks the right lens or pen, writes the native format, and tells you to hit Ctrl+V.
A tiny background clip daemon flashes a popup so you see it land. Prefer the CLI? That works too.
Related MCP server: clippy
The idea: Lenses & Pens
Direction | What it does | |
Lens | READ | Decodes a clipboard payload (Mural |
Pen | WRITE | Encodes structured input into a real app's clipboard format (Slack rich text, Outlook HTML, Mural widgets, images). |
You paste. The app thinks a human did it.
copy / paste
│
ClipLens ──► Lens (read) ──► structured data for your agent
◄── Pen (write) ◄── your agent's content
│
native clipboard format ──► Ctrl+V into Slack / Mural / Outlook / …Proven adapters
App | Lens(read) | Pen(write) | Format & notes |
Slack | ☐ | ✅ | Quill Delta in a Chromium custom-MIME blob — bold / italic / lists / links / code |
Mural | ✅ | ✅ |
|
Figma | ✅ | ☐ | selection metadata |
Outlook / Teams / Docs | ☐ | ✅ | HTML-Format clipboard |
DevTools console | ✅ | ☐ | plain text — 99%+ noise reduction |
Install
git clone https://github.com/TheJesper/cliplens
cd cliplens
npm install
npm link # global CLI aliasesCLI
Command | What |
| Capture & explore raw clipboard formats |
| Read clipboard plaintext / write plaintext to it (UTF-8, pipe-friendly) |
| Markdown → Slack rich text on the clipboard |
| Markdown → HTML (Outlook / Teams / Docs) |
| Read a pasted DevTools console dump, strip the noise (keep CORS / HTTP / |
| Write native Mural stickies / diagrams |
| Replay clipboard history |
💡 Give your agent DevTools eyes. In Chrome, right-click inside the console → Copy console, then run
clipconsole(or thecliplens_analyzetool). ClipLens strips 99%+ of the noise — keeping the signal (CORS, HTTP statuses,net::ERR_, failed requests) — so your agent reads only what matters. No screenshots, no copy-paste-scroll.
MCP server (agents)
ClipLens ships an MCP server so agents (Claude Code, Kiro, …) can read/write the clipboard as tools.
{
"mcpServers": {
"cliplens": { "command": "node", "args": ["<path-to>/cliplens/src/mcp-server.js"] }
}
}Tools: cliplens_analyze · _text · _capture · _formats · _inspect · _save_image · _write_slack
· _write_plaintext · _lens. Generated text runs through humanize() (strips em-dashes, curly quotes,
zero-width spaces, BOM — the tells that a machine wrote it).
Clip daemon & popup
cliplens-daemon (in cliplens-toast/, cross-platform Rust via wry) is an optional
lightweight background service that makes the clipboard visible:
Popup toast — when a clip is written, a warm rounded overlay flashes with a per-type pixel-perfect icon (Slack / Mural / Image / Prompt / clipboard), the clip type as a chip (
Slack·Mural·Image·Prompt·Normal…) and the sender (which agent made it) as a badge — so you get confirmation without switching windows. Click the card to dismiss it; otherwise it fades on its own, and multiple clips stack.Clip-history picker — a configurable global hotkey (default
Shift+Alt+V, cross-platform, macOS + Windows) opens the last N clips to re-paste any of them.
One binary, one identical design on Windows/macOS/Linux (HTML/CSS in the webview — no per-OS fallback). Fire one manually:
cliplens-daemon --notify --title "ClipLens" --subtitle "Ctrl+V" --type Slack --agent my-agent --kind clip
cliplens-daemon --watch # run persistently (enables the history picker)Install: download a prebuilt binary from Releases
(built by CI for every OS — no Rust needed), or build once with cargo build --release in
cliplens-toast/. If the daemon isn't present, writes still work and a plain native OS toast fires instead.
Private adapters (keep company stuff out of the public repo)
ClipLens ships only generic, public lenses & pens. Anything org-specific — an internal tool's format, a proprietary board, a company log filter — goes in gitignored folders so it can never leak upstream:
private-lenses/ ← your read adapters (gitignored)
private-pens/ ← your write adapters (gitignored)Drop a .js file exporting the lens/pen shape (see examples/); it's auto-discovered by
src/private.js. Nothing in those folders is ever committed. Fork the core freely; keep your adapters private.
Platform
Windows-first. Clipboard I/O currently uses PowerShell + System.Windows.Forms. The encoding/decoding
logic is pure, cross-platform Node — only the small read/write shim needs porting.
Developed on Kiro; works with Claude Code and any MCP agent. Not yet validated on macOS or Linux — if you're there, a clipboard shim PR would be hugely welcome. 🙏
Roadmap — being worked on as we speak
macOS / Linux clipboard shims (the daemon is built cross-platform; the Node clipboard bridge needs porting)
More lenses & pens (Notion, Miro, Confluence, Jira…)
Multiclip ring buffer — recall the last 10 clips by timestamp
Contributing
You can fork — but I'd genuinely rather build this with you. Open an issue or a PR and I'll happily review it. See CONTRIBUTING.md. This is open source (MIT) and meant to stay that way.
License & credits
MIT © Jesper Wilfing
Icons: FatCow Farm-Fresh Web Icons — licensed under CC BY 3.0.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Give your AI agents the tools to build, manage, and run automation workflows.
One place to build, share, and govern the skills and tools your AI agents use at work.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Carbon Voice MCP serves as a bridge that connects AI assistants like ChatGPT, Claude, and Cursor to a user's Carbon Voice account, turning voice messages and conversations into a private, on-demand knowledge base. It provides 28 specialized tools for comprehensive voice messaging management, including creating and sending messages, accessing conversation history with instant transcription, running AI actions (summarization, TLDR generation, meeting notes), and managing workspace collaboration through folders, contacts, and team communications.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants access to the macOS clipboard content, supporting text, images, and binary data via OSAScript.8MIT
- AlicenseNot gradedqualityAmaintenanceGives AI assistants direct access to macOS clipboard - letting Claude copy generated code, text, or files straight to your clipboard for pasting anywhere on Mac.244MIT
- FlicenseAqualityDmaintenanceIntegrates CopyQ clipboard manager with LLM agents, enabling reading, writing, searching, and managing clipboard items organized in tabs with tags and notes through a unified interface.31
- FlicenseNot gradedqualityCmaintenanceEnables AI coding agents like Claude to read Windows clipboard contents (text and images) from within WSL environments, providing seamless cross-platform clipboard access through the Model Context Protocol.5
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheJesper/cliplens'
If you have feedback or need assistance with the MCP directory API, please join our Discord server