Forms MCP — form builder, field validation, submissions, response analytics for AI agents in ADK-Rust Enterprise
Forms MCP Server
Form builder and submissions for AI agents — create forms with typed fields, validate inputs, collect responses, analyze results. 11 tools with 10 field types and built-in validation.
Architecture
Tools (11)
Builder (5)
| Tool | Purpose | Risk |
|------|---------|------|
| list_forms | List all forms | read_only |
| get_form | Get form with all fields | read_only |
| create_form | Create a form with fields | internal_write |
| add_field | Add a field to existing form | internal_write |
| publish_form | Publish for submissions | internal_write |
Submissions (4)
| Tool | Purpose | Risk |
|------|---------|------|
| submit_form | Submit with validation | internal_write |
| validate_submission | Validate without submitting | read_only |
| list_submissions | List form responses | read_only |
| get_submission | Get a specific response | read_only |
Analytics & Management (2)
| Tool | Purpose | Risk |
|------|---------|------|
| get_analytics | Response analytics (averages, counts) | read_only |
| delete_form | Delete form and all submissions | destructive |
Field Types
| Type | Validation |
|------|-----------|
| text | Required check |
| email | Must contain @ |
| number | Numeric value |
| date | Date format |
| select | Must be in options list |
| multi_select | Multiple from options |
| checkbox | Boolean |
| textarea | Long text |
| file | File upload reference |
| rating | 1–5 range |
Installation
cargo install mcp-forms
Configuration
No configuration needed — starts with demo forms:
- Customer Feedback — Name, Email, Rating (1-5), Comments
- New Hire Onboarding — Full Name, Start Date, Department (select), T-Shirt Size
Client Configuration
Claude Desktop / Kiro / Cursor
{
"mcpServers": {
"forms": {
"command": "mcp-forms",
"args": []
}
}
}
Usage Examples
Create a form
"Create a bug report form with title, severity, and description"
→ create_form(name="Bug Report", fields=[
{label:"Title", field_type:"text", required:true},
{label:"Severity", field_type:"select", options:["Low","Medium","High","Critical"]},
{label:"Description", field_type:"textarea"}
])
Submit with validation
"Submit feedback: name=Carol, email=carol@test.com, rating=4"
→ submit_form(form_id="form-feedback", data={"Name":"Carol","Email":"carol@test.com","Rating":4})
→ "Submission sub-xxx accepted"
Validation errors
→ submit_form(form_id="form-feedback", data={"Name":"","Email":"bad","Rating":7})
→ "Submission has validation errors: ['Name' is required, 'Email' must be valid, 'Rating' must be 1-5]"
Analytics
"What's the average rating on the feedback form?"
→ get_analytics(form_id="form-feedback")
→ {"Rating": {"average": 4.0, "count": 3}, "total_submissions": 45}
Validation Pipeline
Input → Required check → Type check → Format validation → Options check → ✅ Accept / ❌ Reject with errors
MCP Server Manifest
server_id = "mcp_forms"
display_name = "Forms"
version = "1.0.0"
domain = "platform-core"
risk_level = "low"
writes_allowed = "gated"
License
Apache-2.0
Part of the ADK-Rust Enterprise MCP server ecosystem.
Built with ❤️ by Zavora AI