--- title: "MCP Settings" slug: "mcp-settings" tags: ["module-builder", "api", "unqorkai"] status: "new" updated: 2026-11-13T17:07:24Z published: 2026-11-13T17:07:24Z canonical: "docs.unqork.io/mcp-settings" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # MCP Settings > [!WARNING] > The MCP server is a Beta feature for environments with UnqorkAI. Test each published tool and verify its results before relying on it. MCP Settings is the page of a module's Settings dialog where Creators publish an API module as a tool for external AI agents. Creators also edit the tool's contract there. The page displays only for API modules in environments with UnqorkAI. For how the MCP server works, see [MCP Server for API Modules](/unqorkai/docs/mcp-server-for-api-modules). For the steps to publish a tool, see [Publish API Modules as MCP Tools](/unqorkai/docs/publish-api-modules-as-mcp-tools). ![[docs-interactive-image:{"surface":"module-settings/mcp-settings","anchors":{"Before an agent can call this tool":"tool-availability","How to set up an agent":"tool-availability","Agents can call this module as a tool (MCP)":"tool-availability","Endpoint":"tool-availability","Who can call it":"who-can-call-it","Tool name":"tool-details","Description":"tool-details","Inputs":"inputs-and-outputs","Outputs":"inputs-and-outputs","Calls per minute, per agent":"call-limits","Calls at once, per agent":"call-limits"}}] The MCP Settings page of an API module with a published tool, showing the prerequisites, the How to set up an agent guide, the tool switch and endpoint, Who can call it, and the Tool group with its name, description, inputs, outputs, and call limits](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/api_upload_20261113_170723_a14fff8c801b4ce2a4919c3861ecbeb7.png?sv=2026-02-06&spr=https&st=2026-11-14T00%3A06%3A41Z&se=2026-11-14T01%3A06%3A41Z&sr=c&sp=r&sig=%2BU837hL6CUqOgXg1Plrho1ybhMqnBbX2JXCY%2B2V5Bls%3D) To open MCP Settings: 1. In the Explorer panel, select ![EllipsisVertical](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/api_upload_20261113_170723_953472cd9b9a48bc8caba91211b2c008.svg?sv=2026-02-06&spr=https&st=2026-11-14T00%3A06%3A41Z&se=2026-11-14T01%3A06%3A41Z&sr=c&sp=r&sig=%2BU837hL6CUqOgXg1Plrho1ybhMqnBbX2JXCY%2B2V5Bls%3D) (**ellipsis**) next to an API module and select **Settings**. 2. In the left rail of the dialog, select **MCP Settings**. The module must be open for editing to change these settings. The page saves together with the dialog's other pages when a Creator selects **Save**. ## Tool Availability The top of the page controls whether agents can see the tool. It also displays what an agent needs before it can call the tool. | Setting | Description | | --- | --- | | **Before an agent can call this tool** | An alert that lists what every agent needs: an Express role of its own with Default Permission **No Access**, Write on each module it calls, and an API credential that holds only that role. The page always displays this alert. | | **How to set up an agent** | A collapsible guide to the steps from creating the role to connecting the agent. It also displays the environment's MCP endpoint and a copyable token request. The guide is open while **Customize RBAC for This Module** is off or no role can call the tool, and closed otherwise. | | **Agents can call this module as a tool (MCP)** | When set to **ON**, this setting publishes the module as a tool. When set to **OFF**, agents no longer see the tool, and its settings and name stay saved. The switch is unavailable until the Build Agent completes the first setup, and in a versioned application outside a development environment. An agent that is already connected sees a change only after it lists its tools again, which most clients do only when they reconnect. | | **Endpoint** | The address that agents connect to, on the environment's Express host. The page displays it while the switch is **ON**. | ### First Setup With the Build Agent Until a module has a tool, the page displays **Set up this tool with the Build Agent** instead of the tool's settings. The Build Agent writes the tool's description and each input and output in wording an agent can read. A Creator then reviews and approves the result. | Setting | Description | | --- | --- | | **Set up with Build Agent** | A button that opens the Build Agent with a ready-made request and closes the Settings dialog. The button is unavailable while the dialog has unsaved changes. The page then displays **Save or discard your other changes first.** | | **Or paste this into the Build Agent** | The same request as copyable text, for a Creator who prefers to paste it. The request carries the module's ID. | After the first setup, the page displays the tool's settings for the Creator to review and edit. See [Publish API Modules as MCP Tools](/unqorkai/docs/publish-api-modules-as-mcp-tools#set-up-the-tool) for the full steps. ## Who Can Call It The **Who can call it** group lists the Express roles that can call the tool, displayed as badges. A role is listed when it has Write on the module's **User Permissions** page and its own Default Permission is **No Access**. The list updates as the **User Permissions** page changes in the same dialog. The group displays one of the following alerts when no agent can call the tool or a role is rejected: | Message | Description | | --- | --- | | **Customize RBAC is off, so no agent can call this tool** | **Customize RBAC for This Module** is off. Turn it on in **User Permissions**, then set the agent's role to **Write**. | | **No role can call this tool yet** | No role has **Write** on the module. Set the agent's role to **Write** in **User Permissions**. If the environment has no suitable role, create one with Default Permission **No Access**. | | **This role can't call this tool** or **These roles can't call this tool** | The alert names each role that MCP rejects and the setting to change. A role is rejected when it has **Read-Only** on the module, when **Designer Access** or **Full Submission Access** is on for the role, or when its Default Permission is not **No Access**. | ## Tool Details The **Tool** group holds the tool's contract. Agents read the name and description to choose a tool, so both must be clear. | Setting | Description | | --- | --- | | **Tool name** | The name agents see. Required. A name uses 1 to 128 characters: letters, digits, underscores, dots, and hyphens (for example, `get_order_status`). The first module to hold a name keeps it. A second tool with the same name is not served until it is renamed, and its page explains why. | | **Description** | The text an agent reads to decide when to use the tool. Required. State what the tool does and when to use it. | ### Inputs and Outputs The page reads inputs and outputs from the module's configuration. The request and response panels are where the tool begins. Creators add or remove any field, wherever it sits in the module. | Setting | Description | | --- | --- | | **Inputs** | The fields an agent can send. Any component in the module can be an input. The request panel's fields begin in the tool. An agent cannot send a field that the tool does not declare. | | **Outputs** | The fields an agent receives. Any field the module saves to the database can be an output. The response panel's fields begin in the tool. | Each field in the tool displays as a row with the following parts: | Part | Description | | --- | --- | | **Field and description** | The field's property ID, a note about what the page read from the module's configuration, and a text box for the field's description. The note names the component, whether the field is in the request panel, the response panel, or elsewhere in the module, and, for an input, the component's own validation rules. Agents read the description, so state what the field means and what to send or expect. | | **Type** | The field's data type. Select **Choose a type** to open a drop-down. Options include: **string**, **number**, **integer**, **boolean**, **array**, **object**, or **ObjectId**. Required. | | **Agent must send** | A **Required** checkbox on input rows only. A field that the module requires stays required while it is in the tool, so its checkbox is locked. | | **Leave `{name}` out of the tool** | The **X** button at the end of the row. It removes the field from the tool and adds it to the left-out fields below the list. | Fields that the tool leaves out display as buttons below the list. Select a button to add the field to the tool. The buttons are in the following groups: - **In the request panel or response panel, left out of the tool**: Fields in the panel that the tool does not use. - **Elsewhere in the module**: Fields outside the panels. For outputs, only fields that the module saves to the database are listed. - **Logic and display components**: Components that rarely belong in a tool, which a Creator can still add. Leaving an input out of the tool only restricts MCP. A direct API call to the module can still set the field, so enforce a value that must not change in the module's logic. Every MCP call runs the module's validation, and validation cannot be switched off. The engine does not validate a field that uses the Hidden component or is hidden on the form. For those fields, only the tool's own checks hold: the field's type and whether the tool marks it required. See [MCP Server for API Modules](/unqorkai/docs/mcp-server-for-api-modules#validation) for how failed calls are reported. ### Call Limits | Setting | Description | | --- | --- | | **Calls per minute, per agent** | The most calls to this tool that one credential can make in a minute. Leave the field blank to use the environment limit, which the page labels **Environment default**. Accepts whole values of 1 or more. | | **Calls at once, per agent** | The most calls to this tool that one credential can run at once. Leave the field blank to use the environment limit. Accepts whole values of 1 or more. | A tool limit can only be lower than the environment limit. A higher value displays a message such as **Calls per minute can be at most 120 here.** The page refuses the save until the value is within the environment limit. ## Page Messages The page displays the following messages in addition to the settings above. | Message | Description | | --- | --- | | **Agents can't call this tool right now** | The module changed after the tool was published, for example because **Customize RBAC for This Module** was turned off or an exposed field was removed. The alert also displays when another tool already uses the tool's name, and asks the Creator to rename it. The alert lists the reasons. Fix them, then save. | | **This application is versioned: the tool goes live when this draft is released.** | The application uses versioning, and the tool is saved in the draft. Agents see the tool after the draft's release. | | **This application is versioned: publish its tools in a development environment, then promote.** | The application uses versioning, and the environment is not a development environment. The switch is unavailable. | | **Complete the MCP Settings page to save.** | Displays beside **Save** while the tool's name, description, or a field's type is missing or invalid. | | **Mark input “`{name}`” required: the module requires it.** | The module requires the field, so the tool must mark it **Required**. | | **The module requires “`{name}`”, which the tool leaves out** | The tool omits a field that the module requires. Unless the module's logic sets the field, calls run without it or fail. | | **Use 1–128 letters, digits, underscores, dots or hyphens for the tool name.** | The tool name is empty or uses other characters. | | **Describe what the tool does — the agent chooses tools by this.** | The description is empty. | | **Choose a type for input “`{name}`”.** or **Choose a type for output “`{name}`”.** | A field in the tool has no type. Select one. | | **Turn on Customize RBAC for This Module (User Permissions) before making it a tool.** | **Customize RBAC for This Module** is off. | | **Calls per minute can be at most `{number}` here.** or **Calls at once can be at most `{number}` here.** | The limit is higher than the environment limit. | | **Couldn't load this module's MCP Settings** | The page could not load the tool. If the module is a tool, agents can still call it, and saving leaves the tool unchanged. Close Settings and reopen it to try again. | The page also displays cautions as a list below the tool. A caution does not block the save. | Caution | Description | | --- | --- | | **Not marked remote-execute-only, so browsers can load it too.** | The module is not set to **Server-side Execution Only**, so browsers can also load it. | | **Executes another module, so a call reaches further than this one.** | The module runs another module, so a call costs more than the module alone. Consider a lower limit for the tool. | --- **Changelog** | Date | Change | | --- | --- | | 2026-11-12 | Added a See Also link to MCP in Unqork. | | 2026-11-05 | Initial draft for 9.2. | A functionality of a software. For example, Copy and Paste is a feature of a computer's operating system. Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. APIs (application programming interfaces) are a set of protocols and definitions developers use to build and integrate application software. APIs act as the connective tissue between products and services. Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. The Unqork front-end application framework that delivers Creator-built applications to end-users. Express is the layer end-users interact with—the published forms, screens, and navigation built in the Module Builder. Express is distinct from Express View, which is a Creator-facing preview tool in the IDE. A definition An API endpoint is the location where an API receives requests for a specific resource on its server. It's the point of contact between an API client and an API server, and is usually a uniform resource locator (URL) that provides the location of the resource. RBAC (Role-Based Access Control) is a method to control system access for authorized users. The role in RBAC refers to the levels of access employees have to a network. Enter inputs components and actions you want the component to perform.. Enter outputs components and actions you want the component to perform. A JavaScript property is a member of an object that associates a key with a value. A JavaScript object is a data structure that stores a collection of properties. Data types are a classification of data that determines how it is stored and interpreted. A string is an object that represents a sequence of characters. Strings typically hold data represented in text form. An array is a type of object that stores one or more data types. Data types supported in arrays include numbers, strings, and objects. An object is a type of data structure that represents a single, self-contained entity that acts as a container for the characteristics of that entity.