Configuration
Interactive Login
Section titled “Interactive Login”The fastest way to get started:
ctk authThis prompts for your Confluence domain, email, and API token, verifies them against the Confluence API, and stores them locally.
API Token Scopes
Section titled “API Token Scopes”Select “Confluence” as the app, then add granular scopes:
read:space:confluenceread:page:confluenceread:folder:confluenceread:hierarchical-content:confluenceread:comment:confluenceread:label:confluenceread:attachment:confluencesearch:confluencewrite:page:confluencewrite:folder:confluencewrite:comment:confluencewrite:label:confluencedelete:page:confluencedelete:folder:confluenceCredentials File
Section titled “Credentials File”Credentials are stored at ~/.config/ctk/credentials.json with mode 0600:
{ "domain": "mycompany", "email": "user@example.com", "api_token": "ATATT3x...", "created_at": "2025-01-15T10:30:00Z"}The domain field is the subdomain only (e.g., mycompany for
mycompany.atlassian.net).
Environment Variables
Section titled “Environment Variables”You can skip stored credentials entirely by setting these environment variables:
| Variable | Description |
|---|---|
CONFLUENCE_DOMAIN | Confluence subdomain (e.g., mycompany) |
CONFLUENCE_EMAIL | Atlassian account email |
CONFLUENCE_API_TOKEN | Atlassian API token |
Environment variables take precedence over stored credentials.
Write Gating
Section titled “Write Gating”| Variable | Description |
|---|---|
CTK_ENABLE_WRITES | Set to true to enable create, update, delete operations |
CTK_DISABLED_TOOLS | Comma-separated list of MCP tool names to disable |
MCP Client Configuration
Section titled “MCP Client Configuration”Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{ "mcpServers": { "ctk": { "command": "/Users/you/.local/bin/ctk", "args": ["mcp"], "env": { "CONFLUENCE_DOMAIN": "mycompany", "CONFLUENCE_EMAIL": "user@example.com", "CONFLUENCE_API_TOKEN": "ATATT3x...", "CTK_ENABLE_WRITES": "true" } } }}Add to .cursor/mcp.json in your project root:
{ "mcpServers": { "ctk": { "command": "/Users/you/.local/bin/ctk", "args": ["mcp"], "env": { "CONFLUENCE_DOMAIN": "mycompany", "CONFLUENCE_EMAIL": "user@example.com", "CONFLUENCE_API_TOKEN": "ATATT3x...", "CTK_ENABLE_WRITES": "true" } } }}claude mcp add ctk -- /Users/you/.local/bin/ctk mcpSet env vars in your shell or .mise.local.toml before launching.
Check Status
Section titled “Check Status”ctk statusOutput:
Authenticated via stored credentials Domain: mycompany.atlassian.net Email: user@example.com Token: ATAT...3xFg Stored: 2025-01-15 10:30:00 File: /Users/you/.config/ctk/credentials.jsonLogout
Section titled “Logout”ctk logout