github re-analysis due

Dan-Cleary/convalytics

github

Read-only analytics for Convex apps, queryable via MCP from Claude, Cursor, and other clients.

maintainer
Dan-Cleary
license
first seen
2026-06-03
last seen
2026-06-03
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport streamable-http · http verified reported listed in the official MCP registry counts 0 tools · 0 res · 0 prompts permission surface via code analysis

no tools enumerated yet for this server.

skills & danger signals github-tarball
code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 4

  • fs Dan-Cleary-convalytics-1afaa98/cli/index.mjs :3 import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
  • fs Dan-Cleary-convalytics-1afaa98/scripts/build-skills-index.mts :9 import { writeFileSync, mkdirSync } from "node:fs";
  • fs Dan-Cleary-convalytics-1afaa98/scripts/prerender.mts :10 import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
  • fs Dan-Cleary-convalytics-1afaa98/setup.mjs :8 import fs from "fs";

shell / exec 2

  • shell Dan-Cleary-convalytics-1afaa98/cli/index.mjs :2 import { execSync } from "child_process";
  • shell Dan-Cleary-convalytics-1afaa98/setup.mjs :10 import { spawnSync } from "child_process";

network 7

  • net Dan-Cleary-convalytics-1afaa98/cli/index.mjs :89 const resp = await fetch(PROVISION_URL, {
  • net Dan-Cleary-convalytics-1afaa98/convex/http.ts :73 const res = await fetch(`https://api.country.is/${ip}`, {
  • net Dan-Cleary-convalytics-1afaa98/convex/notifications.ts :19 await fetch(`https://api.resend.com/audiences/${audienceId}/contacts`, {
  • net Dan-Cleary-convalytics-1afaa98/convex/oauth.ts :44 const tokenResp = await fetch(TOKEN_EXCHANGE_URL, {
  • net Dan-Cleary-convalytics-1afaa98/convex/projects.ts :97 const resp = await fetch(url, {
  • net Dan-Cleary-convalytics-1afaa98/middleware.ts :37 const upstream = await fetch(new URL(mdPath, url));
  • net Dan-Cleary-convalytics-1afaa98/scripts/build-skills-index.mts :23 const res = await fetch(SKILL_SOURCE_URL);

secrets 3

  • secrets Dan-Cleary-convalytics-1afaa98/cli/index.mjs :77 let writeKey = args[1] ?? process.env.CONVALYTICS_WRITE_KEY ?? "";
  • secrets Dan-Cleary-convalytics-1afaa98/convex/notifications.ts :16 const apiKey = process.env.RESEND_API_KEY;
  • secrets Dan-Cleary-convalytics-1afaa98/convex/oauth.ts :38 const clientSecret = process.env.CONVEX_OAUTH_CLIENT_SECRET;

declared dependencies 39

  • @auth/core@^0.37.0
  • @convex-dev/auth@^0.0.91
  • @convex-dev/resend@^0.2.3
  • @convex-dev/stripe@^0.1.4
  • @react-email/components@^1.0.12
  • @react-email/render@^2.0.6
  • @vercel/functions@^3.4.4
  • canvas-confetti@^1.9.4
  • convex@^1.33.1
  • marked@^18.0.2
  • react@^19.2.4
  • react-dom@^19.2.4
  • react-router-dom@^7.14.0
  • recharts@^3.8.1
  • @convex-dev/eslint-plugin@^1.2.0
  • @edge-runtime/vm@^5.0.0
  • @eslint/js@^9.39.4
  • @tailwindcss/vite@^4.2.1
  • @types/canvas-confetti@^1.9.0
  • @types/node@^24.12.2
  • @types/react@^19.2.14
  • @types/react-dom@^19.2.3
  • @types/turndown@^5.0.6
  • @vitejs/plugin-react@^5.2.0
  • convex-test@^0.0.46
  • dotenv@^17.3.1
  • eslint@^9.39.4
  • eslint-plugin-react-hooks@^7.0.1
  • eslint-plugin-react-refresh@^0.5.2
  • globals@^17.4.0
  • npm-run-all2@^8.0.4
  • prettier@^3.8.1
  • tailwindcss@^4.2.1
  • tsx@^4.21.0
  • turndown@^7.2.4
  • typescript@~5.9.3
  • typescript-eslint@^8.57.1
  • vite@^7.3.1
  • vitest@^4.1.2