Skip to content
← All work
Case 01Production

Company Knowledge Base Agent

An enterprise-wide agent that answers questions against Confluence through MCP — no vector store, no separate index, no sync job to go stale.

Fig. 1 — System architectureCompany Knowledge Base Agent
CONFLUENCE MCP SERVERAnyone asksany team, any roleReAct agentthink → act → observesearchtext · CQLget_pagefull contentlist_spaceswhere to lookConfluencelive — no indexAnswerwith source linksobserve → next stepenough to answer

← Swipe to follow the flow →

  • Trigger
  • Agent
  • Tool / data
  • Guardrail
  • Human

⊘ No index means nothing to go stale.

The problem

What this replaced

  1. 01Knowledge is scattered across the organization.
  2. 02Confluence is the central store — but finding the right page inside it is still slow.
  3. 03Search across many spaces and pages, then give up and ask a colleague who already knows.

Who has this problem

All internal personnel — not just engineering. Anyone who needs to look something up.

What it costs

Significant time lost per lookup, plus a second cost that rarely gets counted: the repeated interruption of the people who already know the answer.

The build

What I built

A ReAct agent — think, act, observe, repeat — connected to a Confluence MCP server. The server exposes Confluence as tools: search (text and CQL), get_page for full content, and list_spaces to know where to look. The agent decides which tool to call, reads what comes back, and keeps going until it has enough to answer, then answers with links to the pages it used.

Cut lookup time from about thirty minutes to a few, without building an index that has to be kept in sync.

Capabilities

  • 01ReAct loop — reason, call a tool, observe, repeat
  • 02search — full text and CQL
  • 03get_page — full page content
  • 04list_spaces — scope the search to the right space
  • 05Answers returned with source page links

How it runs

The workflow

  1. in

    Trigger

    A natural-language question from any employee.

  2. 01

    Agent parses the question and selects the right Confluence MCP tool(s)

  3. 02

    Calls get page, search page, search space or CQL query

  4. 03

    Iterates with further calls when the first result is insufficient

  5. 04

    Aggregates retrieved content and synthesizes an answer

  6. out

    Output

    A direct, concise answer with links to the Confluence pages it came from.

Components

  • Query interface
  • Knowledge agent — Claude Sonnet 4.5
  • Confluence MCP server
  • Confluence spaces and pages (existing, untouched)

The guardrail

What it is not allowed to do

⊘ Boundary

No index means nothing to go stale.

The deliberate choice here was to build no vector store at all. The agent queries Confluence live through its own API surface, so answers reflect the current state of the documentation rather than whenever an embedding job last ran. Every answer carries source links, so a reader can verify the claim rather than trust it.

Stack

What it is built on

Model
Claude Sonnet 4.5
Tooling
Confluence MCP server
Retrieval
Live tool calls — no vector store, no separate index
Cloud
AWS (internal enterprise)

Hard parts

What made it difficult

  • 01

    Deciding when a single tool call is enough and when the agent needs to keep digging — over-querying is slow, under-querying is wrong.

  • 02

    Serving every persona in the business, not just engineers, from one interface.

  • 03

    Answering from documentation written by many teams, to no shared standard.

Outcome

What changed

30 → 5 min

average lookup time

  • Information lookup time fell from about thirty minutes to about five.

  • Deployed enterprise-wide across all personas, not limited to technical teams.

Written as a de-identified case study. The employer's identity, space and page names, and documentation contents are not disclosed. What is described here is the architecture pattern and the measured outcome — nothing proprietary to the environment it runs in.

Get in touch

Building an agent that has to survive production?

I write about MCP design, evals and guardrails on LinkedIn most days. If you're working on something similar, I'm happy to talk shop.