Open-source, privacy-first web analytics for tracking your sites' traffic.
Open-source, privacy-first web analytics. Unlimited websites, a first-class REST API and a native MCP server for agents. No cookies, no personal data, no consent banners.
Clone the repo and install dependencies.
git clone https://github.com/kozmos-tech/yourtraffic
cd yourtraffic
npm install
Copy the example env file and fill it in.
cp .env.example .env
DATABASE_URL. Your Postgres connection string. The app fails to start without it.BETTER_AUTH_SECRET. A long random secret. Generate one with openssl rand -base64 32. Never ship the default, since visitor hashes are salted from it.BETTER_AUTH_URL. The public origin of your deployment, like https://analytics.example.com. Use http://localhost:3000 in development. This is also the origin MCP clients discover for OAuth, so it must be the exact public URL with no trailing path.GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET. Optional. Set both to enable Google sign-in on the login and signup pages. Create OAuth credentials in the Google Cloud console and add BETTER_AUTH_URL + /api/auth/callback/google as an authorized redirect URI. Leave them blank to hide the Google button.Create the database tables before the first run.
npm run db:migrate
vc dev
open http://localhost:3000
Sign in, add a website, then drop the shown snippet into the <head> of your site. Stats appear within seconds of the first visit.
npm install
vc deploy
Set DATABASE_URL, BETTER_AUTH_SECRET and BETTER_AUTH_URL in your Vercel project settings, then run the migration against your production database.
Schema lives in src/db/schema.ts. Generate a migration after changing it, then apply it.
npm run db:generate
npm run db:migrate
Every project has an api key, shown under Settings in the dashboard.
/api/v1/stats. See llms.txt for the full guide./mcp. It uses OAuth, so you sign in to approve access and no api key is needed.Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @kozmos-tech/yourtrafficMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-kozmos-tech-yourtraffic": {
"command": "npx",
"args": [
"-y",
"@kozmos-tech/yourtraffic"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@kozmos-tech/yourtrafficnpmio.github.kozmos-tech/yourtraffic works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.