@opentabs-dev/opentabs-plugin-discord 0.0.74

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.
Files changed (121) hide show
  1. package/README.md +138 -0
  2. package/dist/adapter.iife.js +15389 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/discord-api.d.ts +16 -0
  5. package/dist/discord-api.d.ts.map +1 -0
  6. package/dist/discord-api.js +232 -0
  7. package/dist/discord-api.js.map +1 -0
  8. package/dist/index.d.ts +14 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +78 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/add-reaction.d.ts +7 -0
  13. package/dist/tools/add-reaction.d.ts.map +1 -0
  14. package/dist/tools/add-reaction.js +28 -0
  15. package/dist/tools/add-reaction.js.map +1 -0
  16. package/dist/tools/create-channel.d.ts +21 -0
  17. package/dist/tools/create-channel.d.ts.map +1 -0
  18. package/dist/tools/create-channel.js +40 -0
  19. package/dist/tools/create-channel.js.map +1 -0
  20. package/dist/tools/create-thread.d.ts +19 -0
  21. package/dist/tools/create-thread.d.ts.map +1 -0
  22. package/dist/tools/create-thread.js +47 -0
  23. package/dist/tools/create-thread.js.map +1 -0
  24. package/dist/tools/delete-channel.d.ts +16 -0
  25. package/dist/tools/delete-channel.d.ts.map +1 -0
  26. package/dist/tools/delete-channel.js +25 -0
  27. package/dist/tools/delete-channel.js.map +1 -0
  28. package/dist/tools/delete-message.d.ts +6 -0
  29. package/dist/tools/delete-message.d.ts.map +1 -0
  30. package/dist/tools/delete-message.js +23 -0
  31. package/dist/tools/delete-message.js.map +1 -0
  32. package/dist/tools/edit-channel.d.ts +20 -0
  33. package/dist/tools/edit-channel.d.ts.map +1 -0
  34. package/dist/tools/edit-channel.js +39 -0
  35. package/dist/tools/edit-channel.js.map +1 -0
  36. package/dist/tools/edit-message.d.ts +23 -0
  37. package/dist/tools/edit-message.d.ts.map +1 -0
  38. package/dist/tools/edit-message.js +25 -0
  39. package/dist/tools/edit-message.js.map +1 -0
  40. package/dist/tools/get-channel-info.d.ts +16 -0
  41. package/dist/tools/get-channel-info.d.ts.map +1 -0
  42. package/dist/tools/get-channel-info.js +23 -0
  43. package/dist/tools/get-channel-info.js.map +1 -0
  44. package/dist/tools/get-guild-info.d.ts +18 -0
  45. package/dist/tools/get-guild-info.d.ts.map +1 -0
  46. package/dist/tools/get-guild-info.js +48 -0
  47. package/dist/tools/get-guild-info.js.map +1 -0
  48. package/dist/tools/get-message.d.ts +22 -0
  49. package/dist/tools/get-message.d.ts.map +1 -0
  50. package/dist/tools/get-message.js +33 -0
  51. package/dist/tools/get-message.js.map +1 -0
  52. package/dist/tools/get-user-profile.d.ts +19 -0
  53. package/dist/tools/get-user-profile.d.ts.map +1 -0
  54. package/dist/tools/get-user-profile.js +49 -0
  55. package/dist/tools/get-user-profile.js.map +1 -0
  56. package/dist/tools/list-channels.d.ts +16 -0
  57. package/dist/tools/list-channels.d.ts.map +1 -0
  58. package/dist/tools/list-channels.js +24 -0
  59. package/dist/tools/list-channels.js.map +1 -0
  60. package/dist/tools/list-dms.d.ts +16 -0
  61. package/dist/tools/list-dms.d.ts.map +1 -0
  62. package/dist/tools/list-dms.js +36 -0
  63. package/dist/tools/list-dms.js.map +1 -0
  64. package/dist/tools/list-guilds.d.ts +16 -0
  65. package/dist/tools/list-guilds.d.ts.map +1 -0
  66. package/dist/tools/list-guilds.js +34 -0
  67. package/dist/tools/list-guilds.js.map +1 -0
  68. package/dist/tools/list-members.d.ts +20 -0
  69. package/dist/tools/list-members.d.ts.map +1 -0
  70. package/dist/tools/list-members.js +45 -0
  71. package/dist/tools/list-members.js.map +1 -0
  72. package/dist/tools/list-pinned-messages.d.ts +21 -0
  73. package/dist/tools/list-pinned-messages.d.ts.map +1 -0
  74. package/dist/tools/list-pinned-messages.js +24 -0
  75. package/dist/tools/list-pinned-messages.js.map +1 -0
  76. package/dist/tools/list-roles.d.ts +15 -0
  77. package/dist/tools/list-roles.d.ts.map +1 -0
  78. package/dist/tools/list-roles.js +41 -0
  79. package/dist/tools/list-roles.js.map +1 -0
  80. package/dist/tools/open-dm.d.ts +15 -0
  81. package/dist/tools/open-dm.d.ts.map +1 -0
  82. package/dist/tools/open-dm.js +35 -0
  83. package/dist/tools/open-dm.js.map +1 -0
  84. package/dist/tools/pin-message.d.ts +6 -0
  85. package/dist/tools/pin-message.d.ts.map +1 -0
  86. package/dist/tools/pin-message.js +23 -0
  87. package/dist/tools/pin-message.js.map +1 -0
  88. package/dist/tools/read-messages.d.ts +25 -0
  89. package/dist/tools/read-messages.d.ts.map +1 -0
  90. package/dist/tools/read-messages.js +37 -0
  91. package/dist/tools/read-messages.js.map +1 -0
  92. package/dist/tools/read-thread.d.ts +24 -0
  93. package/dist/tools/read-thread.d.ts.map +1 -0
  94. package/dist/tools/read-thread.js +34 -0
  95. package/dist/tools/read-thread.js.map +1 -0
  96. package/dist/tools/remove-reaction.d.ts +7 -0
  97. package/dist/tools/remove-reaction.d.ts.map +1 -0
  98. package/dist/tools/remove-reaction.js +28 -0
  99. package/dist/tools/remove-reaction.js.map +1 -0
  100. package/dist/tools/schemas.d.ts +89 -0
  101. package/dist/tools/schemas.d.ts.map +1 -0
  102. package/dist/tools/schemas.js +72 -0
  103. package/dist/tools/schemas.js.map +1 -0
  104. package/dist/tools/search-messages.d.ts +28 -0
  105. package/dist/tools/search-messages.d.ts.map +1 -0
  106. package/dist/tools/search-messages.js +46 -0
  107. package/dist/tools/search-messages.js.map +1 -0
  108. package/dist/tools/send-message.d.ts +23 -0
  109. package/dist/tools/send-message.d.ts.map +1 -0
  110. package/dist/tools/send-message.js +32 -0
  111. package/dist/tools/send-message.js.map +1 -0
  112. package/dist/tools/unpin-message.d.ts +6 -0
  113. package/dist/tools/unpin-message.d.ts.map +1 -0
  114. package/dist/tools/unpin-message.js +23 -0
  115. package/dist/tools/unpin-message.js.map +1 -0
  116. package/dist/tools/upload-file.d.ts +25 -0
  117. package/dist/tools/upload-file.d.ts.map +1 -0
  118. package/dist/tools/upload-file.js +53 -0
  119. package/dist/tools/upload-file.js.map +1 -0
  120. package/dist/tools.json +2681 -0
  121. package/package.json +55 -0
@@ -0,0 +1,2681 @@
1
+ {
2
+ "sdkVersion": "0.0.74",
3
+ "iconSvg": "<svg viewBox=\"0 0 71 71\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <g transform=\"translate(0,8)\"> <g clip-path=\"url(#@opentabs-dev/opentabs-plugin-discord-clip0)\"> <path d=\"M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z\" fill=\"#5865F2\"/> </g> </g> <defs> <clipPath id=\"@opentabs-dev/opentabs-plugin-discord-clip0\"> <rect width=\"71\" height=\"55\" fill=\"white\"/> </clipPath> </defs> </svg>",
4
+ "iconInactiveSvg": "<svg viewBox=\"0 0 71 71\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <g transform=\"translate(0,8)\"> <g clip-path=\"url(#@opentabs-dev/opentabs-plugin-discord-clip0)\"> <path d=\"M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z\" fill=\"#999999\"/> </g> </g> <defs> <clipPath id=\"@opentabs-dev/opentabs-plugin-discord-clip0\"> <rect width=\"71\" height=\"55\" fill=\"#ffffff\"/> </clipPath> </defs> </svg>",
5
+ "iconDarkSvg": "<svg viewBox=\"0 0 71 71\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <g transform=\"translate(0,8)\"> <g clip-path=\"url(#@opentabs-dev/opentabs-plugin-discord-clip0)\"> <path d=\"M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z\" fill=\"#5865F2\"/> </g> </g> <defs> <clipPath id=\"@opentabs-dev/opentabs-plugin-discord-clip0\"> <rect width=\"71\" height=\"55\" fill=\"white\"/> </clipPath> </defs> </svg>",
6
+ "iconDarkInactiveSvg": "<svg viewBox=\"0 0 71 71\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <g transform=\"translate(0,8)\"> <g clip-path=\"url(#@opentabs-dev/opentabs-plugin-discord-clip0)\"> <path d=\"M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z\" fill=\"#999999\"/> </g> </g> <defs> <clipPath id=\"@opentabs-dev/opentabs-plugin-discord-clip0\"> <rect width=\"71\" height=\"55\" fill=\"#ffffff\"/> </clipPath> </defs> </svg>",
7
+ "tools": [
8
+ {
9
+ "name": "send_message",
10
+ "displayName": "Send Message",
11
+ "description": "Send a message to a Discord channel",
12
+ "summary": "Send a message to a channel",
13
+ "icon": "send",
14
+ "group": "Messages",
15
+ "input_schema": {
16
+ "type": "object",
17
+ "properties": {
18
+ "channel": {
19
+ "type": "string",
20
+ "minLength": 1,
21
+ "description": "Channel ID to send the message to"
22
+ },
23
+ "content": {
24
+ "type": "string",
25
+ "minLength": 1,
26
+ "description": "Message text content"
27
+ },
28
+ "reply_to": {
29
+ "description": "Message ID to reply to (creates a threaded reply)",
30
+ "type": "string"
31
+ }
32
+ },
33
+ "required": [
34
+ "channel",
35
+ "content"
36
+ ],
37
+ "additionalProperties": false
38
+ },
39
+ "output_schema": {
40
+ "type": "object",
41
+ "properties": {
42
+ "message": {
43
+ "type": "object",
44
+ "properties": {
45
+ "id": {
46
+ "type": "string",
47
+ "description": "Message ID"
48
+ },
49
+ "channel_id": {
50
+ "type": "string",
51
+ "description": "Channel ID"
52
+ },
53
+ "author": {
54
+ "type": "object",
55
+ "properties": {
56
+ "id": {
57
+ "type": "string",
58
+ "description": "User ID"
59
+ },
60
+ "username": {
61
+ "type": "string",
62
+ "description": "Username"
63
+ },
64
+ "global_name": {
65
+ "anyOf": [
66
+ {
67
+ "type": "string"
68
+ },
69
+ {
70
+ "type": "null"
71
+ }
72
+ ],
73
+ "description": "Display name"
74
+ },
75
+ "avatar": {
76
+ "anyOf": [
77
+ {
78
+ "type": "string"
79
+ },
80
+ {
81
+ "type": "null"
82
+ }
83
+ ],
84
+ "description": "Avatar hash"
85
+ },
86
+ "bot": {
87
+ "type": "boolean",
88
+ "description": "Whether the user is a bot"
89
+ }
90
+ },
91
+ "required": [
92
+ "id",
93
+ "username",
94
+ "global_name",
95
+ "avatar",
96
+ "bot"
97
+ ],
98
+ "additionalProperties": false,
99
+ "description": "Message author"
100
+ },
101
+ "content": {
102
+ "type": "string",
103
+ "description": "Message text content"
104
+ },
105
+ "timestamp": {
106
+ "type": "string",
107
+ "description": "ISO 8601 timestamp"
108
+ },
109
+ "edited_timestamp": {
110
+ "anyOf": [
111
+ {
112
+ "type": "string"
113
+ },
114
+ {
115
+ "type": "null"
116
+ }
117
+ ],
118
+ "description": "Edit timestamp or null"
119
+ },
120
+ "pinned": {
121
+ "type": "boolean",
122
+ "description": "Whether the message is pinned"
123
+ }
124
+ },
125
+ "required": [
126
+ "id",
127
+ "channel_id",
128
+ "author",
129
+ "content",
130
+ "timestamp",
131
+ "edited_timestamp",
132
+ "pinned"
133
+ ],
134
+ "additionalProperties": false,
135
+ "description": "The sent message"
136
+ }
137
+ },
138
+ "required": [
139
+ "message"
140
+ ],
141
+ "additionalProperties": false
142
+ }
143
+ },
144
+ {
145
+ "name": "edit_message",
146
+ "displayName": "Edit Message",
147
+ "description": "Edit an existing message. Only messages sent by the authenticated user can be edited.",
148
+ "summary": "Edit an existing message",
149
+ "icon": "pencil",
150
+ "group": "Messages",
151
+ "input_schema": {
152
+ "type": "object",
153
+ "properties": {
154
+ "channel": {
155
+ "type": "string",
156
+ "minLength": 1,
157
+ "description": "Channel ID where the message is located"
158
+ },
159
+ "message_id": {
160
+ "type": "string",
161
+ "minLength": 1,
162
+ "description": "ID of the message to edit"
163
+ },
164
+ "content": {
165
+ "type": "string",
166
+ "minLength": 1,
167
+ "description": "New message text content"
168
+ }
169
+ },
170
+ "required": [
171
+ "channel",
172
+ "message_id",
173
+ "content"
174
+ ],
175
+ "additionalProperties": false
176
+ },
177
+ "output_schema": {
178
+ "type": "object",
179
+ "properties": {
180
+ "message": {
181
+ "type": "object",
182
+ "properties": {
183
+ "id": {
184
+ "type": "string",
185
+ "description": "Message ID"
186
+ },
187
+ "channel_id": {
188
+ "type": "string",
189
+ "description": "Channel ID"
190
+ },
191
+ "author": {
192
+ "type": "object",
193
+ "properties": {
194
+ "id": {
195
+ "type": "string",
196
+ "description": "User ID"
197
+ },
198
+ "username": {
199
+ "type": "string",
200
+ "description": "Username"
201
+ },
202
+ "global_name": {
203
+ "anyOf": [
204
+ {
205
+ "type": "string"
206
+ },
207
+ {
208
+ "type": "null"
209
+ }
210
+ ],
211
+ "description": "Display name"
212
+ },
213
+ "avatar": {
214
+ "anyOf": [
215
+ {
216
+ "type": "string"
217
+ },
218
+ {
219
+ "type": "null"
220
+ }
221
+ ],
222
+ "description": "Avatar hash"
223
+ },
224
+ "bot": {
225
+ "type": "boolean",
226
+ "description": "Whether the user is a bot"
227
+ }
228
+ },
229
+ "required": [
230
+ "id",
231
+ "username",
232
+ "global_name",
233
+ "avatar",
234
+ "bot"
235
+ ],
236
+ "additionalProperties": false,
237
+ "description": "Message author"
238
+ },
239
+ "content": {
240
+ "type": "string",
241
+ "description": "Message text content"
242
+ },
243
+ "timestamp": {
244
+ "type": "string",
245
+ "description": "ISO 8601 timestamp"
246
+ },
247
+ "edited_timestamp": {
248
+ "anyOf": [
249
+ {
250
+ "type": "string"
251
+ },
252
+ {
253
+ "type": "null"
254
+ }
255
+ ],
256
+ "description": "Edit timestamp or null"
257
+ },
258
+ "pinned": {
259
+ "type": "boolean",
260
+ "description": "Whether the message is pinned"
261
+ }
262
+ },
263
+ "required": [
264
+ "id",
265
+ "channel_id",
266
+ "author",
267
+ "content",
268
+ "timestamp",
269
+ "edited_timestamp",
270
+ "pinned"
271
+ ],
272
+ "additionalProperties": false,
273
+ "description": "The edited message"
274
+ }
275
+ },
276
+ "required": [
277
+ "message"
278
+ ],
279
+ "additionalProperties": false
280
+ }
281
+ },
282
+ {
283
+ "name": "delete_message",
284
+ "displayName": "Delete Message",
285
+ "description": "Delete a message from a channel",
286
+ "summary": "Delete a message from a channel",
287
+ "icon": "trash-2",
288
+ "group": "Messages",
289
+ "input_schema": {
290
+ "type": "object",
291
+ "properties": {
292
+ "channel": {
293
+ "type": "string",
294
+ "minLength": 1,
295
+ "description": "Channel ID where the message is located"
296
+ },
297
+ "message_id": {
298
+ "type": "string",
299
+ "minLength": 1,
300
+ "description": "ID of the message to delete"
301
+ }
302
+ },
303
+ "required": [
304
+ "channel",
305
+ "message_id"
306
+ ],
307
+ "additionalProperties": false
308
+ },
309
+ "output_schema": {
310
+ "type": "object",
311
+ "properties": {},
312
+ "additionalProperties": false
313
+ }
314
+ },
315
+ {
316
+ "name": "read_messages",
317
+ "displayName": "Read Messages",
318
+ "description": "Read recent messages from a Discord channel with optional pagination",
319
+ "summary": "Read recent messages from a channel",
320
+ "icon": "message-square",
321
+ "group": "Messages",
322
+ "input_schema": {
323
+ "type": "object",
324
+ "properties": {
325
+ "channel": {
326
+ "type": "string",
327
+ "minLength": 1,
328
+ "description": "Channel ID to read messages from"
329
+ },
330
+ "limit": {
331
+ "description": "Number of messages to return (default 50, max 100)",
332
+ "type": "integer",
333
+ "minimum": 1,
334
+ "maximum": 100
335
+ },
336
+ "before": {
337
+ "description": "Get messages before this message ID (for pagination)",
338
+ "type": "string"
339
+ },
340
+ "after": {
341
+ "description": "Get messages after this message ID",
342
+ "type": "string"
343
+ },
344
+ "around": {
345
+ "description": "Get messages around this message ID",
346
+ "type": "string"
347
+ }
348
+ },
349
+ "required": [
350
+ "channel"
351
+ ],
352
+ "additionalProperties": false
353
+ },
354
+ "output_schema": {
355
+ "type": "object",
356
+ "properties": {
357
+ "messages": {
358
+ "type": "array",
359
+ "items": {
360
+ "type": "object",
361
+ "properties": {
362
+ "id": {
363
+ "type": "string",
364
+ "description": "Message ID"
365
+ },
366
+ "channel_id": {
367
+ "type": "string",
368
+ "description": "Channel ID"
369
+ },
370
+ "author": {
371
+ "type": "object",
372
+ "properties": {
373
+ "id": {
374
+ "type": "string",
375
+ "description": "User ID"
376
+ },
377
+ "username": {
378
+ "type": "string",
379
+ "description": "Username"
380
+ },
381
+ "global_name": {
382
+ "anyOf": [
383
+ {
384
+ "type": "string"
385
+ },
386
+ {
387
+ "type": "null"
388
+ }
389
+ ],
390
+ "description": "Display name"
391
+ },
392
+ "avatar": {
393
+ "anyOf": [
394
+ {
395
+ "type": "string"
396
+ },
397
+ {
398
+ "type": "null"
399
+ }
400
+ ],
401
+ "description": "Avatar hash"
402
+ },
403
+ "bot": {
404
+ "type": "boolean",
405
+ "description": "Whether the user is a bot"
406
+ }
407
+ },
408
+ "required": [
409
+ "id",
410
+ "username",
411
+ "global_name",
412
+ "avatar",
413
+ "bot"
414
+ ],
415
+ "additionalProperties": false,
416
+ "description": "Message author"
417
+ },
418
+ "content": {
419
+ "type": "string",
420
+ "description": "Message text content"
421
+ },
422
+ "timestamp": {
423
+ "type": "string",
424
+ "description": "ISO 8601 timestamp"
425
+ },
426
+ "edited_timestamp": {
427
+ "anyOf": [
428
+ {
429
+ "type": "string"
430
+ },
431
+ {
432
+ "type": "null"
433
+ }
434
+ ],
435
+ "description": "Edit timestamp or null"
436
+ },
437
+ "pinned": {
438
+ "type": "boolean",
439
+ "description": "Whether the message is pinned"
440
+ }
441
+ },
442
+ "required": [
443
+ "id",
444
+ "channel_id",
445
+ "author",
446
+ "content",
447
+ "timestamp",
448
+ "edited_timestamp",
449
+ "pinned"
450
+ ],
451
+ "additionalProperties": false
452
+ },
453
+ "description": "List of messages (newest first)"
454
+ }
455
+ },
456
+ "required": [
457
+ "messages"
458
+ ],
459
+ "additionalProperties": false
460
+ }
461
+ },
462
+ {
463
+ "name": "read_thread",
464
+ "displayName": "Read Thread",
465
+ "description": "Read messages from a thread. Threads are channels, so this works the same as read_messages but is semantically specific to threads.",
466
+ "summary": "Read messages from a thread",
467
+ "icon": "git-branch",
468
+ "group": "Messages",
469
+ "input_schema": {
470
+ "type": "object",
471
+ "properties": {
472
+ "thread_id": {
473
+ "type": "string",
474
+ "minLength": 1,
475
+ "description": "Thread (channel) ID to read messages from"
476
+ },
477
+ "limit": {
478
+ "description": "Number of messages to return (default 50, max 100)",
479
+ "type": "integer",
480
+ "minimum": 1,
481
+ "maximum": 100
482
+ },
483
+ "before": {
484
+ "description": "Get messages before this message ID (for pagination)",
485
+ "type": "string"
486
+ },
487
+ "after": {
488
+ "description": "Get messages after this message ID",
489
+ "type": "string"
490
+ }
491
+ },
492
+ "required": [
493
+ "thread_id"
494
+ ],
495
+ "additionalProperties": false
496
+ },
497
+ "output_schema": {
498
+ "type": "object",
499
+ "properties": {
500
+ "messages": {
501
+ "type": "array",
502
+ "items": {
503
+ "type": "object",
504
+ "properties": {
505
+ "id": {
506
+ "type": "string",
507
+ "description": "Message ID"
508
+ },
509
+ "channel_id": {
510
+ "type": "string",
511
+ "description": "Channel ID"
512
+ },
513
+ "author": {
514
+ "type": "object",
515
+ "properties": {
516
+ "id": {
517
+ "type": "string",
518
+ "description": "User ID"
519
+ },
520
+ "username": {
521
+ "type": "string",
522
+ "description": "Username"
523
+ },
524
+ "global_name": {
525
+ "anyOf": [
526
+ {
527
+ "type": "string"
528
+ },
529
+ {
530
+ "type": "null"
531
+ }
532
+ ],
533
+ "description": "Display name"
534
+ },
535
+ "avatar": {
536
+ "anyOf": [
537
+ {
538
+ "type": "string"
539
+ },
540
+ {
541
+ "type": "null"
542
+ }
543
+ ],
544
+ "description": "Avatar hash"
545
+ },
546
+ "bot": {
547
+ "type": "boolean",
548
+ "description": "Whether the user is a bot"
549
+ }
550
+ },
551
+ "required": [
552
+ "id",
553
+ "username",
554
+ "global_name",
555
+ "avatar",
556
+ "bot"
557
+ ],
558
+ "additionalProperties": false,
559
+ "description": "Message author"
560
+ },
561
+ "content": {
562
+ "type": "string",
563
+ "description": "Message text content"
564
+ },
565
+ "timestamp": {
566
+ "type": "string",
567
+ "description": "ISO 8601 timestamp"
568
+ },
569
+ "edited_timestamp": {
570
+ "anyOf": [
571
+ {
572
+ "type": "string"
573
+ },
574
+ {
575
+ "type": "null"
576
+ }
577
+ ],
578
+ "description": "Edit timestamp or null"
579
+ },
580
+ "pinned": {
581
+ "type": "boolean",
582
+ "description": "Whether the message is pinned"
583
+ }
584
+ },
585
+ "required": [
586
+ "id",
587
+ "channel_id",
588
+ "author",
589
+ "content",
590
+ "timestamp",
591
+ "edited_timestamp",
592
+ "pinned"
593
+ ],
594
+ "additionalProperties": false
595
+ },
596
+ "description": "List of thread messages (newest first)"
597
+ }
598
+ },
599
+ "required": [
600
+ "messages"
601
+ ],
602
+ "additionalProperties": false
603
+ }
604
+ },
605
+ {
606
+ "name": "search_messages",
607
+ "displayName": "Search Messages",
608
+ "description": "Search for messages in a guild. Supports content queries and filters like from:, in:, has:, before:, after:",
609
+ "summary": "Search messages in a server",
610
+ "icon": "search",
611
+ "group": "Messages",
612
+ "input_schema": {
613
+ "type": "object",
614
+ "properties": {
615
+ "guild_id": {
616
+ "type": "string",
617
+ "minLength": 1,
618
+ "description": "Guild (server) ID to search in"
619
+ },
620
+ "content": {
621
+ "description": "Text content to search for",
622
+ "type": "string"
623
+ },
624
+ "author_id": {
625
+ "description": "Filter by author user ID",
626
+ "type": "string"
627
+ },
628
+ "channel_id": {
629
+ "description": "Filter by channel ID",
630
+ "type": "string"
631
+ },
632
+ "has": {
633
+ "description": "Filter by attachment type: link, embed, file, video, image, sound, sticker",
634
+ "type": "string"
635
+ },
636
+ "limit": {
637
+ "description": "Number of results (default 25, max 25)",
638
+ "type": "integer",
639
+ "minimum": 1,
640
+ "maximum": 25
641
+ },
642
+ "offset": {
643
+ "description": "Result offset for pagination",
644
+ "type": "integer",
645
+ "minimum": 0,
646
+ "maximum": 9007199254740991
647
+ }
648
+ },
649
+ "required": [
650
+ "guild_id"
651
+ ],
652
+ "additionalProperties": false
653
+ },
654
+ "output_schema": {
655
+ "type": "object",
656
+ "properties": {
657
+ "total_results": {
658
+ "type": "number",
659
+ "description": "Total number of matching messages"
660
+ },
661
+ "messages": {
662
+ "type": "array",
663
+ "items": {
664
+ "type": "array",
665
+ "items": {
666
+ "type": "object",
667
+ "properties": {
668
+ "id": {
669
+ "type": "string",
670
+ "description": "Message ID"
671
+ },
672
+ "channel_id": {
673
+ "type": "string",
674
+ "description": "Channel ID"
675
+ },
676
+ "author": {
677
+ "type": "object",
678
+ "properties": {
679
+ "id": {
680
+ "type": "string",
681
+ "description": "User ID"
682
+ },
683
+ "username": {
684
+ "type": "string",
685
+ "description": "Username"
686
+ },
687
+ "global_name": {
688
+ "anyOf": [
689
+ {
690
+ "type": "string"
691
+ },
692
+ {
693
+ "type": "null"
694
+ }
695
+ ],
696
+ "description": "Display name"
697
+ },
698
+ "avatar": {
699
+ "anyOf": [
700
+ {
701
+ "type": "string"
702
+ },
703
+ {
704
+ "type": "null"
705
+ }
706
+ ],
707
+ "description": "Avatar hash"
708
+ },
709
+ "bot": {
710
+ "type": "boolean",
711
+ "description": "Whether the user is a bot"
712
+ }
713
+ },
714
+ "required": [
715
+ "id",
716
+ "username",
717
+ "global_name",
718
+ "avatar",
719
+ "bot"
720
+ ],
721
+ "additionalProperties": false,
722
+ "description": "Message author"
723
+ },
724
+ "content": {
725
+ "type": "string",
726
+ "description": "Message text content"
727
+ },
728
+ "timestamp": {
729
+ "type": "string",
730
+ "description": "ISO 8601 timestamp"
731
+ },
732
+ "edited_timestamp": {
733
+ "anyOf": [
734
+ {
735
+ "type": "string"
736
+ },
737
+ {
738
+ "type": "null"
739
+ }
740
+ ],
741
+ "description": "Edit timestamp or null"
742
+ },
743
+ "pinned": {
744
+ "type": "boolean",
745
+ "description": "Whether the message is pinned"
746
+ }
747
+ },
748
+ "required": [
749
+ "id",
750
+ "channel_id",
751
+ "author",
752
+ "content",
753
+ "timestamp",
754
+ "edited_timestamp",
755
+ "pinned"
756
+ ],
757
+ "additionalProperties": false
758
+ }
759
+ },
760
+ "description": "Search results grouped by context"
761
+ }
762
+ },
763
+ "required": [
764
+ "total_results",
765
+ "messages"
766
+ ],
767
+ "additionalProperties": false
768
+ }
769
+ },
770
+ {
771
+ "name": "get_message",
772
+ "displayName": "Get Message",
773
+ "description": "Get a specific message by its ID from a Discord channel.",
774
+ "summary": "Get a message by ID",
775
+ "icon": "message-square",
776
+ "group": "Messages",
777
+ "input_schema": {
778
+ "type": "object",
779
+ "properties": {
780
+ "channel": {
781
+ "type": "string",
782
+ "minLength": 1,
783
+ "description": "Channel ID where the message is located"
784
+ },
785
+ "message_id": {
786
+ "type": "string",
787
+ "minLength": 1,
788
+ "description": "ID of the message to retrieve"
789
+ }
790
+ },
791
+ "required": [
792
+ "channel",
793
+ "message_id"
794
+ ],
795
+ "additionalProperties": false
796
+ },
797
+ "output_schema": {
798
+ "type": "object",
799
+ "properties": {
800
+ "message": {
801
+ "type": "object",
802
+ "properties": {
803
+ "id": {
804
+ "type": "string",
805
+ "description": "Message ID"
806
+ },
807
+ "channel_id": {
808
+ "type": "string",
809
+ "description": "Channel ID"
810
+ },
811
+ "author": {
812
+ "type": "object",
813
+ "properties": {
814
+ "id": {
815
+ "type": "string",
816
+ "description": "User ID"
817
+ },
818
+ "username": {
819
+ "type": "string",
820
+ "description": "Username"
821
+ },
822
+ "global_name": {
823
+ "anyOf": [
824
+ {
825
+ "type": "string"
826
+ },
827
+ {
828
+ "type": "null"
829
+ }
830
+ ],
831
+ "description": "Display name"
832
+ },
833
+ "avatar": {
834
+ "anyOf": [
835
+ {
836
+ "type": "string"
837
+ },
838
+ {
839
+ "type": "null"
840
+ }
841
+ ],
842
+ "description": "Avatar hash"
843
+ },
844
+ "bot": {
845
+ "type": "boolean",
846
+ "description": "Whether the user is a bot"
847
+ }
848
+ },
849
+ "required": [
850
+ "id",
851
+ "username",
852
+ "global_name",
853
+ "avatar",
854
+ "bot"
855
+ ],
856
+ "additionalProperties": false,
857
+ "description": "Message author"
858
+ },
859
+ "content": {
860
+ "type": "string",
861
+ "description": "Message text content"
862
+ },
863
+ "timestamp": {
864
+ "type": "string",
865
+ "description": "ISO 8601 timestamp"
866
+ },
867
+ "edited_timestamp": {
868
+ "anyOf": [
869
+ {
870
+ "type": "string"
871
+ },
872
+ {
873
+ "type": "null"
874
+ }
875
+ ],
876
+ "description": "Edit timestamp or null"
877
+ },
878
+ "pinned": {
879
+ "type": "boolean",
880
+ "description": "Whether the message is pinned"
881
+ }
882
+ },
883
+ "required": [
884
+ "id",
885
+ "channel_id",
886
+ "author",
887
+ "content",
888
+ "timestamp",
889
+ "edited_timestamp",
890
+ "pinned"
891
+ ],
892
+ "additionalProperties": false,
893
+ "description": "The requested message"
894
+ }
895
+ },
896
+ "required": [
897
+ "message"
898
+ ],
899
+ "additionalProperties": false
900
+ }
901
+ },
902
+ {
903
+ "name": "list_pinned_messages",
904
+ "displayName": "List Pinned Messages",
905
+ "description": "List all pinned messages in a Discord channel. Returns messages in reverse chronological order.",
906
+ "summary": "List pinned messages in a channel",
907
+ "icon": "pin",
908
+ "group": "Messages",
909
+ "input_schema": {
910
+ "type": "object",
911
+ "properties": {
912
+ "channel": {
913
+ "type": "string",
914
+ "minLength": 1,
915
+ "description": "Channel ID to list pinned messages for"
916
+ }
917
+ },
918
+ "required": [
919
+ "channel"
920
+ ],
921
+ "additionalProperties": false
922
+ },
923
+ "output_schema": {
924
+ "type": "object",
925
+ "properties": {
926
+ "messages": {
927
+ "type": "array",
928
+ "items": {
929
+ "type": "object",
930
+ "properties": {
931
+ "id": {
932
+ "type": "string",
933
+ "description": "Message ID"
934
+ },
935
+ "channel_id": {
936
+ "type": "string",
937
+ "description": "Channel ID"
938
+ },
939
+ "author": {
940
+ "type": "object",
941
+ "properties": {
942
+ "id": {
943
+ "type": "string",
944
+ "description": "User ID"
945
+ },
946
+ "username": {
947
+ "type": "string",
948
+ "description": "Username"
949
+ },
950
+ "global_name": {
951
+ "anyOf": [
952
+ {
953
+ "type": "string"
954
+ },
955
+ {
956
+ "type": "null"
957
+ }
958
+ ],
959
+ "description": "Display name"
960
+ },
961
+ "avatar": {
962
+ "anyOf": [
963
+ {
964
+ "type": "string"
965
+ },
966
+ {
967
+ "type": "null"
968
+ }
969
+ ],
970
+ "description": "Avatar hash"
971
+ },
972
+ "bot": {
973
+ "type": "boolean",
974
+ "description": "Whether the user is a bot"
975
+ }
976
+ },
977
+ "required": [
978
+ "id",
979
+ "username",
980
+ "global_name",
981
+ "avatar",
982
+ "bot"
983
+ ],
984
+ "additionalProperties": false,
985
+ "description": "Message author"
986
+ },
987
+ "content": {
988
+ "type": "string",
989
+ "description": "Message text content"
990
+ },
991
+ "timestamp": {
992
+ "type": "string",
993
+ "description": "ISO 8601 timestamp"
994
+ },
995
+ "edited_timestamp": {
996
+ "anyOf": [
997
+ {
998
+ "type": "string"
999
+ },
1000
+ {
1001
+ "type": "null"
1002
+ }
1003
+ ],
1004
+ "description": "Edit timestamp or null"
1005
+ },
1006
+ "pinned": {
1007
+ "type": "boolean",
1008
+ "description": "Whether the message is pinned"
1009
+ }
1010
+ },
1011
+ "required": [
1012
+ "id",
1013
+ "channel_id",
1014
+ "author",
1015
+ "content",
1016
+ "timestamp",
1017
+ "edited_timestamp",
1018
+ "pinned"
1019
+ ],
1020
+ "additionalProperties": false
1021
+ },
1022
+ "description": "List of pinned messages"
1023
+ }
1024
+ },
1025
+ "required": [
1026
+ "messages"
1027
+ ],
1028
+ "additionalProperties": false
1029
+ }
1030
+ },
1031
+ {
1032
+ "name": "list_guilds",
1033
+ "displayName": "List Guilds",
1034
+ "description": "List all Discord guilds (servers) the authenticated user is a member of",
1035
+ "summary": "List servers the user belongs to",
1036
+ "icon": "server",
1037
+ "group": "Servers",
1038
+ "input_schema": {
1039
+ "type": "object",
1040
+ "properties": {
1041
+ "limit": {
1042
+ "description": "Max guilds to return (default 200)",
1043
+ "type": "integer",
1044
+ "minimum": 1,
1045
+ "maximum": 200
1046
+ },
1047
+ "before": {
1048
+ "description": "Get guilds before this guild ID (for pagination)",
1049
+ "type": "string"
1050
+ },
1051
+ "after": {
1052
+ "description": "Get guilds after this guild ID",
1053
+ "type": "string"
1054
+ }
1055
+ },
1056
+ "additionalProperties": false
1057
+ },
1058
+ "output_schema": {
1059
+ "type": "object",
1060
+ "properties": {
1061
+ "guilds": {
1062
+ "type": "array",
1063
+ "items": {
1064
+ "type": "object",
1065
+ "properties": {
1066
+ "id": {
1067
+ "type": "string",
1068
+ "description": "Guild (server) ID"
1069
+ },
1070
+ "name": {
1071
+ "type": "string",
1072
+ "description": "Guild name"
1073
+ },
1074
+ "icon": {
1075
+ "anyOf": [
1076
+ {
1077
+ "type": "string"
1078
+ },
1079
+ {
1080
+ "type": "null"
1081
+ }
1082
+ ],
1083
+ "description": "Icon hash"
1084
+ },
1085
+ "owner": {
1086
+ "type": "boolean",
1087
+ "description": "Whether the current user owns this guild"
1088
+ },
1089
+ "description": {
1090
+ "anyOf": [
1091
+ {
1092
+ "type": "string"
1093
+ },
1094
+ {
1095
+ "type": "null"
1096
+ }
1097
+ ],
1098
+ "description": "Guild description"
1099
+ },
1100
+ "approximate_member_count": {
1101
+ "type": "number",
1102
+ "description": "Approximate member count"
1103
+ }
1104
+ },
1105
+ "required": [
1106
+ "id",
1107
+ "name",
1108
+ "icon",
1109
+ "owner",
1110
+ "description",
1111
+ "approximate_member_count"
1112
+ ],
1113
+ "additionalProperties": false
1114
+ },
1115
+ "description": "List of guilds"
1116
+ }
1117
+ },
1118
+ "required": [
1119
+ "guilds"
1120
+ ],
1121
+ "additionalProperties": false
1122
+ }
1123
+ },
1124
+ {
1125
+ "name": "get_guild_info",
1126
+ "displayName": "Get Guild Info",
1127
+ "description": "Get detailed information about a Discord guild (server) including description, member count, features, and boost status.",
1128
+ "summary": "Get detailed info about a server",
1129
+ "icon": "shield",
1130
+ "group": "Servers",
1131
+ "input_schema": {
1132
+ "type": "object",
1133
+ "properties": {
1134
+ "guild_id": {
1135
+ "type": "string",
1136
+ "minLength": 1,
1137
+ "description": "Guild (server) ID to get information for"
1138
+ }
1139
+ },
1140
+ "required": [
1141
+ "guild_id"
1142
+ ],
1143
+ "additionalProperties": false
1144
+ },
1145
+ "output_schema": {
1146
+ "type": "object",
1147
+ "properties": {
1148
+ "guild": {
1149
+ "type": "object",
1150
+ "properties": {
1151
+ "id": {
1152
+ "type": "string",
1153
+ "description": "Guild ID"
1154
+ },
1155
+ "name": {
1156
+ "type": "string",
1157
+ "description": "Guild name"
1158
+ },
1159
+ "description": {
1160
+ "anyOf": [
1161
+ {
1162
+ "type": "string"
1163
+ },
1164
+ {
1165
+ "type": "null"
1166
+ }
1167
+ ],
1168
+ "description": "Guild description"
1169
+ },
1170
+ "icon": {
1171
+ "anyOf": [
1172
+ {
1173
+ "type": "string"
1174
+ },
1175
+ {
1176
+ "type": "null"
1177
+ }
1178
+ ],
1179
+ "description": "Icon hash"
1180
+ },
1181
+ "owner_id": {
1182
+ "type": "string",
1183
+ "description": "User ID of the guild owner"
1184
+ },
1185
+ "member_count": {
1186
+ "type": "number",
1187
+ "description": "Approximate member count"
1188
+ },
1189
+ "features": {
1190
+ "type": "array",
1191
+ "items": {
1192
+ "type": "string"
1193
+ },
1194
+ "description": "Enabled guild features"
1195
+ },
1196
+ "premium_tier": {
1197
+ "type": "number",
1198
+ "description": "Server boost level (0-3)"
1199
+ },
1200
+ "premium_subscription_count": {
1201
+ "type": "number",
1202
+ "description": "Number of active boosts"
1203
+ },
1204
+ "verification_level": {
1205
+ "type": "number",
1206
+ "description": "Verification level (0-4)"
1207
+ }
1208
+ },
1209
+ "required": [
1210
+ "id",
1211
+ "name",
1212
+ "description",
1213
+ "icon",
1214
+ "owner_id",
1215
+ "member_count",
1216
+ "features",
1217
+ "premium_tier",
1218
+ "premium_subscription_count",
1219
+ "verification_level"
1220
+ ],
1221
+ "additionalProperties": false
1222
+ }
1223
+ },
1224
+ "required": [
1225
+ "guild"
1226
+ ],
1227
+ "additionalProperties": false
1228
+ }
1229
+ },
1230
+ {
1231
+ "name": "list_channels",
1232
+ "displayName": "List Channels",
1233
+ "description": "List all channels in a Discord guild (server)",
1234
+ "summary": "List channels in a server",
1235
+ "icon": "hash",
1236
+ "group": "Channels",
1237
+ "input_schema": {
1238
+ "type": "object",
1239
+ "properties": {
1240
+ "guild_id": {
1241
+ "type": "string",
1242
+ "minLength": 1,
1243
+ "description": "Guild (server) ID to list channels for"
1244
+ }
1245
+ },
1246
+ "required": [
1247
+ "guild_id"
1248
+ ],
1249
+ "additionalProperties": false
1250
+ },
1251
+ "output_schema": {
1252
+ "type": "object",
1253
+ "properties": {
1254
+ "channels": {
1255
+ "type": "array",
1256
+ "items": {
1257
+ "type": "object",
1258
+ "properties": {
1259
+ "id": {
1260
+ "type": "string",
1261
+ "description": "Channel ID"
1262
+ },
1263
+ "type": {
1264
+ "type": "number",
1265
+ "description": "Channel type (0=text, 2=voice, 4=category, 5=announcement, etc.)"
1266
+ },
1267
+ "guild_id": {
1268
+ "type": "string",
1269
+ "description": "Guild ID"
1270
+ },
1271
+ "name": {
1272
+ "type": "string",
1273
+ "description": "Channel name"
1274
+ },
1275
+ "topic": {
1276
+ "anyOf": [
1277
+ {
1278
+ "type": "string"
1279
+ },
1280
+ {
1281
+ "type": "null"
1282
+ }
1283
+ ],
1284
+ "description": "Channel topic"
1285
+ },
1286
+ "position": {
1287
+ "type": "number",
1288
+ "description": "Sorting position"
1289
+ },
1290
+ "parent_id": {
1291
+ "anyOf": [
1292
+ {
1293
+ "type": "string"
1294
+ },
1295
+ {
1296
+ "type": "null"
1297
+ }
1298
+ ],
1299
+ "description": "Parent category ID"
1300
+ },
1301
+ "nsfw": {
1302
+ "type": "boolean",
1303
+ "description": "Whether the channel is NSFW"
1304
+ }
1305
+ },
1306
+ "required": [
1307
+ "id",
1308
+ "type",
1309
+ "guild_id",
1310
+ "name",
1311
+ "topic",
1312
+ "position",
1313
+ "parent_id",
1314
+ "nsfw"
1315
+ ],
1316
+ "additionalProperties": false
1317
+ },
1318
+ "description": "List of channels"
1319
+ }
1320
+ },
1321
+ "required": [
1322
+ "channels"
1323
+ ],
1324
+ "additionalProperties": false
1325
+ }
1326
+ },
1327
+ {
1328
+ "name": "get_channel_info",
1329
+ "displayName": "Get Channel Info",
1330
+ "description": "Get detailed information about a specific Discord channel",
1331
+ "summary": "Get detailed information about a channel",
1332
+ "icon": "info",
1333
+ "group": "Channels",
1334
+ "input_schema": {
1335
+ "type": "object",
1336
+ "properties": {
1337
+ "channel": {
1338
+ "type": "string",
1339
+ "minLength": 1,
1340
+ "description": "Channel ID to get info for"
1341
+ }
1342
+ },
1343
+ "required": [
1344
+ "channel"
1345
+ ],
1346
+ "additionalProperties": false
1347
+ },
1348
+ "output_schema": {
1349
+ "type": "object",
1350
+ "properties": {
1351
+ "channel": {
1352
+ "type": "object",
1353
+ "properties": {
1354
+ "id": {
1355
+ "type": "string",
1356
+ "description": "Channel ID"
1357
+ },
1358
+ "type": {
1359
+ "type": "number",
1360
+ "description": "Channel type (0=text, 2=voice, 4=category, 5=announcement, etc.)"
1361
+ },
1362
+ "guild_id": {
1363
+ "type": "string",
1364
+ "description": "Guild ID"
1365
+ },
1366
+ "name": {
1367
+ "type": "string",
1368
+ "description": "Channel name"
1369
+ },
1370
+ "topic": {
1371
+ "anyOf": [
1372
+ {
1373
+ "type": "string"
1374
+ },
1375
+ {
1376
+ "type": "null"
1377
+ }
1378
+ ],
1379
+ "description": "Channel topic"
1380
+ },
1381
+ "position": {
1382
+ "type": "number",
1383
+ "description": "Sorting position"
1384
+ },
1385
+ "parent_id": {
1386
+ "anyOf": [
1387
+ {
1388
+ "type": "string"
1389
+ },
1390
+ {
1391
+ "type": "null"
1392
+ }
1393
+ ],
1394
+ "description": "Parent category ID"
1395
+ },
1396
+ "nsfw": {
1397
+ "type": "boolean",
1398
+ "description": "Whether the channel is NSFW"
1399
+ }
1400
+ },
1401
+ "required": [
1402
+ "id",
1403
+ "type",
1404
+ "guild_id",
1405
+ "name",
1406
+ "topic",
1407
+ "position",
1408
+ "parent_id",
1409
+ "nsfw"
1410
+ ],
1411
+ "additionalProperties": false,
1412
+ "description": "Channel details"
1413
+ }
1414
+ },
1415
+ "required": [
1416
+ "channel"
1417
+ ],
1418
+ "additionalProperties": false
1419
+ }
1420
+ },
1421
+ {
1422
+ "name": "create_channel",
1423
+ "displayName": "Create Channel",
1424
+ "description": "Create a new channel in a Discord guild (server). Requires Manage Channels permission.",
1425
+ "summary": "Create a new channel in a server",
1426
+ "icon": "plus-circle",
1427
+ "group": "Channels",
1428
+ "input_schema": {
1429
+ "type": "object",
1430
+ "properties": {
1431
+ "guild_id": {
1432
+ "type": "string",
1433
+ "minLength": 1,
1434
+ "description": "Guild (server) ID to create the channel in"
1435
+ },
1436
+ "name": {
1437
+ "type": "string",
1438
+ "minLength": 1,
1439
+ "description": "Channel name (lowercase, hyphens, max 100 chars)"
1440
+ },
1441
+ "type": {
1442
+ "description": "Channel type: 0=text (default), 2=voice, 4=category, 5=announcement",
1443
+ "type": "integer",
1444
+ "minimum": -9007199254740991,
1445
+ "maximum": 9007199254740991
1446
+ },
1447
+ "topic": {
1448
+ "description": "Channel topic (max 1024 chars for text channels)",
1449
+ "type": "string"
1450
+ },
1451
+ "parent_id": {
1452
+ "description": "Parent category ID to nest the channel under",
1453
+ "type": "string"
1454
+ },
1455
+ "nsfw": {
1456
+ "description": "Whether the channel is NSFW",
1457
+ "type": "boolean"
1458
+ }
1459
+ },
1460
+ "required": [
1461
+ "guild_id",
1462
+ "name"
1463
+ ],
1464
+ "additionalProperties": false
1465
+ },
1466
+ "output_schema": {
1467
+ "type": "object",
1468
+ "properties": {
1469
+ "channel": {
1470
+ "type": "object",
1471
+ "properties": {
1472
+ "id": {
1473
+ "type": "string",
1474
+ "description": "Channel ID"
1475
+ },
1476
+ "type": {
1477
+ "type": "number",
1478
+ "description": "Channel type (0=text, 2=voice, 4=category, 5=announcement, etc.)"
1479
+ },
1480
+ "guild_id": {
1481
+ "type": "string",
1482
+ "description": "Guild ID"
1483
+ },
1484
+ "name": {
1485
+ "type": "string",
1486
+ "description": "Channel name"
1487
+ },
1488
+ "topic": {
1489
+ "anyOf": [
1490
+ {
1491
+ "type": "string"
1492
+ },
1493
+ {
1494
+ "type": "null"
1495
+ }
1496
+ ],
1497
+ "description": "Channel topic"
1498
+ },
1499
+ "position": {
1500
+ "type": "number",
1501
+ "description": "Sorting position"
1502
+ },
1503
+ "parent_id": {
1504
+ "anyOf": [
1505
+ {
1506
+ "type": "string"
1507
+ },
1508
+ {
1509
+ "type": "null"
1510
+ }
1511
+ ],
1512
+ "description": "Parent category ID"
1513
+ },
1514
+ "nsfw": {
1515
+ "type": "boolean",
1516
+ "description": "Whether the channel is NSFW"
1517
+ }
1518
+ },
1519
+ "required": [
1520
+ "id",
1521
+ "type",
1522
+ "guild_id",
1523
+ "name",
1524
+ "topic",
1525
+ "position",
1526
+ "parent_id",
1527
+ "nsfw"
1528
+ ],
1529
+ "additionalProperties": false,
1530
+ "description": "The created channel"
1531
+ }
1532
+ },
1533
+ "required": [
1534
+ "channel"
1535
+ ],
1536
+ "additionalProperties": false
1537
+ }
1538
+ },
1539
+ {
1540
+ "name": "edit_channel",
1541
+ "displayName": "Edit Channel",
1542
+ "description": "Edit a Discord channel. Update name, topic, NSFW flag, or move to a different category.",
1543
+ "summary": "Edit a channel's name, topic, or settings",
1544
+ "icon": "edit",
1545
+ "group": "Channels",
1546
+ "input_schema": {
1547
+ "type": "object",
1548
+ "properties": {
1549
+ "channel": {
1550
+ "type": "string",
1551
+ "minLength": 1,
1552
+ "description": "Channel ID to edit"
1553
+ },
1554
+ "name": {
1555
+ "description": "New channel name (lowercase, hyphens, max 100 chars)",
1556
+ "type": "string"
1557
+ },
1558
+ "topic": {
1559
+ "description": "New channel topic (max 1024 chars for text channels)",
1560
+ "type": "string"
1561
+ },
1562
+ "nsfw": {
1563
+ "description": "Whether the channel is NSFW",
1564
+ "type": "boolean"
1565
+ },
1566
+ "parent_id": {
1567
+ "description": "Parent category ID to move the channel under",
1568
+ "type": "string"
1569
+ }
1570
+ },
1571
+ "required": [
1572
+ "channel"
1573
+ ],
1574
+ "additionalProperties": false
1575
+ },
1576
+ "output_schema": {
1577
+ "type": "object",
1578
+ "properties": {
1579
+ "channel": {
1580
+ "type": "object",
1581
+ "properties": {
1582
+ "id": {
1583
+ "type": "string",
1584
+ "description": "Channel ID"
1585
+ },
1586
+ "type": {
1587
+ "type": "number",
1588
+ "description": "Channel type (0=text, 2=voice, 4=category, 5=announcement, etc.)"
1589
+ },
1590
+ "guild_id": {
1591
+ "type": "string",
1592
+ "description": "Guild ID"
1593
+ },
1594
+ "name": {
1595
+ "type": "string",
1596
+ "description": "Channel name"
1597
+ },
1598
+ "topic": {
1599
+ "anyOf": [
1600
+ {
1601
+ "type": "string"
1602
+ },
1603
+ {
1604
+ "type": "null"
1605
+ }
1606
+ ],
1607
+ "description": "Channel topic"
1608
+ },
1609
+ "position": {
1610
+ "type": "number",
1611
+ "description": "Sorting position"
1612
+ },
1613
+ "parent_id": {
1614
+ "anyOf": [
1615
+ {
1616
+ "type": "string"
1617
+ },
1618
+ {
1619
+ "type": "null"
1620
+ }
1621
+ ],
1622
+ "description": "Parent category ID"
1623
+ },
1624
+ "nsfw": {
1625
+ "type": "boolean",
1626
+ "description": "Whether the channel is NSFW"
1627
+ }
1628
+ },
1629
+ "required": [
1630
+ "id",
1631
+ "type",
1632
+ "guild_id",
1633
+ "name",
1634
+ "topic",
1635
+ "position",
1636
+ "parent_id",
1637
+ "nsfw"
1638
+ ],
1639
+ "additionalProperties": false,
1640
+ "description": "The updated channel"
1641
+ }
1642
+ },
1643
+ "required": [
1644
+ "channel"
1645
+ ],
1646
+ "additionalProperties": false
1647
+ }
1648
+ },
1649
+ {
1650
+ "name": "delete_channel",
1651
+ "displayName": "Delete Channel",
1652
+ "description": "Delete a Discord channel. This action is permanent and cannot be undone.",
1653
+ "summary": "Delete a channel permanently",
1654
+ "icon": "trash-2",
1655
+ "group": "Channels",
1656
+ "input_schema": {
1657
+ "type": "object",
1658
+ "properties": {
1659
+ "channel": {
1660
+ "type": "string",
1661
+ "minLength": 1,
1662
+ "description": "Channel ID to delete"
1663
+ }
1664
+ },
1665
+ "required": [
1666
+ "channel"
1667
+ ],
1668
+ "additionalProperties": false
1669
+ },
1670
+ "output_schema": {
1671
+ "type": "object",
1672
+ "properties": {
1673
+ "channel": {
1674
+ "type": "object",
1675
+ "properties": {
1676
+ "id": {
1677
+ "type": "string",
1678
+ "description": "Channel ID"
1679
+ },
1680
+ "type": {
1681
+ "type": "number",
1682
+ "description": "Channel type (0=text, 2=voice, 4=category, 5=announcement, etc.)"
1683
+ },
1684
+ "guild_id": {
1685
+ "type": "string",
1686
+ "description": "Guild ID"
1687
+ },
1688
+ "name": {
1689
+ "type": "string",
1690
+ "description": "Channel name"
1691
+ },
1692
+ "topic": {
1693
+ "anyOf": [
1694
+ {
1695
+ "type": "string"
1696
+ },
1697
+ {
1698
+ "type": "null"
1699
+ }
1700
+ ],
1701
+ "description": "Channel topic"
1702
+ },
1703
+ "position": {
1704
+ "type": "number",
1705
+ "description": "Sorting position"
1706
+ },
1707
+ "parent_id": {
1708
+ "anyOf": [
1709
+ {
1710
+ "type": "string"
1711
+ },
1712
+ {
1713
+ "type": "null"
1714
+ }
1715
+ ],
1716
+ "description": "Parent category ID"
1717
+ },
1718
+ "nsfw": {
1719
+ "type": "boolean",
1720
+ "description": "Whether the channel is NSFW"
1721
+ }
1722
+ },
1723
+ "required": [
1724
+ "id",
1725
+ "type",
1726
+ "guild_id",
1727
+ "name",
1728
+ "topic",
1729
+ "position",
1730
+ "parent_id",
1731
+ "nsfw"
1732
+ ],
1733
+ "additionalProperties": false,
1734
+ "description": "The deleted channel"
1735
+ }
1736
+ },
1737
+ "required": [
1738
+ "channel"
1739
+ ],
1740
+ "additionalProperties": false
1741
+ }
1742
+ },
1743
+ {
1744
+ "name": "list_members",
1745
+ "displayName": "List Members",
1746
+ "description": "List members in a Discord guild (server)",
1747
+ "summary": "List members in a server",
1748
+ "icon": "users",
1749
+ "group": "Users",
1750
+ "input_schema": {
1751
+ "type": "object",
1752
+ "properties": {
1753
+ "guild_id": {
1754
+ "type": "string",
1755
+ "minLength": 1,
1756
+ "description": "Guild (server) ID to list members for"
1757
+ },
1758
+ "limit": {
1759
+ "description": "Max members to return (default 100, max 1000)",
1760
+ "type": "integer",
1761
+ "minimum": 1,
1762
+ "maximum": 1000
1763
+ },
1764
+ "after": {
1765
+ "description": "Get members after this user ID (for pagination)",
1766
+ "type": "string"
1767
+ }
1768
+ },
1769
+ "required": [
1770
+ "guild_id"
1771
+ ],
1772
+ "additionalProperties": false
1773
+ },
1774
+ "output_schema": {
1775
+ "type": "object",
1776
+ "properties": {
1777
+ "members": {
1778
+ "type": "array",
1779
+ "items": {
1780
+ "type": "object",
1781
+ "properties": {
1782
+ "user": {
1783
+ "type": "object",
1784
+ "properties": {
1785
+ "id": {
1786
+ "type": "string",
1787
+ "description": "User ID"
1788
+ },
1789
+ "username": {
1790
+ "type": "string",
1791
+ "description": "Username"
1792
+ },
1793
+ "global_name": {
1794
+ "anyOf": [
1795
+ {
1796
+ "type": "string"
1797
+ },
1798
+ {
1799
+ "type": "null"
1800
+ }
1801
+ ],
1802
+ "description": "Display name"
1803
+ },
1804
+ "avatar": {
1805
+ "anyOf": [
1806
+ {
1807
+ "type": "string"
1808
+ },
1809
+ {
1810
+ "type": "null"
1811
+ }
1812
+ ],
1813
+ "description": "Avatar hash"
1814
+ },
1815
+ "bot": {
1816
+ "type": "boolean",
1817
+ "description": "Whether the user is a bot"
1818
+ }
1819
+ },
1820
+ "required": [
1821
+ "id",
1822
+ "username",
1823
+ "global_name",
1824
+ "avatar",
1825
+ "bot"
1826
+ ],
1827
+ "additionalProperties": false,
1828
+ "description": "Member user info"
1829
+ },
1830
+ "nick": {
1831
+ "anyOf": [
1832
+ {
1833
+ "type": "string"
1834
+ },
1835
+ {
1836
+ "type": "null"
1837
+ }
1838
+ ],
1839
+ "description": "Server nickname"
1840
+ },
1841
+ "roles": {
1842
+ "type": "array",
1843
+ "items": {
1844
+ "type": "string"
1845
+ },
1846
+ "description": "List of role IDs"
1847
+ },
1848
+ "joined_at": {
1849
+ "type": "string",
1850
+ "description": "When the member joined the guild"
1851
+ }
1852
+ },
1853
+ "required": [
1854
+ "user",
1855
+ "nick",
1856
+ "roles",
1857
+ "joined_at"
1858
+ ],
1859
+ "additionalProperties": false
1860
+ },
1861
+ "description": "List of guild members"
1862
+ }
1863
+ },
1864
+ "required": [
1865
+ "members"
1866
+ ],
1867
+ "additionalProperties": false
1868
+ }
1869
+ },
1870
+ {
1871
+ "name": "list_roles",
1872
+ "displayName": "List Roles",
1873
+ "description": "List all roles in a Discord guild (server). Returns roles sorted by position.",
1874
+ "summary": "List roles in a server",
1875
+ "icon": "tag",
1876
+ "group": "Servers",
1877
+ "input_schema": {
1878
+ "type": "object",
1879
+ "properties": {
1880
+ "guild_id": {
1881
+ "type": "string",
1882
+ "minLength": 1,
1883
+ "description": "Guild (server) ID to list roles for"
1884
+ }
1885
+ },
1886
+ "required": [
1887
+ "guild_id"
1888
+ ],
1889
+ "additionalProperties": false
1890
+ },
1891
+ "output_schema": {
1892
+ "type": "object",
1893
+ "properties": {
1894
+ "roles": {
1895
+ "type": "array",
1896
+ "items": {
1897
+ "type": "object",
1898
+ "properties": {
1899
+ "id": {
1900
+ "type": "string",
1901
+ "description": "Role ID"
1902
+ },
1903
+ "name": {
1904
+ "type": "string",
1905
+ "description": "Role name"
1906
+ },
1907
+ "color": {
1908
+ "type": "number",
1909
+ "description": "Integer representation of hex color code"
1910
+ },
1911
+ "position": {
1912
+ "type": "number",
1913
+ "description": "Sorting position of the role"
1914
+ },
1915
+ "permissions": {
1916
+ "type": "string",
1917
+ "description": "Permission bit set as a string"
1918
+ },
1919
+ "managed": {
1920
+ "type": "boolean",
1921
+ "description": "Whether the role is managed by an integration"
1922
+ },
1923
+ "mentionable": {
1924
+ "type": "boolean",
1925
+ "description": "Whether the role can be mentioned"
1926
+ }
1927
+ },
1928
+ "required": [
1929
+ "id",
1930
+ "name",
1931
+ "color",
1932
+ "position",
1933
+ "permissions",
1934
+ "managed",
1935
+ "mentionable"
1936
+ ],
1937
+ "additionalProperties": false
1938
+ },
1939
+ "description": "List of roles"
1940
+ }
1941
+ },
1942
+ "required": [
1943
+ "roles"
1944
+ ],
1945
+ "additionalProperties": false
1946
+ }
1947
+ },
1948
+ {
1949
+ "name": "get_user_profile",
1950
+ "displayName": "Get User Profile",
1951
+ "description": "Get a Discord user's profile by their user ID. Use \"@me\" for the authenticated user.",
1952
+ "summary": "Get a user's profile information",
1953
+ "icon": "user",
1954
+ "group": "Users",
1955
+ "input_schema": {
1956
+ "type": "object",
1957
+ "properties": {
1958
+ "user_id": {
1959
+ "type": "string",
1960
+ "minLength": 1,
1961
+ "description": "User ID to look up, or \"@me\" for the authenticated user"
1962
+ }
1963
+ },
1964
+ "required": [
1965
+ "user_id"
1966
+ ],
1967
+ "additionalProperties": false
1968
+ },
1969
+ "output_schema": {
1970
+ "type": "object",
1971
+ "properties": {
1972
+ "user": {
1973
+ "type": "object",
1974
+ "properties": {
1975
+ "id": {
1976
+ "type": "string",
1977
+ "description": "User ID"
1978
+ },
1979
+ "username": {
1980
+ "type": "string",
1981
+ "description": "Username"
1982
+ },
1983
+ "global_name": {
1984
+ "anyOf": [
1985
+ {
1986
+ "type": "string"
1987
+ },
1988
+ {
1989
+ "type": "null"
1990
+ }
1991
+ ],
1992
+ "description": "Display name"
1993
+ },
1994
+ "avatar": {
1995
+ "anyOf": [
1996
+ {
1997
+ "type": "string"
1998
+ },
1999
+ {
2000
+ "type": "null"
2001
+ }
2002
+ ],
2003
+ "description": "Avatar hash"
2004
+ },
2005
+ "banner": {
2006
+ "anyOf": [
2007
+ {
2008
+ "type": "string"
2009
+ },
2010
+ {
2011
+ "type": "null"
2012
+ }
2013
+ ],
2014
+ "description": "Banner hash"
2015
+ },
2016
+ "bio": {
2017
+ "type": "string",
2018
+ "description": "User bio"
2019
+ },
2020
+ "bot": {
2021
+ "type": "boolean",
2022
+ "description": "Whether the user is a bot"
2023
+ },
2024
+ "email": {
2025
+ "anyOf": [
2026
+ {
2027
+ "type": "string"
2028
+ },
2029
+ {
2030
+ "type": "null"
2031
+ }
2032
+ ],
2033
+ "description": "Email (only available for @me)"
2034
+ },
2035
+ "verified": {
2036
+ "type": "boolean",
2037
+ "description": "Whether the email is verified"
2038
+ },
2039
+ "mfa_enabled": {
2040
+ "type": "boolean",
2041
+ "description": "Whether 2FA is enabled"
2042
+ },
2043
+ "locale": {
2044
+ "anyOf": [
2045
+ {
2046
+ "type": "string"
2047
+ },
2048
+ {
2049
+ "type": "null"
2050
+ }
2051
+ ],
2052
+ "description": "User locale"
2053
+ }
2054
+ },
2055
+ "required": [
2056
+ "id",
2057
+ "username",
2058
+ "global_name",
2059
+ "avatar",
2060
+ "banner",
2061
+ "bio",
2062
+ "bot",
2063
+ "email",
2064
+ "verified",
2065
+ "mfa_enabled",
2066
+ "locale"
2067
+ ],
2068
+ "additionalProperties": false
2069
+ }
2070
+ },
2071
+ "required": [
2072
+ "user"
2073
+ ],
2074
+ "additionalProperties": false
2075
+ }
2076
+ },
2077
+ {
2078
+ "name": "list_dms",
2079
+ "displayName": "List DMs",
2080
+ "description": "List all open direct message channels for the authenticated user",
2081
+ "summary": "List open direct message channels",
2082
+ "icon": "mail",
2083
+ "group": "DMs",
2084
+ "input_schema": {
2085
+ "type": "object",
2086
+ "properties": {},
2087
+ "additionalProperties": false
2088
+ },
2089
+ "output_schema": {
2090
+ "type": "object",
2091
+ "properties": {
2092
+ "channels": {
2093
+ "type": "array",
2094
+ "items": {
2095
+ "type": "object",
2096
+ "properties": {
2097
+ "id": {
2098
+ "type": "string",
2099
+ "description": "DM channel ID"
2100
+ },
2101
+ "type": {
2102
+ "type": "number",
2103
+ "description": "Channel type (1=DM, 3=group DM)"
2104
+ },
2105
+ "recipients": {
2106
+ "type": "array",
2107
+ "items": {
2108
+ "type": "object",
2109
+ "properties": {
2110
+ "id": {
2111
+ "type": "string",
2112
+ "description": "User ID"
2113
+ },
2114
+ "username": {
2115
+ "type": "string",
2116
+ "description": "Username"
2117
+ },
2118
+ "global_name": {
2119
+ "anyOf": [
2120
+ {
2121
+ "type": "string"
2122
+ },
2123
+ {
2124
+ "type": "null"
2125
+ }
2126
+ ],
2127
+ "description": "Display name"
2128
+ },
2129
+ "avatar": {
2130
+ "anyOf": [
2131
+ {
2132
+ "type": "string"
2133
+ },
2134
+ {
2135
+ "type": "null"
2136
+ }
2137
+ ],
2138
+ "description": "Avatar hash"
2139
+ },
2140
+ "bot": {
2141
+ "type": "boolean",
2142
+ "description": "Whether the user is a bot"
2143
+ }
2144
+ },
2145
+ "required": [
2146
+ "id",
2147
+ "username",
2148
+ "global_name",
2149
+ "avatar",
2150
+ "bot"
2151
+ ],
2152
+ "additionalProperties": false
2153
+ },
2154
+ "description": "Users in the DM"
2155
+ },
2156
+ "last_message_id": {
2157
+ "anyOf": [
2158
+ {
2159
+ "type": "string"
2160
+ },
2161
+ {
2162
+ "type": "null"
2163
+ }
2164
+ ],
2165
+ "description": "ID of the last message"
2166
+ }
2167
+ },
2168
+ "required": [
2169
+ "id",
2170
+ "type",
2171
+ "recipients",
2172
+ "last_message_id"
2173
+ ],
2174
+ "additionalProperties": false
2175
+ },
2176
+ "description": "List of DM channels"
2177
+ }
2178
+ },
2179
+ "required": [
2180
+ "channels"
2181
+ ],
2182
+ "additionalProperties": false
2183
+ }
2184
+ },
2185
+ {
2186
+ "name": "open_dm",
2187
+ "displayName": "Open DM",
2188
+ "description": "Open or get an existing direct message channel with a user. For group DMs, pass multiple user IDs.",
2189
+ "summary": "Open a direct message conversation",
2190
+ "icon": "message-circle",
2191
+ "group": "DMs",
2192
+ "input_schema": {
2193
+ "type": "object",
2194
+ "properties": {
2195
+ "recipient_ids": {
2196
+ "minItems": 1,
2197
+ "type": "array",
2198
+ "items": {
2199
+ "type": "string"
2200
+ },
2201
+ "description": "Array of user IDs to open a DM with (1 for DM, 2+ for group DM)"
2202
+ }
2203
+ },
2204
+ "required": [
2205
+ "recipient_ids"
2206
+ ],
2207
+ "additionalProperties": false
2208
+ },
2209
+ "output_schema": {
2210
+ "type": "object",
2211
+ "properties": {
2212
+ "channel_id": {
2213
+ "type": "string",
2214
+ "description": "The DM channel ID"
2215
+ },
2216
+ "type": {
2217
+ "type": "number",
2218
+ "description": "Channel type (1=DM, 3=group DM)"
2219
+ },
2220
+ "recipients": {
2221
+ "type": "array",
2222
+ "items": {
2223
+ "type": "object",
2224
+ "properties": {
2225
+ "id": {
2226
+ "type": "string",
2227
+ "description": "User ID"
2228
+ },
2229
+ "username": {
2230
+ "type": "string",
2231
+ "description": "Username"
2232
+ },
2233
+ "global_name": {
2234
+ "anyOf": [
2235
+ {
2236
+ "type": "string"
2237
+ },
2238
+ {
2239
+ "type": "null"
2240
+ }
2241
+ ],
2242
+ "description": "Display name"
2243
+ },
2244
+ "avatar": {
2245
+ "anyOf": [
2246
+ {
2247
+ "type": "string"
2248
+ },
2249
+ {
2250
+ "type": "null"
2251
+ }
2252
+ ],
2253
+ "description": "Avatar hash"
2254
+ },
2255
+ "bot": {
2256
+ "type": "boolean",
2257
+ "description": "Whether the user is a bot"
2258
+ }
2259
+ },
2260
+ "required": [
2261
+ "id",
2262
+ "username",
2263
+ "global_name",
2264
+ "avatar",
2265
+ "bot"
2266
+ ],
2267
+ "additionalProperties": false
2268
+ },
2269
+ "description": "Users in the DM"
2270
+ }
2271
+ },
2272
+ "required": [
2273
+ "channel_id",
2274
+ "type",
2275
+ "recipients"
2276
+ ],
2277
+ "additionalProperties": false
2278
+ }
2279
+ },
2280
+ {
2281
+ "name": "add_reaction",
2282
+ "displayName": "Add Reaction",
2283
+ "description": "Add an emoji reaction to a message",
2284
+ "summary": "Add an emoji reaction to a message",
2285
+ "icon": "smile-plus",
2286
+ "group": "Reactions",
2287
+ "input_schema": {
2288
+ "type": "object",
2289
+ "properties": {
2290
+ "channel": {
2291
+ "type": "string",
2292
+ "minLength": 1,
2293
+ "description": "Channel ID where the message is located"
2294
+ },
2295
+ "message_id": {
2296
+ "type": "string",
2297
+ "minLength": 1,
2298
+ "description": "Message ID to react to"
2299
+ },
2300
+ "emoji": {
2301
+ "type": "string",
2302
+ "minLength": 1,
2303
+ "description": "Emoji to react with — use Unicode emoji (e.g., \"👍\") or custom emoji format \"name:id\""
2304
+ }
2305
+ },
2306
+ "required": [
2307
+ "channel",
2308
+ "message_id",
2309
+ "emoji"
2310
+ ],
2311
+ "additionalProperties": false
2312
+ },
2313
+ "output_schema": {
2314
+ "type": "object",
2315
+ "properties": {},
2316
+ "additionalProperties": false
2317
+ }
2318
+ },
2319
+ {
2320
+ "name": "remove_reaction",
2321
+ "displayName": "Remove Reaction",
2322
+ "description": "Remove your emoji reaction from a message",
2323
+ "summary": "Remove an emoji reaction from a message",
2324
+ "icon": "frown",
2325
+ "group": "Reactions",
2326
+ "input_schema": {
2327
+ "type": "object",
2328
+ "properties": {
2329
+ "channel": {
2330
+ "type": "string",
2331
+ "minLength": 1,
2332
+ "description": "Channel ID where the message is located"
2333
+ },
2334
+ "message_id": {
2335
+ "type": "string",
2336
+ "minLength": 1,
2337
+ "description": "Message ID to remove reaction from"
2338
+ },
2339
+ "emoji": {
2340
+ "type": "string",
2341
+ "minLength": 1,
2342
+ "description": "Emoji to remove — use Unicode emoji (e.g., \"👍\") or custom emoji format \"name:id\""
2343
+ }
2344
+ },
2345
+ "required": [
2346
+ "channel",
2347
+ "message_id",
2348
+ "emoji"
2349
+ ],
2350
+ "additionalProperties": false
2351
+ },
2352
+ "output_schema": {
2353
+ "type": "object",
2354
+ "properties": {},
2355
+ "additionalProperties": false
2356
+ }
2357
+ },
2358
+ {
2359
+ "name": "pin_message",
2360
+ "displayName": "Pin Message",
2361
+ "description": "Pin a message in a channel. Requires Manage Messages permission.",
2362
+ "summary": "Pin a message in a channel",
2363
+ "icon": "pin",
2364
+ "group": "Reactions",
2365
+ "input_schema": {
2366
+ "type": "object",
2367
+ "properties": {
2368
+ "channel": {
2369
+ "type": "string",
2370
+ "minLength": 1,
2371
+ "description": "Channel ID where the message is located"
2372
+ },
2373
+ "message_id": {
2374
+ "type": "string",
2375
+ "minLength": 1,
2376
+ "description": "Message ID to pin"
2377
+ }
2378
+ },
2379
+ "required": [
2380
+ "channel",
2381
+ "message_id"
2382
+ ],
2383
+ "additionalProperties": false
2384
+ },
2385
+ "output_schema": {
2386
+ "type": "object",
2387
+ "properties": {},
2388
+ "additionalProperties": false
2389
+ }
2390
+ },
2391
+ {
2392
+ "name": "unpin_message",
2393
+ "displayName": "Unpin Message",
2394
+ "description": "Unpin a message from a channel. Requires Manage Messages permission.",
2395
+ "summary": "Unpin a message from a channel",
2396
+ "icon": "pin-off",
2397
+ "group": "Reactions",
2398
+ "input_schema": {
2399
+ "type": "object",
2400
+ "properties": {
2401
+ "channel": {
2402
+ "type": "string",
2403
+ "minLength": 1,
2404
+ "description": "Channel ID where the message is located"
2405
+ },
2406
+ "message_id": {
2407
+ "type": "string",
2408
+ "minLength": 1,
2409
+ "description": "Message ID to unpin"
2410
+ }
2411
+ },
2412
+ "required": [
2413
+ "channel",
2414
+ "message_id"
2415
+ ],
2416
+ "additionalProperties": false
2417
+ },
2418
+ "output_schema": {
2419
+ "type": "object",
2420
+ "properties": {},
2421
+ "additionalProperties": false
2422
+ }
2423
+ },
2424
+ {
2425
+ "name": "create_thread",
2426
+ "displayName": "Create Thread",
2427
+ "description": "Create a new thread from a message, or a standalone thread in a channel. Threads are temporary sub-channels for focused conversation.",
2428
+ "summary": "Create a new thread",
2429
+ "icon": "git-branch",
2430
+ "group": "Channels",
2431
+ "input_schema": {
2432
+ "type": "object",
2433
+ "properties": {
2434
+ "channel": {
2435
+ "type": "string",
2436
+ "minLength": 1,
2437
+ "description": "Channel ID to create the thread in"
2438
+ },
2439
+ "name": {
2440
+ "type": "string",
2441
+ "minLength": 1,
2442
+ "description": "Thread name (max 100 chars)"
2443
+ },
2444
+ "message_id": {
2445
+ "description": "Message ID to start a thread from (omit for a standalone thread)",
2446
+ "type": "string"
2447
+ },
2448
+ "auto_archive_duration": {
2449
+ "description": "Minutes of inactivity before auto-archiving: 60, 1440, 4320, or 10080",
2450
+ "type": "integer",
2451
+ "minimum": -9007199254740991,
2452
+ "maximum": 9007199254740991
2453
+ }
2454
+ },
2455
+ "required": [
2456
+ "channel",
2457
+ "name"
2458
+ ],
2459
+ "additionalProperties": false
2460
+ },
2461
+ "output_schema": {
2462
+ "type": "object",
2463
+ "properties": {
2464
+ "thread": {
2465
+ "type": "object",
2466
+ "properties": {
2467
+ "id": {
2468
+ "type": "string",
2469
+ "description": "Channel ID"
2470
+ },
2471
+ "type": {
2472
+ "type": "number",
2473
+ "description": "Channel type (0=text, 2=voice, 4=category, 5=announcement, etc.)"
2474
+ },
2475
+ "guild_id": {
2476
+ "type": "string",
2477
+ "description": "Guild ID"
2478
+ },
2479
+ "name": {
2480
+ "type": "string",
2481
+ "description": "Channel name"
2482
+ },
2483
+ "topic": {
2484
+ "anyOf": [
2485
+ {
2486
+ "type": "string"
2487
+ },
2488
+ {
2489
+ "type": "null"
2490
+ }
2491
+ ],
2492
+ "description": "Channel topic"
2493
+ },
2494
+ "position": {
2495
+ "type": "number",
2496
+ "description": "Sorting position"
2497
+ },
2498
+ "parent_id": {
2499
+ "anyOf": [
2500
+ {
2501
+ "type": "string"
2502
+ },
2503
+ {
2504
+ "type": "null"
2505
+ }
2506
+ ],
2507
+ "description": "Parent category ID"
2508
+ },
2509
+ "nsfw": {
2510
+ "type": "boolean",
2511
+ "description": "Whether the channel is NSFW"
2512
+ }
2513
+ },
2514
+ "required": [
2515
+ "id",
2516
+ "type",
2517
+ "guild_id",
2518
+ "name",
2519
+ "topic",
2520
+ "position",
2521
+ "parent_id",
2522
+ "nsfw"
2523
+ ],
2524
+ "additionalProperties": false,
2525
+ "description": "The created thread channel"
2526
+ }
2527
+ },
2528
+ "required": [
2529
+ "thread"
2530
+ ],
2531
+ "additionalProperties": false
2532
+ }
2533
+ },
2534
+ {
2535
+ "name": "upload_file",
2536
+ "displayName": "Upload File",
2537
+ "description": "Upload a file to a Discord channel. Supports text files and base64-encoded binary files.",
2538
+ "summary": "Upload a file to a channel",
2539
+ "icon": "upload",
2540
+ "group": "Files",
2541
+ "input_schema": {
2542
+ "type": "object",
2543
+ "properties": {
2544
+ "channel": {
2545
+ "type": "string",
2546
+ "minLength": 1,
2547
+ "description": "Channel ID to share the file to"
2548
+ },
2549
+ "content": {
2550
+ "type": "string",
2551
+ "minLength": 1,
2552
+ "description": "File content as a UTF-8 string (text files) or base64-encoded string (binary files)"
2553
+ },
2554
+ "filename": {
2555
+ "type": "string",
2556
+ "minLength": 1,
2557
+ "description": "Name of the file including extension (e.g., report.txt, image.png)"
2558
+ },
2559
+ "is_base64": {
2560
+ "description": "Set to true when content is base64-encoded (e.g., binary files like images or PDFs). Defaults to false (UTF-8 text).",
2561
+ "type": "boolean"
2562
+ },
2563
+ "initial_comment": {
2564
+ "description": "Message text to include with the file upload",
2565
+ "type": "string"
2566
+ }
2567
+ },
2568
+ "required": [
2569
+ "channel",
2570
+ "content",
2571
+ "filename"
2572
+ ],
2573
+ "additionalProperties": false
2574
+ },
2575
+ "output_schema": {
2576
+ "type": "object",
2577
+ "properties": {
2578
+ "message": {
2579
+ "type": "object",
2580
+ "properties": {
2581
+ "id": {
2582
+ "type": "string",
2583
+ "description": "Message ID"
2584
+ },
2585
+ "channel_id": {
2586
+ "type": "string",
2587
+ "description": "Channel ID"
2588
+ },
2589
+ "author": {
2590
+ "type": "object",
2591
+ "properties": {
2592
+ "id": {
2593
+ "type": "string",
2594
+ "description": "User ID"
2595
+ },
2596
+ "username": {
2597
+ "type": "string",
2598
+ "description": "Username"
2599
+ },
2600
+ "global_name": {
2601
+ "anyOf": [
2602
+ {
2603
+ "type": "string"
2604
+ },
2605
+ {
2606
+ "type": "null"
2607
+ }
2608
+ ],
2609
+ "description": "Display name"
2610
+ },
2611
+ "avatar": {
2612
+ "anyOf": [
2613
+ {
2614
+ "type": "string"
2615
+ },
2616
+ {
2617
+ "type": "null"
2618
+ }
2619
+ ],
2620
+ "description": "Avatar hash"
2621
+ },
2622
+ "bot": {
2623
+ "type": "boolean",
2624
+ "description": "Whether the user is a bot"
2625
+ }
2626
+ },
2627
+ "required": [
2628
+ "id",
2629
+ "username",
2630
+ "global_name",
2631
+ "avatar",
2632
+ "bot"
2633
+ ],
2634
+ "additionalProperties": false,
2635
+ "description": "Message author"
2636
+ },
2637
+ "content": {
2638
+ "type": "string",
2639
+ "description": "Message text content"
2640
+ },
2641
+ "timestamp": {
2642
+ "type": "string",
2643
+ "description": "ISO 8601 timestamp"
2644
+ },
2645
+ "edited_timestamp": {
2646
+ "anyOf": [
2647
+ {
2648
+ "type": "string"
2649
+ },
2650
+ {
2651
+ "type": "null"
2652
+ }
2653
+ ],
2654
+ "description": "Edit timestamp or null"
2655
+ },
2656
+ "pinned": {
2657
+ "type": "boolean",
2658
+ "description": "Whether the message is pinned"
2659
+ }
2660
+ },
2661
+ "required": [
2662
+ "id",
2663
+ "channel_id",
2664
+ "author",
2665
+ "content",
2666
+ "timestamp",
2667
+ "edited_timestamp",
2668
+ "pinned"
2669
+ ],
2670
+ "additionalProperties": false,
2671
+ "description": "The message containing the uploaded file"
2672
+ }
2673
+ },
2674
+ "required": [
2675
+ "message"
2676
+ ],
2677
+ "additionalProperties": false
2678
+ }
2679
+ }
2680
+ ]
2681
+ }