Read-only analytics for Convex apps, queryable via MCP from Claude, Cursor, and other clients.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
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.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 1afaa98 · analyzer v17 · 3d ago
skills & prompt files 7
- skillDan-Cleary-convalytics-1afaa98/.agents/skills/convex-create-component/SKILL.md
- skillDan-Cleary-convalytics-1afaa98/.agents/skills/convex-migration-helper/SKILL.md
- skillDan-Cleary-convalytics-1afaa98/.agents/skills/convex-performance-audit/SKILL.md
- skillDan-Cleary-convalytics-1afaa98/.agents/skills/convex-quickstart/SKILL.md
- skillDan-Cleary-convalytics-1afaa98/.agents/skills/convex-setup-auth/SKILL.md
- agent-rulesDan-Cleary-convalytics-1afaa98/AGENTS.md
- agent-rulesDan-Cleary-convalytics-1afaa98/CLAUDE.md
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