Yavio

Quickstart

Get the full Yavio platform running in under 5 minutes

This guide walks you through deploying the complete Yavio platform on your machine using Docker Compose.

Prerequisites

  • Docker with Docker Compose v2+ installed
  • Git to clone the repository
  • Ports 3000, 3001, 5432, and 8123 available

Clone the repository

git clone https://github.com/yavio-ai/yavio.git
cd yavio

Generate environment secrets

Run the setup script to create a .env file with random secrets:

./scripts/setup-env.sh

This generates cryptographically random values for NEXTAUTH_SECRET, JWT_SECRET, API_KEY_HASH_SECRET, and ENCRYPTION_KEY.

You can also copy .env.example manually and fill in the secrets yourself. Generate each with openssl rand -base64 32.

Start the platform

docker compose up -d

This starts five services:

ServicePortDescription
Dashboard3000Web UI for analytics and project management
Ingestion API3001Receives events from the SDK
PostgreSQL5432Stores workspaces, projects, users, API keys
ClickHouse8123Stores analytics events
Docs3002Documentation site

Wait for all health checks to pass:

docker compose ps

All services should show healthy status within about 30 seconds.

Create your account

Open http://localhost:3000 in your browser and register your first account. The first user automatically becomes the workspace owner.

Create a project and API key

  1. Create a workspace and project in the dashboard
  2. Navigate to the project settings and generate an API key
  3. Copy the key — it starts with yav_

Connect the SDK

Point your MCP server's SDK at your local instance:

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

const server = new McpServer({ name: "my-server", version: "1.0.0" });

const instrumented = withYavio(server, {
  apiKey: "yav_your_key_here",
  endpoint: "http://localhost:3001/v1/events",
});

Or use a .yaviorc.json config file so your code stays clean:

.yaviorc.json
{
  "apiKey": "yav_your_key_here",
  "endpoint": "http://localhost:3001/v1/events"
}
server.ts
// withYavio() auto-reads .yaviorc.json — no config needed in code
const instrumented = withYavio(server);

Verify events

Invoke a tool on your MCP server and check the dashboard at http://localhost:3000. Events should appear within a few seconds.

Using the Yavio CLI

Instead of running docker compose commands directly, you can use the Yavio CLI for a streamlined experience:

npx @yavio/cli up       # Start the platform
npx @yavio/cli status   # Check service health
npx @yavio/cli down     # Stop the platform

What's next?

On this page