Introduction

The Universal Agent Gateway (UAG) introduces the power of Form.io forms to AI agents.

The Form.io UAG uses the Model Context Protocol (MCP) to enable Form.io functionality through an AI agent workflow. By providing AI agents with the dynamic context of how to use Form.io JSON forms, the UAG allows a user to interact with any aspect of their enterprise system served by the Form.io Platform directly through their AI agent.

Model Context Protocol (MCP)

The Model Context Protocol (MCP) is an open-source standard for connecting AI applications to external systems.

The MCP essentially puts an AI agent's hands on the controls of an external system. In the case of Form.io, the MCP describes a discrete set of tools the AI agent can use to interact with forms, fields, and submissions. While some tools are delivered off-the-shelf, this functionality can be extended, modified, or refined through custom built modules.

Dynamic Context

What does it mean to say MCP provides a dynamic context for how to use these tools?

The power of AI agents is their ability to parse natural language and infer a user's intent rather than take rote input like a command line. The dynamic context delivered by MCP gives the AI agent guidance on how to correlate the user's prompt to the tools and data avai. When the AI agent receives a prompt, it uses this dynamic context to determine what tool it should use, what elements of the prompt are inputs to that tool, and what additional input might be necessary.

What is the Form.io UAG?

The UAG is the package that contains everything sitting between the Form.io Platform and the AI agent. It contains the stock MCP server, the authorization infrastructure, and any custom tools or modules that extend the functionality.

By equipping an AI agent with Form.io capabilities, the UAG brings the AI agent much deeper into the broader application ecosystem. Form.io's drag-and-drop Form Builder simultaneously defines the look of the form and the structure of the data. This makes it easy to use data collected through Form.io forms elsewhere in an application, or as an input to other enterprise systems.

Pre-Defined MCP Tools

These tools are available in the standard MCP. These tools represent what an AI agent is capable of doing within a project.

Tool Name
Description

get_forms

Provides the AI agent with a list of available forms. It will only return forms that have been tagged uag.

get_form_fields

When the AI agent infers the user intends to use a specific form, this tool provides the agent with a high level overview of all the fields needed (along with the field data path) to submit that form.

get_field_info

Once the fields have been determined using get_form_fields, this tool provides specific information about the requested fields, such as validation, conditionals, input formats, etc. This tool instructs the AI agent on how to format and structure the data that is sent to the MCP server.

collect_field_data

Provides the AI agent with a mechanism to dynamically collect the required information from the user. It can parse the user's input into multiple fields at once, and will identify additional inputs from the user if needed. This tool supports complex and structured data collection and is compatible with nested or multi-value fields like nested forms, data grids, etc.

confirm_form_submission

When the AI agent is ready to submit a form, this tool allows it to confirm all the information it has collected before a submission has been made to the form.

submit_completed_form

Provides the AI agent with the ability to submit all of the data collected from the user to create the form submission.

find_submissions

Enables the agent to parse a user's natural language request into a query for a submission, or a specific field of a particular submission.

submission_update

Provides the AI agent with the ability to update an existing submission, either by supplying unfilled fields or updating existing ones if allowed. Provides the AI agent with the context of the existing field values, allowing inline changes or edits.

Last updated

Was this helpful?