Protocol
MCP Apps
Type
Tool
Stars
31
License
MIT
Last push
Oct 29, 2026

Yavio MCP Apps tool

by teamyavio• 31•
MCP AppsToolTypeScript

Self-hosted product analytics for MCP Apps and ChatGPT Apps

About Yavio

Yavio is an open-source MCP Apps tool by teamyavio, written mainly in TypeScript. Self-hosted product analytics for MCP Apps and ChatGPT Apps. It has 31 GitHub stars and uses the MIT license, and its code was last pushed on Oct 29, 2026.

New to MCP Apps? Our MCP Apps guide explains how it works and lists other projects built on it.

At a glance

Protocol
MCP Apps
Type
Tool
Language
TypeScript
License
MIT
GitHub stars
31
Last push
Oct 29, 2026
Latest release
@yavio/sdk 0.5.6
Released
Oct 27, 2026

Listed from public GitHub data, checked 2026-11-08. Not scanned by AgenticMart.

Questions about Yavio

What is Yavio?

Self-hosted product analytics for MCP Apps and ChatGPT Apps It is listed as a MCP Apps tool, maintained in the teamyavio/yavio repository on GitHub.

How do I install Yavio?

The project's README gives this command: npm install @yavio/sdk. Read the README for setup steps and requirements before running it.

Is Yavio an official MCP Apps project?

No. It is a community project built on MCP Apps, not published by the organisation that runs the protocol.

What license does Yavio use?

It is published under the MIT license. Check the license file in the repository before using it commercially.

Is Yavio still maintained?

Its code was last pushed on Oct 29, 2026, and it had 31 GitHub stars when we checked on 2026-11-08. Look at recent issues and releases in the repository for a fuller picture.

README

<p align="center"> <img src="https://i.imgur.com/EIwgLHP.png" alt="Yavio Logo" width="200"> </p> <h3 align="center">Product Analytics for MCP Apps and ChatGPT Apps</h3> <p align="center"> Open-source. Self-hosted. See how users actually use your AI tools. </p> <p align="center"> <a href="https://docs.yavio.ai/docs"><img src="https://img.shields.io/badge/docs-docs.yavio.ai-blue" alt="Documentation"></a> <a href="https://github.com/teamyavio/yavio/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a> <img src="https://img.shields.io/badge/status-v0.1_alpha-orange" alt="v0.1 Alpha"> </p>

Alpha (v0.1) — Yavio is under active development. APIs, configuration, and database schemas may change between releases without notice or migration paths. Do not use in production without pinning exact versions.

What is Yavio?

Yavio is the analytics and visibility layer for MCP servers and ChatGPT Apps. It captures how AI platforms (ChatGPT, Claude, Cursor, Windsurf, VS Code, etc.) invoke your tools and how users interact with your widgets — tool calls, conversions, funnels, errors, retention — with a 3-line SDK integration and a full analytics dashboard.

The entire platform is open source (MIT) and self-hosted via Docker Compose. Cloud hosting is coming soon.

<p align="center"> <img src="https://i.imgur.com/lJN73IJ.png" alt="Yavio Dashboard" width="800"> </p>

Quick Start (Self-Hosted)

1. Start the platform

git clone https://github.com/teamyavio/yavio.git
cd yavio

# Generate .env with random secrets
./scripts/setup-env.sh

# Start all services (migrations run automatically on first start)
docker compose up -d

The dashboard is at http://localhost:3000, ingestion API at http://localhost:3001.

2. Create a project

Open the dashboard, register an account, create a workspace and project, then copy your API key.

3. Install the SDK

npm install @yavio/sdk

4. Wrap your MCP server

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { withYavio } from "@yavio/sdk";

const server = withYavio(
  new McpServer({ name: "my-app", version: "1.0.0" }),
  {
    apiKey: "yav_your_key_here",
    endpoint: "http://localhost:3001/v1/events",
  }
);

That's it. Every tool call is now tracked automatically.

Using the CLI

You can also use the CLI for setup and platform management:

npm i -g @yavio/cli

# Interactive SDK setup — creates .yaviorc.json
yavio init

# Platform management
yavio up          # Start services
yavio down        # Stop services (data preserved)
yavio status      # Health check and stats
yavio logs        # Tail service logs
yavio doctor      # Diagnose setup issues

Features

  • Zero-config MCP instrumentation — withYavio() wraps your MCP server and captures every tool call, latency, errors, and platform automatically
  • User identification — .identify(userId, traits) ties events to known users for retention, cohorts, and per-user analytics
  • Funnel tracking — .step(), .track(), .conversion() for custom funnel stages and business events
  • Cross-layer correlation — a single trace ID stitches server-side tool calls and browser widget interactions into one combined funnel
  • Widget SDK — useYavio() React hook auto-captures 12 interaction types (clicks, scrolls, forms, rage clicks, performance, etc.)
  • Full analytics dashboard — overview KPIs, per-tool breakdowns, funnels, user paths, error analysis, live event feed
  • Platform detection — auto-detects which AI platform invoked your tool (ChatGPT, Claude, Cursor, Windsurf, VS Code)
  • PII stripping — automatic removal of emails, credit cards, SSNs, and phone numbers at both SDK and server layers
  • Multi-tenant workspaces — teams, roles (owner/admin/member/viewer), invitations, multiple projects per workspace
  • Self-hosted — run the full stack on your own infrastructure with docker compose up

Architecture

┌───────────────────────────┐       ┌────────────────────────────────────────┐
│  Your App                 │       │  Yavio Platform                        │
│                           │       │                                        │
│  ┌─────────────────────┐  │       │  ┌──────────────────────────────────┐  │
│  │ @yavio/sdk          │  │       │  │ Ingestion API (Fastify)          │  │
│  │ withYavio(server)   │  │ HTTP  │  │                                  │  │
│  │                     │──┼─┐     │  │ Auth · Rate limiting             │  │
│  │ Auto-captures:      │  │ │ events │ Validation · PII stripping       │  │
│  │  · tool calls       │  │ ├────►│  └───────────────┬──────────────────┘  │
│  │  · connections      │  │ │     │                  │ write               │
│  │  · resources        │  │ │     │                  ▼                     │
│  │  · prompts          │  │ │     │  ┌───────────────────┐  ┌──────────┐  │
│  └─────────────────────┘  │ │     │  │ ClickHouse        │  │ Postgres │  │
│                           │ │     │  │ Analytics store    │  │ App data │  │
│  ┌─────────────────────┐  │ │     │  └─────────┬─────────┘  └────┬─────┘  │
│  │ Widget (React)      │  │ │     │            │ read             │ read   │
│  │ useYavio()          │──┼─┘     │            ▼                 ▼        │
│  │                     │  │       │  ┌──────────────────────────────────┐  │
│  │ Auto-captures:      │  │       │  │ Dashboard (Next.js)              │  │
│  │  · clicks, scrolls  │  │       │  │ Analytics · Teams · Projects     │  │
│  │  · forms, nav       │  │       │  └──────────────────────────────────┘  │
│  │  · rage clicks      │  │       │                 ▲                      │
│  └─────────────────────┘  │       │                 │                      │
│                           │       └─────────────────┼──────────────────────┘
└───────────────────────────┘                         │
                                        Browser ──────┘
ComponentDescription
@yavio/sdkServer-side withYavio() proxy + React useYavio() hook
@yavio/cliSDK setup (yavio init) and self-hosted management (yavio up/down/status/logs/doctor)
Ingestion APIHigh-throughput Fastify service — auth, validation, PII strip, ClickHouse write
DashboardNext.js web app with auth, workspaces, projects, and 7 analytics views
ClickHouseAnalytics event storage (ReplacingMergeTree, built-in dedup)
PostgreSQLApplication data (users, workspaces, projects, API keys)

SDK Usage

User Identification

Tie events to known users for retention and per-user analytics:

import { yavio } from "@yavio/sdk";

server.registerTool("checkout", { inputSchema: { items: z.array(z.string()) } }, async (params) => {
  yavio.identify("user_123", { plan: "pro", company: "Acme" });
  yavio.conversion("purchase", { value: 99 });

  return { content: [{ type: "text", text: "Order placed." }] };
});

Funnel Steps

Track progression through multi-step flows:

server.registerTool("search", { inputSchema: { query: z.string() } }, async ({ query }) => {
  yavio.step("search_initiated", { queryLength: query.length });
  const results = await performSearch(query);
  yavio.step("results_found", { count: results.length });

  return { content: [{ type: "text", text: `Found ${results.length} results` }] };
});

Custom Events and Conversions

yavio.track("feature_used", { feature: "export", format: "pdf" });
yavio.conversion("subscription_upgrade", { value: 99, currency: "USD" });

Widget SDK (React)

Track user interactions in ChatGPT App widgets:

import { useYavio } from "@yavio/sdk/react";

function BookingWidget() {
  const yavio = useYavio();

  const handleBook = (booking) => {
    yavio.step("room_selected", { roomType: booking.type });
    yavio.conversion("booking_completed", { value: booking.price });
  };

  return <button onClick={() => handleBook(room)}>Book</button>;
}

The widget SDK auto-captures clicks, scrolls, form interactions, navigation, performance metrics, rage clicks, and more.

Configuration

The SDK resolves config in this order:

  1. Code options — withYavio(server, { apiKey, endpoint })
  2. Environment variables — YAVIO_API_KEY, YAVIO_ENDPOINT
  3. Config file — .yaviorc.json (auto-discovered via directory walk-up)
  4. No-op — if no API key is found, the SDK does nothing (zero overhead)

Self-Hosting Requirements

ComponentMinimumRecommended
CPU2 cores4+ cores
RAM4 GB8+ GB
Disk20 GB100+ GB
Dockerv24+Latest stable
Docker Composev2.20+Latest stable

Tech Stack

LayerTechnology
Monorepopnpm + Turborepo
LanguageTypeScript (strict)
IngestionFastify 5
DashboardNext.js (App Router)
Analytics DBClickHouse
App DBPostgreSQL + Drizzle ORM
AuthNextAuth.js v5
UIshadcn/ui + Tailwind
TestingVitest
LintingBiome

Project Structure

packages/
  shared/       Shared types, validation schemas, error codes
  db/           Drizzle ORM schema, ClickHouse client, migrations
  ingest/       Fastify ingestion API
  sdk/          Server SDK + React widget SDK
  dashboard/    Next.js analytics dashboard
  cli/          CLI for setup and platform management
  docs/         Documentation site (Fumadocs)

Contributing

We welcome contributions! Please read CONTRIBUTING.md before submitting a PR.

Security

Found a vulnerability? Please report it responsibly — see SECURITY.md. Do not open a public issue.

License

MIT — see LICENSE.

Copyright (c) 2026 Yavio GmbH

More MCP Apps projects

All 20 →