@de-otio/epimethian-mcp 3.0.0 → 3.0.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/README.md +29 -8
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Confluence Cloud tools for AI assistants via the [Model Context Protocol](https://modelcontextprotocol.io/) (MCP). (not associated with or endorsed by Atlassian)
|
|
4
4
|
|
|
5
|
-
> **Note:** For most Confluence use cases, the official [Atlassian Rovo MCP server](https://github.com/atlassian/mcp-server-atlassian) may be sufficient. Use Epimethian if you need draw.io diagram support, OS keychain credential storage, or attribution tracking on managed pages.
|
|
5
|
+
> **Note:** For most Confluence use cases, the official [Atlassian Rovo MCP server](https://github.com/atlassian/mcp-server-atlassian) may be sufficient. Use Epimethian if you need draw.io diagram support, OS keychain credential storage, multi-tenant profile isolation, or attribution tracking on managed pages.
|
|
6
6
|
|
|
7
7
|
## Quick Start
|
|
8
8
|
|
|
@@ -14,10 +14,10 @@ Or install manually:
|
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
npm install -g @de-otio/epimethian-mcp
|
|
17
|
-
epimethian-mcp setup
|
|
17
|
+
epimethian-mcp setup --profile <name>
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
The `setup` command prompts for your Confluence URL, email, and API token (masked input), tests the connection, and stores credentials securely in your OS keychain.
|
|
20
|
+
The `setup` command prompts for your Confluence URL, email, and API token (masked input), tests the connection, and stores all credentials securely in your OS keychain under the named profile.
|
|
21
21
|
|
|
22
22
|
## MCP Configuration
|
|
23
23
|
|
|
@@ -29,18 +29,36 @@ Add to your `.mcp.json` (or equivalent MCP client config):
|
|
|
29
29
|
"confluence": {
|
|
30
30
|
"command": "epimethian-mcp",
|
|
31
31
|
"env": {
|
|
32
|
-
"
|
|
33
|
-
"CONFLUENCE_EMAIL": "user@example.com"
|
|
32
|
+
"CONFLUENCE_PROFILE": "my-profile"
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
37
|
```
|
|
39
38
|
|
|
40
|
-
|
|
39
|
+
All credentials (URL, email, token) are read from the OS keychain at startup. **Only the profile name goes in config files.**
|
|
41
40
|
|
|
42
41
|
For IDE-hosted agents, use the absolute path from `which epimethian-mcp` as the `command` value.
|
|
43
42
|
|
|
43
|
+
## Multi-Tenant Support
|
|
44
|
+
|
|
45
|
+
Consultants and developers working across multiple Atlassian tenants can create a profile per tenant:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
epimethian-mcp setup --profile jambit
|
|
49
|
+
epimethian-mcp setup --profile acme-corp
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Each project's `.mcp.json` specifies which profile to use. Profiles are fully isolated — separate keychain entries, separate Confluence instances, separate MCP server names (`confluence-jambit`, `confluence-acme-corp`).
|
|
53
|
+
|
|
54
|
+
Manage profiles:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
epimethian-mcp profiles # list all
|
|
58
|
+
epimethian-mcp profiles --verbose # show URLs and emails
|
|
59
|
+
CONFLUENCE_PROFILE=jambit epimethian-mcp status # test connection
|
|
60
|
+
```
|
|
61
|
+
|
|
44
62
|
## Tools
|
|
45
63
|
|
|
46
64
|
| Tool | Description |
|
|
@@ -60,10 +78,13 @@ For IDE-hosted agents, use the absolute path from `which epimethian-mcp` as the
|
|
|
60
78
|
|
|
61
79
|
## Credential Security
|
|
62
80
|
|
|
63
|
-
-
|
|
81
|
+
- Credentials are stored per-profile in the OS keychain (macOS Keychain / Linux libsecret)
|
|
82
|
+
- URL, email, and API token are stored as an atomic unit — no mixing across profiles
|
|
64
83
|
- Tokens are never written to disk in plaintext
|
|
65
84
|
- The `setup` command uses masked input so tokens don't appear in terminal scrollback
|
|
66
|
-
-
|
|
85
|
+
- Startup validation verifies credentials and tenant identity before accepting tool calls
|
|
86
|
+
- Write operations include a tenant echo so the target is always visible
|
|
87
|
+
- For CI/headless environments, set all three env vars (`CONFLUENCE_URL`, `CONFLUENCE_EMAIL`, `CONFLUENCE_API_TOKEN`) — partial combinations are rejected
|
|
67
88
|
|
|
68
89
|
## Development
|
|
69
90
|
|
package/dist/cli/index.js
CHANGED
|
@@ -21957,7 +21957,7 @@ async function uploadAttachment(pageId, fileData, filename, comment) {
|
|
|
21957
21957
|
if (!att) throw new Error("Attachment uploaded but no details returned.");
|
|
21958
21958
|
return { title: att.title, id: att.id, fileSize: att.extensions?.fileSize };
|
|
21959
21959
|
}
|
|
21960
|
-
var GITHUB_URL = "https://github.com/
|
|
21960
|
+
var GITHUB_URL = "https://github.com/de-otio/epimethian-mcp";
|
|
21961
21961
|
var ATTRIBUTION_LABEL = "epimethian-managed";
|
|
21962
21962
|
var ATTRIBUTION_START = "<!-- epimethian-attribution-start -->";
|
|
21963
21963
|
var ATTRIBUTION_END = "<!-- epimethian-attribution-end -->";
|