Skip to content

Commit c450a16

Browse files
authored
docs: update documentation for features added since v0.20.0 (#1095)
* docs: update documentation for features added since v0.20.0 Cover 9 user-facing changes across 11 files: New tools: jira_add_issues_to_sprint, confluence_move_page, confluence_get_page_diff, confluence_reply_to_comment Enhanced tools: jira_search (page_token), jira_get_field_options (contains/return_limit/values_only), confluence_search_user (group_name) Cross-cutting: tool count 68→72 (docs, README, docs.json), IGNORE_HEADER_AUTH env var, confluence_search_user platform note, generate_tool_docs.py CATEGORY_TOOLS mapping (incl. watcher tools) * docs: add one-of constraint warning for confluence_move_page params At least one of target_parent_id or target_space_key is required; omitting both raises ValueError. Mark both as No* and add Warning.
1 parent 507c84f commit c450a16

File tree

11 files changed

+149
-8
lines changed

11 files changed

+149
-8
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Documentation is also available in [llms.txt format](https://llmstxt.org/), whic
9595
| `jira_update_issue` - Update issues | `confluence_update_page` - Update pages |
9696
| `jira_transition_issue` - Change status | `confluence_add_comment` - Add comments |
9797

98-
**65 tools total** — See [Tools Reference](https://mcp-atlassian.soomiles.com/docs/tools-reference) for the complete list.
98+
**72 tools total** — See [Tools Reference](https://mcp-atlassian.soomiles.com/docs/tools-reference) for the complete list.
9999

100100
## Security
101101

docs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"theme": "mint",
44
"name": "MCP Atlassian",
55
"metadata": {
6-
"og:description": "MCP server for Atlassian Jira and Confluence — all 68 tools enabled by default"
6+
"og:description": "MCP server for Atlassian Jira and Confluence — all 72 tools enabled by default"
77
},
88
"seo": {
99
"indexHiddenPages": false

docs/compatibility.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ MCP Atlassian supports both Atlassian Cloud and Server/Data Center deployments,
122122
| `jira_get_issue_proforma_forms` | Yes | No | Cloud-only (requires cloud_id for Forms API) |
123123
| `jira_get_service_desk_queues` | Yes | Yes | Requires Jira Service Management |
124124
| `confluence_get_page_views` | Yes | No | Cloud-only analytics API |
125+
| `confluence_search_user` | Yes (CQL) | Yes (group member fallback) | Server/DC uses group member API; specify `group_name` |
125126

126127
### Content Format Differences
127128

docs/configuration.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ This guide covers IDE integration, environment variables, and advanced configura
155155
| `ATLASSIAN_OAUTH_ALLOWED_CLIENT_REDIRECT_URIS` | Comma-separated allowed redirect URI patterns for DCR clients |
156156
| `ATLASSIAN_OAUTH_ALLOWED_GRANT_TYPES` | Comma-separated grant types allowed during DCR |
157157
| `ATLASSIAN_OAUTH_REQUIRE_CONSENT` | Require local consent page before upstream redirect (`true`/`false`) |
158+
| `IGNORE_HEADER_AUTH` | Bypass proxy-injected auth headers. For GCP Cloud Run, AWS ALB deployments where load balancers inject Authorization headers (`true`/`false`) |
158159

159160
See [.env.example](https://github.com/sooperset/mcp-atlassian/blob/main/.env.example) for all available options.
160161

docs/tools-reference.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
title: "Tools Reference"
3-
description: "Overview of all 68 MCP tools for Jira and Confluence — organized by category with quick links"
3+
description: "Overview of all 72 MCP tools for Jira and Confluence — organized by category with quick links"
44
---
55

6-
MCP Atlassian provides **68 tools** for interacting with Jira and Confluence. Tools are organized by category below.
6+
MCP Atlassian provides **72 tools** for interacting with Jira and Confluence. Tools are organized by category below.
77

88
## Jira Tools
99

@@ -66,7 +66,7 @@ Toolsets group related tools for easier management via `TOOLSETS` env var or `--
6666
| `jira_comments` | Yes | `jira_add_comment`, `jira_edit_comment` |
6767
| `jira_transitions` | Yes | `jira_get_transitions`, `jira_transition_issue` |
6868
| `jira_projects` | No | `jira_get_all_projects`, `jira_get_project_versions`, `jira_get_project_components`, `jira_create_version`, `jira_batch_create_versions` |
69-
| `jira_agile` | No | `jira_get_agile_boards`, `jira_get_board_issues`, `jira_get_sprints_from_board`, `jira_get_sprint_issues`, `jira_create_sprint`, `jira_update_sprint` |
69+
| `jira_agile` | No | `jira_get_agile_boards`, `jira_get_board_issues`, `jira_get_sprints_from_board`, `jira_get_sprint_issues`, `jira_create_sprint`, `jira_update_sprint`, `jira_add_issues_to_sprint` |
7070
| `jira_links` | No | `jira_get_link_types`, `jira_link_to_epic`, `jira_create_issue_link`, `jira_create_remote_issue_link`, `jira_remove_issue_link` |
7171
| `jira_worklog` | No | `jira_get_worklog`, `jira_add_worklog` |
7272
| `jira_attachments` | No | `jira_download_attachments`, `jira_get_issue_images` |
@@ -81,8 +81,8 @@ Toolsets group related tools for easier management via `TOOLSETS` env var or `--
8181

8282
| Toolset | Core | Tools |
8383
|---------|:----:|-------|
84-
| `confluence_pages` | Yes | `confluence_search`, `confluence_get_page`, `confluence_get_page_children`, `confluence_get_page_history`, `confluence_create_page`, `confluence_update_page`, `confluence_delete_page` |
85-
| `confluence_comments` | Yes | `confluence_get_comments`, `confluence_add_comment` |
84+
| `confluence_pages` | Yes | `confluence_search`, `confluence_get_page`, `confluence_get_page_children`, `confluence_get_page_history`, `confluence_create_page`, `confluence_update_page`, `confluence_delete_page`, `confluence_move_page`, `confluence_get_page_diff` |
85+
| `confluence_comments` | Yes | `confluence_get_comments`, `confluence_add_comment`, `confluence_reply_to_comment` |
8686
| `confluence_labels` | No | `confluence_get_labels`, `confluence_add_label` |
8787
| `confluence_users` | No | `confluence_search_user` |
8888
| `confluence_analytics` | No | `confluence_get_page_views` |
@@ -93,7 +93,7 @@ Toolsets group related tools for easier management via `TOOLSETS` env var or `--
9393
# To restrict to core toolsets plus specific extras:
9494
TOOLSETS=default,jira_agile,jira_attachments
9595

96-
# Enable all toolsets (68 tools)
96+
# Enable all toolsets (72 tools)
9797
TOOLSETS=all
9898

9999
# Command line

docs/tools/confluence-comments.mdx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,32 @@ Supports Markdown formatting. Comments are added to the page's comment section.
2626
</Tip>
2727

2828

29+
---
30+
31+
### Reply to Comment
32+
33+
Reply to an existing comment thread on a Confluence page.
34+
35+
<Note>This is a **write** tool. Disabled when `READ_ONLY_MODE=true`.</Note>
36+
37+
**Parameters:**
38+
39+
| Parameter | Type | Required | Description |
40+
|-----------|------|----------|-------------|
41+
| `comment_id` | `string` | Yes | The ID of the parent comment to reply to |
42+
| `body` | `string` | Yes | The reply content in Markdown format |
43+
44+
**Example:**
45+
46+
```json
47+
{"comment_id": "67890", "body": "Thanks for the feedback! I've updated the section."}
48+
```
49+
50+
<Tip>
51+
Get comment IDs from `confluence_get_comments`. Replies are threaded under the parent comment.
52+
</Tip>
53+
54+
2955
---
3056

3157
### Get Comments

docs/tools/confluence-pages.mdx

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,61 @@ Get a historical version of a specific Confluence page.
135135
| `version` | `integer` | Yes | The version number of the page to retrieve |
136136
| `convert_to_markdown` | `boolean` | No | Whether to convert page to markdown (true) or keep it in raw HTML format (false). Raw HTML can reveal macros (like dates) not visible in markdown, but CAUTION: using HTML significantly increases token usage in AI responses. |
137137

138+
---
139+
140+
### Move Page
141+
142+
Move a Confluence page to a new parent or space.
143+
144+
<Note>This is a **write** tool. Disabled when `READ_ONLY_MODE=true`.</Note>
145+
146+
**Parameters:**
147+
148+
| Parameter | Type | Required | Description |
149+
|-----------|------|----------|-------------|
150+
| `page_id` | `string` | Yes | ID of the page to move |
151+
| `target_parent_id` | `string` | No* | Target parent page ID. If omitted with `target_space_key`, moves to space root. |
152+
| `target_space_key` | `string` | No* | Target space key for cross-space moves |
153+
| `position` | `string` | No | Position: 'append' (default, move as child of target), 'above' (move before target as sibling), or 'below' (move after target as sibling) |
154+
155+
**Example:**
156+
157+
```json
158+
{"page_id": "12345678", "target_parent_id": "98765432"}
159+
```
160+
161+
<Warning>
162+
At least one of `target_parent_id` or `target_space_key` must be provided.
163+
</Warning>
164+
165+
<Tip>
166+
Use `target_space_key` to move pages between spaces. Omit `target_parent_id` with a space key to move to the space root.
167+
</Tip>
168+
169+
170+
---
171+
172+
### Get Page Diff
173+
174+
Get a unified diff between two versions of a Confluence page.
175+
176+
**Parameters:**
177+
178+
| Parameter | Type | Required | Description |
179+
|-----------|------|----------|-------------|
180+
| `page_id` | `string` | Yes | Confluence page ID (numeric ID, can be found in the page URL). For example, in 'https://example.atlassian.net/wiki/spaces/TEAM/pages/123456789/Page+Title', the page ID is '123456789'. |
181+
| `from_version` | `integer` | Yes | Source version number (>=1) |
182+
| `to_version` | `integer` | Yes | Target version number (>=1) |
183+
184+
**Example:**
185+
186+
```json
187+
{"page_id": "12345678", "from_version": 1, "to_version": 3}
188+
```
189+
190+
<Tip>
191+
Use `confluence_get_page_history` to discover available version numbers. The diff is in unified format, showing additions and removals between versions.
192+
</Tip>
193+
194+
138195
---

docs/tools/confluence-search.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,10 @@ Search Confluence users using CQL.
4242
|-----------|------|----------|-------------|
4343
| `query` | `string` | Yes | Search query - a CQL query string for user search. Examples of CQL: - Basic user lookup by full name: 'user.fullname ~ "First Last"' Note: Special identifiers need proper quoting in CQL: personal space keys (e.g., "~username"), reserved words, numeric IDs, and identifiers with special characters. |
4444
| `limit` | `integer` | No | Maximum number of results (1-50) |
45+
| `group_name` | `string` | No | Group to search within on Server/DC instances (default: 'confluence-users'). Ignored on Cloud. |
46+
47+
<Tip>
48+
On Server/DC, user search falls back to group member enumeration. Use `group_name` to search within a specific group if the default 'confluence-users' doesn't include all users.
49+
</Tip>
4550

4651
---

docs/tools/jira-agile.mdx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,30 @@ Update jira sprint.
121121
| `end_date` | `string` | No | (Optional) New end date for the sprint |
122122
| `goal` | `string` | No | (Optional) New goal for the sprint |
123123

124+
---
125+
126+
### Add Issues to Sprint
127+
128+
Add issues to a Jira sprint.
129+
130+
<Note>This is a **write** tool. Disabled when `READ_ONLY_MODE=true`.</Note>
131+
132+
**Parameters:**
133+
134+
| Parameter | Type | Required | Description |
135+
|-----------|------|----------|-------------|
136+
| `sprint_id` | `string` | Yes | Sprint ID to add issues to |
137+
| `issue_keys` | `string` | Yes | Comma-separated issue keys (e.g., 'PROJ-1,PROJ-2') |
138+
139+
**Example:**
140+
141+
```json
142+
{"sprint_id": "42", "issue_keys": "PROJ-1,PROJ-2,PROJ-3"}
143+
```
144+
145+
<Tip>
146+
Get sprint IDs from `jira_get_sprints_from_board`. Issue keys are validated server-side — invalid keys will cause an error.
147+
</Tip>
148+
149+
124150
---

docs/tools/jira-search-fields.mdx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Search Jira issues using JQL (Jira Query Language).
1717
| `start_at` | `integer` | No | Starting index for pagination (0-based) |
1818
| `projects_filter` | `string` | No | (Optional) Comma-separated list of project keys to filter results by. Overrides the environment variable JIRA_PROJECTS_FILTER if provided. |
1919
| `expand` | `string` | No | (Optional) fields to expand. Examples: 'renderedFields', 'transitions', 'changelog' |
20+
| `page_token` | `string` | No | Pagination token from a previous search result. Cloud only — Server/DC uses `start_at` for pagination. |
2021
**Example:**
2122

2223
```json
@@ -32,6 +33,10 @@ Always use `ORDER BY` for deterministic results. Use `fields` parameter to limit
3233
Some JQL functions (e.g., `issueHistory()`) are Cloud-only.
3334
</Warning>
3435

36+
<Tip>
37+
Cloud supports cursor-based pagination via `page_token` for deterministic results across large datasets. The token is returned in the `next_page_token` field of search results.
38+
</Tip>
39+
3540

3641
---
3742

@@ -71,5 +76,18 @@ Get allowed option values for a custom field.
7176
| `context_id` | `string` | No | Field context ID (Cloud only). If omitted, auto-resolves to the global context. |
7277
| `project_key` | `string` | No | Project key (required for Server/DC). Example: 'PROJ' |
7378
| `issue_type` | `string` | No | Issue type name (required for Server/DC). Example: 'Bug' |
79+
| `contains` | `string` | No | Case-insensitive substring filter on option values. Also matches child values in cascading selects. |
80+
| `return_limit` | `integer` | No | Maximum number of results to return (applied after filtering). |
81+
| `values_only` | `boolean` | No | If true, return only value strings in a compact JSON format instead of full option objects. |
82+
83+
**Example:**
84+
85+
```json
86+
{"field_id": "customfield_10001", "contains": "high", "return_limit": 5, "values_only": true}
87+
```
88+
89+
<Tip>
90+
Use `contains` to filter large option lists (e.g., hundreds of values). Combine with `values_only: true` for a compact response.
91+
</Tip>
7492

7593
---

0 commit comments

Comments
 (0)