Build a Mattermost AI Bot with Ollama
Step-by-step guide to running a Ollama-powered AI bot on Mattermost with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
This recipe puts a Ollama model behind a Mattermost bot. LangBot receives messages from Mattermost, runs them through a pipeline, and sends the answer back, so you do not write any platform code.
Run open models locally with Ollama and serve them through LangBot's built-in Agent, so conversations never leave your machines.
What you need
- A running LangBot instance: LangBot Cloud (no server needed) or a self-hosted deployment with Docker or
uvx langbot. - A Ollama account or server you can call from LangBot.
- A Mattermost bot account (role
Member) and its access token, plus your Mattermost server URL.
Networking
LangBot only needs to reach your Mattermost server; Mattermost does not need to reach LangBot.
1. Add the Ollama model
- Install Ollama and pull a model (for example
ollama pullfollowed by the model name). - In LangBot, open Models and add an LLM model with the provider set to Ollama and the request URL pointing at your Ollama server (by default port
11434). - If LangBot runs in Docker,
localhostis the container itself: use the host's address (for examplehost.docker.internal) instead.
2. Create a pipeline
Open Pipelines in the LangBot WebUI, create a pipeline (or edit the default one) and set AI as follows.
| Field | Value |
|---|---|
| Runner | Local Agent (built-in Agent) |
| Model | The model you just added. You can add fallback models. |
| Prompt | Instructions: who the bot is, tone, what it must not do. |
| Knowledge Bases | Optional. Attach a knowledge base so answers come from your documents. |
3. Create the Mattermost bot
- Create the bot account in Mattermost (choose
post:allfor direct messages) and copy its token; it is shown only once. - Create a bot with the Mattermost adapter, enter the server address and token, and bind a pipeline.
4. Bind and test
Open the bot, select the pipeline you created, save and make sure the bot is enabled.
Send the bot a direct message, or mention it in a channel it has joined.
Troubleshooting
- Small local models may not support tool calling well; leave Tool Use off for models that do not support it.
- Administrator-related features are not supported; keep the bot role as
Member. - Disable streaming on the bot if your pipeline or AI provider does not support it.
- Check Monitoring in the WebUI: every message, pipeline run and error is recorded there.
FAQ
Do I need a server with a public IP for Mattermost?
No. LangBot only needs to reach your Mattermost server; Mattermost does not need to reach LangBot.
Does the Mattermost bot support streaming replies?
Yes. Enable streaming on the bot; the AI back end must also stream. See the platform feature matrix for details.
Can the same Ollama setup serve other platforms too?
Yes. A pipeline can be bound to many bots, so one configuration can answer on several platforms at once.
Related guides
- Full Mattermost setup guide
- Model configuration
- Other AI back ends on Mattermost: Dify · n8n · Coze · Langflow · DeepSeek
- Ollama on other platforms: Telegram · Discord · Slack · Lark (Feishu) · DingTalk · WeCom (internal app)
Build a KOOK AI Bot with Ollama
Step-by-step guide to running a Ollama-powered AI bot on KOOK with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
Build a a website chat widget AI Bot with Ollama
Step-by-step guide to running a Ollama-powered AI bot on a website chat widget with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
