---
updatedAt: 2026-09-08T14:57:08.000Z
agentTools:
  projectIndex: https://developerdocs.elabnext.com/llms.txt
---

# Connect Open WebUI to SciSure Research

<style>
@media (min-width:768px){.rm-CustomPage>div{max-width:none;margin:0 0 0 288px;padding:40px 32px}.rm-CustomPage .SuperHubCustomPage-content-header,.rm-CustomPage .markdown-body{max-width:800px}}
@media (min-width:1140px){.rm-CustomPage>div{padding-right:312px}}
@media (max-width:767px){.rm-CustomPage>div{padding-left:20px;padding-right:20px}}
.mcp-rail{position:sticky;top:150px;z-index:1;display:flow-root;height:0;width:288px;margin:0 0 0 -320px;padding:0;transform:translateY(-150px);font-size:14px;line-height:20px}
.mcp-rail-heading{margin:16px 22px 8px 15px;padding:0 0 0 10px;font-size:12px;font-weight:600;line-height:16px;letter-spacing:.24px;text-transform:uppercase;color:rgb(102,107,121)}
.mcp-rail a{display:block;margin:1px 22px 0 15px;padding:6px 5px 6px 10px;border-radius:8px;color:rgb(72,76,88);text-decoration:none;font-weight:450}
.mcp-rail a:hover{background:rgba(0,161,162,.06)}
.mcp-rail a.active{background:rgba(0,161,162,.09);color:rgb(0,161,162)}
.mcp-rail::after{content:"";position:absolute;left:277px;top:0;width:1px;height:100vh;background:rgba(102,107,121,.6)}
.mcp-mobile-nav{display:none;margin:0 0 20px;font-size:13px;line-height:1.6}
.mcp-toc{position:sticky;top:0;z-index:1;display:flow-root;height:0;width:197px;margin:0 0 0 calc(100% + 61px);font-size:13px;line-height:19.5px}
.mcp-toc-actions{display:flex;flex-wrap:wrap;gap:6px;margin:30px 0 36px}
.mcp-toc .mcp-toc-actions a,.mcp-toc .mcp-toc-actions button{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border:1px solid rgba(0,0,0,.1);border-radius:6px;background:transparent;color:rgb(72,76,88);font:inherit;font-size:14px;font-weight:500;line-height:21px;white-space:nowrap;text-decoration:none;cursor:pointer;opacity:1;box-sizing:border-box}
.mcp-toc .mcp-toc-actions a:hover,.mcp-toc .mcp-toc-actions button:hover{background:rgba(0,0,0,.04)}
.mcp-toc .mcp-toc-actions svg{width:14px;height:14px;flex:none}
.mcp-toc ul{position:relative;list-style:none;margin:0;padding:0}
.mcp-toc ul::before{content:"";position:absolute;left:0;top:0;width:2px;height:100%;border-radius:2px;background:rgba(0,0,0,.075)}
.mcp-toc ul::after{content:"";position:absolute;left:0;top:var(--mcp-toc-top,0px);width:2px;height:var(--mcp-toc-height,19.5px);border-radius:2px;background:rgb(0,161,162);transition:top .3s cubic-bezier(.16,1,.3,1),height .3s cubic-bezier(.16,1,.3,1)}
.mcp-toc li{margin:0;padding:0}
.mcp-toc li+li{margin-top:8px}
.mcp-toc a{display:block;padding:0 0 0 12px;color:rgb(102,107,121);text-decoration:none;transition:color .3s}
.mcp-toc a:hover,.mcp-toc a.active,.mcp-toc:not(.mcp-toc-live) .mcp-toc-page{color:rgb(50,52,58)}
.rm-CustomPage .SuperHubCustomPage-content-header{padding-bottom:16px;border-bottom:1px solid rgba(128,128,128,.25);margin-bottom:24px}
.markdown-body .lightbox.closed img{max-width:50%}
[data-color-mode=dark] .mcp-rail-heading,[data-color-mode=dark] .mcp-rail a,[data-color-mode=dark] .mcp-toc a{color:rgb(174,178,189)}
[data-color-mode=dark] .mcp-rail a.active{color:rgb(0,161,162)}
[data-color-mode=dark] .mcp-rail::after{background:rgba(174,178,189,.6)}
[data-color-mode=dark] .mcp-toc ul::before{background:rgba(255,255,255,.075)}
[data-color-mode=dark] .mcp-toc a:hover,[data-color-mode=dark] .mcp-toc a.active,[data-color-mode=dark] .mcp-toc:not(.mcp-toc-live) .mcp-toc-page{color:rgb(255,255,255)}
[data-color-mode=dark] .mcp-toc .mcp-toc-actions a,[data-color-mode=dark] .mcp-toc .mcp-toc-actions button{border-color:rgba(255,255,255,.1);color:rgb(201,204,212)}
[data-color-mode=dark] .mcp-toc .mcp-toc-actions a:hover,[data-color-mode=dark] .mcp-toc .mcp-toc-actions button:hover{background:rgba(255,255,255,.06)}
@media (prefers-color-scheme:dark){
[data-color-mode=system] .mcp-rail-heading,[data-color-mode=system] .mcp-rail a,[data-color-mode=system] .mcp-toc a{color:rgb(174,178,189)}
[data-color-mode=system] .mcp-rail a.active{color:rgb(0,161,162)}
[data-color-mode=system] .mcp-rail::after{background:rgba(174,178,189,.6)}
[data-color-mode=system] .mcp-toc ul::before{background:rgba(255,255,255,.075)}
[data-color-mode=system] .mcp-toc a:hover,[data-color-mode=system] .mcp-toc a.active,[data-color-mode=system] .mcp-toc:not(.mcp-toc-live) .mcp-toc-page{color:rgb(255,255,255)}
[data-color-mode=system] .mcp-toc .mcp-toc-actions a,[data-color-mode=system] .mcp-toc .mcp-toc-actions button{border-color:rgba(255,255,255,.1);color:rgb(201,204,212)}
[data-color-mode=system] .mcp-toc .mcp-toc-actions a:hover,[data-color-mode=system] .mcp-toc .mcp-toc-actions button:hover{background:rgba(255,255,255,.06)}
}
@media (max-width:1139px){.mcp-toc{display:none}}
@media (max-width:767px){.mcp-rail{display:none}.mcp-mobile-nav{display:block}}
</style>

<nav class="mcp-rail" aria-label="MCP guides">
<div class="mcp-rail-heading" role="heading" aria-level="2">SciSure MCP</div>
<a href="/page/mcp">Overview</a>
<a href="/page/mcp-openai">ChatGPT (OpenAI)</a>
<a href="/page/mcp-anthropic-claude">Claude</a>
<a href="/page/mcp-lm-studio">LM Studio</a>
<a class="active" aria-current="page" href="/page/mcp-open-webui">Open WebUI</a>
<a href="/page/mcp-other-mcp-apps">Other MCP applications</a>
</nav>

<aside class="mcp-toc" aria-label="On this page">
<div class="mcp-toc-actions"><button type="button" class="mcp-copy"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg><span class="mcp-copy-label">Copy page</span></button><a href="/page/mcp-open-webui.md" target="_blank" rel="noopener">View as Markdown</a></div>
<ul>
<li><a class="mcp-toc-page" href="#">Connect Open WebUI to SciSure Research</a></li>
<li><a href="#requirements-for-connecting-to-scisure-mcp">Requirements for connecting to SciSure MCP</a></li>
<li><a href="#1-start-with-an-existing-open-webui-installation">1. Start with an existing Open WebUI installation</a></li>
<li><a href="#2-build-the-exact-callback-url">2. Build the exact callback URL</a></li>
<li><a href="#3-register-open-webui-in-scisure-research">3. Register Open WebUI in SciSure Research</a></li>
<li><a href="#4-configure-the-connection-in-open-webui">4. Configure the connection in Open WebUI</a></li>
<li><a href="#5-verify-the-endpoint-and-register-the-client">5. Verify the endpoint and register the client</a></li>
<li><a href="#6-authenticate-from-a-new-chat">6. Authenticate from a new chat</a></li>
<li><a href="#common-connection-issues">Common connection issues</a></li>
</ul>
</aside>

<p class="mcp-mobile-nav"><strong>SciSure MCP:</strong> <a href="/page/mcp">Overview</a> · <a href="/page/mcp-openai">ChatGPT (OpenAI)</a> · <a href="/page/mcp-anthropic-claude">Claude</a> · <a href="/page/mcp-lm-studio">LM Studio</a> · <a href="/page/mcp-open-webui">Open WebUI</a> · <a href="/page/mcp-other-mcp-apps">Other MCP applications</a></p>

Add SciSure Research as an MCP tool in Open WebUI, secure the connection with OAuth 2.1, and start working with the research data you are already authorized to access.

## Requirements for connecting to SciSure MCP

**SciSure MCP requires a Private Cloud or On-premises SciSure Research environment.** It is not available on the shared Cloud.

The setup joins three parts: your Open WebUI installation, an OAuth client in SciSure Research, and the MCP endpoint on your SciSure tenant.

* **Open WebUI admin access** — You need access to the Admin Panel and the public URL users use to reach Open WebUI.
* **SciSure group settings** — You need permission to create an OAuth2 client and choose its read scopes.
* **Your tenant URL** — Have the base URL for the SciSure Research environment you want to connect.

**How the connection works:** Open WebUI → OAuth 2.1 → SciSure MCP

## 1. Start with an existing Open WebUI installation

This tutorial expects Open WebUI to be installed, running, and reachable on your network.

> ❗️ WEBUI\_SECRET\_KEY is required
>
> A persistent `WEBUI_SECRET_KEY` must already be defined for the Open WebUI installation. Without it, Open WebUI does not allow an MCP connection to be configured. If you do not manage the installation, ask your Open WebUI administrator to confirm this before continuing.

<details>
<summary>Administrator: view a Docker Compose example</summary>

For a Docker Compose deployment, define a strong, stable random value and keep the same value when Open WebUI is restarted or updated.

**Docker Compose example**

```yaml
services:
  openwebui:
    image: ghcr.io/open-webui/open-webui:main-slim
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
    environment:
      - WEBUI_SECRET_KEY=your_random_secret_here

volumes:
  open-webui:
```

</details>

## 2. Build the exact callback URL

The Open WebUI connection ID becomes part of the OAuth callback URL. For this guide, use `SciSure-MCP` and keep the spelling and capitalization consistent.

**OAuth redirect URI**

```text
https://<your-openwebui-host>/oauth/clients/mcp:SciSure-MCP/callback
```

Replace `<your-openwebui-host>` with the hostname users actually use to open Open WebUI. Include a non-default port if your public URL uses one.

> 📘 Connection ID vs. Client ID
>
> The Open WebUI connection ID and the OAuth Client ID are different values. `SciSure-MCP` identifies the connection inside Open WebUI; the OAuth Client ID is created in SciSure and entered as a credential in step 4.

## 3. Register Open WebUI in SciSure Research

In SciSure Research, go to **Group Settings → OAuth2 Clients** and add a new application.

* Enter a recognizable **Application name** and **Client ID**.
* Paste the redirect URI from step 2 into **Redirect URIs**.
* Select the required scopes. Use **Read only** when the connection only needs to retrieve data.
* Create the application and retain the **Client ID** and **Client Secret** for step 4.

<Image align="center" src="https://files.readme.io/bcd478a3b6e4423245bb13e0c7577fb38c0ac9a49ab7623ca0335e1e48305a9a-open-webui-01.png" alt="SciSure Research Add application dialog with application name, client ID, redirect URI and read-only scopes" caption="Add the callback URI and select the read scopes the Open WebUI connection needs." />

> ❗️ Copy the callback URL exactly
>
> A redirect URI mismatch stops authentication. Check the protocol, hostname, optional port, and the `mcp:SciSure-MCP` segment character for character.

## 4. Configure the connection in Open WebUI

In Open WebUI, go to **Admin Panel → Settings → Integrations → External Tool Servers**, then select **Add (+)**. Change the type from OpenAPI to **MCP Streamable HTTP**.

| Field       | Value                                                                 |
| ----------- | --------------------------------------------------------------------- |
| Type        | MCP Streamable HTTP                                                   |
| Name        | SciSure MCP                                                           |
| ID          | `SciSure-MCP`                                                         |
| URL         | `https://<your-instance>/api/v1/mcp`                                  |
| Auth        | OAuth 2.1 (Static)                                                    |
| Credentials | Enter the Client ID and Client Secret from the SciSure OAuth2 client. |

**Your MCP endpoint:** Replace `<your-instance>` with the base URL you use to sign in to your SciSure Research environment (for example `acme.elabnext.com`, `acme.elabjournal.com`, or a custom domain for self-hosted deployments). Your instance also publishes its configuration at `<your-instance>/.well-known/oauth-authorization-server`.

<Image align="center" src="https://files.readme.io/ac73bf4d681cbb89c6b4e989aa66253cde09e25997b1debfd7a881e2f8cb3c64-open-webui-02.png" alt="Open WebUI Add Connection dialog configured for SciSure MCP with a Not Registered status" caption="The completed SciSure Research connection before client registration." />

> 📘 Experimental-feature warning
>
> Open WebUI may display a warning that MCP support is experimental. The warning itself does not mean the connection has failed.

## 5. Verify the endpoint and register the client

Complete the connection in this order so Open WebUI can discover the endpoint and bind it to the OAuth client.

1. Select **Verify Connection** — the refresh icon next to the URL.
2. Select **Register Client**.
3. Confirm that the status changes to **Registered**.
4. Select **Save**.

<Image align="center" src="https://files.readme.io/5adbfe37f69b4f6c1544afb4b766dafae15d903a83931b4a22e7cd6ffa6e784a-open-webui-03.png" alt="Open WebUI Edit Connection dialog showing SciSure MCP with a green Registered status and Save button" caption="The green Registered state confirms client registration. Keep your own connection ID set toSciSure-MCP, as configured in step 4." />

> 👍 Client registered
>
> When the status is **Registered** and the connection is saved, the SciSure MCP tool is ready to be enabled in a chat.

## 6. Authenticate from a new chat

Start a new Open WebUI chat, enable SciSure MCP for that chat, and approve the requested access in SciSure Research.

### Open the integrations menu

In the prompt bar, select the integrations icon next to the plus button.

<Image align="center" src="https://files.readme.io/1ee00fb6280ec43131f06a26b0453e433c03e20779f34ba8b0d8af0575c6e3d8-open-webui-04.png" alt="Open WebUI prompt bar with the integrations icon beside the plus button" caption="Select the integrations icon in the prompt bar." />

### Choose Tools

In the integrations menu, select **Tools**.

<Image align="center" src="https://files.readme.io/546e5ae7c8ed96a295c5c0e24135beeefcdd73c8173a29fcb35089f34883ffef-open-webui-05.png" alt="Open WebUI integrations menu with Tools highlighted" caption="Open Tools from the integrations menu." />

### Enable SciSure MCP

Switch **SciSure MCP** on. The authentication flow should start automatically.

<Image align="center" src="https://files.readme.io/3e3f97ab81113f4f3bc46409649c666eddbf28d1cb30fc3b660851ca474eefe9-open-webui-06.png" alt="Open WebUI Tools menu with the SciSure MCP toggle enabled" caption="Enable SciSure MCP for the current chat." />

### Approve access in SciSure Research

After signing in if prompted, review the application name and requested permissions. If they match the OAuth client created in step 3, select **Allow Access**.

<Image align="center" src="https://files.readme.io/df2b7a099fb5852837ef0e77c01c518fac9cbdbc312f765af62563f75bb14d40-open-webui-07.png" alt="SciSure Research authorization page listing application permissions with Deny Access and Allow Access buttons" caption="The application name in your environment may differ from this example. Verify the name and permissions before selecting Allow Access." />

> ❗️ Check before you allow access
>
> Only grant access when you recognize the application and the listed permissions match the scopes selected for your OAuth client.

* Return to the Open WebUI chat after authorization completes.
* Ask a question that uses your authorized SciSure Research data.

> 👍 Connected
>
> You are connected. Requests run through the SciSure MCP endpoint using the scopes and access granted to the authenticated user.

## Common connection issues

Check these items before recreating the connection.

<details>
<summary>I cannot add or configure an MCP connection</summary>

Confirm that `WEBUI_SECRET_KEY` is set in the Open WebUI environment and that the service was restarted with the variable available.

</details>

<details>
<summary>SciSure rejects the OAuth callback URL</summary>

Compare the registered Redirect URI with the actual Open WebUI URL. The protocol, hostname, port, and `mcp:SciSure-MCP` segment must match exactly.

</details>

<details>
<summary>Verify Connection does not succeed</summary>

Confirm that `https://<your-instance>/api/v1/mcp` is reachable from the Open WebUI host.

</details>

<details>
<summary>The connection remains Not Registered</summary>

Recheck the OAuth Client ID, Client Secret, redirect URI, and read scopes. Then verify the endpoint again before selecting Register Client.

</details>

<details>
<summary>SciSure MCP is not available in my chat</summary>

Confirm the connection was saved. Start a new chat, open the integrations menu in the prompt bar, choose Tools, and enable SciSure MCP for that chat.

</details>