> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/rdm/knowledge-base/how-to-articles/set-up-an-ai-assistant.md).

# Set up an AI assistant

Set up an AI assistant in Remote Desktop Manager by linking a provider like OpenAI, Gemini, or Claude and an optional MCP server.

Remote Desktop Manager supports AI integration with Azure OpenAI, OpenAI, Ollama, Gemini, Mistral AI, Claude (Anthropic) and Azure AI Inference. The ***Custom*** provider also connects to any service compatible with the OpenAI, Claude or Ollama API. These can be leveraged through an ***AI assistant*** session entry or the ***AI assistant*** panel.

{% hint style="info" %}
Data is only processed through these customer provided AI integrations.
{% endhint %}

To link your preferred AI provider with Remote Desktop Manager via a session entry, follow the steps below:

1. Click ***Edit*** – ***Add entry***, then find the ***AI assistant*** entry under ***Session*** – ***Other***. Click ***Select***.
2. Enter a ***Name*** for the new entry, choose a ***Provider*** and select a ***Model***. Depending on the provider, also enter an ***API key***, an ***Endpoint*** or both. Click ***Save***.

To use the AI assistant as a separate side panel, head over to ***File*** – ***Settings*** – ***AI assistant***, enter your provider’s information, and click ***Save***. Then, click ***Window*** – ***AI assistant***, located in the ***Communication*** group.

### Configure a custom provider

Use the ***Custom*** provider to connect to a service that is not in the provider list but exposes an OpenAI, Claude or Ollama compatible API, such as a self-hosted server (llama.cpp, for example), an AI gateway or a proxy approved by your organization. When your service is one of the named providers, select that provider instead.

1. In the ***Provider*** list (in ***File*** – ***Settings*** – ***AI assistant*** or in an ***AI assistant*** entry), select ***Custom***, then click ***Configure***.
2. Fill in the settings described below, then click ***Save***.
3. Click the ***Refresh*** button next to the ***Model*** list, then select a model.

<table><thead><tr><th width="220">SETTINGS</th><th>DESCRIPTION</th></tr></thead><tbody><tr><td><strong>Provider</strong></td><td>The API your service is compatible with: <em><strong>OpenAI</strong></em>, <em><strong>Claude</strong></em> or <em><strong>Ollama</strong></em>.</td></tr><tr><td><strong>Base URL</strong></td><td>The address of the service, starting with <code>http://</code> or <code>https://</code>. Remote Desktop Manager adds the API paths to this address, so include the version segment the service expects. For an OpenAI compatible service, the address usually ends with <code>/v1</code> (for example, <code>http://localhost:8080/v1</code>).<br><br>Click <em><strong>Validate</strong></em> to send a request to the <em><strong>Base URL</strong></em> with the configured headers and confirm that the service is reachable.</td></tr><tr><td><strong>API mode</strong></td><td><p>Shown when <em><strong>Provider</strong></em> is <em><strong>OpenAI</strong></em>. Choose the OpenAI API used to send requests:</p><ul><li><strong>Chat completions</strong>: Works with self-hosted backends that do not keep server-side conversation state. Use this mode for those backends.</li><li><strong>Responses API</strong>: Requires a backend that keeps server-side conversation state. With a backend that does not, the first message of a conversation succeeds and the second one fails.</li></ul></td></tr><tr><td><strong>Header</strong></td><td>HTTP headers sent with every request, including model discovery. Click <em><strong>Add</strong></em> to add a header, then fill in its <em><strong>Name</strong></em> and <em><strong>Value</strong></em> in separate fields. The <em><strong>Custom</strong></em> provider has no <em><strong>API key</strong></em> field, so use a header to authenticate.<br><br>For example, enter <code>Authorization</code> in <em><strong>Name</strong></em> and <code>Bearer &#x3C;token></code> in <em><strong>Value</strong></em>. Entering the full header (<code>Authorization: Bearer &#x3C;token></code>) in <em><strong>Name</strong></em> fails with the message <em>Property Header has an invalid value</em>.</td></tr></tbody></table>

{% hint style="info" %}
When the ***Provider*** is ***OpenAI***, the model list comes from a `GET` request to `<Base URL>/models`. With a ***Base URL*** ending in `/v1`, this is the standard `/v1/models` endpoint. When the ***Provider*** is ***Ollama***, the list shows the models installed on the Ollama server.
{% endhint %}

### Connect an AI assistant to local MCP server

1. First, configure a [local MCP server](/rdm/ribbon-menu-bar/tools/all-tools/mcp-server.md).
2. Open the ***MCP servers*** tab (either in ***File*** – ***Settings*** – ***AI assistant*** or in an ***AI assistant*** entry), then click ***Add***. The tab is shown once a ***Provider*** is selected.
3. Enter a ***Name*** for your MCP server and select its ***Transport***. For ***HTTP***, enter the ***Server URL***. For ***Stdio***, enter the ***Command***. Click ***Save*** to close the dialog, then click ***Save*** again to apply the changes.

### See also

* [Spotlight on: Remote Desktop Manager AI assistant](https://blog.devolutions.net/2025/03/spotlight-on-remote-desktop-manager-ai-assistant/)
* [Devolutions Academy – Create and use AI assistant in RDM](https://academy.devolutions.net/student/activity/2639962-create-and-use-ai-assistant-in-rdm)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/rdm/knowledge-base/how-to-articles/set-up-an-ai-assistant.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
