Back to selected work
MCPJIRAAZURESLACKTEAMSCLAUDE
MCP · Ops · 2025–2026 · Shipped · in production at Wink

OpsDesk

AI ops hub in production at Wink — Claude plus Atlassian MCP querying Jira, Azure, Slack and Teams as one system.

Product engineer — architecture, MCP integration, UI

View on GitHub

The problem

Product engineers at Wink live across five systems every day: Jira for tickets, Azure DevOps for pipelines and PRs, Slack for team chatter, Teams for stakeholder standups, Outlook for anything with legal or finance. Context switching alone was eating an hour a day per engineer. Nobody had a single view of "what's actually on fire right now."

The approach

Next.js 14 dashboard as the shell. MCP (Model Context Protocol) as the integration substrate — connecting Atlassian MCP, plus custom MCP servers for Azure DevOps and Slack. Claude sits in a research panel on the right of the UI; it can query across every connected system and answer questions like "which of my open PRs are blocked by a Jira ticket I own?" The rest of the UI is a normal kanban + inbox + calendar composition, but the AI panel is what makes it worth opening.

Selected details

  • MCP-first architecture means adding a new system is a config change, not a rewrite — proved this when we added Outlook after the Jira/Azure/Slack MVP was live.
  • All secrets rotated through Azure Key Vault; a plaintext storage account key I found in a pipeline YAML during a review triggered a broader secret audit and a rotation policy.
  • Docker Compose for local dev mirrors the Azure Container Apps prod setup one-for-one, so the "works on my machine" class of bug is essentially gone.
  • CI/CD pipelines run tests, lint, container build, and security scan on every PR — merged only if all four are green.
  • The research panel streams Claude's responses via Server-Sent Events; the UI never blocks.

Outcome

In active use by the Wink engineering team. Anecdotally saves ~30 minutes per engineer per day on context-switching. Pattern now being extended to a merchant-facing internal tools view for Wink's ops team.

What I'd do differently: Would build the MCP server layer as a separate deployable from day 1 — bundling it into the Next.js app made the first few version bumps painful.

Stack

Next.js 14Claude APIAtlassian MCPAzure DevOps APISlack BoltMicrosoft GraphPostgreSQLDocker