Skip to content

Commit 5062dd6

Browse files
waleedlatif1claude
andcommitted
feat(confluence): add missing tools for tasks, blog posts, spaces, descendants, permissions, and properties
Add 16 new Confluence operations: list/get/update tasks, update/delete blog posts, create/update/delete spaces, get page descendants, list space permissions, list/create/delete space properties. Includes API routes, tool definitions, block config wiring, OAuth scopes, and generated docs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 209550c commit 5062dd6

File tree

25 files changed

+3446
-4
lines changed

25 files changed

+3446
-4
lines changed

apps/docs/content/docs/en/tools/confluence.mdx

Lines changed: 357 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,6 +1013,85 @@ Get details about a specific Confluence space.
10131013
|`value` | string | Description text content |
10141014
|`representation` | string | Content representation format \(e.g., plain, view, storage\) |
10151015

1016+
### `confluence_create_space`
1017+
1018+
Create a new Confluence space.
1019+
1020+
#### Input
1021+
1022+
| Parameter | Type | Required | Description |
1023+
| --------- | ---- | -------- | ----------- |
1024+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1025+
| `name` | string | Yes | Name for the new space |
1026+
| `key` | string | Yes | Unique key for the space \(uppercase, no spaces\) |
1027+
| `description` | string | No | Description for the new space |
1028+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1029+
1030+
#### Output
1031+
1032+
| Parameter | Type | Description |
1033+
| --------- | ---- | ----------- |
1034+
| `ts` | string | ISO 8601 timestamp of the operation |
1035+
| `spaceId` | string | Created space ID |
1036+
| `name` | string | Space name |
1037+
| `key` | string | Space key |
1038+
| `type` | string | Space type |
1039+
| `status` | string | Space status |
1040+
| `url` | string | URL to view the space |
1041+
| `homepageId` | string | Homepage ID |
1042+
| `description` | object | Space description |
1043+
|`value` | string | Description text content |
1044+
|`representation` | string | Content representation format \(e.g., plain, view, storage\) |
1045+
1046+
### `confluence_update_space`
1047+
1048+
Update a Confluence space name or description.
1049+
1050+
#### Input
1051+
1052+
| Parameter | Type | Required | Description |
1053+
| --------- | ---- | -------- | ----------- |
1054+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1055+
| `spaceId` | string | Yes | ID of the space to update |
1056+
| `name` | string | No | New name for the space |
1057+
| `description` | string | No | New description for the space |
1058+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1059+
1060+
#### Output
1061+
1062+
| Parameter | Type | Description |
1063+
| --------- | ---- | ----------- |
1064+
| `ts` | string | ISO 8601 timestamp of the operation |
1065+
| `spaceId` | string | Updated space ID |
1066+
| `name` | string | Space name |
1067+
| `key` | string | Space key |
1068+
| `type` | string | Space type |
1069+
| `status` | string | Space status |
1070+
| `url` | string | URL to view the space |
1071+
| `description` | object | Space description |
1072+
|`value` | string | Description text content |
1073+
|`representation` | string | Content representation format \(e.g., plain, view, storage\) |
1074+
1075+
### `confluence_delete_space`
1076+
1077+
Delete a Confluence space.
1078+
1079+
#### Input
1080+
1081+
| Parameter | Type | Required | Description |
1082+
| --------- | ---- | -------- | ----------- |
1083+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1084+
| `spaceId` | string | Yes | ID of the space to delete |
1085+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1086+
1087+
#### Output
1088+
1089+
| Parameter | Type | Description |
1090+
| --------- | ---- | ----------- |
1091+
| `ts` | string | ISO 8601 timestamp of the operation |
1092+
| `spaceId` | string | Deleted space ID |
1093+
| `deleted` | boolean | Deletion status |
1094+
10161095
### `confluence_list_spaces`
10171096

10181097
List all Confluence spaces accessible to the user.
@@ -1045,6 +1124,284 @@ List all Confluence spaces accessible to the user.
10451124
|`representation` | string | Content representation format \(e.g., plain, view, storage\) |
10461125
| `nextCursor` | string | Cursor for fetching the next page of results |
10471126

1127+
### `confluence_list_space_properties`
1128+
1129+
List properties on a Confluence space.
1130+
1131+
#### Input
1132+
1133+
| Parameter | Type | Required | Description |
1134+
| --------- | ---- | -------- | ----------- |
1135+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1136+
| `spaceId` | string | Yes | Space ID to list properties for |
1137+
| `limit` | number | No | Maximum number of properties to return \(default: 50, max: 250\) |
1138+
| `cursor` | string | No | Pagination cursor from previous response |
1139+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1140+
1141+
#### Output
1142+
1143+
| Parameter | Type | Description |
1144+
| --------- | ---- | ----------- |
1145+
| `ts` | string | ISO 8601 timestamp of the operation |
1146+
| `properties` | array | Array of space properties |
1147+
|`id` | string | Property ID |
1148+
|`key` | string | Property key |
1149+
|`value` | json | Property value |
1150+
| `spaceId` | string | Space ID |
1151+
| `nextCursor` | string | Cursor for fetching the next page of results |
1152+
1153+
### `confluence_create_space_property`
1154+
1155+
Create a property on a Confluence space.
1156+
1157+
#### Input
1158+
1159+
| Parameter | Type | Required | Description |
1160+
| --------- | ---- | -------- | ----------- |
1161+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1162+
| `spaceId` | string | Yes | Space ID to create the property on |
1163+
| `key` | string | Yes | Property key/name |
1164+
| `value` | json | No | Property value \(JSON\) |
1165+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1166+
1167+
#### Output
1168+
1169+
| Parameter | Type | Description |
1170+
| --------- | ---- | ----------- |
1171+
| `ts` | string | ISO 8601 timestamp of the operation |
1172+
| `propertyId` | string | Created property ID |
1173+
| `key` | string | Property key |
1174+
| `value` | json | Property value |
1175+
| `spaceId` | string | Space ID |
1176+
1177+
### `confluence_delete_space_property`
1178+
1179+
Delete a property from a Confluence space.
1180+
1181+
#### Input
1182+
1183+
| Parameter | Type | Required | Description |
1184+
| --------- | ---- | -------- | ----------- |
1185+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1186+
| `spaceId` | string | Yes | Space ID the property belongs to |
1187+
| `propertyId` | string | Yes | Property ID to delete |
1188+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1189+
1190+
#### Output
1191+
1192+
| Parameter | Type | Description |
1193+
| --------- | ---- | ----------- |
1194+
| `ts` | string | ISO 8601 timestamp of the operation |
1195+
| `spaceId` | string | Space ID |
1196+
| `propertyId` | string | Deleted property ID |
1197+
| `deleted` | boolean | Deletion status |
1198+
1199+
### `confluence_list_space_permissions`
1200+
1201+
List permissions for a Confluence space.
1202+
1203+
#### Input
1204+
1205+
| Parameter | Type | Required | Description |
1206+
| --------- | ---- | -------- | ----------- |
1207+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1208+
| `spaceId` | string | Yes | Space ID to list permissions for |
1209+
| `limit` | number | No | Maximum number of permissions to return \(default: 50, max: 250\) |
1210+
| `cursor` | string | No | Pagination cursor from previous response |
1211+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1212+
1213+
#### Output
1214+
1215+
| Parameter | Type | Description |
1216+
| --------- | ---- | ----------- |
1217+
| `ts` | string | ISO 8601 timestamp of the operation |
1218+
| `permissions` | array | Array of space permissions |
1219+
|`id` | string | Permission ID |
1220+
|`principalType` | string | Principal type \(user, group, role\) |
1221+
|`principalId` | string | Principal ID |
1222+
|`operationKey` | string | Operation key \(read, create, delete, etc.\) |
1223+
|`operationTargetType` | string | Target type \(page, blogpost, space, etc.\) |
1224+
|`anonymousAccess` | boolean | Whether anonymous access is allowed |
1225+
|`unlicensedAccess` | boolean | Whether unlicensed access is allowed |
1226+
| `spaceId` | string | Space ID |
1227+
| `nextCursor` | string | Cursor for fetching the next page of results |
1228+
1229+
### `confluence_get_page_descendants`
1230+
1231+
Get all descendants of a Confluence page recursively.
1232+
1233+
#### Input
1234+
1235+
| Parameter | Type | Required | Description |
1236+
| --------- | ---- | -------- | ----------- |
1237+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1238+
| `pageId` | string | Yes | Page ID to get descendants for |
1239+
| `limit` | number | No | Maximum number of descendants to return \(default: 50, max: 250\) |
1240+
| `cursor` | string | No | Pagination cursor from previous response |
1241+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1242+
1243+
#### Output
1244+
1245+
| Parameter | Type | Description |
1246+
| --------- | ---- | ----------- |
1247+
| `ts` | string | ISO 8601 timestamp of the operation |
1248+
| `descendants` | array | Array of descendant pages |
1249+
|`id` | string | Page ID |
1250+
|`title` | string | Page title |
1251+
|`status` | string | Page status |
1252+
|`spaceId` | string | Space ID |
1253+
|`parentId` | string | Parent page ID |
1254+
|`childPosition` | number | Position among siblings |
1255+
| `pageId` | string | Parent page ID |
1256+
| `nextCursor` | string | Cursor for fetching the next page of results |
1257+
1258+
### `confluence_list_tasks`
1259+
1260+
List inline tasks from Confluence. Optionally filter by page, space, assignee, or status.
1261+
1262+
#### Input
1263+
1264+
| Parameter | Type | Required | Description |
1265+
| --------- | ---- | -------- | ----------- |
1266+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1267+
| `pageId` | string | No | Filter tasks by page ID |
1268+
| `spaceId` | string | No | Filter tasks by space ID |
1269+
| `assignedTo` | string | No | Filter tasks by assignee account ID |
1270+
| `status` | string | No | Filter tasks by status \(complete or incomplete\) |
1271+
| `limit` | number | No | Maximum number of tasks to return \(default: 50, max: 250\) |
1272+
| `cursor` | string | No | Pagination cursor from previous response |
1273+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1274+
1275+
#### Output
1276+
1277+
| Parameter | Type | Description |
1278+
| --------- | ---- | ----------- |
1279+
| `ts` | string | ISO 8601 timestamp of the operation |
1280+
| `tasks` | array | Array of Confluence tasks |
1281+
|`id` | string | Task ID |
1282+
|`localId` | string | Local task ID |
1283+
|`spaceId` | string | Space ID |
1284+
|`pageId` | string | Page ID |
1285+
|`blogPostId` | string | Blog post ID |
1286+
|`status` | string | Task status \(complete or incomplete\) |
1287+
|`createdBy` | string | Creator account ID |
1288+
|`assignedTo` | string | Assignee account ID |
1289+
|`completedBy` | string | Completer account ID |
1290+
|`createdAt` | string | Creation timestamp |
1291+
|`updatedAt` | string | Last update timestamp |
1292+
|`dueAt` | string | Due date |
1293+
|`completedAt` | string | Completion timestamp |
1294+
| `nextCursor` | string | Cursor for fetching the next page of results |
1295+
1296+
### `confluence_get_task`
1297+
1298+
Get a specific Confluence inline task by ID.
1299+
1300+
#### Input
1301+
1302+
| Parameter | Type | Required | Description |
1303+
| --------- | ---- | -------- | ----------- |
1304+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1305+
| `taskId` | string | Yes | The ID of the task to retrieve |
1306+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1307+
1308+
#### Output
1309+
1310+
| Parameter | Type | Description |
1311+
| --------- | ---- | ----------- |
1312+
| `ts` | string | ISO 8601 timestamp of the operation |
1313+
| `id` | string | Task ID |
1314+
| `localId` | string | Local task ID |
1315+
| `spaceId` | string | Space ID |
1316+
| `pageId` | string | Page ID |
1317+
| `blogPostId` | string | Blog post ID |
1318+
| `status` | string | Task status \(complete or incomplete\) |
1319+
| `createdBy` | string | Creator account ID |
1320+
| `assignedTo` | string | Assignee account ID |
1321+
| `completedBy` | string | Completer account ID |
1322+
| `createdAt` | string | Creation timestamp |
1323+
| `updatedAt` | string | Last update timestamp |
1324+
| `dueAt` | string | Due date |
1325+
| `completedAt` | string | Completion timestamp |
1326+
1327+
### `confluence_update_task`
1328+
1329+
Update the status of a Confluence inline task (complete or incomplete).
1330+
1331+
#### Input
1332+
1333+
| Parameter | Type | Required | Description |
1334+
| --------- | ---- | -------- | ----------- |
1335+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1336+
| `taskId` | string | Yes | The ID of the task to update |
1337+
| `status` | string | Yes | New status for the task \(complete or incomplete\) |
1338+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1339+
1340+
#### Output
1341+
1342+
| Parameter | Type | Description |
1343+
| --------- | ---- | ----------- |
1344+
| `ts` | string | ISO 8601 timestamp of the operation |
1345+
| `id` | string | Task ID |
1346+
| `localId` | string | Local task ID |
1347+
| `spaceId` | string | Space ID |
1348+
| `pageId` | string | Page ID |
1349+
| `blogPostId` | string | Blog post ID |
1350+
| `status` | string | Updated task status |
1351+
| `createdBy` | string | Creator account ID |
1352+
| `assignedTo` | string | Assignee account ID |
1353+
| `completedBy` | string | Completer account ID |
1354+
| `createdAt` | string | Creation timestamp |
1355+
| `updatedAt` | string | Last update timestamp |
1356+
| `dueAt` | string | Due date |
1357+
| `completedAt` | string | Completion timestamp |
1358+
1359+
### `confluence_update_blogpost`
1360+
1361+
Update an existing Confluence blog post title and/or content.
1362+
1363+
#### Input
1364+
1365+
| Parameter | Type | Required | Description |
1366+
| --------- | ---- | -------- | ----------- |
1367+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1368+
| `blogPostId` | string | Yes | The ID of the blog post to update |
1369+
| `title` | string | No | New title for the blog post |
1370+
| `content` | string | No | New content for the blog post in storage format |
1371+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1372+
1373+
#### Output
1374+
1375+
| Parameter | Type | Description |
1376+
| --------- | ---- | ----------- |
1377+
| `ts` | string | ISO 8601 timestamp of the operation |
1378+
| `blogPostId` | string | Updated blog post ID |
1379+
| `title` | string | Blog post title |
1380+
| `status` | string | Blog post status |
1381+
| `spaceId` | string | Space ID |
1382+
| `version` | json | Version information |
1383+
| `url` | string | URL to view the blog post |
1384+
1385+
### `confluence_delete_blogpost`
1386+
1387+
Delete a Confluence blog post.
1388+
1389+
#### Input
1390+
1391+
| Parameter | Type | Required | Description |
1392+
| --------- | ---- | -------- | ----------- |
1393+
| `domain` | string | Yes | Your Confluence domain \(e.g., yourcompany.atlassian.net\) |
1394+
| `blogPostId` | string | Yes | The ID of the blog post to delete |
1395+
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |
1396+
1397+
#### Output
1398+
1399+
| Parameter | Type | Description |
1400+
| --------- | ---- | ----------- |
1401+
| `ts` | string | ISO 8601 timestamp of the operation |
1402+
| `blogPostId` | string | Deleted blog post ID |
1403+
| `deleted` | boolean | Deletion status |
1404+
10481405
### `confluence_get_user`
10491406

10501407
Get a Confluence user\

0 commit comments

Comments
 (0)