Skip to main content
Glama

mcp-conf-server

MCP server for self-hosted Confluence Server / Data Center, based on mcp-jira-server. Uses Confluence REST API and stdio transport. Requires Node.js 22+.

Install and run

npm install
npm test

Configure your MCP client (replace the absolute path and environment values):

{
  "mcpServers": {
    "confluence": {
      "command": "node",
      "args": ["/absolute/path/mcp-conf-server/build/index.js"],
      "env": {
        "CONFLUENCE_BASE_URL": "https://confluence.example.com",
        "CONFLUENCE_PAT": "your-personal-access-token"
      }
    }
  }
}

Include a context path in the base URL when needed, e.g. https://example.com/confluence. Cloud API-token authentication is not implemented.

Alternatively set CONFLUENCE_COOKIE, or CONFLUENCE_AUTH_MODE=browser for SSO through installed Chrome. Call conf_browser_login, complete sign-in, then retry. Browser options: CONFLUENCE_BROWSER_LOGIN_URL, CONFLUENCE_BROWSER_PROFILE, CONFLUENCE_BROWSER_CHANNEL. Browser profile defaults to ~/.mcp-conf-server/chrome-profile; protect it as a credential.

Related MCP server: ctk

Tools

  • Browser login and authentication status; current user.

  • CQL search, list spaces, get space.

  • Read, create, update and trash pages; list child pages.

  • Read/add comments, read/add labels.

All tool names use the conf_ prefix. List tools to inspect exact input schemas. Bodies use Confluence storage XHTML. Updates require currentVersion obtained from conf_get_page; conflicts are surfaced without retry. List/search operations return one page and preserve pagination metadata; use start and limit for subsequent pages. Server permissions still apply.

Validation

npm test checks TypeScript and builds the executable. Real-instance authentication and write operations require a configured Confluence instance and have not been tested by this project bootstrap.

API reference: https://developer.atlassian.com/server/confluence/rest/latest/

MIT license; retains the upstream license attribution.

Publishing to npm

The .github/workflows/publish.yml workflow publishes @apo100l/mcp-conf-server on version tags (v*.*.*) or manual dispatch. It installs dependencies, verifies tag/version agreement, runs checks, inspects package contents, and publishes publicly using npm trusted publishing (OIDC).

In npm package settings, configure a GitHub Actions trusted publisher:

  • Owner: apo100l

  • Repository: mcp-conf-server

  • Workflow filename: publish.yml

  • Environment: leave empty

  • Allow publishing

If the package does not yet exist on npm, publish its first version locally with an authorized npm account (npm login, then npm publish --access public), then configure the trusted publisher. No NPM_TOKEN repository secret is needed for subsequent workflow releases.

For the next release:

npm run release:patch
git push origin main --follow-tags

For an initial tag matching the existing version, use git tag v0.1.0 and git push origin v0.1.0 only if that version has not already been published. Published npm versions cannot be overwritten; manual dispatch also attempts to publish the version in package.json.

Reference: https://docs.npmjs.com/trusted-publishers/

Available Tools

15 tools
conf_add_commentC
Destructive

Add comment using storage XHTML

Inputs: body (required), pageId (required).

conf_add_labelC
Destructive

Add global label

Inputs: label (required), pageId (required).

conf_browser_auth_statusC
Read-onlyIdempotent

Check browser authentication

Inputs: no named parameters.

conf_browser_loginB
Read-onlyIdempotent

Open browser for Confluence SSO sign-in

Inputs: no named parameters.

conf_create_pageC
Destructive

Create page; body must be Confluence storage XHTML

Inputs: body (required), title (required), spaceKey (required), parentId.

conf_delete_pageC
Destructive

Move a page to trash

Inputs: pageId (required).

conf_get_childrenC
Read-onlyIdempotent

List child pages (one page)

Inputs: pageId (required), limit, start.

conf_get_commentsC
Read-onlyIdempotent

List page comments (one page)

Inputs: pageId (required), limit, start.

conf_get_current_userB
Read-onlyIdempotent

Get authenticated user

Inputs: no named parameters.

conf_get_labelsC
Read-onlyIdempotent

List labels (one page)

Inputs: pageId (required), limit, start.

conf_get_pageB
Read-onlyIdempotent

Read page with storage XHTML body, version and ancestors

Inputs: pageId (required).

conf_get_spaceC
Read-onlyIdempotent

Get space details

Inputs: spaceKey (required).

conf_get_spacesC
Read-onlyIdempotent

List spaces (one page)

Inputs: limit, start.

conf_update_pageB
Destructive

Update page using the current version returned by get_page. Conflicts are returned without retry.

Inputs: body (required), title (required), pageId (required), currentVersion (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool maps to a distinct resource+action pair: auth (login/auth_status/current_user), spaces, pages, children, comments, labels. The only near-overlap is conf_browser_auth_status vs. conf_get_current_user, but the descriptions make the split clear (browser session state vs. resolved identity).

    Naming Consistency4/5

    Strong conf_ namespace with consistent verb_noun forms (get_page, create_page, update_page, delete_page, add_comment, get_labels). Minor deviations: conf_search lacks a noun, and the two browser auth tools use a noun_first pattern (browser_login, browser_auth_status).

    Tool Count5/5

    15 tools sits in the sweet spot and each one earns its place across six coherent sub-areas (auth, search, spaces, pages, comments, labels). Nothing feels duplicated or padded.

    Completeness3/5

    Page lifecycle is fully covered (create/get/update/delete plus children), but comments and labels are add-only with no update/delete, spaces are read-only, and attachments/version history—core Confluence concepts—are entirely absent. Agents will hit dead ends for cleanup or binary content workflows.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers