Skip to content
Theme:

Survey

The survey server lets agents collect structured input from the user during a workflow: confirmations, choices, text fields, numbers, booleans, and more.

It uses MCP elicitation, so the client renders a form and returns structured JSON instead of relying on free-form chat.

.aether/mcp.json
{
"servers": {
"survey": {
"type": "in-memory"
}
}
}

The built-in survey server does not read any args.

ToolDescription
ask_userPresent a JSON Schema-backed form and collect the response.
FieldTypeDescription
messagestringPrompt shown to the user.
schemaobject or JSON stringJSON Schema for the form. Must describe an object schema with properties.
FieldTypeDescription
acceptedbooleantrue when the user accepted/submitted the form.
dataobject | nullStructured response data when accepted.

Confirm a destructive operation:

ask_user
{
"message": "This will delete 3 generated files. Continue?",
"schema": {
"type": "object",
"properties": {
"confirm": {
"type": "boolean",
"description": "Confirm deletion"
}
}
}
}

Collect multiple fields:

ask_user
{
"message": "Configure the new service:",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Service name"
},
"port": {
"type": "number",
"description": "Port number"
},
"public": {
"type": "boolean",
"description": "Expose publicly"
}
}
}
}

Use survey when an agent needs a precise decision or value before it can safely continue.