Minab school MCP
Connect an agent to one school
The key is the school. An agent cannot choose another school, and it cannot see Minab subscription billing.
Endpoint
POST https://api.minab.app/api/v1/mcp
GET https://api.minab.app/api/v1/mcp returns this same address as JSON.
Header: Authorization: Bearer minab_mcp_…
Protocol: JSON-RPC 2.0, MCP methods initialize, tools/list, and tools/call.
Before the first call
- Minab turns MCP on for that school in the platform school screen.
- The school manager opens Settings → MCP, turns the school switch on, names a key, ticks scopes, and sets how many days it lasts.
- The secret is shown once. Store it in the agent. Revoke it from the same tab.
Initialize
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {}
}
List tools
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
The list contains only the scopes on the key.
Scopes
insights.read— counts for this school.students.read/teachers.read— search up to 20 people.students.import— 1 to 100 students. Fields: first_name, last_name, grade, id_number.teachers.import— 1 to 50 teachers. Fields: first_name, last_name, phone.exams.create— draft exam. Fields: class_id, teacher_id, title.exams.publish— publish one draft that already has questions and a date.homework.create— class_id, teacher_id, title, due_date.announcements.create— title and content for the whole school.
Writes need a preview
The first tools/call for a write returns confirm_token and writes nothing. Send the same arguments again with that token within 10 minutes.
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "insights.read",
"arguments": {}
}
}