Agent payload contracts
Complex console forms are not duplicated in MCP tool schemas. Agents use a four-layer contract so payloads stay small and accurate.
Layers
| Layer | What the model sees | Source |
|---|---|---|
| L1 — Tool envelope | Narrow parameters (id + optional data) | mcp_resources tool definition |
| L2 — Describe tools | Writable fields, enums, execute requirements | describe_* Nest handlers |
| L3 — Platform skills | When to describe, confirm, and sequence calls | SKILLS/platform-actions bundle |
| L4 — Validation errors | Field-level errors from domain services | Same as REST API |
Standard write pipeline
describe_* → assemble minimal payload → request_human_input (if destructive) → create_* | update_* | execute_*
Examples
Entity
describe_entity— learnname,type,status,parent_entity_id.create_entitywith{ "name": "Acme Oy", "type": "organization" }.
Integration execute
describe_tenant_integrationwithintegration_id(+ optionaloperation).- Build
datafromoperations[].schema. execute_tenant_integrationwithintegration_id,operation,data.
Process execute
describe_processwithprocess_id— checkexecutable_by_ai_agentsand triggers.request_human_inputconfirm (recommended).execute_processwith{ "process_id": "...", "async": true, "input_data": {} }.
Anti-patterns
- Guessing full form payloads without calling
describe_*. - Duplicating field lists in SKILL.md instead of linking describe tools.
- One mega-tool with an
actionparameter and huge union schema.
Related
- Platform actions
- Plan:
docs/PLANS/AGENT_PLATFORM_ACTIONS_SKILLS_TOOLS_PLAN.md§9.1