1. Conduid
  2. Developer Tools
  3. Yavio
MCP server · Developer Tools

Yavio

The Open Source Analytics and Visibility Layer for ChatGPT Apps and MCP Apps.

72Good

Scored 6 hours ago · breakdown

About Yavio

Yavio is an MCP server published by teamyavio in the Developer Tools category: the Open Source Analytics and Visibility Layer for ChatGPT Apps and MCP Apps.

The repository has 31 stars and 3 forks, with the last commit 2 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/teamyavio/yavio

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Yavio

Powered by Claude · Grounded in docs

I know everything about Yavio. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 6 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

sdk-v0.4.0v0.4.0 · 15 Oct 2026v0.4.0 Honest error rates, per-tool privacy controls, and capture flags that fail closed. A tool that returns an error result, or a call the MCP SDK rejects before your handler runs, now counts as an error. Several defaults got stricter,…
sdk-v0.3.0v0.3.0 · 29 Jul 2026v0.3.0 Client metadata as first-class event fields, wider header allowlist, and a real `capture.geo` switch. Nothing new is requested from clients — this release structures data that already arrives on every call. New Client metadata…
sdk-v0.2.0v0.2.0 · 24 Jul 2026What's new User intent capture (opt-in) The SDK can now capture *why* users invoke your tools. When enabled, tools advertise an optional `context` parameter that AI assistants fill with the user's intent — visible in the Yavio dashboard on…
v0.1.1v0.1.1 · 24 Feb 2026First Alpha Release

README


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.

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 ──────┘
Component Description
@yavio/sdk Server-side withYavio() proxy + React useYavio() hook
@yavio/cli SDK setup (yavio init) and self-hosted management (yavio up/down/status/logs/doctor)
Ingestion API High-throughput Fastify service — auth, validation, PII strip, ClickHouse write
Dashboard Next.js web app with auth, workspaces, projects, and 7 analytics views
ClickHouse Analytics event storage (ReplacingMergeTree, built-in dedup)
PostgreSQL Application 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

Component Minimum Recommended
CPU 2 cores 4+ cores
RAM 4 GB 8+ GB
Disk 20 GB 100+ GB
Docker v24+ Latest stable
Docker Compose v2.20+ Latest stable

Tech Stack

Layer Technology
Monorepo pnpm + Turborepo
Language TypeScript (strict)
Ingestion Fastify 5
Dashboard Next.js (App Router)
Analytics DB ClickHouse
App DB PostgreSQL + Drizzle ORM
Auth NextAuth.js v5
UI shadcn/ui + Tailwind
Testing Vitest
Linting Biome

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

README fetched from the repository 6 hours ago. The original is authoritative.

Questions

About Yavio

How do I install Yavio?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Yavio safe to use with an AI agent?

Its trust score is 72 out of 100 (good). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Yavio still maintained?

Yes — the latest release is sdk-v0.4.0 (15 Oct 2026), and the last commit was 2 days ago. The repository has 31 stars and 15 open issues.