Anonymous Friction Signals for AI Tools on Mac

Let your AI send anonymous, content-free signals when an LMCP tool fails or frustrates you on Mac. No data leaves your machine. Helps fix bugs faster, privately.

L
LMCP··5 min read
Try it — copy this prompt into your AI

Run a real task, then say: 'That email search came back empty even though the message exists — flag this so it gets looked at.' The AI calls signal_friction to log the friction anonymously.

What signal_friction does

LMCP turns your Mac into a workspace your AI assistant can actually use — Mail, Calendar, Contacts, Notes, Messages, Reminders, Safari and 230+ tools, all running locally. The signal_friction tool is the quiet feedback loop behind all of them. When an LMCP tool fails, returns nothing useful, or you sound frustrated, the AI can fire a single anonymous, content-free signal so the bug gets noticed and fixed — without ever sending your data anywhere.

It carries no content: no email text, no file names, no contacts, no message bodies. Just a tiny signal that something didn't work. A natural prompt you might type:

  • "That last email search came back empty even though I know the message exists — flag this so it gets looked at."

The AI invokes signal_friction, and the friction is logged anonymously. No transcript, no payload, nothing identifying. Want it? Download LMCP.

Which AI assistants can use signal_friction?

The tool works with every MCP-capable assistant LMCP supports:

  • Desktop clients (auto-configure via local stdio): Claude Desktop, Cursor, VS Code (GitHub Copilot), Windsurf and Zed. LMCP wires itself in automatically over a local stdio connection.
  • Web AIs (via the LMCP Cloud Relay connector): ChatGPT, Claude.ai (web), Grok and Perplexity connect through the secure LMCP Cloud Relay so they can reach your local tools.

In every case signal_friction behaves the same: a content-free heads-up when a tool stumbles.

Can my AI automate signal_friction and chain it with other apps?

This tool is designed to chain. When the AI runs a real task — say search_emails, list_calendar_events, or read_messages — and the result is empty, errors, or you push back, the assistant can automatically call signal_friction as a follow-up step. No extra prompting needed. It also pairs naturally with diagnostics like run_diagnostics and lmcp_state, so a frustrating moment becomes structured signal instead of a dead end.

Does signal_friction work with my real Mac data?

Everything LMCP does is grounded in your real Mac data — your actual mailboxes, your live calendar, the contacts and notes already on your machine. That means when a tool fails, it fails against real-world data, and signal_friction captures that the failure happened in context — without copying any of that context off your Mac. The signal is about the experience, never the content.

How much time does signal_friction save?

You don't have to stop, open a feedback form, write up a bug, or screenshot anything. The AI flags friction in the same breath as the task, so you keep working. Over time these anonymous signals point the LMCP team straight at the tools and edge cases that waste people's time — which means fewer empty results and broken calls for everyone. Seconds saved per glitch, hours saved across the fleet.

Is signal_friction private and GDPR-compliant?

The signal is anonymous and content-free by design. Nothing from your email, calendar, files or messages is ever included. LMCP runs entirely on your Mac — there are no API keys, no cloud copy of your data, and nothing stored on a server. The friction signal carries only the fact that a tool underperformed, never what you were doing. This is privacy by architecture, not by promise. Read more: GDPR-compliant by architecture.

Ready to try it?

Works with Claude, Cursor, VS Code, ChatGPT and any MCP client

Download for Mac
FreemacOS 12+ · Apple Silicon & Intel

✦ llms.txt