{
  "markdown": "# ClassQuill MCP server\n\n[![smithery badge](https://smithery.ai/badge/collisbrandon02/classquill)](https://smithery.ai/servers/collisbrandon02/classquill)\n\nGive any MCP-aware AI tool — **Claude, Codex, Cursor, Windsurf, Composio, and more** —\nread access to your **ClassQuill** tutoring-business data: sessions, students, tutors,\nparents, invoices, payments, lesson plans, bookings, earnings, and reports.\n\nIt's a thin, read-only proxy over the [ClassQuill public API](https://api.classquill.com)\n(`/v1`). Each tool maps 1:1 to a public API endpoint, so the tool list can never drift from\nthe real API. Your credentials never leave your machine (or, in hosted mode, your request).\n\n> ClassQuill is the tutoring-business-management platform by EquateIt. The npm package is\n> published as `equateit-mcp`.\n\n## Two ways to use it\n\n### 1. Hosted (recommended — nothing to install)\nPoint any remote-MCP client at the hosted server:\n\n```\nhttps://mcp.classquill.com/mcp\n```\n\n- **Claude / Claude.ai** — add it as a custom connector and sign in (OAuth).\n- **Codex** — `codex mcp add classquill --url https://mcp.classquill.com/mcp`\n- **Any client** — pass your API key as a Bearer token: `Authorization: Bearer ei_live_…`\n\n### 2. Local (run it yourself via npx)\n```bash\nnpx -y equateit-mcp        # stdio, reads EQUATEIT_API_KEY\n```\n\nClaude Code:\n```bash\nclaude mcp add classquill -e EQUATEIT_API_KEY=ei_live_xxxx -- npx -y equateit-mcp\n```\n\nCursor / Claude Desktop / Windsurf (`mcpServers` config):\n```json\n{\n  \"mcpServers\": {\n    \"classquill\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"equateit-mcp\"],\n      \"env\": { \"EQUATEIT_API_KEY\": \"ei_live_xxxx\" }\n    }\n  }\n}\n```\n\n## Getting an API key\nCreate one in the ClassQuill app under **Settings → Developers** (org admins). Keys look like\n`ei_live_…` and are read-only for this server.\n\n## Tools\nOne read-only tool per `/v1` GET route — sessions, students, tutors, parents, invoices,\npayments, lesson-plans, homework, questions, subjects, files, results, availabilities,\ncoverage, reports, and more. The list is **generated from the public OpenAPI spec**\n(`npm run gen:tools`) so it always matches the live API.\n\n## Options & environment\n| Flag | Env var | Default | Purpose |\n|------|---------|---------|---------|\n| `--key` | `EQUATEIT_API_KEY` | — | Your `ei_live_…` key (stdio mode). |\n| `--http` | — | off | Run as an HTTP (Streamable HTTP) server instead of stdio. |\n| `--port` / `-p` | `MCP_PORT` | `3000` | HTTP port. |\n| — | `EQUATEIT_API_BASE_URL` | `https://api.classquill.com` | API base (no trailing `/v1`). |\n\nIn HTTP mode, each request supplies its own credential as `Authorization: Bearer …` — an\n`ei_live_…` API key or an OAuth access token.\n\n## Develop\n```bash\nnpm install\nnpm run build     # → dist/\nnpm test          # unit tests (url builder + auth scheme)\n```\n\nSelf-hosting the HTTP server is a single container — see `Dockerfile`.\n\n## License\nMIT — see `LICENSE`.\n",
  "bytes": 2933,
  "sha": "1d032569c1a8cbe91d65c9eb85751de182b1fbda687989150b33b4fbcf9e8ee2",
  "repo_slug": "equateitau/classquill-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_equateitau_classquill_mcp_e8b52273/readme"
}