From a070d87d85814b9408b8b5bb6e5d69cd27de67be Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:42:52 -0800 Subject: [PATCH 01/16] feat(methods): add slackbot.skills.create method example Adds an example that calls slackbot.skills.create with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 4 ++ .../slackbot/skills/SlackbotSkillsCreate.java | 39 +++++++++++++++++++ .../main/java/slackbot/skills/manifest.json | 23 +++++++++++ 3 files changed, 66 insertions(+) create mode 100644 methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java create mode 100644 methods/src/main/java/slackbot/skills/manifest.json diff --git a/methods/README.md b/methods/README.md index a60fc01..2f4491a 100644 --- a/methods/README.md +++ b/methods/README.md @@ -43,3 +43,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[chat.postMessage](https://docs.slack.dev/reference/methods/chat.postmessage)**: Sends a message to a channel. [Implementation](./src/main/java/chat/ChatPostMessage.java). +### slackbot + +- **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). + diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java new file mode 100644 index 0000000..86c79fe --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java @@ -0,0 +1,39 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsCreateRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsCreateResponse; +import com.slack.api.model.slackbot.SkillMcpServer; +import java.io.IOException; +import java.util.Arrays; + +public class SlackbotSkillsCreate { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.create method + SlackbotSkillsCreateRequest request = SlackbotSkillsCreateRequest.builder() + .displayName("Daily priorities") + .instructions("# Purpose\nSuggest the three most important things to work on today.") + .description("Reviews information from Slack and your calendar to suggest priorities for the day.") + .category("productivity") + .examplePrompt("Run {skill} for today") + .mcpServers(Arrays.asList(SkillMcpServer.builder() + .serviceType("app") + .appId("A0123ABCD") + .serverId("Amcp0456EFGH") + .build())) + .build(); + SlackbotSkillsCreateResponse response = methods.slackbotSkillsCreate(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/manifest.json b/methods/src/main/java/slackbot/skills/manifest.json new file mode 100644 index 0000000..5314b20 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/manifest.json @@ -0,0 +1,23 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"slackbot.skills\" methods" + }, + "features": { + "bot_user": { + "display_name": "Slack API Methods", + "always_online": true + } + }, + "oauth_config": { + "scopes": { + "bot": ["skills:read", "skills:write"], + "user": ["skills:read", "skills:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": true, + "token_rotation_enabled": false + } +} From 2c07720b9fc2058ec261ab7eee318c09116e3ef7 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:42:57 -0800 Subject: [PATCH 02/16] feat(methods): add slackbot.skills.info method example Adds an example that calls slackbot.skills.info with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../slackbot/skills/SlackbotSkillsInfo.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 methods/src/main/java/slackbot/skills/SlackbotSkillsInfo.java diff --git a/methods/README.md b/methods/README.md index 2f4491a..aeb341a 100644 --- a/methods/README.md +++ b/methods/README.md @@ -46,4 +46,5 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques ### slackbot - **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). +- **[slackbot.skills.info](https://docs.slack.dev/reference/methods/slackbot.skills.info)**: Returns one Slackbot skill, including its instructions. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsInfo.java). diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsInfo.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsInfo.java new file mode 100644 index 0000000..b28bfe6 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsInfo.java @@ -0,0 +1,27 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsInfoRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsInfoResponse; +import java.io.IOException; + +public class SlackbotSkillsInfo { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.info method + SlackbotSkillsInfoRequest request = + SlackbotSkillsInfoRequest.builder().skillId("F0123ABCD").build(); + SlackbotSkillsInfoResponse response = methods.slackbotSkillsInfo(request); + + // Inspect the response + System.out.println(response); + } +} From 71d23ee18d19423bc1d6a75cba7b254a0e684464 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:02 -0800 Subject: [PATCH 03/16] feat(methods): add slackbot.skills.update method example Adds an example that calls slackbot.skills.update with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../slackbot/skills/SlackbotSkillsUpdate.java | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java diff --git a/methods/README.md b/methods/README.md index aeb341a..a336d98 100644 --- a/methods/README.md +++ b/methods/README.md @@ -47,4 +47,5 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). - **[slackbot.skills.info](https://docs.slack.dev/reference/methods/slackbot.skills.info)**: Returns one Slackbot skill, including its instructions. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsInfo.java). +- **[slackbot.skills.update](https://docs.slack.dev/reference/methods/slackbot.skills.update)**: Changes a Slackbot skill's instructions or metadata. Only the inputs you send are changed; a call that changes nothing succeeds without writing. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsUpdate.java). diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java new file mode 100644 index 0000000..22bc3d0 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java @@ -0,0 +1,40 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsUpdateRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsUpdateResponse; +import com.slack.api.model.slackbot.SkillMcpServer; +import java.io.IOException; +import java.util.Arrays; + +public class SlackbotSkillsUpdate { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.update method + SlackbotSkillsUpdateRequest request = SlackbotSkillsUpdateRequest.builder() + .skillId("F0123ABCD") + .displayName("Daily priorities") + .instructions("# Purpose\nSuggest the three most important things to work on today.") + .description("Reviews information from Slack and your calendar to suggest priorities for the day.") + .category("productivity") + .examplePrompt("Run {skill} for today") + .mcpServers(Arrays.asList(SkillMcpServer.builder() + .serviceType("app") + .appId("A0123ABCD") + .serverId("Amcp0456EFGH") + .build())) + .build(); + SlackbotSkillsUpdateResponse response = methods.slackbotSkillsUpdate(request); + + // Inspect the response + System.out.println(response); + } +} From 5dba4f6167bea538e61ae351c5de3e2e05c6514f Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:07 -0800 Subject: [PATCH 04/16] feat(methods): add slackbot.skills.list method example Adds an example that calls slackbot.skills.list with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../slackbot/skills/SlackbotSkillsList.java | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 methods/src/main/java/slackbot/skills/SlackbotSkillsList.java diff --git a/methods/README.md b/methods/README.md index a336d98..4ccdaba 100644 --- a/methods/README.md +++ b/methods/README.md @@ -47,5 +47,6 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). - **[slackbot.skills.info](https://docs.slack.dev/reference/methods/slackbot.skills.info)**: Returns one Slackbot skill, including its instructions. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsInfo.java). +- **[slackbot.skills.list](https://docs.slack.dev/reference/methods/slackbot.skills.list)**: Lists Slackbot skills from the caller's point of view. Instructions are not included. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsList.java). - **[slackbot.skills.update](https://docs.slack.dev/reference/methods/slackbot.skills.update)**: Changes a Slackbot skill's instructions or metadata. Only the inputs you send are changed; a call that changes nothing succeeds without writing. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsUpdate.java). diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsList.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsList.java new file mode 100644 index 0000000..9a2dc25 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsList.java @@ -0,0 +1,30 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsListRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsListResponse; +import java.io.IOException; + +public class SlackbotSkillsList { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.list method + SlackbotSkillsListRequest request = SlackbotSkillsListRequest.builder() + .filter("library") + .category("productivity") + .limit(100) + .build(); + SlackbotSkillsListResponse response = methods.slackbotSkillsList(request); + + // Inspect the response + System.out.println(response); + } +} From 9a4acd144bc2794da3e3f327f98e0f17ab8d3889 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:11 -0800 Subject: [PATCH 05/16] feat(methods): add slackbot.skills.library.add method example Adds an example that calls slackbot.skills.library.add with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../library/SlackbotSkillsLibraryAdd.java | 27 +++++++++++++++++++ .../slackbot/skills/library/manifest.json | 23 ++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java create mode 100644 methods/src/main/java/slackbot/skills/library/manifest.json diff --git a/methods/README.md b/methods/README.md index 4ccdaba..e7dfab6 100644 --- a/methods/README.md +++ b/methods/README.md @@ -47,6 +47,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). - **[slackbot.skills.info](https://docs.slack.dev/reference/methods/slackbot.skills.info)**: Returns one Slackbot skill, including its instructions. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsInfo.java). +- **[slackbot.skills.library.add](https://docs.slack.dev/reference/methods/slackbot.skills.library.add)**: Turns a skill on in the caller's personal library. [Implementation](./src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java). - **[slackbot.skills.list](https://docs.slack.dev/reference/methods/slackbot.skills.list)**: Lists Slackbot skills from the caller's point of view. Instructions are not included. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsList.java). - **[slackbot.skills.update](https://docs.slack.dev/reference/methods/slackbot.skills.update)**: Changes a Slackbot skill's instructions or metadata. Only the inputs you send are changed; a call that changes nothing succeeds without writing. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsUpdate.java). diff --git a/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java b/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java new file mode 100644 index 0000000..5d5aa93 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java @@ -0,0 +1,27 @@ +package slackbot.skills.library; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.library.SlackbotSkillsLibraryAddRequest; +import com.slack.api.methods.response.slackbot.skills.library.SlackbotSkillsLibraryAddResponse; +import java.io.IOException; + +public class SlackbotSkillsLibraryAdd { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.library.add method + SlackbotSkillsLibraryAddRequest request = + SlackbotSkillsLibraryAddRequest.builder().skillId("F0123ABCD").build(); + SlackbotSkillsLibraryAddResponse response = methods.slackbotSkillsLibraryAdd(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/library/manifest.json b/methods/src/main/java/slackbot/skills/library/manifest.json new file mode 100644 index 0000000..f22a91c --- /dev/null +++ b/methods/src/main/java/slackbot/skills/library/manifest.json @@ -0,0 +1,23 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"slackbot.skills.library\" methods" + }, + "features": { + "bot_user": { + "display_name": "Slack API Methods", + "always_online": true + } + }, + "oauth_config": { + "scopes": { + "bot": ["skills:write"], + "user": ["skills:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": true, + "token_rotation_enabled": false + } +} From 91d25d659dc0153e5bdbc2c27c41f135d2b13265 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:16 -0800 Subject: [PATCH 06/16] feat(methods): add slackbot.skills.library.remove method example Adds an example that calls slackbot.skills.library.remove with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../library/SlackbotSkillsLibraryRemove.java | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java diff --git a/methods/README.md b/methods/README.md index e7dfab6..449f5c6 100644 --- a/methods/README.md +++ b/methods/README.md @@ -48,6 +48,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). - **[slackbot.skills.info](https://docs.slack.dev/reference/methods/slackbot.skills.info)**: Returns one Slackbot skill, including its instructions. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsInfo.java). - **[slackbot.skills.library.add](https://docs.slack.dev/reference/methods/slackbot.skills.library.add)**: Turns a skill on in the caller's personal library. [Implementation](./src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java). +- **[slackbot.skills.library.remove](https://docs.slack.dev/reference/methods/slackbot.skills.library.remove)**: Turns a skill off in the caller's personal library. [Implementation](./src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java). - **[slackbot.skills.list](https://docs.slack.dev/reference/methods/slackbot.skills.list)**: Lists Slackbot skills from the caller's point of view. Instructions are not included. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsList.java). - **[slackbot.skills.update](https://docs.slack.dev/reference/methods/slackbot.skills.update)**: Changes a Slackbot skill's instructions or metadata. Only the inputs you send are changed; a call that changes nothing succeeds without writing. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsUpdate.java). diff --git a/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java b/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java new file mode 100644 index 0000000..5b61a5c --- /dev/null +++ b/methods/src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java @@ -0,0 +1,28 @@ +package slackbot.skills.library; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.library.SlackbotSkillsLibraryRemoveRequest; +import com.slack.api.methods.response.slackbot.skills.library.SlackbotSkillsLibraryRemoveResponse; +import java.io.IOException; + +public class SlackbotSkillsLibraryRemove { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.library.remove method + SlackbotSkillsLibraryRemoveRequest request = SlackbotSkillsLibraryRemoveRequest.builder() + .skillId("F0123ABCD") + .build(); + SlackbotSkillsLibraryRemoveResponse response = methods.slackbotSkillsLibraryRemove(request); + + // Inspect the response + System.out.println(response); + } +} From e61fe526c8bf1aad3eff604cb12f215918fc104b Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:21 -0800 Subject: [PATCH 07/16] feat(methods): add admin.slackbot.skills.list method example Adds an example that calls admin.slackbot.skills.list with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 4 +++ .../skills/AdminSlackbotSkillsList.java | 35 +++++++++++++++++++ .../java/admin/slackbot/skills/manifest.json | 16 +++++++++ 3 files changed, 55 insertions(+) create mode 100644 methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java create mode 100644 methods/src/main/java/admin/slackbot/skills/manifest.json diff --git a/methods/README.md b/methods/README.md index 449f5c6..fcb4d9c 100644 --- a/methods/README.md +++ b/methods/README.md @@ -16,6 +16,10 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques ## What's on call +### admin + +- **[admin.slackbot.skills.list](https://docs.slack.dev/reference/methods/admin.slackbot.skills.list)**: Lists metadata for skills owned by the organization, including invite-only skills. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java). + ### agents - **[agents.conversations.archive](https://docs.slack.dev/reference/methods/agents.conversations.archive)**: Archive a code channel. [Implementation](./src/main/java/agents/conversations/AgentsConversationsArchive.java). diff --git a/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java new file mode 100644 index 0000000..a736a1b --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java @@ -0,0 +1,35 @@ +package admin.slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.slackbot.skills.AdminSlackbotSkillsListRequest; +import com.slack.api.methods.response.admin.slackbot.skills.AdminSlackbotSkillsListResponse; +import java.io.IOException; +import java.util.Arrays; + +public class AdminSlackbotSkillsList { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.slackbot.skills.list method + AdminSlackbotSkillsListRequest request = AdminSlackbotSkillsListRequest.builder() + .category("productivity") + .limit(100) + .creatorIds(Arrays.asList("U0123ABCD")) + .publishStatus("all") + .autoEnabledStatus("all") + .sort("name") + .sortDir("asc") + .build(); + AdminSlackbotSkillsListResponse response = methods.adminSlackbotSkillsList(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/admin/slackbot/skills/manifest.json b/methods/src/main/java/admin/slackbot/skills/manifest.json new file mode 100644 index 0000000..524e42e --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/manifest.json @@ -0,0 +1,16 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"admin.slackbot.skills\" methods" + }, + "oauth_config": { + "scopes": { + "user": ["admin.skills:read", "admin.skills:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": true, + "token_rotation_enabled": false + } +} From 140d1b6fb4f114c533306462f31c3345f63b230c Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:26 -0800 Subject: [PATCH 08/16] feat(methods): add admin.slackbot.skills.publish method example Adds an example that calls admin.slackbot.skills.publish with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../skills/AdminSlackbotSkillsPublish.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java diff --git a/methods/README.md b/methods/README.md index fcb4d9c..eb36de9 100644 --- a/methods/README.md +++ b/methods/README.md @@ -19,6 +19,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques ### admin - **[admin.slackbot.skills.list](https://docs.slack.dev/reference/methods/admin.slackbot.skills.list)**: Lists metadata for skills owned by the organization, including invite-only skills. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java). +- **[admin.slackbot.skills.publish](https://docs.slack.dev/reference/methods/admin.slackbot.skills.publish)**: Publishes Slackbot skills to an organization's catalog. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java). ### agents diff --git a/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java new file mode 100644 index 0000000..a32bfa4 --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java @@ -0,0 +1,29 @@ +package admin.slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.slackbot.skills.AdminSlackbotSkillsPublishRequest; +import com.slack.api.methods.response.admin.slackbot.skills.AdminSlackbotSkillsPublishResponse; +import java.io.IOException; +import java.util.Arrays; + +public class AdminSlackbotSkillsPublish { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.slackbot.skills.publish method + AdminSlackbotSkillsPublishRequest request = AdminSlackbotSkillsPublishRequest.builder() + .skillIds(Arrays.asList("F0123ABCD")) + .build(); + AdminSlackbotSkillsPublishResponse response = methods.adminSlackbotSkillsPublish(request); + + // Inspect the response + System.out.println(response); + } +} From 6e7e3e8b12b676e22a1d9a379eb5780eb22345ba Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:31 -0800 Subject: [PATCH 09/16] feat(methods): add admin.slackbot.skills.setAutoEnabled method example Adds an example that calls admin.slackbot.skills.setAutoEnabled with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../AdminSlackbotSkillsSetAutoEnabled.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java diff --git a/methods/README.md b/methods/README.md index eb36de9..5523222 100644 --- a/methods/README.md +++ b/methods/README.md @@ -20,6 +20,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[admin.slackbot.skills.list](https://docs.slack.dev/reference/methods/admin.slackbot.skills.list)**: Lists metadata for skills owned by the organization, including invite-only skills. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java). - **[admin.slackbot.skills.publish](https://docs.slack.dev/reference/methods/admin.slackbot.skills.publish)**: Publishes Slackbot skills to an organization's catalog. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java). +- **[admin.slackbot.skills.setAutoEnabled](https://docs.slack.dev/reference/methods/admin.slackbot.skills.setAutoEnabled)**: Sets who a Slackbot skill is automatically turned on for. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java). ### agents diff --git a/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java new file mode 100644 index 0000000..93c90a7 --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java @@ -0,0 +1,31 @@ +package admin.slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.slackbot.skills.AdminSlackbotSkillsSetAutoEnabledRequest; +import com.slack.api.methods.response.admin.slackbot.skills.AdminSlackbotSkillsSetAutoEnabledResponse; +import java.io.IOException; +import java.util.Arrays; + +public class AdminSlackbotSkillsSetAutoEnabled { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.slackbot.skills.setAutoEnabled method + AdminSlackbotSkillsSetAutoEnabledRequest request = AdminSlackbotSkillsSetAutoEnabledRequest.builder() + .skillId("F0123ABCD") + .permissionType("named_entities") + .usergroupIds(Arrays.asList("S0123ABCD")) + .build(); + AdminSlackbotSkillsSetAutoEnabledResponse response = methods.adminSlackbotSkillsSetAutoEnabled(request); + + // Inspect the response + System.out.println(response); + } +} From 7ce6d54d59a7dd4a827141f3ebcdb3c5436cfb5b Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:37 -0800 Subject: [PATCH 10/16] feat(methods): add admin.slackbot.skills.unpublish method example Adds an example that calls admin.slackbot.skills.unpublish with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../skills/AdminSlackbotSkillsUnpublish.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java diff --git a/methods/README.md b/methods/README.md index 5523222..e0d5daa 100644 --- a/methods/README.md +++ b/methods/README.md @@ -21,6 +21,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[admin.slackbot.skills.list](https://docs.slack.dev/reference/methods/admin.slackbot.skills.list)**: Lists metadata for skills owned by the organization, including invite-only skills. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java). - **[admin.slackbot.skills.publish](https://docs.slack.dev/reference/methods/admin.slackbot.skills.publish)**: Publishes Slackbot skills to an organization's catalog. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java). - **[admin.slackbot.skills.setAutoEnabled](https://docs.slack.dev/reference/methods/admin.slackbot.skills.setAutoEnabled)**: Sets who a Slackbot skill is automatically turned on for. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java). +- **[admin.slackbot.skills.unpublish](https://docs.slack.dev/reference/methods/admin.slackbot.skills.unpublish)**: Removes Slackbot skills from the org catalog, preserving access, libraries, and deployments. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java). ### agents diff --git a/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java new file mode 100644 index 0000000..3dc4307 --- /dev/null +++ b/methods/src/main/java/admin/slackbot/skills/AdminSlackbotSkillsUnpublish.java @@ -0,0 +1,29 @@ +package admin.slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.slackbot.skills.AdminSlackbotSkillsUnpublishRequest; +import com.slack.api.methods.response.admin.slackbot.skills.AdminSlackbotSkillsUnpublishResponse; +import java.io.IOException; +import java.util.Arrays; + +public class AdminSlackbotSkillsUnpublish { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.slackbot.skills.unpublish method + AdminSlackbotSkillsUnpublishRequest request = AdminSlackbotSkillsUnpublishRequest.builder() + .skillIds(Arrays.asList("F0123ABCD")) + .build(); + AdminSlackbotSkillsUnpublishResponse response = methods.adminSlackbotSkillsUnpublish(request); + + // Inspect the response + System.out.println(response); + } +} From 2fb62210c07189030558fb9925f25cf5d3bbb26c Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 11 Nov 2026 22:43:43 -0800 Subject: [PATCH 11/16] feat(methods): add slackbot.skills.delete method example Adds an example that calls slackbot.skills.delete with the arguments from its reference page, and lists it in the methods README. Co-Authored-By: Claude --- methods/README.md | 1 + .../slackbot/skills/SlackbotSkillsDelete.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 methods/src/main/java/slackbot/skills/SlackbotSkillsDelete.java diff --git a/methods/README.md b/methods/README.md index e0d5daa..116b52a 100644 --- a/methods/README.md +++ b/methods/README.md @@ -53,6 +53,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques ### slackbot - **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). +- **[slackbot.skills.delete](https://docs.slack.dev/reference/methods/slackbot.skills.delete)**: Deletes a Slackbot skill and its canvas, and removes it from every library, skill set, and the org catalog. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsDelete.java). - **[slackbot.skills.info](https://docs.slack.dev/reference/methods/slackbot.skills.info)**: Returns one Slackbot skill, including its instructions. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsInfo.java). - **[slackbot.skills.library.add](https://docs.slack.dev/reference/methods/slackbot.skills.library.add)**: Turns a skill on in the caller's personal library. [Implementation](./src/main/java/slackbot/skills/library/SlackbotSkillsLibraryAdd.java). - **[slackbot.skills.library.remove](https://docs.slack.dev/reference/methods/slackbot.skills.library.remove)**: Turns a skill off in the caller's personal library. [Implementation](./src/main/java/slackbot/skills/library/SlackbotSkillsLibraryRemove.java). diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsDelete.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsDelete.java new file mode 100644 index 0000000..c8e303a --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsDelete.java @@ -0,0 +1,27 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsDeleteRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsDeleteResponse; +import java.io.IOException; + +public class SlackbotSkillsDelete { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the slackbot.skills.delete method + SlackbotSkillsDeleteRequest request = + SlackbotSkillsDeleteRequest.builder().skillId("F0123ABCD").build(); + SlackbotSkillsDeleteResponse response = methods.slackbotSkillsDelete(request); + + // Inspect the response + System.out.println(response); + } +} From 3c276a5117fddf27d341c43d59e0015260feb5f1 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Thu, 12 Nov 2026 17:00:28 -0800 Subject: [PATCH 12/16] refactor(methods): use SlackbotSkillsCreateRequest.McpServer in the create example Co-Authored-By: Claude --- .../src/main/java/slackbot/skills/SlackbotSkillsCreate.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java index 86c79fe..ceb65d9 100644 --- a/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java @@ -5,7 +5,6 @@ import com.slack.api.methods.SlackApiException; import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsCreateRequest; import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsCreateResponse; -import com.slack.api.model.slackbot.SkillMcpServer; import java.io.IOException; import java.util.Arrays; @@ -25,7 +24,7 @@ public static void main(String[] args) throws IOException, SlackApiException { .description("Reviews information from Slack and your calendar to suggest priorities for the day.") .category("productivity") .examplePrompt("Run {skill} for today") - .mcpServers(Arrays.asList(SkillMcpServer.builder() + .mcpServers(Arrays.asList(SlackbotSkillsCreateRequest.McpServer.builder() .serviceType("app") .appId("A0123ABCD") .serverId("Amcp0456EFGH") From 1e0f5a10be309616a0adfc6e2dbf45c329b0d702 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Thu, 12 Nov 2026 17:00:42 -0800 Subject: [PATCH 13/16] refactor(methods): use SlackbotSkillsUpdateRequest.McpServer in the update example Co-Authored-By: Claude --- .../src/main/java/slackbot/skills/SlackbotSkillsUpdate.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java index 22bc3d0..99e2bcc 100644 --- a/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsUpdate.java @@ -5,7 +5,6 @@ import com.slack.api.methods.SlackApiException; import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsUpdateRequest; import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsUpdateResponse; -import com.slack.api.model.slackbot.SkillMcpServer; import java.io.IOException; import java.util.Arrays; @@ -26,7 +25,7 @@ public static void main(String[] args) throws IOException, SlackApiException { .description("Reviews information from Slack and your calendar to suggest priorities for the day.") .category("productivity") .examplePrompt("Run {skill} for today") - .mcpServers(Arrays.asList(SkillMcpServer.builder() + .mcpServers(Arrays.asList(SlackbotSkillsUpdateRequest.McpServer.builder() .serviceType("app") .appId("A0123ABCD") .serverId("Amcp0456EFGH") From 81eb5489c67ca2400fc7d0f2fef572b5377a4c98 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Thu, 12 Nov 2026 21:29:19 -0800 Subject: [PATCH 14/16] feat(methods): add admin.apps.mcp.servers.list method example Co-Authored-By: Claude --- methods/README.md | 1 + .../mcp/servers/AdminAppsMcpServersList.java | 27 +++++++++++++++++++ .../java/admin/apps/mcp/servers/manifest.json | 16 +++++++++++ 3 files changed, 44 insertions(+) create mode 100644 methods/src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java create mode 100644 methods/src/main/java/admin/apps/mcp/servers/manifest.json diff --git a/methods/README.md b/methods/README.md index 116b52a..b426c8e 100644 --- a/methods/README.md +++ b/methods/README.md @@ -18,6 +18,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques ### admin +- **[admin.apps.mcp.servers.list](https://docs.slack.dev/reference/methods/admin.apps.mcp.servers.list)**: List third-party app MCP servers approved for an organization. [Implementation](./src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java). - **[admin.slackbot.skills.list](https://docs.slack.dev/reference/methods/admin.slackbot.skills.list)**: Lists metadata for skills owned by the organization, including invite-only skills. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsList.java). - **[admin.slackbot.skills.publish](https://docs.slack.dev/reference/methods/admin.slackbot.skills.publish)**: Publishes Slackbot skills to an organization's catalog. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsPublish.java). - **[admin.slackbot.skills.setAutoEnabled](https://docs.slack.dev/reference/methods/admin.slackbot.skills.setAutoEnabled)**: Sets who a Slackbot skill is automatically turned on for. [Implementation](./src/main/java/admin/slackbot/skills/AdminSlackbotSkillsSetAutoEnabled.java). diff --git a/methods/src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java b/methods/src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java new file mode 100644 index 0000000..b54b9c0 --- /dev/null +++ b/methods/src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java @@ -0,0 +1,27 @@ +package admin.apps.mcp.servers; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.admin.apps.mcp.servers.AdminAppsMcpServersListRequest; +import com.slack.api.methods.response.admin.apps.mcp.servers.AdminAppsMcpServersListResponse; +import java.io.IOException; + +public class AdminAppsMcpServersList { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the admin.apps.mcp.servers.list method + AdminAppsMcpServersListRequest request = + AdminAppsMcpServersListRequest.builder().limit(100).build(); + AdminAppsMcpServersListResponse response = methods.adminAppsMcpServersList(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/admin/apps/mcp/servers/manifest.json b/methods/src/main/java/admin/apps/mcp/servers/manifest.json new file mode 100644 index 0000000..5396f1b --- /dev/null +++ b/methods/src/main/java/admin/apps/mcp/servers/manifest.json @@ -0,0 +1,16 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"admin.apps.mcp.servers\" methods" + }, + "oauth_config": { + "scopes": { + "user": ["admin.apps:read"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": false, + "token_rotation_enabled": false + } +} From dc2fb2f16191f9220f71328d03f2eebbd719182c Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Fri, 13 Nov 2026 02:26:04 -0800 Subject: [PATCH 15/16] build(deps): bump slack-api-client to 1.55.0 in /methods Co-Authored-By: Claude --- methods/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/methods/pom.xml b/methods/pom.xml index fe99527..a24dbbf 100644 --- a/methods/pom.xml +++ b/methods/pom.xml @@ -71,7 +71,7 @@ com.slack.api slack-api-client - 1.54.0 + 1.55.0 From f9885154c3af650ac7f6936239ed39f88b2fb622 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Fri, 13 Nov 2026 11:57:11 -0800 Subject: [PATCH 16/16] chore(methods): drop the default limit from the admin.apps.mcp.servers.list example Co-Authored-By: Claude --- .../java/admin/apps/mcp/servers/AdminAppsMcpServersList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/methods/src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java b/methods/src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java index b54b9c0..ff5ff59 100644 --- a/methods/src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java +++ b/methods/src/main/java/admin/apps/mcp/servers/AdminAppsMcpServersList.java @@ -18,7 +18,7 @@ public static void main(String[] args) throws IOException, SlackApiException { // Call the admin.apps.mcp.servers.list method AdminAppsMcpServersListRequest request = - AdminAppsMcpServersListRequest.builder().limit(100).build(); + AdminAppsMcpServersListRequest.builder().build(); AdminAppsMcpServersListResponse response = methods.adminAppsMcpServersList(request); // Inspect the response