elicitation-workflows

Collect structured user input during MCP tool execution via schema-driven forms.

2|Updated Aug 17, 2025
One-click install
npx skills add https://github.com/aussierobots/turul-mcp-framework --skill elicitation-workflows
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: elicitation-workflows
Source: https://github.com/aussierobots/turul-mcp-framework/tree/main/plugins/turul-mcp-skills/skills/elicitation-workflows
Command: npx skills add https://github.com/aussierobots/turul-mcp-framework --skill elicitation-workflows

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Structured user input collection during MCP tool execution using schema-driven forms is essential for building interactive tools. It enables servers to request a predefined, structured input from clients, collecting consistent data across steps and contexts and reducing ad-hoc data gathering.

Core Features & Use Cases

  • Schema-driven input requests via ElicitationBuilder and ElicitCreateRequest.
  • Support for single-field prompts, multi-field forms, and multi-step workflows with session state.
  • Pluggable user interfaces via ElicitationProvider (mock and production) for CLI, web, or custom UIs.
  • Built-in validation (required fields, primitive type checks, and simple constraints) and optional dynamic validation.

Quick Start

Create an elicitation request using ElicitationBuilder::new("Your message") and use an ElicitationProvider to collect the response.

Frequently Asked Questions about elicitation-workflows

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I collect structured user input during MCP tool execution?

Structured user input during MCP tool execution is collected using schema-driven elicitation forms. You define primitive schema types like String, Number, Boolean, and Enum, then prompt clients via an ElicitationProvider to gather validated responses across single or multi-step workflows.

What is schema-driven elicitation and when do I need it for multi-step workflows?

Schema-driven elicitation is a mechanism that requests predefined, structured input from clients during tool execution. You need it for multi-step workflows to collect consistent data across sessions, reducing ad-hoc gathering through composite forms with built-in validation and session state.

How do I build an elicitation request with validation for required fields?

Build an elicitation request using ElicitationBuilder::new to define your message and schema. The framework applies built-in validation for required fields, primitive type checks, and simple constraints, ensuring data integrity before the structured input is processed.

Can I use a custom UI provider for elicitation instead of the default mock provider?

Yes, you can plug in custom user interfaces via the ElicitationProvider interface. The framework supports both mock providers for testing and production providers, allowing you to implement elicitation for CLI, web, or custom UI environments.

Does elicitation-workflows support dynamic schema creation at runtime?

Dynamic schema creation at runtime is supported through DynamicElicitation and ElicitCreateRequest components. This allows you to dynamically generate schema-driven forms and prompt for structured input during MCP tool execution, adapting to varying context requirements.

What are the limitations of using primitive schema types for structured input?

Primitive schema types are limited to String, Number, Boolean, and Enum with validation for required fields, types, and simple constraints. Complex nested data structures require optional dynamic validation, as the built-in validation only covers basic primitive type checks.