@softspark/confluence-mcp 1.12.0 → 1.13.0
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 +26 -2
- package/dist/cli.js +40 -38
- package/dist/index.d.ts +62 -1
- package/dist/index.js +41 -39
- package/package.json +4 -3
- package/templates-system/pages/decision-record.md +30 -0
- package/templates-system/pages/incident-review.md +45 -0
- package/templates-system/pages/runbook.md +40 -0
package/README.md
CHANGED
|
@@ -3,13 +3,20 @@
|
|
|
3
3
|
> MCP server for Confluence Cloud -- pages, blog posts, comments, labels, attachments, restrictions and whiteboards via the Model Context Protocol.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@softspark/confluence-mcp)
|
|
6
|
-
[](../../CHANGELOG.md)
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
|
|
9
9
|
Part of the [SoftSpark Atlassian MCP workspace](https://github.com/softspark/jira-mcp), alongside [`@softspark/jira-mcp`](../jira-mcp).
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
## What's New in v1.13.0
|
|
14
|
+
|
|
15
|
+
- Page templates: `list_page_templates` and `create_page` with `template_id` plus `variables`. Three ship with the package, and your own go in `~/.softspark/jira-mcp/templates/pages/`.
|
|
16
|
+
- Fixed: `space add` rejected any space key that was not all uppercase, which is most of them. Confluence keeps the case a space was created with (`DevOps`, `MTPapp`), and personal spaces start with `~`.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
13
20
|
It reads the same `~/.softspark/jira-mcp/config.json` and the same `credentials.json` as `@softspark/jira-mcp`: one Atlassian site serves both products from the same host, so the API token you already have works for both.
|
|
14
21
|
|
|
15
22
|
The two servers stay separate on purpose. Merging them would put near-homonyms (`search_tasks` next to `search_pages`, `get_task_details` next to `get_page`) in one tool list, which makes tool selection worse. Register whichever you need, or both.
|
|
@@ -66,6 +73,8 @@ Register it alongside the Jira server:
|
|
|
66
73
|
| `confluence-mcp space set-language <key> <lang>` | Set the content language for a space |
|
|
67
74
|
| `confluence-mcp space set-format <key> <format>` | Set the body format for a space (`markdown` or `storage`) |
|
|
68
75
|
|
|
76
|
+
Space keys keep the case Confluence stored them with: `DevOps` is not `DEVOPS`. Personal space keys start with `~`.
|
|
77
|
+
|
|
69
78
|
## Confluence tools
|
|
70
79
|
|
|
71
80
|
`space_key` is optional on every tool: it falls back to `default_space`, then to the only configured space. It becomes required only when several spaces are configured without a default, where guessing would risk writing into the wrong space.
|
|
@@ -78,7 +87,8 @@ Register it alongside the Jira server:
|
|
|
78
87
|
| `get_page` | Read a page; body in the space format, or override with `body_format` | `page_id`, `body_format?`, `space_key?` |
|
|
79
88
|
| `list_space_pages` | List the pages in a space | `space_key?`, `limit?` |
|
|
80
89
|
| `get_page_children` | List direct child pages, for walking the tree | `page_id`, `space_key?`, `limit?` |
|
|
81
|
-
| `
|
|
90
|
+
| `list_page_templates` | List page templates usable in the space | `all_formats?`, `space_key?` |
|
|
91
|
+
| `create_page` | Create a page from a template, markdown, or storage XHTML | `template_id?`, `variables?`, `title?`, `content?`, `storage?`, `parent_id?` |
|
|
82
92
|
| `update_page` | Update title, body or parent; an untouched body is never rewritten | `page_id`, `title?`, `content?`, `storage?`, `parent_id?`, `allow_markup_loss?` |
|
|
83
93
|
| `move_page` | Re-parent a page, across spaces with `cross_space` | `page_id`, `parent_id`, `position?`, `cross_space?` |
|
|
84
94
|
| `delete_page` | Move a page to the trash | `page_id`, `user_approved`, `space_key?` |
|
|
@@ -156,6 +166,20 @@ In config.json, per space or as a global default:
|
|
|
156
166
|
|
|
157
167
|
If your space is managed as code (HTML files pushed via the REST API, as `sync.py` does), it is a `storage` space. Set it before pointing an assistant at it.
|
|
158
168
|
|
|
169
|
+
## Page templates
|
|
170
|
+
|
|
171
|
+
`list_page_templates` shows what is available for a space, filtered to its body format because a storage template cannot render into a markdown space or the reverse. `create_page` then takes `template_id` and `variables`; the template supplies the title, the body and the format, so do not also pass `title`, `content` or `storage`.
|
|
172
|
+
|
|
173
|
+
| ID | Format | Use for |
|
|
174
|
+
|----|--------|---------|
|
|
175
|
+
| `runbook` | markdown | Operational procedure: when to run it, prerequisites, steps, verification, rollback |
|
|
176
|
+
| `incident-review` | markdown | Blameless post-incident review: impact, timeline, root cause, actions |
|
|
177
|
+
| `decision-record` | storage | ADR built from Confluence status and info macros |
|
|
178
|
+
|
|
179
|
+
Variables use `{{name}}`, and `{{#name}}...{{/name}}` keeps a block only when the variable is supplied. Both the title and the body are rendered, so a variable can appear in either.
|
|
180
|
+
|
|
181
|
+
Drop your own templates in `~/.softspark/jira-mcp/templates/pages/*.md`; one with the same `id` as a shipped template replaces it. A malformed file is skipped rather than breaking startup.
|
|
182
|
+
|
|
159
183
|
## Documentation
|
|
160
184
|
|
|
161
185
|
- [Confluence reference](../../kb/reference/confluence.md) -- architecture, API split, ADF and storage formats, restrictions, version conflicts.
|