Releases: Roee-Tsur/mcp-signal
Release list
v0.2.1
Fixed
- Type resolution for CJS and legacy consumers.
require('mcp-signal')and the
mcp-signal/server+mcp-signal/inlinesubpaths now resolve correct type declarations across
node10 / node16 (CJS + ESM) / bundler — via per-conditiontypes(.d.ctsforrequire) plus
typesVersions. Verified green with publint +
arethetypeswrong. No API or runtime changes.
🔏 First release published through automated CI with npm provenance.
Full Changelog: v0.2.0...v0.2.1
v0.1.1 · docs & repo polish
Documentation and repository polish — no code changes. The published SDK behaves exactly like v0.1.0; this release refreshes the npm page and README.
Changed
- README rebuilt on the layout leading OSS packages use: a centered hero (logo mark, one-line value prop, curated + verified badges, nav links, animated demo), a scannable Features section, a dedicated How the bridge works diagram section, and a collapsible Configuration table.
Added
- Animated demo (
assets/demo.gif) at the top of the README and a project logo mark (assets/logo.png).
npm install mcp-signal@0.1.1Full diff: v0.1.0...v0.1.1
v0.1.0 · first release
Tiny, zero-dependency telemetry SDK for MCP widgets. Drop it into an interactive MCP widget (Claude MCP Apps, ChatGPT Apps SDK, mcp-ui) to capture usage and forward it to any destination — PostHog, a webhook, your console, or an adapter you write.
The hard part it solves: a host's Content-Security-Policy blocks a widget from fetch-ing your analytics endpoint, so your events can't get out. mcp-signal's bridge routes them through a model-invisible MCP tool call to your own server, which forwards them — no CSP changes, your key stays server-side. Direct HTTP is available too when you control the widget's CSP.
npm install mcp-signalimport { createSignal, consoleAdapter } from 'mcp-signal';
const signal = createSignal({ widgetName: 'weather', adapters: [consoleAdapter()] });
signal.track('forecast_expanded', { day: 'tue' });In this release
createSignal()client — batching (size + interval), exponential-backoff retries, best-effort teardown flushing, abeforeSendredaction hook, and anenabled: falsehard opt-out.- Pluggable adapter contract +
consoleAdapter,webhookAdapter, andposthogAdapter(PostHog Cloud US/EU + self-hosted). - Bridge transport —
bridgeAdapter(model-invisible, app-only MCP tool call) with the server-sidecreateSignalReceiverand a ready-madesignalToolDefinitiondescriptor (mcp-signal/server). - Auto-capture — lifecycle (
loaded/visible/hidden/closed), uncaught errors + unhandled rejections, and opt-in[data-mcp-signal]click capture. - CSP helpers —
requiredConnectDomains()/cspMeta()to declare a widget'sconnect-srcfor direct adapters. - Best-effort context — anonymous per-load session id, host/theme/locale/viewport. No user identity, no fingerprinting, no phone-home.
- Builds — ESM + CJS + type declarations + a standalone minified IIFE (
window.McpSignal). Zero runtime dependencies. 111 passing tests.