Open WebUI and native MCP integration

The integration of the Model Context Protocol (MCP) servers within Open WebUI significantly extends its functionality, by allowing access to external capabilities. Open WebUI both leverage native support for MCP server offering the HTTP streamable format, and usage of the mcpo (MCP-to-OpenAPI proxy server) for broader compatibility.

This article explains how to configure Open WebUI’s native support for remove MCP servers offering HTTP streamable capabilities. For a guide on how to configure MCPO to leverage all kinds of MCP servers: local via sdio, or remote via SSE (Server-Sent Events), or Streamable HTTP, please refer to this article.

What is MCP?

MCP is an open standard that functions as a universal communication bridge, connecting LLMs to external tools and data sources. This protocol enables AI assistants to access real-time information and perform tasks on a variety of different areas.

MCP servers communicate with clients (the LLMs) using three primary channels: stdio (standard input/output), SSE (Server-Sent Events), or Streamable HTTP.

Connect to MCP via HTTP Streaming

In v0.6.31 Open WebUI added MCP (streamable HTTP) server support, alongside existing OpenAPI server integration. This allows to connect directly to an MCP server that exposes its functionality over a streaming HTTP endpoint. It supports Bearer token, session and OAuth for authentication, if necessary (doc page, but very basic so far).

To find MCP servers, the “Remote MCP Servers” page of Awesome MCP Servers is a good starting point. Looking at all the servers with http support, let’s user the one from CoinGecko.

Once logged in Open WebUI:

  1. Navigate to Admin Panel -> Settings -> External Tools.
  2. Click “+ (Add Connection).
  3. Set the Type to MCP Streamable HTTP.
  4. Set the URL to https://mcp.api.coingecko.com/mcp
  5. Set Auth to None.
  6. Set ID to coingecko_mcp_http.
    • This is the string used in the logs to identity the MCP tool call.
  7. Set Name to CoinGecko MCP via http.
    • This is the string used in the UI to configure the available tools and MCP servers for the model (see below).

To be sure the MCP is considered, ensure the model has tools support, and that Function Calling parameter set to Native in the Advanced Params section of the model configuration.

Create an agent which uses MCP

Here an example to create a specialized agent to return values of crypto assets:

  1. Navigate to Workspace -> Models -> New Model.
  2. Set Model Name to Crypto expert.
  3. Set Base Model to qwen3:8b.
    • Or any other model supporting tools calling
  4. Set Description to Return value of crypto assets.
  5. Set System Prompt to You are a cryptocurrency price lookup agent. When the user specifies one or more cryptocurrency names (e.g., "bitcoin", "ethereum", "BTC", "CRO"), output ONLY the current market price in USD for each, formatted as: [Name]: $[price]. Do not add explanations, context, errors, or any text beyond this. If a crypto is unrecognized, output: [Name]: Not found.
  6. Advanced Params -> Show.
    • Set Function Calling to Native.
  7. In the Tools, check CoinGecko MCP via http.
  8. In the Capabilities, uncheck everything except Status Updates.

Save and start chatting with the agent, for example asking BNB price. Here what the result could be, where the result of the CoinGecko MCP is expanded for additional clarity:

Open WebUI chat window
Example of an Open WebUI agent using MCP server calls

Leave a Reply