Utilities
Identity, family overview, projects, and health.
Utility tools your agent calls for context, identity, and health. None of these mutate state.
family.query_overview
Read the family roster. The first call in most workflows.
Scope: family:read
Parameters
| Name | Type | Required | Description |
|---|
Request example
{
"method": "tools/call",
"params": {
"name": "family.query_overview",
"arguments": {}
}
}Returns. { parents: [{ userId, name, ... }], kids: [{ childId, name, birthDate, age, ... }], familyId }
Response example
{
"result": {
"familyId": "fm_1a...",
"parents": [
{ "userId": "us_72...", "name": "Jordan" }
],
"kids": [
{ "childId": "a4b9-...", "name": "Jay", "birthDate": "2018-03-14", "age": 8 }
]
}
}Notes. Resolve kid names → ids in this response; never hardcode UUIDs.
project.list
List canvas-workshop projects visible to the family. Read-only; external agents cannot create projects.
Scope: project:read
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
cursor / limit | various | no | Standard pagination. |
includeArchived | boolean | no | Default false. |
Request example
{
"method": "tools/call",
"params": {
"name": "project.list",
"arguments": {}
}
}Returns. { items: ProjectSummary[], nextCursor }
Response example
{
"result": {
"items": [
{
"projectId": "pr_4d...",
"name": "Multiplication drills",
"canvasCount": 3,
"updatedAt": "2026-05-22T10:00:00Z"
}
],
"nextCursor": null
}
}project.get
Fetch one project with its current canvases.
Scope: project:read
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | yes | The project. |
Request example
{
"method": "tools/call",
"params": {
"name": "project.get",
"arguments": { "projectId": "pr_4d..." }
}
}Returns. Project (with canvas list)
Response example
{
"result": {
"projectId": "pr_4d...",
"name": "Multiplication drills",
"canvases": [
{ "canvasId": "cv_19...", "name": "Times 2" },
{ "canvasId": "cv_1a...", "name": "Times 3" }
]
}
}Notes. chatId on the response is server-internal routing data; do not echo to the user.
mcp.whoami
Identity and authorization state of the current MCP token.
Scope: (no scope)
Parameters
| Name | Type | Required | Description |
|---|
Request example
{
"method": "tools/call",
"params": { "name": "mcp.whoami", "arguments": {} }
}Returns. { user_id, app_id, sprout_scopes: string[] }
Response example
{
"result": {
"user_id": "us_72...",
"app_id": "ap_99...",
"sprout_scopes": ["family:read", "task:write", "skill:write", "canvas:write", "heartbeat:write", "screentime:approve", "gems:adjust"]
}
}Notes. Use to confirm scopes after connect; if expected scopes are missing, prompt the parent to reconnect.
mcp.health
Server-side health check. Returns { ok: true } on healthy.
Scope: (no scope)
Parameters
| Name | Type | Required | Description |
|---|
Request example
{
"method": "tools/call",
"params": { "name": "mcp.health", "arguments": {} }
}Returns. { ok: boolean, version, region }
Response example
{
"result": { "ok": true, "version": "2026.05.23", "region": "fra1" }
}