Tool tree
gradeNot graded
get_situationAnswer
Read the whole board: stats, every request (who, need, people, urgency 1-5, status, matched volunteer, location) sorted open-and-urgent first, every volunteer offer (what they can do, capacity, status, assignments), and recent events. Call this before making changes.
View tool JSON
{
"name": "get_situation",
"kind": "answer",
"impl": "imperative",
"description": "Read the whole board: stats, every request (who, need, people, urgency 1-5, status, matched volunteer, location) sorted open-and-urgent first, every volunteer offer (what they can do, capacity, status, assignments), and recent events. Call this before making changes.",
"inputSchema": {
"type": "object",
"properties": {}
}
}add_requestAction
Log a new request for help from a resident. Give an address or street (e.g. 'Erb St', 'King St', 'Union St') so it can be placed on the map, or lat/lng. Urgency 1 (can wait) to 5 (life safety: medical, rising water with people who can't move).
View tool JSON
{
"name": "add_request",
"kind": "act",
"impl": "imperative",
"description": "Log a new request for help from a resident. Give an address or street (e.g. 'Erb St', 'King St', 'Union St') so it can be placed on the map, or lat/lng. Urgency 1 (can wait) to 5 (life safety: medical, rising water with people who can't move).",
"inputSchema": {
"type": "object",
"properties": {
"who": {
"type": "string",
"description": "Household or person, e.g. 'the Chen family'."
},
"need": {
"type": "string",
"enum": [
"sandbags",
"evacuation",
"pump",
"food",
"medical",
"shelter",
"childcare",
"other"
],
"description": "Kind of help."
},
"address": {
"type": "string"
},
"lat": {
"type": "number"
},
"lng": {
"type": "number"
},
"people": {
"type": "integer",
"minimum": 1
},
"notes": {
"type": "string",
"description": "Key facts: water level, infants, wheelchairs, medical conditions."
},
"urgency": {
"type": "integer",
"minimum": 1,
"maximum": 5
}
},
"required": [
"who",
"need"
]
}
}add_offerAction
Register a volunteer or resource: who they are, what kinds of help they can give, where they are, capacity (e.g. '40 sandbags', 'boat, 4 per trip', 'beds for 40').
View tool JSON
{
"name": "add_offer",
"kind": "act",
"impl": "imperative",
"description": "Register a volunteer or resource: who they are, what kinds of help they can give, where they are, capacity (e.g. '40 sandbags', 'boat, 4 per trip', 'beds for 40').",
"inputSchema": {
"type": "object",
"properties": {
"who": {
"type": "string"
},
"can": {
"type": "array",
"items": {
"type": "string",
"enum": [
"sandbags",
"evacuation",
"pump",
"food",
"medical",
"shelter",
"childcare",
"other"
],
"description": "Kind of help."
}
},
"address": {
"type": "string"
},
"lat": {
"type": "number"
},
"lng": {
"type": "number"
},
"capacity": {
"type": "string"
},
"notes": {
"type": "string"
}
},
"required": [
"who",
"can"
]
}
}find_volunteers_forAnswer
List volunteers who can meet a request's need, nearest first, with distance in km and whether they're free or busy. Use before matching.
View tool JSON
{
"name": "find_volunteers_for",
"kind": "answer",
"impl": "imperative",
"description": "List volunteers who can meet a request's need, nearest first, with distance in km and whether they're free or busy. Use before matching.",
"inputSchema": {
"type": "object",
"properties": {
"request": {
"type": "string",
"description": "Request id or resident name."
},
"need": {
"type": "string",
"enum": [
"sandbags",
"evacuation",
"pump",
"food",
"medical",
"shelter",
"childcare",
"other"
],
"description": "Kind of help."
}
},
"required": [
"request"
]
}
}matchAction
Assign a volunteer to a request. Draws the dispatch line on the map, marks the request matched and the volunteer busy.
View tool JSON
{
"name": "match",
"kind": "act",
"impl": "imperative",
"description": "Assign a volunteer to a request. Draws the dispatch line on the map, marks the request matched and the volunteer busy.",
"inputSchema": {
"type": "object",
"properties": {
"request": {
"type": "string"
},
"volunteer": {
"type": "string",
"description": "Offer id or name."
}
},
"required": [
"request",
"volunteer"
]
}
}unmatchAction
Release a volunteer from a request (e.g. they got stuck) and put the request back in the open queue.
View tool JSON
{
"name": "unmatch",
"kind": "act",
"impl": "imperative",
"description": "Release a volunteer from a request (e.g. they got stuck) and put the request back in the open queue.",
"inputSchema": {
"type": "object",
"properties": {
"request": {
"type": "string"
}
},
"required": [
"request"
]
}
}update_requestAction
Change a request's urgency, status (open, matched, done), notes, people count or need.
View tool JSON
{
"name": "update_request",
"kind": "act",
"impl": "imperative",
"description": "Change a request's urgency, status (open, matched, done), notes, people count or need.",
"inputSchema": {
"type": "object",
"properties": {
"request": {
"type": "string"
},
"urgency": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"status": {
"type": "string",
"enum": [
"open",
"matched",
"done"
]
},
"notes": {
"type": "string"
},
"people": {
"type": "integer"
},
"need": {
"type": "string",
"enum": [
"sandbags",
"evacuation",
"pump",
"food",
"medical",
"shelter",
"childcare",
"other"
],
"description": "Kind of help."
}
},
"required": [
"request"
]
}
}update_volunteerAction
Change a volunteer's status (available, busy, done), capacity or notes.
View tool JSON
{
"name": "update_volunteer",
"kind": "act",
"impl": "imperative",
"description": "Change a volunteer's status (available, busy, done), capacity or notes.",
"inputSchema": {
"type": "object",
"properties": {
"volunteer": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"available",
"busy",
"done"
]
},
"capacity": {
"type": "string"
},
"notes": {
"type": "string"
}
},
"required": [
"volunteer"
]
}
}broadcastSensitive Action
Send a message to volunteers (or everyone) and post it to the event feed. Use for urgent unmet needs or safety notices.
View tool JSON
{
"name": "broadcast",
"kind": "transact",
"impl": "imperative",
"description": "Send a message to volunteers (or everyone) and post it to the event feed. Use for urgent unmet needs or safety notices.",
"inputSchema": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"to": {
"type": "string",
"enum": [
"volunteers",
"all"
]
}
},
"required": [
"message"
]
}
}focus_mapAction
Pan the coordinator's map to a request, a volunteer, or coordinates, so they see what you're talking about.
View tool JSON
{
"name": "focus_map",
"kind": "act",
"impl": "imperative",
"description": "Pan the coordinator's map to a request, a volunteer, or coordinates, so they see what you're talking about.",
"inputSchema": {
"type": "object",
"properties": {
"request": {
"type": "string"
},
"volunteer": {
"type": "string"
},
"lat": {
"type": "number"
},
"lng": {
"type": "number"
},
"zoom": {
"type": "integer",
"minimum": 11,
"maximum": 17
}
}
}
}get_statsAnswer
Quick numbers: open requests, urgent open, matched, done, people waiting, volunteers available/busy.
View tool JSON
{
"name": "get_stats",
"kind": "answer",
"impl": "imperative",
"description": "Quick numbers: open requests, urgent open, matched, done, people waiting, volunteers available/busy.",
"inputSchema": {
"type": "object",
"properties": {}
}
}