Building an AI-Powered Slack Agent with MCP Standardization

duolingo · Education · 2026 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Enterprise MCP and Slack agent adoption

Duolingo needed to make MCP-powered internal tools usable across the company after local MCP setup, dependency management, credentials, and configuration files limited adoption to a few technical enthusiasts.

Constraints:

Architecture

Duolingo first created an MCP discovery page, then standardized internal MCP servers around HTTP configuration and JWT headers, and finally abstracted MCP complexity into an AI Slack app. The Slack app uses the Cloud Agent SDK to talk to MCP servers and the Slack Bot SDK to interact in Slack threads. It connects to read-only tools from 15-plus MCP servers, can run diagnostic commands, auto-responds in help desk and incident channels, and gates writes such as pull requests and Jira tickets behind human-in-the-loop verification.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  slack-user[Slack User] --> ai-slack-app[AI Slack App]
  ai-slack-app --> slack-bot-sdk[Slack Bot SDK]
  ai-slack-app --> cloud-agent-sdk[Cloud Agent SDK]
  cloud-agent-sdk --> standardized-mcp-servers[Standardized MCP Servers]
  standardized-mcp-servers --> internal-services[Internal Services]
  ai-slack-app --> human-approval[Human Approval]
  human-approval --> internal-services[Internal Services]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Slack User Employee asking for help, incident response, metrics, or tool actions inside Slack. AI Slack App
AI Slack App Conversational interface that brings MCP tools into Slack threads. Slack User, Slack Bot SDK, Cloud Agent SDK, Human Approval
Slack Bot SDK Messaging layer for receiving and responding in Slack threads. AI Slack App
Cloud Agent SDK Agent runtime that calls MCP servers and diagnostic tools. AI Slack App, Standardized MCP Servers
Standardized MCP Servers HTTP/JWT-configured internal MCP servers exposing 300-plus tools. Cloud Agent SDK, Internal Services
Internal Services Systems queried or acted on through MCP tools, AWS, BigQuery, Jira, and code workflows. Standardized MCP Servers, Human Approval
Human Approval Approval gate for write operations such as pull requests and Jira tickets. AI Slack App, Internal Services

Data flow

Employees ask the Slack bot in channels or threads. The Slack app routes the request through the Cloud Agent SDK to standardized MCP servers and internal diagnostic tools, returns responses in Slack, and requires explicit human approval before write operations leave the safe read-only path.

“The Slack app is built on two main components, the Cloud Agent SDK where the AI talks to different MCP servers”transcript, stated
“For write for write operations like creating pull requests or creating Jira tickets, we offer a way to do human-in-the-loop verification”transcript, stated

Why this architecture

Duolingo learned that documentation and standardized config were not enough; adoption increased only after MCP tools came to employees in Slack. The architecture removes local setup from the happy path while preserving standardized MCP servers underneath and human approval for writes.

“So, even like a single click to copy this to your um local config is still too much for people. So, we thought in September 2025, if people do not configure MCP servers themselves, we can try to bring MCPs to them. And this is when we started to introduce the Duolingo AI Slack app.”transcript, stated
“So, we thought in September 2025, if people do not configure MCP servers themselves, we can try to bring MCPs to them. And this is when we started to introduce the Duolingo AI Slack app.”transcript, stated

Models used: Cloud Agent SDK agent model

Scale

Alternatives considered (roads not taken)

Manual per-engineer MCP setup.

Rejected because: The setup burden was high enough that very few engineers bothered.

“The barrier to entry is very high that very few engineers bothered. So, we knew this wouldn't scale and we need to lower the friction. In May 2025, we tried to fix the discovery problem by creating a centralized web page with instructions on how to set up various MCP servers.”transcript, stated

Centralized setup web page only.

Rejected because: It solved discovery but not runtime/dependency problems or broad adoption.

“But we still have one problem, the MCP servers themselves. Every single MCP server was built and run differently.”transcript, stated

Let the agent perform writes directly.

Rejected because: Duolingo wanted to prevent unsafe automated changes to code or project-management systems.

“human-in-the-loop verification so the AI agent doesn't just go crazy and destroy the whole code base or whatever. We also have a general system prompt where we teach the AI on how to get internal information from different places. That”transcript, stated

Patterns

tool-use-orchestration (agent-infrastructure)

The Slack app exposes internal MCP tools and diagnostic commands through a conversational agent.

“it also has the ability to run AWS BigQuery commands to diagnostic different things or get metrics internally.”transcript, stated

human-in-the-loop-gate (safety)

Write operations require explicit human approval before they take effect.

“we need explicit human approval for”transcript, stated

safety-policy-enforcement (governance)

The Slack app uses read-only defaults and write gates to keep broad access safe.

“connected a bunch of read-only tools from 15 plus MCP servers”transcript, stated

Tradeoffs

Adoption surface

Chose Slack app over Local editor MCP configuration.

Rationale: Slack removed local setup from the path and made MCP available in shared operational workflows.

“we can try to bring MCPs to them. And this is when we started to introduce the Duolingo AI Slack app.”transcript, stated

MCP standardization

Chose HTTP configuration with JWT and internal URLs over Let every MCP server define its own runtime and setup.

Rationale: A standardized config made servers easier to support and compose.

“half of those are served internally with a very standardized HTTP configuration. You basically put your JWT token in the header”transcript, stated

Write safety

Chose Human-in-the-loop verification over Fully autonomous writes from Slack.

Rationale: The agent could assist with Jira and PR actions without being trusted to mutate systems alone.

“For write for write operations like creating pull requests or creating Jira tickets, we offer a way to do human-in-the-loop verification”transcript, stated

Gotchas (what bit them)

Discovery pages do not eliminate adoption friction.

Root cause: Users still had to copy config, manage credentials, and configure local tools.

Resolution: Move the MCP experience into Slack where users already ask for help.

“even like a single click to copy this to your um local config is still too much for people.”transcript, stated

MCP servers become hard to roll out when every server has a different runtime.

Root cause: Different servers used Python, uvx, TypeScript, Docker images, and conflicting local dependencies.

Resolution: Standardize internal MCP servers around HTTP configuration and consistent auth.

“Some are written in Python, some run are served in like UV X or others like maybe written in TypeScript and served as a Docker image.”transcript, stated

A widely available agent needs explicit write boundaries.

Root cause: Slack lowers friction enough that many employees can trigger tool calls.

Resolution: Use read-only tools by default and human verification for writes.

“For write for write operations like creating pull requests or creating Jira tickets, we offer a way to do human-in-the-loop verification”transcript, stated

Evaluation

Duolingo evaluates the Slack agent through weekly active users, upvote rate, response quality over time, adoption after skill and prompt additions, and operational usefulness in help desk and incident channels.

Metrics: Weekly active users · Company adoption share · Upvote rate · Help desk and incident response usefulness · On-call toil reduction

“as we gradually add more skills, uh change the prompts, add more NLP connections, you can see the bot's response is getting better”transcript, stated
“stabilizes around 80%. Uh it's not perfect, but it definitely provides value to people.”transcript, stated

Outcomes

The source reports a November 2024 start, May 2025 discovery page, August 2025 standardization, September 2025 Slack app, 15-plus MCP servers in the bot, 250-plus weekly active users, 30% company reach, and 80% upvote rate.

“this significantly helped to reduce toil for on-call engineers.”transcript, stated
“as of today, we have more than 250 people using uh the bot on a weekly basis.”transcript, stated