@atlassian-dc-mcp/confluence 0.16.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.17.1](https://github.com/b1ff/atlassian-dc-mcp/compare/v0.17.0...v0.17.1) (2026-04-23)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * prevent double-concatenation of API base path after setup CLI ([39cd1c7](https://github.com/b1ff/atlassian-dc-mcp/commit/39cd1c7c6dc6dc842b110c6650002487df534dd5))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.17.0](https://github.com/b1ff/atlassian-dc-mcp/compare/v0.16.0...v0.17.0) (2026-04-23)
18
+
19
+
20
+ ### Features
21
+
22
+ * add interactive setup CLI with secure credential storage ([f317903](https://github.com/b1ff/atlassian-dc-mcp/commit/f317903a9975b66442f54e520a5a1656a69d1a1b))
23
+
24
+
25
+
26
+
27
+
6
28
  # [0.16.0](https://github.com/b1ff/atlassian-dc-mcp/compare/v0.15.0...v0.16.0) (2026-04-14)
7
29
 
8
30
 
package/README.md CHANGED
@@ -2,6 +2,35 @@
2
2
 
3
3
  This package provides a Machine Comprehension Protocol (MCP) server for interacting with Atlassian Confluence Data Center edition.
4
4
 
5
+ ## Interactive Setup
6
+
7
+ The easiest way to configure this server is the built-in `setup` subcommand:
8
+
9
+ ```bash
10
+ npx @atlassian-dc-mcp/confluence setup
11
+ ```
12
+
13
+ It prompts for host, API base path, default page size, and API token, then stores them in the most secure place available:
14
+
15
+ - **macOS** — token in the login Keychain (service `atlassian-dc-mcp`, account `confluence-token`); host / base path / page size in `~/.atlassian-dc-mcp/confluence.env` (mode `0600`).
16
+ - **Linux** — everything in `~/.atlassian-dc-mcp/confluence.env` with POSIX mode `0600` (read/write for your user only).
17
+ - **Windows** — everything in `%USERPROFILE%\.atlassian-dc-mcp\confluence.env`. Node passes the mode bits but Windows ignores them, so the file inherits the ACL of your user profile directory (typically readable only by your user, SYSTEM, and Administrators).
18
+
19
+ After setup, you can launch the server without any environment variables:
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "atlassian-confluence-dc": {
25
+ "command": "npx",
26
+ "args": ["-y", "@atlassian-dc-mcp/confluence"]
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ Environment variables still override stored values — see [Configuration sources](#configuration-sources) below.
33
+
5
34
  ## Features
6
35
 
7
36
  - Get content by ID
@@ -60,7 +89,7 @@ This package provides a Machine Comprehension Protocol (MCP) server for interact
60
89
 
61
90
  3. Confluence uses `/rest` as a path part always, so it will be added automatically, no need to add it manually.
62
91
 
63
- Direct environment variables override values loaded from `ATLASSIAN_DC_MCP_CONFIG_FILE`.
92
+ See [Configuration sources](#configuration-sources) for the full precedence chain.
64
93
 
65
94
  To create a personal access token:
66
95
  - In Confluence, select your profile picture at the top right
@@ -68,6 +97,19 @@ This package provides a Machine Comprehension Protocol (MCP) server for interact
68
97
  - Select **Create token** and give it a name
69
98
  - Copy the token and store it securely (you won't be able to see it again)
70
99
 
100
+ ## Configuration sources
101
+
102
+ Each key is resolved by walking these sources in priority order and taking the first non-empty value:
103
+
104
+ | Priority | Source | Reads | Written by `setup` |
105
+ |---------:|--------|-------|--------------------|
106
+ | 100 | `process.env` (`CONFLUENCE_HOST`, `CONFLUENCE_API_BASE_PATH`, `CONFLUENCE_API_TOKEN`, `CONFLUENCE_DEFAULT_PAGE_SIZE`) | all keys | — |
107
+ | 80 | env file — `ATLASSIAN_DC_MCP_CONFIG_FILE` (absolute path) or `./.env` | all keys | — |
108
+ | 60 | home file — `~/.atlassian-dc-mcp/confluence.env` on macOS/Linux, `%USERPROFILE%\.atlassian-dc-mcp\confluence.env` on Windows (mode `0600` on POSIX; Windows inherits the user-profile ACL) | all keys | host, apiBasePath, defaultPageSize (always); token (non-darwin or keychain fallback) |
109
+ | 40 | macOS Keychain — service `atlassian-dc-mcp`, account `confluence-token` | token only | token (darwin only) |
110
+
111
+ `setup` always writes non-secret fields to the home file and tries the keychain first for the token. If a higher-priority source shadows the value being saved, `setup` prints a warning so you can unset the env var.
112
+
71
113
  ## Usage
72
114
 
73
115
  Start the MCP server:
package/bin/run.js CHANGED
@@ -1,2 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import '../build/index.js';
2
+ const sub = process.argv[2];
3
+ if (sub === 'setup') {
4
+ await import('../build/setup.js');
5
+ } else {
6
+ await import('../build/index.js');
7
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=setup.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/setup.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ describe('confluence setup shim', () => {
4
+ it('calls runSetup with CONFLUENCE_PRODUCT', () => {
5
+ const setupSource = fs.readFileSync(path.join(process.cwd(), 'src', 'setup.ts'), 'utf8');
6
+ expect(setupSource).toMatch(/runSetup\(\s*CONFLUENCE_PRODUCT\s*\)/);
7
+ expect(setupSource).toMatch(/from\s+['"]@atlassian-dc-mcp\/common['"]/);
8
+ expect(setupSource).toMatch(/import\s+\{\s*CONFLUENCE_PRODUCT\s*\}\s+from\s+['"]\.\/config\.js['"]/);
9
+ });
10
+ });
11
+ //# sourceMappingURL=setup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../src/__tests__/setup.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QACzF,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACpE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/build/config.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { type ProductDefinition } from '@atlassian-dc-mcp/common';
2
+ export declare const CONFLUENCE_PRODUCT: ProductDefinition;
1
3
  export declare function getConfluenceRuntimeConfig(): import("@atlassian-dc-mcp/common").ProductRuntimeConfig;
2
4
  export declare function getDefaultPageSize(): number;
3
5
  export declare function getMissingConfig(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,wBAAgB,0BAA0B,4DAEzC;AAED,wBAAgB,kBAAkB,WAEjC;AAED,wBAAgB,gBAAgB,aAE/B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,kBAAkB,EAAE,iBAShC,CAAC;AAEF,wBAAgB,0BAA0B,4DAEzC;AAED,wBAAgB,kBAAkB,WAEjC;AAED,wBAAgB,gBAAgB,aAE/B"}
package/build/config.js CHANGED
@@ -1,11 +1,21 @@
1
- import { getProductRuntimeConfig, validateProductRuntimeConfig } from '@atlassian-dc-mcp/common';
1
+ import { getProductRuntimeConfig, validateProductRuntimeConfig, } from '@atlassian-dc-mcp/common';
2
+ export const CONFLUENCE_PRODUCT = {
3
+ id: 'confluence',
4
+ envVars: {
5
+ host: 'CONFLUENCE_HOST',
6
+ apiBasePath: 'CONFLUENCE_API_BASE_PATH',
7
+ token: 'CONFLUENCE_API_TOKEN',
8
+ defaultPageSize: 'CONFLUENCE_DEFAULT_PAGE_SIZE',
9
+ },
10
+ defaultApiBasePath: '',
11
+ };
2
12
  export function getConfluenceRuntimeConfig() {
3
- return getProductRuntimeConfig('confluence');
13
+ return getProductRuntimeConfig(CONFLUENCE_PRODUCT);
4
14
  }
5
15
  export function getDefaultPageSize() {
6
16
  return getConfluenceRuntimeConfig().defaultPageSize;
7
17
  }
8
18
  export function getMissingConfig() {
9
- return validateProductRuntimeConfig('confluence');
19
+ return validateProductRuntimeConfig(CONFLUENCE_PRODUCT);
10
20
  }
11
21
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAEjG,MAAM,UAAU,0BAA0B;IACxC,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,0BAA0B,EAAE,CAAC,eAAe,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,4BAA4B,CAAC,YAAY,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,4BAA4B,GAE7B,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,0BAA0B;QACvC,KAAK,EAAE,sBAAsB;QAC7B,eAAe,EAAE,8BAA8B;KAChD;IACD,kBAAkB,EAAE,EAAE;CACvB,CAAC;AAEF,MAAM,UAAU,0BAA0B;IACxC,OAAO,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,0BAA0B,EAAE,CAAC,eAAe,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;AAC1D,CAAC"}
@@ -29,13 +29,7 @@ export interface ConfluenceContent {
29
29
  }
30
30
  export declare class ConfluenceService {
31
31
  private readonly getPageSize;
32
- /**
33
- * Creates a new ConfluenceService instance
34
- * @param host The hostname of the Confluence server (e.g., "host.com")
35
- * @param token The API token for authentication
36
- * @param fullApiUrl Optional full API URL (e.g., "https://host.com/wiki/"). If provided, host and apiBasePath are ignored.
37
- */
38
- constructor(host: string | undefined, token: string | (() => string | undefined), fullApiUrl?: string, getPageSize?: () => number);
32
+ constructor(host: string | undefined, token: string | (() => string | undefined), apiBasePath?: string, getPageSize?: () => number);
39
33
  /**
40
34
  * Get a Confluence page by ID
41
35
  * @param contentId The ID of the page to retrieve
@@ -1 +1 @@
1
- {"version":3,"file":"confluence-service.d.ts","sourceRoot":"","sources":["../src/confluence-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAA0B,MAAM,iCAAiC,CAAC;AAE7F;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,IAAI,CAAC,EAAE;QACL,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,cAAc,EAAE,SAAS,CAAC;SAC3B,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnC;AAYD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAE3C;;;;;OAKG;gBAED,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,EAC1C,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,GAAE,MAAM,MAA2B;IAahD;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQhD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,kBAA8B,EAAE,YAAY,CAAC,EAAE,MAAM;;;;;;IAYpH;;;;;;OAMG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,WAAoB;;;;;;;gBA3BnF,CAAC;mBAC9B,CAAA;gBAA0B,CAAC;gBACxB,CAAC;gBAA0B,CAAC;;;IAwCvC;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,iBAAiB;IAI9C;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;IAIjE;;;;;;OAMG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,GAAG,WAAoB;;;;;;;gBAvEH,CAAC;mBAC9B,CAAA;gBAA0B,CAAC;gBACxB,CAAC;gBAA0B,CAAC;;;IAuFvC,MAAM,CAAC,cAAc,IAAI,MAAM,EAAE;CAGlC;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCjC,CAAC"}
1
+ {"version":3,"file":"confluence-service.d.ts","sourceRoot":"","sources":["../src/confluence-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAA0B,MAAM,iCAAiC,CAAC;AAE7F;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,IAAI,CAAC,EAAE;QACL,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,cAAc,EAAE,SAAS,CAAC;SAC3B,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnC;AAYD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;gBAGzC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,EAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,GAAE,MAAM,MAA2B;IAYhD;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQhD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,kBAA8B,EAAE,YAAY,CAAC,EAAE,MAAM;;;;;;IAYpH;;;;;;OAMG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,WAAoB;;;;;;;gBAnB1G,CAAC;mBAA8B,CAAA;gBAA0B,CAAC;gBAA0B,CAAC;gBAChG,CAAC;;;IAiCJ;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,iBAAiB;IAI9C;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;IAIjE;;;;;;OAMG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,GAAG,WAAoB;;;;;;;gBA/D1B,CAAC;mBAA8B,CAAA;gBAA0B,CAAC;gBAA0B,CAAC;gBAChG,CAAC;;;IAgFJ,MAAM,CAAC,cAAc,IAAI,MAAM,EAAE;CAGlC;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCjC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { ContentResourceService, OpenAPI, SearchService } from './confluence-client/index.js';
3
- import { handleApiOperation } from '@atlassian-dc-mcp/common';
3
+ import { handleApiOperation, resolveOpenApiBase } from '@atlassian-dc-mcp/common';
4
4
  import { getDefaultPageSize, getMissingConfig } from './config.js';
5
5
  import { shapeConfluenceContent } from './confluence-response-mapper.js';
6
6
  /**
@@ -22,22 +22,13 @@ function resolveToken(token, missingTokenMessage) {
22
22
  }
23
23
  export class ConfluenceService {
24
24
  getPageSize;
25
- /**
26
- * Creates a new ConfluenceService instance
27
- * @param host The hostname of the Confluence server (e.g., "host.com")
28
- * @param token The API token for authentication
29
- * @param fullApiUrl Optional full API URL (e.g., "https://host.com/wiki/"). If provided, host and apiBasePath are ignored.
30
- */
31
- constructor(host, token, fullApiUrl, getPageSize = getDefaultPageSize) {
32
- if (fullApiUrl) {
33
- OpenAPI.BASE = fullApiUrl;
34
- }
35
- else if (host) {
36
- OpenAPI.BASE = `https://${host}`;
37
- }
38
- else {
39
- throw new Error('Either host or fullApiUrl must be provided');
40
- }
25
+ constructor(host, token, apiBasePath, getPageSize = getDefaultPageSize) {
26
+ OpenAPI.BASE = resolveOpenApiBase({
27
+ host,
28
+ apiBasePath,
29
+ defaultBasePath: '',
30
+ strippableSuffixes: ['/rest/api', '/rest'],
31
+ });
41
32
  OpenAPI.TOKEN = resolveToken(token, 'Missing required environment variable: CONFLUENCE_API_TOKEN');
42
33
  OpenAPI.VERSION = '1.0';
43
34
  this.getPageSize = getPageSize;
@@ -1 +1 @@
1
- {"version":3,"file":"confluence-service.js","sourceRoot":"","sources":["../src/confluence-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confluence-service.js","sourceRoot":"","sources":["../src/confluence-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":""}
package/build/setup.js ADDED
@@ -0,0 +1,4 @@
1
+ import { runSetup } from '@atlassian-dc-mcp/common';
2
+ import { CONFLUENCE_PRODUCT } from './config.js';
3
+ await runSetup(CONFLUENCE_PRODUCT);
4
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,QAAQ,CAAC,kBAAkB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlassian-dc-mcp/confluence",
3
- "version": "0.16.0",
3
+ "version": "0.17.1",
4
4
  "main": "build/index.js",
5
5
  "type": "module",
6
6
  "bin": "./bin/run.js",
@@ -31,7 +31,7 @@
31
31
  "test": "jest --passWithNoTests"
32
32
  },
33
33
  "dependencies": {
34
- "@atlassian-dc-mcp/common": "^0.16.0",
34
+ "@atlassian-dc-mcp/common": "^0.17.1",
35
35
  "@modelcontextprotocol/sdk": "^1.27.1",
36
36
  "dotenv": "^16.4.7",
37
37
  "zod": "^3.24.2"
@@ -45,5 +45,5 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  },
48
- "gitHead": "eb8394fc8317b2d986b03de9853edf47aa77566a"
48
+ "gitHead": "eb8dccc2a1ba6eebf65925209f23ed269fec3550"
49
49
  }
@@ -0,0 +1,11 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+
4
+ describe('confluence setup shim', () => {
5
+ it('calls runSetup with CONFLUENCE_PRODUCT', () => {
6
+ const setupSource = fs.readFileSync(path.join(process.cwd(), 'src', 'setup.ts'), 'utf8');
7
+ expect(setupSource).toMatch(/runSetup\(\s*CONFLUENCE_PRODUCT\s*\)/);
8
+ expect(setupSource).toMatch(/from\s+['"]@atlassian-dc-mcp\/common['"]/);
9
+ expect(setupSource).toMatch(/import\s+\{\s*CONFLUENCE_PRODUCT\s*\}\s+from\s+['"]\.\/config\.js['"]/);
10
+ });
11
+ });
package/src/config.ts CHANGED
@@ -1,7 +1,22 @@
1
- import { getProductRuntimeConfig, validateProductRuntimeConfig } from '@atlassian-dc-mcp/common';
1
+ import {
2
+ getProductRuntimeConfig,
3
+ validateProductRuntimeConfig,
4
+ type ProductDefinition,
5
+ } from '@atlassian-dc-mcp/common';
6
+
7
+ export const CONFLUENCE_PRODUCT: ProductDefinition = {
8
+ id: 'confluence',
9
+ envVars: {
10
+ host: 'CONFLUENCE_HOST',
11
+ apiBasePath: 'CONFLUENCE_API_BASE_PATH',
12
+ token: 'CONFLUENCE_API_TOKEN',
13
+ defaultPageSize: 'CONFLUENCE_DEFAULT_PAGE_SIZE',
14
+ },
15
+ defaultApiBasePath: '',
16
+ };
2
17
 
3
18
  export function getConfluenceRuntimeConfig() {
4
- return getProductRuntimeConfig('confluence');
19
+ return getProductRuntimeConfig(CONFLUENCE_PRODUCT);
5
20
  }
6
21
 
7
22
  export function getDefaultPageSize() {
@@ -9,5 +24,5 @@ export function getDefaultPageSize() {
9
24
  }
10
25
 
11
26
  export function getMissingConfig() {
12
- return validateProductRuntimeConfig('confluence');
27
+ return validateProductRuntimeConfig(CONFLUENCE_PRODUCT);
13
28
  }
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { ContentResourceService, OpenAPI, SearchService } from './confluence-client/index.js';
3
- import { handleApiOperation } from '@atlassian-dc-mcp/common';
3
+ import { handleApiOperation, resolveOpenApiBase } from '@atlassian-dc-mcp/common';
4
4
  import { getDefaultPageSize, getMissingConfig } from './config.js';
5
5
  import { ConfluenceBodyMode, shapeConfluenceContent } from './confluence-response-mapper.js';
6
6
 
@@ -46,25 +46,18 @@ function resolveToken(token: string | (() => string | undefined), missingTokenMe
46
46
  export class ConfluenceService {
47
47
  private readonly getPageSize: () => number;
48
48
 
49
- /**
50
- * Creates a new ConfluenceService instance
51
- * @param host The hostname of the Confluence server (e.g., "host.com")
52
- * @param token The API token for authentication
53
- * @param fullApiUrl Optional full API URL (e.g., "https://host.com/wiki/"). If provided, host and apiBasePath are ignored.
54
- */
55
49
  constructor(
56
50
  host: string | undefined,
57
51
  token: string | (() => string | undefined),
58
- fullApiUrl?: string,
52
+ apiBasePath?: string,
59
53
  getPageSize: () => number = getDefaultPageSize,
60
54
  ) {
61
- if (fullApiUrl) {
62
- OpenAPI.BASE = fullApiUrl;
63
- } else if (host) {
64
- OpenAPI.BASE = `https://${host}`;
65
- } else {
66
- throw new Error('Either host or fullApiUrl must be provided');
67
- }
55
+ OpenAPI.BASE = resolveOpenApiBase({
56
+ host,
57
+ apiBasePath,
58
+ defaultBasePath: '',
59
+ strippableSuffixes: ['/rest/api', '/rest'],
60
+ });
68
61
  OpenAPI.TOKEN = resolveToken(token, 'Missing required environment variable: CONFLUENCE_API_TOKEN');
69
62
  OpenAPI.VERSION = '1.0';
70
63
  this.getPageSize = getPageSize;
package/src/setup.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { runSetup } from '@atlassian-dc-mcp/common';
2
+ import { CONFLUENCE_PRODUCT } from './config.js';
3
+
4
+ await runSetup(CONFLUENCE_PRODUCT);