Track whether an interactive MCP widget loads and which controls users click.
Route widget analytics events through your own MCP server to PostHog without changing sandbox security settings.
Catch uncaught errors happening inside a sandboxed AI app widget.
| roee-tsur/mcp-signal | 4ssh1/mine-sweeper | achawla19/intuitcode-extension | |
|---|---|---|---|
| Stars | 2 | 2 | 2 |
| Language | TypeScript | TypeScript | TypeScript |
| Last pushed | — | 2026-01-31 | — |
| Maintenance | — | Maintained | — |
| Setup difficulty | easy | moderate | moderate |
| Complexity | 3/5 | 2/5 | 4/5 |
| Audience | developer | vibe coder | developer |
Figures from each repo's GitHub metadata at analysis time.
Production use with the bridge requires registering a tool on your own MCP server.
mcp-signal is a small analytics toolkit built specifically for interactive widgets that run inside AI assistant apps like Claude or ChatGPT, or other tools that use the Model Context Protocol, known as MCP. These widgets run inside a locked down sandbox for security, which normally blocks the regular web analytics scripts developers are used to. This project fills that gap: it tracks how a widget is being used, such as whether it loads, which buttons people click, and where users stop engaging, without needing any dependencies and adding very little to the page's size. The core idea is a small piece of code you add to your widget that automatically captures basic lifecycle events, like the widget loading, becoming visible, being hidden, or encountering an error, and lets you record your own custom events for anything else worth tracking. Getting started can be as simple as printing events to the browser console for testing. For real production use, the recommended approach is what the project calls a bridge. Because the sandboxed widget usually cannot make its own network requests to an outside analytics service, events are instead sent through a special tool call on your own MCP server, which is invisible to the AI model and does not appear in its context, and your server then forwards the data wherever you want it to go, such as PostHog or a custom webhook. This avoids needing to change security settings on the widget and keeps any analytics keys safely on the server rather than exposed in the widget's code. There is also a more direct option where the widget sends data straight to a destination itself, though that path requires explicitly allowing that destination through the widget's security policy, and the package can generate that configuration for you. The project is built with production use in mind, batching events together, retrying failed sends with increasing delays, and offering a hook to redact or drop sensitive data before it is sent. It states plainly that it does not track individual user identity or fingerprint devices, and that developers control exactly what data gets collected. It ships with adapters for a few common destinations already built in, and documents how to write a custom one if needed.
A tiny, dependency-free telemetry SDK for tracking usage inside sandboxed MCP widgets in Claude, ChatGPT, and similar AI apps, forwarding events past the host's security limits.
Mainly TypeScript. The stack also includes TypeScript, MCP, PostHog.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.