Give your school an AI agent.
Qalabash exposes a public REST API and an MCP server so external AI agents (ChatGPT, Claude, your own) can read and write your school's data directly. Add students, mark attendance, post grades, send announcements — all by conversation, never by clicks.
1. Mint an API key
Only school admins can create keys.
- Sign in and open Settings → API & AI Agents.
- Click New key, name it (e.g. "ChatGPT assistant"), pick scope.
- Copy the
qal_live_…key. It's shown once.
Scopes: read (list only), write (create & update), admin (everything).
2. Connect an AI agent (MCP)
Native support for Claude Desktop, ChatGPT custom connectors, and any MCP-compatible client.
MCP endpoint
Streamable HTTP transport.
https://tcrtlmnrwglhasmuxzxt.supabase.co/functions/v1/mcpClaude Desktop
Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"qalabash": {
"url": "https://tcrtlmnrwglhasmuxzxt.supabase.co/functions/v1/mcp",
"transport": "http",
"headers": {
"Authorization": "Bearer qal_live_YOUR_KEY_HERE"
}
}
}
}Available tools
What an agent can do once connected.
3. Or call the REST API
Plain HTTP. Use it from any backend or script.
Base URL & auth
https://tcrtlmnrwglhasmuxzxt.supabase.co/functions/v1/api-v1Every request needs Authorization: Bearer qal_live_…
Create a class
curl -X POST "https://tcrtlmnrwglhasmuxzxt.supabase.co/functions/v1/api-v1/classes" \
-H "Authorization: Bearer qal_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Form 1 A","grade_level":"Form 1","capacity":35}'Add a student
curl -X POST "https://tcrtlmnrwglhasmuxzxt.supabase.co/functions/v1/api-v1/students" \
-H "Authorization: Bearer qal_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_name":"Amina Diallo",
"class_id":"<class-uuid>",
"guardian_name":"Fatou Diallo",
"guardian_phone":"+221771234567"
}'Mark attendance (bulk)
curl -X POST "https://tcrtlmnrwglhasmuxzxt.supabase.co/functions/v1/api-v1/attendance" \
-H "Authorization: Bearer qal_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"class_id":"<class-uuid>",
"date":"2026-06-12",
"entries":[
{"student_id":"<id>","status":"present"},
{"student_id":"<id>","status":"absent"}
]
}'Endpoint reference
| Method | Path | Purpose |
|---|---|---|
GET | /school | School profile |
GET | /classes | List classes |
POST | /classes | Create class |
GET | /students | List students (filter: class_id) |
POST | /students | Add student |
GET | /teachers | List teachers |
POST | /attendance | Bulk mark attendance |
POST | /grades | Bulk record grades |
POST | /announcements | Post announcement |
Privacy: API keys are scoped to your school's workspace. We store only a hash of each key — if you lose it, revoke and create a new one. Every action by an agent is recorded with created_via_api = true on the row.
Need a connector for a service we don't list? Email hello@qalabash.io.