What are Applications?

Applications are the way to customize the Vertesia platform for your projects. By creating an application you can:

  1. Contribute UI applications focused on the business model of your organization / project.
  2. Contribute custom tools.
  3. Contribute content types to your project.

Applications are installed at project level.

Creating an application

Applications are created by registering the application manifest in Vertesia Studio > Settings > Available Apps page.

Each application must have an unique name in kebab case. We recommend prefixing the name of your application using your organization name: vertesia-review-center, foo-contracts etc.

Application manifest

An application manifest is implementing the following interface:

interface AppManifestData {
    /**
     * The name of the app, used as the id in the system.
     * Must be in kebab case (e.g. my-app).
     */
    name: string;

    /**
     * Visibility of the app: "public", "private", or "vertesia".
     * Private apps are only visible to the owner organization.
     */
    visibility: "public" | "private" | "vertesia";

    title: string;
    description: string;
    publisher: string;

    /**
     * A svg icon for the app.
     */
    icon?: string;

    status: "beta" | "stable" | "deprecated";

    ui?: {
        /**
         * The source URL of the app. The src can be a template which contain
         * a variable named `buildId` which will be replaced with the current build id.
         * For example: `/plugins/vertesia-review-center-${buildId}`
         */
        src: string;
        
        /**
         * The isolation strategy. If not specified it defaults to shadow 
         * - shadow - use Shadow DOM to fully isolate the plugin from the host.
         * - css - use CSS processing (like prefixing or other isolation techniques). Lighter but plugins may conflict with the host
         */
        isolation?: "shadow" | "css";
    },

    /**
     * MCP server configurations for external tool integrations.
     * See the Tool Collections page for full configuration options.
     */
    tool_collections?: ToolCollection[];

    /**
     * The app endpoint URL. Tools, interactions, UI, and settings
     * are discovered automatically from this URL.
     */
    endpoint?: string;
}

Applications can be private or public. Private applications can only be installed in projects of the same organization as the one who defined the application. The application will not be visible in other organizations. Public applications are visible in all organizations.

In order to use an application you need to install it on a project.

Installing an application on a project

Open the Installations tab in the applications settings page to see the list of the installed applications in the current project or to install a new application.

After installing the application you must define the users or groups that can access the application. This can be done using the Manage permissions button.

Contributing UI applications

To contribute a custom UI application you need to provide in the application manifest the ui property which specify the URL to the application javascript bundle as the src property and the type of isolation which is shadow by default (meaning that the application will be isolated in a shadow DOM).

Installed Applications that contribute an UI application are visible on the Vertesia Studio UI landing page for users who have the permission to access the application.

To learn how to develop an UI Application plugin go to UI Plugin section.

Contributing custom tools

Custom tools are contributed via the endpoint property — Vertesia automatically discovers tools from the endpoint URL. These servers can expose both regular tools and skills. Skills appear to agents as tools whose names start with the learn_ prefix and cooperate with the Daytona sandbox and execute_shell for advanced code and data workflows. To learn how to write a tools server, see Custom Tools.

Note that only the users that can access the application can use these tools.

Example:

{
  "name": "my-app",
  "endpoint": "https://my-tools-server.com/api/vertesia"
}

Contributing MCP Servers

To connect external MCP servers, use the tool_collections property. MCP servers support OAuth authentication. See MCP Servers for full configuration options.

Example:

{
  "name": "my-app",
  "tool_collections": [
    {
      "type": "mcp",
      "url": "https://mcp.my-crm-provider.com",
      "name": "My CRM",
      "description": "CRM tools for contacts and deals",
      "namespace": "crm",
      "auth": "oauth",
      "oauth_app": "my-crm-oauth"
    }
  ]
}

Contributing content types

Work is in progress for this feature.

Was this page helpful?