Build a Mattermost AI Bot with Gemini
Step-by-step guide to running a Gemini-powered AI bot on Mattermost with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
This recipe puts a Gemini 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.
Use Google's Gemini models with LangBot's built-in Agent, including image input when the model supports vision.
What you need
- A running LangBot instance: LangBot Cloud (no server needed) or a self-hosted deployment with Docker or
uvx langbot. - A Gemini 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 Gemini model
- Create an API key in the Google Gemini console.
- In LangBot, open Models, add an LLM model with the provider set to Google Gemini, then paste the API key and the model ID.
- Enable Tool Use if the model supports function calling; MCP tools, Skills and the sandbox need it.
- Create the key in Google AI Studio. Enable Vision on the model if you want the bot to read images.
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
- Images are ignored: enable Vision on the model and check that the platform adapter forwards images.
- 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 Gemini 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
- Gemini on other platforms: Telegram · Discord · Slack · Lark (Feishu) · DingTalk · WeCom (internal app)
Build a KOOK AI Bot with Gemini
Step-by-step guide to running a Gemini-powered AI bot on KOOK with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
Build a a website chat widget AI Bot with Gemini
Step-by-step guide to running a Gemini-powered AI bot on a website chat widget with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
