Skip to main content
Glama
confluence-mini-mcp
by bonkey

confluence-mini-mcp

Lightweight MCP server that crawls Confluence subtrees and serves cached Markdown. Works with Claude Code and nanobot (Slack) via stdio.

Claude Code config

{
  "mcpServers": {
    "confluence-docs": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/bonkey/confluence-mini-mcp", "confluence-mini-mcp"],
      "env": {
        "CONFLUENCE_BASE_URL": "https://company.atlassian.net/wiki",
        "CONFLUENCE_EMAIL": "you@company.com",
        "CONFLUENCE_API_TOKEN": "...",
        "CONFLUENCE_ROOT_PAGE_IDS": "123456,789012"
      }
    }
  }
}

Pin to a tag: "--from", "git+https://github.com/bonkey/confluence-mini-mcp@v0.1.1"

Related MCP server: confluence-mcp-server

Nanobot config

[mcp.confluence]
command = "uvx"
args = ["--from", "git+https://github.com/bonkey/confluence-mini-mcp", "confluence-mini-mcp"]
env = { CONFLUENCE_BASE_URL = "https://company.atlassian.net/wiki", CONFLUENCE_EMAIL = "you@company.com", CONFLUENCE_API_TOKEN = "...", CONFLUENCE_ROOT_PAGE_IDS = "123456,789012" }

Tools

Tool

Description

search_pages

Keyword search across cached pages (title 10x weight)

get_page

Full Markdown content by page ID (Confluence or external)

list_pages

Index of all cached pages (optional space_key filter)

refresh_cache

Force re-crawl, bypass TTL

Crawling

The crawler walks a graph, not just a tree:

  • Child pages — standard parent → children traversal

  • Linked Confluence pages — any internal link in page content is followed (enables a single "hub page" linking to multiple subtrees)

  • External HTTP links — fetched as Markdown (1 level deep, follows redirects only)

In-page directives

Add a [confluence-mcp] block anywhere on a Confluence page to control crawl behaviour for that subtree:

[confluence-mcp]
max_depth=3
follow_links=false
follow_external=true

Directive

Default

Description

max_depth

(global config)

Override crawl depth from this page down

follow_links

true

Follow linked Confluence pages in content

follow_external

true

Fetch external HTTP links in content

The directive block is stripped from the Markdown output — agents never see it.

Configuration

All settings via env vars or confluence-mini-mcp.toml:

Env var

Description

Default

CONFLUENCE_BASE_URL

Wiki base URL

required

CONFLUENCE_EMAIL

Atlassian email

required

CONFLUENCE_API_TOKEN

API token

required

CONFLUENCE_ROOT_PAGE_IDS

Comma-separated root page IDs

required

CONFLUENCE_CACHE_DIR

Cache directory

~/.cache/confluence-subtree-mcp

CONFLUENCE_CACHE_TTL_MINUTES

Cache max age

30

CONFLUENCE_MAX_DEPTH

Max crawl depth

10

CONFLUENCE_MAX_PAGES

Max pages to crawl

500

CONFLUENCE_REFRESH_INTERVAL

Background refresh interval (0=off)

5

CONFLUENCE_DRY_RUN

Fake cache mode, no API calls

false

Development

just dev     # run in dry-run mode
just check   # format + test
just release # tag + push

All tasks in the Justfile. Requires uv and just.

Available Tools

4 tools
get_pageA

Retrieve the full Markdown content of a specific page by ID.

Use this after search_pages to read the complete content of a result. Pages may be Confluence pages or crawled external websites.

Args: page_id: The page ID from search_pages or list_pages results.

Inputs: page_id (required). Returns: object

list_pagesB

List all cached pages, optionally filtered by space key.

Args: space_key: Optional space key to filter by.

Inputs: space_key. Returns: result

refresh_cacheA

Force an immediate re-crawl of all configured subtrees, bypassing TTL and version checks.

Inputs: no named parameters. Returns: object

search_pagesA

Full-text search across all cached Confluence pages and external links.

Returns short snippets only. IMPORTANT: Always call get_page on relevant results to read the full content before answering questions. The snippet is just a preview — the full page often contains the information you need.

Args: query: Space-separated keywords to search for. Try single key terms first; the search supports prefix matching. limit: Max results to return (default 10, max 20).

Inputs: query (required), limit. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 4 tools

    Disambiguation4/5

    list_pages and search_pages both surface pages, but they differ by enumeration vs full-text query and are clearly documented. get_page and refresh_cache have non-overlapping cache-read and cache-maintenance roles, so misselection is unlikely.

    Naming Consistency5/5

    All four tools follow a consistent snake_case verb_noun pattern: list_pages, refresh_cache, search_pages, get_page. There is no mixing of naming conventions.

    Tool Count5/5

    Four tools are well-scoped for a mini read-oriented Confluence cache MCP. Each tool has a distinct role: enumerate, search, retrieve, and refresh, with no redundant tools.

    Completeness4/5

    The set covers the core read path: list cached pages, search them, and fetch full page content. It lacks page creation/update/delete, but as a mini cache reader this is a reasonable scope with only minor gaps.

    Related MCP Connectors

    Related MCP Servers