The Universal Agent Gateway (UAG) enables in-process agentic automation using Form.io.
Connect Runs on your machine
claude mcp add formio-uag -e PROJECT=<PROJECT> -e PROJECT_KEY=<PROJECT_KEY> -e ADMIN_KEY=<ADMIN_KEY> -e LICENSE_KEY=<LICENSE_KEY> -e UAG_LICENSE=<UAG_LICENSE> -e JWT_SECRET=<JWT_SECRET> -e PORT=<PORT> -e PROJECT_TTL=<PROJECT_TTL> -e TEMPLATE_SYNC=<TEMPLATE_SYNC> -e JWT_EXPIRE_TIME=<JWT_EXPIRE_TIME> -e PORTAL_SECRET=<PORTAL_SECRET> -e MONGO=<MONGO> -e MONGO_CONFIG=<MONGO_CONFIG> -e UAG_DATABASE=<UAG_DATABASE> -e TASK_RUN_RETENTION_DAYS=<TASK_RUN_RETENTION_DAYS> -e BASE_URL=<BASE_URL> -e MCP_OAUTH=<MCP_OAUTH> -e TRUST_PROXY=<TRUST_PROXY> -e LOGIN_FORM=<LOGIN_FORM> -e CORS=<CORS> -e DEBUG=<DEBUG> -- npx -y @formio/[email protected]
{
"mcpServers": {
"formio-uag": {
"command": "npx",
"args": [
"-y",
"@formio/[email protected]"
],
"env": {
"PROJECT": "<PROJECT>",
"PROJECT_KEY": "<PROJECT_KEY>",
"ADMIN_KEY": "<ADMIN_KEY>",
"LICENSE_KEY": "<LICENSE_KEY>",
"UAG_LICENSE": "<UAG_LICENSE>",
"JWT_SECRET": "<JWT_SECRET>",
"PORT": "<PORT>",
"PROJECT_TTL": "<PROJECT_TTL>",
"TEMPLATE_SYNC": "<TEMPLATE_SYNC>",
"JWT_EXPIRE_TIME": "<JWT_EXPIRE_TIME>",
"PORTAL_SECRET": "<PORTAL_SECRET>",
"MONGO": "<MONGO>",
"MONGO_CONFIG": "<MONGO_CONFIG>",
"UAG_DATABASE": "<UAG_DATABASE>",
"TASK_RUN_RETENTION_DAYS": "<TASK_RUN_RETENTION_DAYS>",
"BASE_URL": "<BASE_URL>",
"MCP_OAUTH": "<MCP_OAUTH>",
"TRUST_PROXY": "<TRUST_PROXY>",
"LOGIN_FORM": "<LOGIN_FORM>",
"CORS": "<CORS>",
"DEBUG": "<DEBUG>"
}
}
}
}
{
"mcpServers": {
"formio-uag": {
"command": "npx",
"args": [
"-y",
"@formio/[email protected]"
],
"env": {
"PROJECT": "<PROJECT>",
"PROJECT_KEY": "<PROJECT_KEY>",
"ADMIN_KEY": "<ADMIN_KEY>",
"LICENSE_KEY": "<LICENSE_KEY>",
"UAG_LICENSE": "<UAG_LICENSE>",
"JWT_SECRET": "<JWT_SECRET>",
"PORT": "<PORT>",
"PROJECT_TTL": "<PROJECT_TTL>",
"TEMPLATE_SYNC": "<TEMPLATE_SYNC>",
"JWT_EXPIRE_TIME": "<JWT_EXPIRE_TIME>",
"PORTAL_SECRET": "<PORTAL_SECRET>",
"MONGO": "<MONGO>",
"MONGO_CONFIG": "<MONGO_CONFIG>",
"UAG_DATABASE": "<UAG_DATABASE>",
"TASK_RUN_RETENTION_DAYS": "<TASK_RUN_RETENTION_DAYS>",
"BASE_URL": "<BASE_URL>",
"MCP_OAUTH": "<MCP_OAUTH>",
"TRUST_PROXY": "<TRUST_PROXY>",
"LOGIN_FORM": "<LOGIN_FORM>",
"CORS": "<CORS>",
"DEBUG": "<DEBUG>"
}
}
}
}
{
"servers": {
"formio-uag": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@formio/[email protected]"
],
"env": {
"PROJECT": "<PROJECT>",
"PROJECT_KEY": "<PROJECT_KEY>",
"ADMIN_KEY": "<ADMIN_KEY>",
"LICENSE_KEY": "<LICENSE_KEY>",
"UAG_LICENSE": "<UAG_LICENSE>",
"JWT_SECRET": "<JWT_SECRET>",
"PORT": "<PORT>",
"PROJECT_TTL": "<PROJECT_TTL>",
"TEMPLATE_SYNC": "<TEMPLATE_SYNC>",
"JWT_EXPIRE_TIME": "<JWT_EXPIRE_TIME>",
"PORTAL_SECRET": "<PORTAL_SECRET>",
"MONGO": "<MONGO>",
"MONGO_CONFIG": "<MONGO_CONFIG>",
"UAG_DATABASE": "<UAG_DATABASE>",
"TASK_RUN_RETENTION_DAYS": "<TASK_RUN_RETENTION_DAYS>",
"BASE_URL": "<BASE_URL>",
"MCP_OAUTH": "<MCP_OAUTH>",
"TRUST_PROXY": "<TRUST_PROXY>",
"LOGIN_FORM": "<LOGIN_FORM>",
"CORS": "<CORS>",
"DEBUG": "<DEBUG>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
PROJECTRequired | API endpoint to Enterprise project or OSS server |
PROJECT_KEYOptional, secret | Project API Key (Enterprise) or ADMIN_KEY (OSS) |
ADMIN_KEYOptional, secret | Server admin key for Form.io Open Source. Not required for Enterprise deployment. |
LICENSE_KEYOptional, secret | Form.io license for a self-hosted Enterprise deployment; when it includes the UAG it also enables the Agent API. Not required for Form.io Open Source, or for a project on Form.io's hosted service (https://*.form.io). |
UAG_LICENSEOptional, secret | Deprecated: use LICENSE_KEY. Still read until UAG 3.0. |
JWT_SECRETRequired, secret | Secret used to generate and validate JWT tokens |
PORTOptional | Server port (default: 3200) |
PROJECT_TTLOptional | Project cache refresh interval in seconds (default: 900) |
TEMPLATE_SYNCOptional | When a module's template is installed into the project: boot, refresh or off (default: boot) |
JWT_EXPIRE_TIMEOptional | Lifetime of the tokens the UAG issues, in minutes (default: 60) |
PORTAL_SECRETOptional, secret | Enterprise Portal connection secret |
MONGOOptional, secret | Optional. The UAG's own database (only uag-* collections, never submissions): run records, runs that survive a restart, remote MCP sign-in. Needs a license that includes the UAG. |
MONGO_CONFIGOptional | MongoDB driver configuration (JSON) |
UAG_DATABASEOptional | The database to use on the MONGO connection. Default uag. |
TASK_RUN_RETENTION_DAYSOptional | Days run records are kept. Default 90; 0 keeps them forever. |
BASE_URLOptional | Optional. The URL clients reach the UAG at, for the OAuth discovery documents remote MCP clients read. Derived from each request when unset. |
MCP_OAUTHOptional | true turns on OAuth sign-in for remote MCP clients. Needs MONGO. |
TRUST_PROXYOptional | Express's trust proxy (true, a number of hops, or addresses). Set it behind a reverse proxy, so the UAG reads its public URL from the forwarded headers. |
LOGIN_FORMOptional | Public URL to login form JSON endpoint |
CORSOptional | true (the default) allows every origin, false turns CORS off, any other value is the allowed origin, or several separated by commas |
DEBUGOptional | Debug logging filter (e.g. formio.*) |
Details
| Package | @formio/[email protected] (NPM, streamable-http) |
| First published | 13 Nov 2026 |
| Last updated | 13 Nov 2026 |
| Registry name | io.form/formio-uag |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
