|
| 1 | +--- |
| 2 | +title: "Maia MCP Client" |
| 3 | +linktitle: "MCP Client" |
| 4 | +url: /refguide/maia-mcp/ |
| 5 | +weight: 8 |
| 6 | +description: "Describes the features in Maia MCP Client." |
| 7 | +#If moving or renaming this doc file, implement a temporary redirect and let the respective team know they should update the URL in the product. See Mapping to Products for more details. |
| 8 | +--- |
| 9 | + |
| 10 | +## Introduction |
| 11 | + |
| 12 | +{{% alert color="info" %}} |
| 13 | +To use Maia MCP Client, an internet connection and signing in to Studio Pro are required. |
| 14 | +{{% /alert %}} |
| 15 | + |
| 16 | +Maia MCP Client, available from Studio Pro 11.8, helps you connect Maia to external [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) servers. Once connected, Maia can call tools provided by these servers during chat — for example, querying an external API, looking up design assets, or interacting with third-party services. You can find available MCP servers on the [MCP servers directory](https://modelcontextprotocol.io/examples). |
| 17 | + |
| 18 | +For information on the current limitations, see the [Limitations](#limitations) section below. |
| 19 | + |
| 20 | +## Using MCP Client {#using-mcp-client} |
| 21 | + |
| 22 | +To open the MCP Client panel, click the **Configure MCP Connections** ({{% icon name="plug" %}}) icon in the **Maia** toolbar. |
| 23 | + |
| 24 | +### Adding an MCP Server {#adding-server} |
| 25 | + |
| 26 | +To add a server, fill in the following fields and click **Add**: |
| 27 | + |
| 28 | +* **Server Name** — A display name. Must be unique among your configured servers. |
| 29 | +* **URL** — The server endpoint. Must use `https://` or `http://`. |
| 30 | +* **Connection type** — **HTTP (Streamable)** for most servers, or **SSE (Legacy)** for older servers that use Server-Sent Events instead of Streamable HTTP. |
| 31 | +* **Authentication** — See the [Authentication](#authentication) section below. |
| 32 | + |
| 33 | +#### Authentication {#authentication} |
| 34 | + |
| 35 | +Choose how Studio Pro authenticates with the MCP server: |
| 36 | + |
| 37 | +* **No Auth** — select this for servers that do not require credentials. |
| 38 | +* **Bearer Token** — paste an API token or personal access token. The token is stored securely and is not exposed after entry. |
| 39 | +* **OAuth 2.1** — a browser window opens so you can authorize Studio Pro with the server's provider. Two optional fields appear: |
| 40 | + * **Client ID** — required if the server does not support automatic client registration. |
| 41 | + * **Client Secret** — required by some providers (for example, GitHub). |
| 42 | + |
| 43 | +Most major providers — including GitHub and Figma — do not support automatic client registration. For these, you must first create an OAuth application in the provider's developer portal and then enter the **Client ID** (and **Client Secret** if required). |
| 44 | + |
| 45 | +##### Example: Connecting to GitHub Copilot MCP {#github-example} |
| 46 | + |
| 47 | +1. Go to [GitHub Developer Settings](https://github.com/settings/developers) and click **New OAuth App**. |
| 48 | +2. Fill in the following information: |
| 49 | + * **Application name** — for example, `Mendix Studio Pro` |
| 50 | + * **Homepage URL** — for example, `https://mendix.com` |
| 51 | + * **Authorization callback URL** — `http://localhost:{port}/mcp/oauth/callback` (see the [Callback URL](#callback-url) section below) |
| 52 | +3. Click **Register application**, then copy the **Client ID**. |
| 53 | +4. Click **Generate a new client secret** and copy it — GitHub shows it only once. |
| 54 | +5. In Studio Pro, add a server with the following details: |
| 55 | + * **URL** — `https://api.githubcopilot.com/mcp/` |
| 56 | + * **Authentication** — **OAuth 2.1** |
| 57 | + * **Client ID** and **Client Secret** — from the steps above |
| 58 | +6. Click **Add**, authorize in the browser, and the connection completes. |
| 59 | + |
| 60 | +{{% alert color="info" %}} |
| 61 | +For Figma MCP, the simplest option is to generate a personal access token in Figma and use **Bearer Token** authentication. If you need OAuth, register an app at [Figma Developers](https://www.figma.com/developers), add the callback URL, and request the `mcp:connect` scope. |
| 62 | +{{% /alert %}} |
| 63 | + |
| 64 | +##### Callback URL {#callback-url} |
| 65 | + |
| 66 | +The OAuth callback URL format is `http://localhost:{port}/mcp/oauth/callback`. The port is assigned by Studio Pro's built-in web server. You can find the actual port within the callback URL that Studio Pro generates when you add the server. |
| 67 | + |
| 68 | +{{% alert color="info" %}} |
| 69 | +If your OAuth app requires a fixed callback URL, you can start Studio Pro with the `--web-server-port=45678` command-line flag to use a specific port. |
| 70 | +{{% /alert %}} |
| 71 | + |
| 72 | +### Managing Connections {#managing-connections} |
| 73 | + |
| 74 | +Each server appears as a card in the MCP Client panel: |
| 75 | + |
| 76 | +* **Enable or disable** a server using the checkbox. Disabling a server disconnects it and removes its tools from Maia. |
| 77 | +* **Expand** the card to see its tools. |
| 78 | +* **Remove** a server from the expanded view. |
| 79 | + |
| 80 | +#### Connection Status {#connection-status} |
| 81 | + |
| 82 | +| Color | Meaning | |
| 83 | +| --- | --- | |
| 84 | +| Green | Connected, tools available. | |
| 85 | +| Orange | Connecting, authenticating, or disconnecting. | |
| 86 | +| Blue | Loading tools from the server. | |
| 87 | +| Red | Error. Check the error message for details. | |
| 88 | +| Grey | Disconnected or disabled. | |
| 89 | + |
| 90 | +If a connection drops, Studio Pro reconnects automatically. During reconnection, the status shows the retry progress (for example, **Retrying (2/5)...**). If all retries fail, disable and re-enable the server to try again. |
| 91 | + |
| 92 | +### Managing Tools {#managing-tools} |
| 93 | + |
| 94 | +After connecting, the server's tools appear in the expanded card. Each tool shows a name and description from the server. |
| 95 | + |
| 96 | +Tools from a new server are **disabled by default**. Select a tool's checkbox to enable it. Use the **select all** checkbox to enable or disable all tools at once. Only enabled tools are available to Maia. |
| 97 | + |
| 98 | +### How Maia Uses MCP Tools {#using-tools} |
| 99 | + |
| 100 | +During chat, Maia considers all enabled MCP tools alongside its built-in capabilities. When Maia calls a tool: |
| 101 | + |
| 102 | +1. The chat shows **Executing {tool} from {server}...** with a spinner. |
| 103 | +2. The tool runs on the MCP server and returns a result. |
| 104 | +3. Maia uses the result to formulate its answer. |
| 105 | + |
| 106 | +You see the answer from Maia, not the raw tool output. |
| 107 | + |
| 108 | +## Troubleshooting {#troubleshooting} |
| 109 | + |
| 110 | +| Problem | Solution | |
| 111 | +| --- | --- | |
| 112 | +| "This server requires manual OAuth client registration" | Register an OAuth app with the provider and enter the Client ID. See the [GitHub example](#github-example) given above. | |
| 113 | +| "Token exchange failed" or "incorrect_client_credentials" | Verify your Client ID and Client Secret. Check that the callback URL matches. | |
| 114 | +| Authentication stuck in "Authenticating..." | Check that no firewall blocks localhost. Remove the server and add it again to restart the flow. | |
| 115 | +| Connection fails immediately | Verify the URL. Try switching between **HTTP (Streamable)** and **SSE (Legacy)**. | |
| 116 | + |
| 117 | +## Limitations {#limitations} |
| 118 | + |
| 119 | +Maia MCP Client has the following limitations: |
| 120 | + |
| 121 | +* Only MCP tools are supported. Other MCP capabilities, such as resources and prompts, are not available. |
| 122 | +* Only remote servers (HTTP or SSE) are supported. Local stdio servers are not supported. |
| 123 | +* Tools from new servers are disabled by default. |
| 124 | +* OAuth requires localhost access for the [callback URL](#callback-url). |
| 125 | +* Server configurations are stored per project and are not shared across projects. |
| 126 | + |
| 127 | +## Read More |
| 128 | + |
| 129 | +* [Mendix AI Assistance (Maia)](/refguide/mendix-ai-assistance/) |
| 130 | +* [Maia Chat](/refguide/maia-chat/) |
0 commit comments