@firfi/huly-mcp 0.1.16 → 0.1.18

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 (3) hide show
  1. package/README.md +72 -3
  2. package/dist/index.cjs +137 -20
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/)
7
7
  [![MCP Server](https://badge.mcpx.dev?type=server&features=tools)](https://github.com/dearlordylord/huly-mcp)
8
- [![cooked at Monadical](https://img.shields.io/endpoint?url=https://monadical.com/static/api/cooked-at-monadical.json)](https://monadical.com)
8
+ [![cooked at Monadical](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Monadical-SAS/monadical.com/main/static/api/cooked-at-monadical.json)](https://monadical.com)
9
9
 
10
10
  MCP server for [Huly](https://huly.io/) integration.
11
11
 
@@ -120,14 +120,17 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
120
120
  | Variable | Required | Description |
121
121
  |----------|----------|-------------|
122
122
  | `HULY_URL` | Yes | Huly instance URL |
123
- | `HULY_EMAIL` | Yes | Account email |
124
- | `HULY_PASSWORD` | Yes | Account password |
123
+ | `HULY_EMAIL` | Auth* | Account email |
124
+ | `HULY_PASSWORD` | Auth* | Account password |
125
+ | `HULY_TOKEN` | Auth* | API token (alternative to email/password) |
125
126
  | `HULY_WORKSPACE` | Yes | Workspace identifier |
126
127
  | `HULY_CONNECTION_TIMEOUT` | No | Connection timeout in ms (default: 30000) |
127
128
  | `MCP_TRANSPORT` | No | Transport type: `stdio` (default) or `http` |
128
129
  | `MCP_HTTP_PORT` | No | HTTP server port (default: 3000) |
129
130
  | `MCP_HTTP_HOST` | No | HTTP server host (default: 127.0.0.1) |
130
131
 
132
+ *Auth: Provide either `HULY_EMAIL` + `HULY_PASSWORD` or `HULY_TOKEN`.
133
+
131
134
  <!-- tools:start -->
132
135
  ## Available Tools
133
136
 
@@ -197,6 +200,20 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
197
200
  |------|-------------|
198
201
  | `upload_file` | Upload a file to Huly storage. Provide ONE of: filePath (local file - preferred), fileUrl (fetch from URL), or data (base64 - for small files only). Returns blob ID and URL for referencing the file. |
199
202
 
203
+ ### Attachments
204
+
205
+ | Tool | Description |
206
+ |------|-------------|
207
+ | `list_attachments` | List attachments on a Huly object (issue, document, etc.). Returns attachments sorted by modification date (newest first). |
208
+ | `get_attachment` | Retrieve full details for a Huly attachment including download URL. |
209
+ | `add_attachment` | Add an attachment to a Huly object. Provide ONE of: filePath (local file - preferred), fileUrl (fetch from URL), or data (base64). Returns the attachment ID and download URL. |
210
+ | `update_attachment` | Update attachment metadata (description, pinned status). |
211
+ | `delete_attachment` | Permanently delete an attachment. This action cannot be undone. |
212
+ | `pin_attachment` | Pin or unpin an attachment. |
213
+ | `download_attachment` | Get download URL for an attachment along with file metadata (name, type, size). |
214
+ | `add_issue_attachment` | Add an attachment to a Huly issue. Convenience method that finds the issue by project and identifier. Provide ONE of: filePath, fileUrl, or data. |
215
+ | `add_document_attachment` | Add an attachment to a Huly document. Convenience method that finds the document by teamspace and title/ID. Provide ONE of: filePath, fileUrl, or data. |
216
+
200
217
  ### Contacts
201
218
 
202
219
  | Tool | Description |
@@ -253,4 +270,56 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
253
270
  | `start_timer` | Start a client-side timer on a Huly issue. Validates the issue exists and returns a start timestamp. Use log_time to record the elapsed time when done. |
254
271
  | `stop_timer` | Stop a client-side timer on a Huly issue. Returns the stop timestamp. Calculate elapsed time from start/stop timestamps and use log_time to record it. |
255
272
 
273
+ ### Search
274
+
275
+ | Tool | Description |
276
+ |------|-------------|
277
+ | `fulltext_search` | Perform a global fulltext search across all Huly content. Searches issues, documents, messages, and other indexed content. Returns matching items sorted by relevance (newest first). |
278
+
279
+ ### Activity
280
+
281
+ | Tool | Description |
282
+ |------|-------------|
283
+ | `list_activity` | List activity messages for a Huly object. Returns activity sorted by date (newest first). |
284
+ | `add_reaction` | Add an emoji reaction to an activity message. |
285
+ | `remove_reaction` | Remove an emoji reaction from an activity message. |
286
+ | `list_reactions` | List reactions on an activity message. |
287
+ | `save_message` | Save/bookmark an activity message for later reference. |
288
+ | `unsave_message` | Remove an activity message from saved/bookmarks. |
289
+ | `list_saved_messages` | List saved/bookmarked activity messages. |
290
+ | `list_mentions` | List @mentions of the current user in activity messages. |
291
+
292
+ ### Notifications
293
+
294
+ | Tool | Description |
295
+ |------|-------------|
296
+ | `list_notifications` | List inbox notifications. Returns notifications sorted by modification date (newest first). Supports filtering by read/archived status. |
297
+ | `get_notification` | Retrieve full details for a notification. Use this to view notification content and metadata. |
298
+ | `mark_notification_read` | Mark a notification as read. |
299
+ | `mark_all_notifications_read` | Mark all unread notifications as read. Returns the count of notifications marked. |
300
+ | `archive_notification` | Archive a notification. Archived notifications are hidden from the main inbox view. |
301
+ | `archive_all_notifications` | Archive all notifications. Returns the count of notifications archived. |
302
+ | `delete_notification` | Permanently delete a notification. This action cannot be undone. |
303
+ | `get_notification_context` | Get notification context for an entity. Returns tracking information for a specific object. |
304
+ | `list_notification_contexts` | List notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status. |
305
+ | `pin_notification_context` | Pin or unpin a notification context. Pinned contexts are highlighted in the inbox. |
306
+ | `list_notification_settings` | List notification provider settings. Returns current notification preferences. |
307
+ | `update_notification_provider_setting` | Update notification provider setting. Enable or disable notifications for a specific provider. |
308
+ | `get_unread_notification_count` | Get the count of unread notifications. |
309
+
310
+ ### Workspace
311
+
312
+ | Tool | Description |
313
+ |------|-------------|
314
+ | `list_workspace_members` | List members in the current Huly workspace with their roles. Returns members with account IDs and roles. |
315
+ | `update_member_role` | Update a workspace member's role. Requires appropriate permissions. Valid roles: READONLYGUEST, DocGuest, GUEST, USER, MAINTAINER, OWNER, ADMIN. |
316
+ | `get_workspace_info` | Get information about the current workspace including name, URL, region, and settings. |
317
+ | `list_workspaces` | List all workspaces accessible to the current user. Returns workspace summaries sorted by last visit. |
318
+ | `create_workspace` | Create a new Huly workspace. Returns the workspace UUID and URL. Optionally specify a region. |
319
+ | `delete_workspace` | Permanently delete the current workspace. This action cannot be undone. Use with extreme caution. |
320
+ | `get_user_profile` | Get the current user's profile information including bio, location, and social links. |
321
+ | `update_user_profile` | Update the current user's profile. Supports bio, city, country, website, social links, and public visibility. |
322
+ | `update_guest_settings` | Update workspace guest settings. Control read-only guest access and guest sign-up permissions. |
323
+ | `get_regions` | Get available regions for workspace creation. Returns region codes and display names. |
324
+
256
325
  <!-- tools:end -->
package/dist/index.cjs CHANGED
@@ -170118,10 +170118,12 @@ var createNoParamsWorkspaceToolHandler = (_toolName, operation) => {
170118
170118
  };
170119
170119
 
170120
170120
  // src/mcp/tools/activity.ts
170121
+ var CATEGORY = "Activity";
170121
170122
  var activityTools = [
170122
170123
  {
170123
170124
  name: "list_activity",
170124
170125
  description: "List activity messages for a Huly object. Returns activity sorted by date (newest first).",
170126
+ category: CATEGORY,
170125
170127
  inputSchema: listActivityParamsJsonSchema,
170126
170128
  handler: createToolHandler(
170127
170129
  "list_activity",
@@ -170132,6 +170134,7 @@ var activityTools = [
170132
170134
  {
170133
170135
  name: "add_reaction",
170134
170136
  description: "Add an emoji reaction to an activity message.",
170137
+ category: CATEGORY,
170135
170138
  inputSchema: addReactionParamsJsonSchema,
170136
170139
  handler: createToolHandler(
170137
170140
  "add_reaction",
@@ -170142,6 +170145,7 @@ var activityTools = [
170142
170145
  {
170143
170146
  name: "remove_reaction",
170144
170147
  description: "Remove an emoji reaction from an activity message.",
170148
+ category: CATEGORY,
170145
170149
  inputSchema: removeReactionParamsJsonSchema,
170146
170150
  handler: createToolHandler(
170147
170151
  "remove_reaction",
@@ -170152,6 +170156,7 @@ var activityTools = [
170152
170156
  {
170153
170157
  name: "list_reactions",
170154
170158
  description: "List reactions on an activity message.",
170159
+ category: CATEGORY,
170155
170160
  inputSchema: listReactionsParamsJsonSchema,
170156
170161
  handler: createToolHandler(
170157
170162
  "list_reactions",
@@ -170162,6 +170167,7 @@ var activityTools = [
170162
170167
  {
170163
170168
  name: "save_message",
170164
170169
  description: "Save/bookmark an activity message for later reference.",
170170
+ category: CATEGORY,
170165
170171
  inputSchema: saveMessageParamsJsonSchema,
170166
170172
  handler: createToolHandler(
170167
170173
  "save_message",
@@ -170172,6 +170178,7 @@ var activityTools = [
170172
170178
  {
170173
170179
  name: "unsave_message",
170174
170180
  description: "Remove an activity message from saved/bookmarks.",
170181
+ category: CATEGORY,
170175
170182
  inputSchema: unsaveMessageParamsJsonSchema,
170176
170183
  handler: createToolHandler(
170177
170184
  "unsave_message",
@@ -170182,6 +170189,7 @@ var activityTools = [
170182
170189
  {
170183
170190
  name: "list_saved_messages",
170184
170191
  description: "List saved/bookmarked activity messages.",
170192
+ category: CATEGORY,
170185
170193
  inputSchema: listSavedMessagesParamsJsonSchema,
170186
170194
  handler: createToolHandler(
170187
170195
  "list_saved_messages",
@@ -170192,6 +170200,7 @@ var activityTools = [
170192
170200
  {
170193
170201
  name: "list_mentions",
170194
170202
  description: "List @mentions of the current user in activity messages.",
170203
+ category: CATEGORY,
170195
170204
  inputSchema: listMentionsParamsJsonSchema,
170196
170205
  handler: createToolHandler(
170197
170206
  "list_mentions",
@@ -170898,10 +170907,12 @@ var addDocumentAttachment = (params) => Effect_exports.gen(function* () {
170898
170907
  });
170899
170908
 
170900
170909
  // src/mcp/tools/attachments.ts
170910
+ var CATEGORY2 = "Attachments";
170901
170911
  var attachmentTools = [
170902
170912
  {
170903
170913
  name: "list_attachments",
170904
170914
  description: "List attachments on a Huly object (issue, document, etc.). Returns attachments sorted by modification date (newest first).",
170915
+ category: CATEGORY2,
170905
170916
  inputSchema: listAttachmentsParamsJsonSchema,
170906
170917
  handler: createToolHandler(
170907
170918
  "list_attachments",
@@ -170912,6 +170923,7 @@ var attachmentTools = [
170912
170923
  {
170913
170924
  name: "get_attachment",
170914
170925
  description: "Retrieve full details for a Huly attachment including download URL.",
170926
+ category: CATEGORY2,
170915
170927
  inputSchema: getAttachmentParamsJsonSchema,
170916
170928
  handler: createCombinedToolHandler(
170917
170929
  "get_attachment",
@@ -170922,6 +170934,7 @@ var attachmentTools = [
170922
170934
  {
170923
170935
  name: "add_attachment",
170924
170936
  description: "Add an attachment to a Huly object. Provide ONE of: filePath (local file - preferred), fileUrl (fetch from URL), or data (base64). Returns the attachment ID and download URL.",
170937
+ category: CATEGORY2,
170925
170938
  inputSchema: addAttachmentParamsJsonSchema,
170926
170939
  handler: createCombinedToolHandler(
170927
170940
  "add_attachment",
@@ -170932,6 +170945,7 @@ var attachmentTools = [
170932
170945
  {
170933
170946
  name: "update_attachment",
170934
170947
  description: "Update attachment metadata (description, pinned status).",
170948
+ category: CATEGORY2,
170935
170949
  inputSchema: updateAttachmentParamsJsonSchema,
170936
170950
  handler: createToolHandler(
170937
170951
  "update_attachment",
@@ -170942,6 +170956,7 @@ var attachmentTools = [
170942
170956
  {
170943
170957
  name: "delete_attachment",
170944
170958
  description: "Permanently delete an attachment. This action cannot be undone.",
170959
+ category: CATEGORY2,
170945
170960
  inputSchema: deleteAttachmentParamsJsonSchema,
170946
170961
  handler: createToolHandler(
170947
170962
  "delete_attachment",
@@ -170952,6 +170967,7 @@ var attachmentTools = [
170952
170967
  {
170953
170968
  name: "pin_attachment",
170954
170969
  description: "Pin or unpin an attachment.",
170970
+ category: CATEGORY2,
170955
170971
  inputSchema: pinAttachmentParamsJsonSchema,
170956
170972
  handler: createToolHandler(
170957
170973
  "pin_attachment",
@@ -170962,6 +170978,7 @@ var attachmentTools = [
170962
170978
  {
170963
170979
  name: "download_attachment",
170964
170980
  description: "Get download URL for an attachment along with file metadata (name, type, size).",
170981
+ category: CATEGORY2,
170965
170982
  inputSchema: downloadAttachmentParamsJsonSchema,
170966
170983
  handler: createCombinedToolHandler(
170967
170984
  "download_attachment",
@@ -170972,6 +170989,7 @@ var attachmentTools = [
170972
170989
  {
170973
170990
  name: "add_issue_attachment",
170974
170991
  description: "Add an attachment to a Huly issue. Convenience method that finds the issue by project and identifier. Provide ONE of: filePath, fileUrl, or data.",
170992
+ category: CATEGORY2,
170975
170993
  inputSchema: addIssueAttachmentParamsJsonSchema,
170976
170994
  handler: createCombinedToolHandler(
170977
170995
  "add_issue_attachment",
@@ -170982,6 +171000,7 @@ var attachmentTools = [
170982
171000
  {
170983
171001
  name: "add_document_attachment",
170984
171002
  description: "Add an attachment to a Huly document. Convenience method that finds the document by teamspace and title/ID. Provide ONE of: filePath, fileUrl, or data.",
171003
+ category: CATEGORY2,
170985
171004
  inputSchema: addDocumentAttachmentParamsJsonSchema,
170986
171005
  handler: createCombinedToolHandler(
170987
171006
  "add_document_attachment",
@@ -171564,8 +171583,7 @@ var updateEvent = (params) => Effect_exports.gen(function* () {
171564
171583
  calendar.class.Event,
171565
171584
  event.space,
171566
171585
  event._id,
171567
- updateOps,
171568
- true
171586
+ updateOps
171569
171587
  );
171570
171588
  }
171571
171589
  return { eventId: params.eventId, updated: true };
@@ -171730,10 +171748,12 @@ var listEventInstances = (params) => Effect_exports.gen(function* () {
171730
171748
  });
171731
171749
 
171732
171750
  // src/mcp/tools/calendar.ts
171751
+ var CATEGORY3 = "Calendar";
171733
171752
  var calendarTools = [
171734
171753
  {
171735
171754
  name: "list_events",
171736
171755
  description: "List calendar events. Returns events sorted by date. Supports filtering by date range.",
171756
+ category: CATEGORY3,
171737
171757
  inputSchema: listEventsParamsJsonSchema,
171738
171758
  handler: createToolHandler(
171739
171759
  "list_events",
@@ -171744,6 +171764,7 @@ var calendarTools = [
171744
171764
  {
171745
171765
  name: "get_event",
171746
171766
  description: "Retrieve full details for a calendar event including description. Use this to view event content and metadata.",
171767
+ category: CATEGORY3,
171747
171768
  inputSchema: getEventParamsJsonSchema,
171748
171769
  handler: createToolHandler(
171749
171770
  "get_event",
@@ -171754,6 +171775,7 @@ var calendarTools = [
171754
171775
  {
171755
171776
  name: "create_event",
171756
171777
  description: "Create a new calendar event. Description supports markdown formatting. Returns the created event ID.",
171778
+ category: CATEGORY3,
171757
171779
  inputSchema: createEventParamsJsonSchema,
171758
171780
  handler: createToolHandler(
171759
171781
  "create_event",
@@ -171764,6 +171786,7 @@ var calendarTools = [
171764
171786
  {
171765
171787
  name: "update_event",
171766
171788
  description: "Update fields on an existing calendar event. Only provided fields are modified. Description updates support markdown.",
171789
+ category: CATEGORY3,
171767
171790
  inputSchema: updateEventParamsJsonSchema,
171768
171791
  handler: createToolHandler(
171769
171792
  "update_event",
@@ -171774,6 +171797,7 @@ var calendarTools = [
171774
171797
  {
171775
171798
  name: "delete_event",
171776
171799
  description: "Permanently delete a calendar event. This action cannot be undone.",
171800
+ category: CATEGORY3,
171777
171801
  inputSchema: deleteEventParamsJsonSchema,
171778
171802
  handler: createToolHandler(
171779
171803
  "delete_event",
@@ -171784,6 +171808,7 @@ var calendarTools = [
171784
171808
  {
171785
171809
  name: "list_recurring_events",
171786
171810
  description: "List recurring event definitions. Returns recurring events sorted by modification date (newest first).",
171811
+ category: CATEGORY3,
171787
171812
  inputSchema: listRecurringEventsParamsJsonSchema,
171788
171813
  handler: createToolHandler(
171789
171814
  "list_recurring_events",
@@ -171794,6 +171819,7 @@ var calendarTools = [
171794
171819
  {
171795
171820
  name: "create_recurring_event",
171796
171821
  description: "Create a new recurring calendar event with RFC5545 RRULE rules. Description supports markdown. Returns the created event ID.",
171822
+ category: CATEGORY3,
171797
171823
  inputSchema: createRecurringEventParamsJsonSchema,
171798
171824
  handler: createToolHandler(
171799
171825
  "create_recurring_event",
@@ -171804,6 +171830,7 @@ var calendarTools = [
171804
171830
  {
171805
171831
  name: "list_event_instances",
171806
171832
  description: "List instances of a recurring event. Returns instances sorted by date. Supports filtering by date range. Use includeParticipants=true to fetch full participant info (extra lookups).",
171833
+ category: CATEGORY3,
171807
171834
  inputSchema: listEventInstancesParamsJsonSchema,
171808
171835
  handler: createToolHandler(
171809
171836
  "list_event_instances",
@@ -173917,8 +173944,7 @@ var updateChannel = (params) => Effect_exports.gen(function* () {
173917
173944
  chunter.class.Channel,
173918
173945
  channel._id,
173919
173946
  channel._id,
173920
- updateOps,
173921
- true
173947
+ updateOps
173922
173948
  );
173923
173949
  return { id: String(channel._id), updated: true };
173924
173950
  });
@@ -174151,10 +174177,12 @@ var deleteThreadReply = (params) => Effect_exports.gen(function* () {
174151
174177
  });
174152
174178
 
174153
174179
  // src/mcp/tools/channels.ts
174180
+ var CATEGORY4 = "Channels";
174154
174181
  var channelTools = [
174155
174182
  {
174156
174183
  name: "list_channels",
174157
174184
  description: "List all Huly channels. Returns channels sorted by name. Supports filtering by archived status. Supports searching by name substring (nameSearch) and topic substring (topicSearch).",
174185
+ category: CATEGORY4,
174158
174186
  inputSchema: listChannelsParamsJsonSchema,
174159
174187
  handler: createToolHandler(
174160
174188
  "list_channels",
@@ -174165,6 +174193,7 @@ var channelTools = [
174165
174193
  {
174166
174194
  name: "get_channel",
174167
174195
  description: "Retrieve full details for a Huly channel including topic and member list.",
174196
+ category: CATEGORY4,
174168
174197
  inputSchema: getChannelParamsJsonSchema,
174169
174198
  handler: createToolHandler(
174170
174199
  "get_channel",
@@ -174175,6 +174204,7 @@ var channelTools = [
174175
174204
  {
174176
174205
  name: "create_channel",
174177
174206
  description: "Create a new channel in Huly. Returns the created channel ID and name.",
174207
+ category: CATEGORY4,
174178
174208
  inputSchema: createChannelParamsJsonSchema,
174179
174209
  handler: createToolHandler(
174180
174210
  "create_channel",
@@ -174185,6 +174215,7 @@ var channelTools = [
174185
174215
  {
174186
174216
  name: "update_channel",
174187
174217
  description: "Update fields on an existing Huly channel. Only provided fields are modified.",
174218
+ category: CATEGORY4,
174188
174219
  inputSchema: updateChannelParamsJsonSchema,
174189
174220
  handler: createToolHandler(
174190
174221
  "update_channel",
@@ -174195,6 +174226,7 @@ var channelTools = [
174195
174226
  {
174196
174227
  name: "delete_channel",
174197
174228
  description: "Permanently delete a Huly channel. This action cannot be undone.",
174229
+ category: CATEGORY4,
174198
174230
  inputSchema: deleteChannelParamsJsonSchema,
174199
174231
  handler: createToolHandler(
174200
174232
  "delete_channel",
@@ -174205,6 +174237,7 @@ var channelTools = [
174205
174237
  {
174206
174238
  name: "list_channel_messages",
174207
174239
  description: "List messages in a Huly channel. Returns messages sorted by date (newest first).",
174240
+ category: CATEGORY4,
174208
174241
  inputSchema: listChannelMessagesParamsJsonSchema,
174209
174242
  handler: createToolHandler(
174210
174243
  "list_channel_messages",
@@ -174215,6 +174248,7 @@ var channelTools = [
174215
174248
  {
174216
174249
  name: "send_channel_message",
174217
174250
  description: "Send a message to a Huly channel. Message body supports markdown formatting.",
174251
+ category: CATEGORY4,
174218
174252
  inputSchema: sendChannelMessageParamsJsonSchema,
174219
174253
  handler: createToolHandler(
174220
174254
  "send_channel_message",
@@ -174225,6 +174259,7 @@ var channelTools = [
174225
174259
  {
174226
174260
  name: "list_direct_messages",
174227
174261
  description: "List direct message conversations in Huly. Returns conversations sorted by date (newest first).",
174262
+ category: CATEGORY4,
174228
174263
  inputSchema: listDirectMessagesParamsJsonSchema,
174229
174264
  handler: createToolHandler(
174230
174265
  "list_direct_messages",
@@ -174235,6 +174270,7 @@ var channelTools = [
174235
174270
  {
174236
174271
  name: "list_thread_replies",
174237
174272
  description: "List replies in a message thread. Returns replies sorted by date (oldest first).",
174273
+ category: CATEGORY4,
174238
174274
  inputSchema: listThreadRepliesParamsJsonSchema,
174239
174275
  handler: createToolHandler(
174240
174276
  "list_thread_replies",
@@ -174245,6 +174281,7 @@ var channelTools = [
174245
174281
  {
174246
174282
  name: "add_thread_reply",
174247
174283
  description: "Add a reply to a message thread. Reply body supports markdown formatting.",
174284
+ category: CATEGORY4,
174248
174285
  inputSchema: addThreadReplyParamsJsonSchema,
174249
174286
  handler: createToolHandler(
174250
174287
  "add_thread_reply",
@@ -174255,6 +174292,7 @@ var channelTools = [
174255
174292
  {
174256
174293
  name: "update_thread_reply",
174257
174294
  description: "Update a thread reply. Only the body can be modified.",
174295
+ category: CATEGORY4,
174258
174296
  inputSchema: updateThreadReplyParamsJsonSchema,
174259
174297
  handler: createToolHandler(
174260
174298
  "update_thread_reply",
@@ -174265,6 +174303,7 @@ var channelTools = [
174265
174303
  {
174266
174304
  name: "delete_thread_reply",
174267
174305
  description: "Permanently delete a thread reply. This action cannot be undone.",
174306
+ category: CATEGORY4,
174268
174307
  inputSchema: deleteThreadReplyParamsJsonSchema,
174269
174308
  handler: createToolHandler(
174270
174309
  "delete_thread_reply",
@@ -174365,8 +174404,7 @@ var updateComment = (params) => Effect_exports.gen(function* () {
174365
174404
  chunter2.class.ChatMessage,
174366
174405
  project3._id,
174367
174406
  comment._id,
174368
- updateOps,
174369
- true
174407
+ updateOps
174370
174408
  );
174371
174409
  return {
174372
174410
  commentId: params.commentId,
@@ -174406,10 +174444,12 @@ var deleteComment = (params) => Effect_exports.gen(function* () {
174406
174444
  });
174407
174445
 
174408
174446
  // src/mcp/tools/comments.ts
174447
+ var CATEGORY5 = "Comments";
174409
174448
  var commentTools = [
174410
174449
  {
174411
174450
  name: "list_comments",
174412
174451
  description: "List comments on a Huly issue. Returns comments sorted by creation date (oldest first).",
174452
+ category: CATEGORY5,
174413
174453
  inputSchema: listCommentsParamsJsonSchema,
174414
174454
  handler: createToolHandler(
174415
174455
  "list_comments",
@@ -174420,6 +174460,7 @@ var commentTools = [
174420
174460
  {
174421
174461
  name: "add_comment",
174422
174462
  description: "Add a comment to a Huly issue. Comment body supports markdown formatting.",
174463
+ category: CATEGORY5,
174423
174464
  inputSchema: addCommentParamsJsonSchema,
174424
174465
  handler: createToolHandler(
174425
174466
  "add_comment",
@@ -174430,6 +174471,7 @@ var commentTools = [
174430
174471
  {
174431
174472
  name: "update_comment",
174432
174473
  description: "Update an existing comment on a Huly issue. Comment body supports markdown formatting.",
174474
+ category: CATEGORY5,
174433
174475
  inputSchema: updateCommentParamsJsonSchema,
174434
174476
  handler: createToolHandler(
174435
174477
  "update_comment",
@@ -174440,6 +174482,7 @@ var commentTools = [
174440
174482
  {
174441
174483
  name: "delete_comment",
174442
174484
  description: "Delete a comment from a Huly issue. This action cannot be undone.",
174485
+ category: CATEGORY5,
174443
174486
  inputSchema: deleteCommentParamsJsonSchema,
174444
174487
  handler: createToolHandler(
174445
174488
  "delete_comment",
@@ -174625,8 +174668,7 @@ var updatePerson = (params) => Effect_exports.gen(function* () {
174625
174668
  contact3.class.Person,
174626
174669
  contact3.space.Contacts,
174627
174670
  person._id,
174628
- updateOps,
174629
- true
174671
+ updateOps
174630
174672
  );
174631
174673
  return { id: params.personId, updated: true };
174632
174674
  });
@@ -174728,10 +174770,12 @@ var createOrganization = (params) => Effect_exports.gen(function* () {
174728
174770
  });
174729
174771
 
174730
174772
  // src/mcp/tools/contacts.ts
174773
+ var CATEGORY6 = "Contacts";
174731
174774
  var contactTools = [
174732
174775
  {
174733
174776
  name: "list_persons",
174734
174777
  description: "List all persons in the Huly workspace. Returns persons sorted by modification date (newest first). Supports searching by name substring (nameSearch) and email substring (emailSearch).",
174778
+ category: CATEGORY6,
174735
174779
  inputSchema: listPersonsParamsJsonSchema,
174736
174780
  handler: createToolHandler(
174737
174781
  "list_persons",
@@ -174742,6 +174786,7 @@ var contactTools = [
174742
174786
  {
174743
174787
  name: "get_person",
174744
174788
  description: "Retrieve full details for a person including contact channels. Use personId or email to identify the person.",
174789
+ category: CATEGORY6,
174745
174790
  inputSchema: getPersonParamsJsonSchema,
174746
174791
  handler: createToolHandler(
174747
174792
  "get_person",
@@ -174752,6 +174797,7 @@ var contactTools = [
174752
174797
  {
174753
174798
  name: "create_person",
174754
174799
  description: "Create a new person in Huly. Returns the created person ID.",
174800
+ category: CATEGORY6,
174755
174801
  inputSchema: createPersonParamsJsonSchema,
174756
174802
  handler: createToolHandler(
174757
174803
  "create_person",
@@ -174762,6 +174808,7 @@ var contactTools = [
174762
174808
  {
174763
174809
  name: "update_person",
174764
174810
  description: "Update fields on an existing person. Only provided fields are modified.",
174811
+ category: CATEGORY6,
174765
174812
  inputSchema: updatePersonParamsJsonSchema,
174766
174813
  handler: createToolHandler(
174767
174814
  "update_person",
@@ -174772,6 +174819,7 @@ var contactTools = [
174772
174819
  {
174773
174820
  name: "delete_person",
174774
174821
  description: "Permanently delete a person from Huly. This action cannot be undone.",
174822
+ category: CATEGORY6,
174775
174823
  inputSchema: deletePersonParamsJsonSchema,
174776
174824
  handler: createToolHandler(
174777
174825
  "delete_person",
@@ -174782,6 +174830,7 @@ var contactTools = [
174782
174830
  {
174783
174831
  name: "list_employees",
174784
174832
  description: "List employees (persons who are team members). Returns employees sorted by modification date (newest first).",
174833
+ category: CATEGORY6,
174785
174834
  inputSchema: listEmployeesParamsJsonSchema,
174786
174835
  handler: createToolHandler(
174787
174836
  "list_employees",
@@ -174792,6 +174841,7 @@ var contactTools = [
174792
174841
  {
174793
174842
  name: "list_organizations",
174794
174843
  description: "List all organizations in the Huly workspace. Returns organizations sorted by modification date (newest first).",
174844
+ category: CATEGORY6,
174795
174845
  inputSchema: listOrganizationsParamsJsonSchema,
174796
174846
  handler: createToolHandler(
174797
174847
  "list_organizations",
@@ -174802,6 +174852,7 @@ var contactTools = [
174802
174852
  {
174803
174853
  name: "create_organization",
174804
174854
  description: "Create a new organization in Huly. Optionally add members by person ID or email. Returns the created organization ID.",
174855
+ category: CATEGORY6,
174805
174856
  inputSchema: createOrganizationParamsJsonSchema,
174806
174857
  handler: createToolHandler(
174807
174858
  "create_organization",
@@ -175018,8 +175069,7 @@ var updateDocument = (params) => Effect_exports.gen(function* () {
175018
175069
  documentPlugin2.class.Document,
175019
175070
  teamspace._id,
175020
175071
  doc._id,
175021
- updateOps,
175022
- true
175072
+ updateOps
175023
175073
  );
175024
175074
  }
175025
175075
  return { id: String(doc._id), updated: true };
@@ -175035,10 +175085,12 @@ var deleteDocument = (params) => Effect_exports.gen(function* () {
175035
175085
  });
175036
175086
 
175037
175087
  // src/mcp/tools/documents.ts
175088
+ var CATEGORY7 = "Documents";
175038
175089
  var documentTools = [
175039
175090
  {
175040
175091
  name: "list_teamspaces",
175041
175092
  description: "List all Huly document teamspaces. Returns teamspaces sorted by name. Supports filtering by archived status.",
175093
+ category: CATEGORY7,
175042
175094
  inputSchema: listTeamspacesParamsJsonSchema,
175043
175095
  handler: createToolHandler(
175044
175096
  "list_teamspaces",
@@ -175049,6 +175101,7 @@ var documentTools = [
175049
175101
  {
175050
175102
  name: "list_documents",
175051
175103
  description: "List documents in a Huly teamspace. Returns documents sorted by modification date (newest first). Supports searching by title substring (titleSearch) and content (contentSearch).",
175104
+ category: CATEGORY7,
175052
175105
  inputSchema: listDocumentsParamsJsonSchema,
175053
175106
  handler: createToolHandler(
175054
175107
  "list_documents",
@@ -175059,6 +175112,7 @@ var documentTools = [
175059
175112
  {
175060
175113
  name: "get_document",
175061
175114
  description: "Retrieve full details for a Huly document including markdown content. Use this to view document content and metadata.",
175115
+ category: CATEGORY7,
175062
175116
  inputSchema: getDocumentParamsJsonSchema,
175063
175117
  handler: createToolHandler(
175064
175118
  "get_document",
@@ -175069,6 +175123,7 @@ var documentTools = [
175069
175123
  {
175070
175124
  name: "create_document",
175071
175125
  description: "Create a new document in a Huly teamspace. Content supports markdown formatting. Returns the created document id.",
175126
+ category: CATEGORY7,
175072
175127
  inputSchema: createDocumentParamsJsonSchema,
175073
175128
  handler: createToolHandler(
175074
175129
  "create_document",
@@ -175079,6 +175134,7 @@ var documentTools = [
175079
175134
  {
175080
175135
  name: "update_document",
175081
175136
  description: "Update fields on an existing Huly document. Only provided fields are modified. Content updates support markdown.",
175137
+ category: CATEGORY7,
175082
175138
  inputSchema: updateDocumentParamsJsonSchema,
175083
175139
  handler: createToolHandler(
175084
175140
  "update_document",
@@ -175089,6 +175145,7 @@ var documentTools = [
175089
175145
  {
175090
175146
  name: "delete_document",
175091
175147
  description: "Permanently delete a Huly document. This action cannot be undone.",
175148
+ category: CATEGORY7,
175092
175149
  inputSchema: deleteDocumentParamsJsonSchema,
175093
175150
  handler: createToolHandler(
175094
175151
  "delete_document",
@@ -175492,8 +175549,7 @@ var updateIssue = (params) => Effect_exports.gen(function* () {
175492
175549
  tracker4.class.Issue,
175493
175550
  project3._id,
175494
175551
  issue2._id,
175495
- updateOps,
175496
- true
175552
+ updateOps
175497
175553
  );
175498
175554
  }
175499
175555
  return { identifier: issue2.identifier, updated: true };
@@ -175703,8 +175759,7 @@ var updateComponent = (params) => Effect_exports.gen(function* () {
175703
175759
  tracker4.class.Component,
175704
175760
  project3._id,
175705
175761
  component._id,
175706
- updateOps,
175707
- true
175762
+ updateOps
175708
175763
  );
175709
175764
  return { id: String(component._id), updated: true };
175710
175765
  });
@@ -175990,8 +176045,7 @@ var updateIssueTemplate = (params) => Effect_exports.gen(function* () {
175990
176045
  tracker4.class.IssueTemplate,
175991
176046
  project3._id,
175992
176047
  template._id,
175993
- updateOps,
175994
- true
176048
+ updateOps
175995
176049
  );
175996
176050
  return { id: String(template._id), updated: true };
175997
176051
  });
@@ -176006,10 +176060,12 @@ var deleteIssueTemplate = (params) => Effect_exports.gen(function* () {
176006
176060
  });
176007
176061
 
176008
176062
  // src/mcp/tools/issues.ts
176063
+ var CATEGORY8 = "Issues";
176009
176064
  var issueTools = [
176010
176065
  {
176011
176066
  name: "list_issues",
176012
176067
  description: "Query Huly issues with optional filters. Returns issues sorted by modification date (newest first). Supports filtering by project, status, assignee, and milestone. Supports searching by title substring (titleSearch) and description content (descriptionSearch).",
176068
+ category: CATEGORY8,
176013
176069
  inputSchema: listIssuesParamsJsonSchema,
176014
176070
  handler: createToolHandler(
176015
176071
  "list_issues",
@@ -176020,6 +176076,7 @@ var issueTools = [
176020
176076
  {
176021
176077
  name: "get_issue",
176022
176078
  description: "Retrieve full details for a Huly issue including markdown description. Use this to view issue content, comments, or full metadata.",
176079
+ category: CATEGORY8,
176023
176080
  inputSchema: getIssueParamsJsonSchema,
176024
176081
  handler: createToolHandler(
176025
176082
  "get_issue",
@@ -176030,6 +176087,7 @@ var issueTools = [
176030
176087
  {
176031
176088
  name: "create_issue",
176032
176089
  description: "Create a new issue in a Huly project. Description supports markdown formatting. Returns the created issue identifier.",
176090
+ category: CATEGORY8,
176033
176091
  inputSchema: createIssueParamsJsonSchema,
176034
176092
  handler: createToolHandler(
176035
176093
  "create_issue",
@@ -176040,6 +176098,7 @@ var issueTools = [
176040
176098
  {
176041
176099
  name: "update_issue",
176042
176100
  description: "Update fields on an existing Huly issue. Only provided fields are modified. Description updates support markdown.",
176101
+ category: CATEGORY8,
176043
176102
  inputSchema: updateIssueParamsJsonSchema,
176044
176103
  handler: createToolHandler(
176045
176104
  "update_issue",
@@ -176050,6 +176109,7 @@ var issueTools = [
176050
176109
  {
176051
176110
  name: "add_issue_label",
176052
176111
  description: "Add a tag/label to a Huly issue. Creates the tag if it doesn't exist in the project.",
176112
+ category: CATEGORY8,
176053
176113
  inputSchema: addLabelParamsJsonSchema,
176054
176114
  handler: createToolHandler(
176055
176115
  "add_issue_label",
@@ -176060,6 +176120,7 @@ var issueTools = [
176060
176120
  {
176061
176121
  name: "delete_issue",
176062
176122
  description: "Permanently delete a Huly issue. This action cannot be undone.",
176123
+ category: CATEGORY8,
176063
176124
  inputSchema: deleteIssueParamsJsonSchema,
176064
176125
  handler: createToolHandler(
176065
176126
  "delete_issue",
@@ -176067,10 +176128,10 @@ var issueTools = [
176067
176128
  (params) => deleteIssue(params)
176068
176129
  )
176069
176130
  },
176070
- // Component tools
176071
176131
  {
176072
176132
  name: "list_components",
176073
176133
  description: "List components in a Huly project. Components organize issues by area/feature. Returns components sorted by modification date (newest first).",
176134
+ category: CATEGORY8,
176074
176135
  inputSchema: listComponentsParamsJsonSchema,
176075
176136
  handler: createToolHandler(
176076
176137
  "list_components",
@@ -176081,6 +176142,7 @@ var issueTools = [
176081
176142
  {
176082
176143
  name: "get_component",
176083
176144
  description: "Retrieve full details for a Huly component. Use this to view component content and metadata.",
176145
+ category: CATEGORY8,
176084
176146
  inputSchema: getComponentParamsJsonSchema,
176085
176147
  handler: createToolHandler(
176086
176148
  "get_component",
@@ -176091,6 +176153,7 @@ var issueTools = [
176091
176153
  {
176092
176154
  name: "create_component",
176093
176155
  description: "Create a new component in a Huly project. Components help organize issues by area/feature. Returns the created component ID and label.",
176156
+ category: CATEGORY8,
176094
176157
  inputSchema: createComponentParamsJsonSchema,
176095
176158
  handler: createToolHandler(
176096
176159
  "create_component",
@@ -176101,6 +176164,7 @@ var issueTools = [
176101
176164
  {
176102
176165
  name: "update_component",
176103
176166
  description: "Update fields on an existing Huly component. Only provided fields are modified.",
176167
+ category: CATEGORY8,
176104
176168
  inputSchema: updateComponentParamsJsonSchema,
176105
176169
  handler: createToolHandler(
176106
176170
  "update_component",
@@ -176111,6 +176175,7 @@ var issueTools = [
176111
176175
  {
176112
176176
  name: "set_issue_component",
176113
176177
  description: "Set or clear the component on a Huly issue. Pass null for component to clear it.",
176178
+ category: CATEGORY8,
176114
176179
  inputSchema: setIssueComponentParamsJsonSchema,
176115
176180
  handler: createToolHandler(
176116
176181
  "set_issue_component",
@@ -176121,6 +176186,7 @@ var issueTools = [
176121
176186
  {
176122
176187
  name: "delete_component",
176123
176188
  description: "Permanently delete a Huly component. This action cannot be undone.",
176189
+ category: CATEGORY8,
176124
176190
  inputSchema: deleteComponentParamsJsonSchema,
176125
176191
  handler: createToolHandler(
176126
176192
  "delete_component",
@@ -176128,10 +176194,10 @@ var issueTools = [
176128
176194
  (params) => deleteComponent(params)
176129
176195
  )
176130
176196
  },
176131
- // Issue Template tools
176132
176197
  {
176133
176198
  name: "list_issue_templates",
176134
176199
  description: "List issue templates in a Huly project. Templates define reusable issue configurations. Returns templates sorted by modification date (newest first).",
176200
+ category: CATEGORY8,
176135
176201
  inputSchema: listIssueTemplatesParamsJsonSchema,
176136
176202
  handler: createToolHandler(
176137
176203
  "list_issue_templates",
@@ -176142,6 +176208,7 @@ var issueTools = [
176142
176208
  {
176143
176209
  name: "get_issue_template",
176144
176210
  description: "Retrieve full details for a Huly issue template. Use this to view template content and default values.",
176211
+ category: CATEGORY8,
176145
176212
  inputSchema: getIssueTemplateParamsJsonSchema,
176146
176213
  handler: createToolHandler(
176147
176214
  "get_issue_template",
@@ -176152,6 +176219,7 @@ var issueTools = [
176152
176219
  {
176153
176220
  name: "create_issue_template",
176154
176221
  description: "Create a new issue template in a Huly project. Templates define default values for new issues. Returns the created template ID and title.",
176222
+ category: CATEGORY8,
176155
176223
  inputSchema: createIssueTemplateParamsJsonSchema,
176156
176224
  handler: createToolHandler(
176157
176225
  "create_issue_template",
@@ -176162,6 +176230,7 @@ var issueTools = [
176162
176230
  {
176163
176231
  name: "create_issue_from_template",
176164
176232
  description: "Create a new issue from a template. Applies template defaults, allowing overrides for specific fields. Returns the created issue identifier.",
176233
+ category: CATEGORY8,
176165
176234
  inputSchema: createIssueFromTemplateParamsJsonSchema,
176166
176235
  handler: createToolHandler(
176167
176236
  "create_issue_from_template",
@@ -176172,6 +176241,7 @@ var issueTools = [
176172
176241
  {
176173
176242
  name: "update_issue_template",
176174
176243
  description: "Update fields on an existing Huly issue template. Only provided fields are modified.",
176244
+ category: CATEGORY8,
176175
176245
  inputSchema: updateIssueTemplateParamsJsonSchema,
176176
176246
  handler: createToolHandler(
176177
176247
  "update_issue_template",
@@ -176182,6 +176252,7 @@ var issueTools = [
176182
176252
  {
176183
176253
  name: "delete_issue_template",
176184
176254
  description: "Permanently delete a Huly issue template. This action cannot be undone.",
176255
+ category: CATEGORY8,
176185
176256
  inputSchema: deleteIssueTemplateParamsJsonSchema,
176186
176257
  handler: createToolHandler(
176187
176258
  "delete_issue_template",
@@ -176325,8 +176396,7 @@ var updateMilestone = (params) => Effect_exports.gen(function* () {
176325
176396
  tracker5.class.Milestone,
176326
176397
  project3._id,
176327
176398
  milestone._id,
176328
- updateOps,
176329
- true
176399
+ updateOps
176330
176400
  );
176331
176401
  return { id: String(milestone._id), updated: true };
176332
176402
  });
@@ -176403,10 +176473,12 @@ var deleteMilestone = (params) => Effect_exports.gen(function* () {
176403
176473
  });
176404
176474
 
176405
176475
  // src/mcp/tools/milestones.ts
176476
+ var CATEGORY9 = "Milestones";
176406
176477
  var milestoneTools = [
176407
176478
  {
176408
176479
  name: "list_milestones",
176409
176480
  description: "List milestones in a Huly project. Returns milestones sorted by modification date (newest first).",
176481
+ category: CATEGORY9,
176410
176482
  inputSchema: listMilestonesParamsJsonSchema,
176411
176483
  handler: createToolHandler(
176412
176484
  "list_milestones",
@@ -176417,6 +176489,7 @@ var milestoneTools = [
176417
176489
  {
176418
176490
  name: "get_milestone",
176419
176491
  description: "Retrieve full details for a Huly milestone. Use this to view milestone content and metadata.",
176492
+ category: CATEGORY9,
176420
176493
  inputSchema: getMilestoneParamsJsonSchema,
176421
176494
  handler: createToolHandler(
176422
176495
  "get_milestone",
@@ -176427,6 +176500,7 @@ var milestoneTools = [
176427
176500
  {
176428
176501
  name: "create_milestone",
176429
176502
  description: "Create a new milestone in a Huly project. Returns the created milestone ID and label.",
176503
+ category: CATEGORY9,
176430
176504
  inputSchema: createMilestoneParamsJsonSchema,
176431
176505
  handler: createToolHandler(
176432
176506
  "create_milestone",
@@ -176437,6 +176511,7 @@ var milestoneTools = [
176437
176511
  {
176438
176512
  name: "update_milestone",
176439
176513
  description: "Update fields on an existing Huly milestone. Only provided fields are modified.",
176514
+ category: CATEGORY9,
176440
176515
  inputSchema: updateMilestoneParamsJsonSchema,
176441
176516
  handler: createToolHandler(
176442
176517
  "update_milestone",
@@ -176447,6 +176522,7 @@ var milestoneTools = [
176447
176522
  {
176448
176523
  name: "set_issue_milestone",
176449
176524
  description: "Set or clear the milestone on a Huly issue. Pass null for milestone to clear it.",
176525
+ category: CATEGORY9,
176450
176526
  inputSchema: setIssueMilestoneParamsJsonSchema,
176451
176527
  handler: createToolHandler(
176452
176528
  "set_issue_milestone",
@@ -176457,6 +176533,7 @@ var milestoneTools = [
176457
176533
  {
176458
176534
  name: "delete_milestone",
176459
176535
  description: "Permanently delete a Huly milestone. This action cannot be undone.",
176536
+ category: CATEGORY9,
176460
176537
  inputSchema: deleteMilestoneParamsJsonSchema,
176461
176538
  handler: createToolHandler(
176462
176539
  "delete_milestone",
@@ -176736,10 +176813,12 @@ var getUnreadNotificationCount = () => Effect_exports.gen(function* () {
176736
176813
  });
176737
176814
 
176738
176815
  // src/mcp/tools/notifications.ts
176816
+ var CATEGORY10 = "Notifications";
176739
176817
  var notificationTools = [
176740
176818
  {
176741
176819
  name: "list_notifications",
176742
176820
  description: "List inbox notifications. Returns notifications sorted by modification date (newest first). Supports filtering by read/archived status.",
176821
+ category: CATEGORY10,
176743
176822
  inputSchema: listNotificationsParamsJsonSchema,
176744
176823
  handler: createToolHandler(
176745
176824
  "list_notifications",
@@ -176750,6 +176829,7 @@ var notificationTools = [
176750
176829
  {
176751
176830
  name: "get_notification",
176752
176831
  description: "Retrieve full details for a notification. Use this to view notification content and metadata.",
176832
+ category: CATEGORY10,
176753
176833
  inputSchema: getNotificationParamsJsonSchema,
176754
176834
  handler: createToolHandler(
176755
176835
  "get_notification",
@@ -176760,6 +176840,7 @@ var notificationTools = [
176760
176840
  {
176761
176841
  name: "mark_notification_read",
176762
176842
  description: "Mark a notification as read.",
176843
+ category: CATEGORY10,
176763
176844
  inputSchema: markNotificationReadParamsJsonSchema,
176764
176845
  handler: createToolHandler(
176765
176846
  "mark_notification_read",
@@ -176770,6 +176851,7 @@ var notificationTools = [
176770
176851
  {
176771
176852
  name: "mark_all_notifications_read",
176772
176853
  description: "Mark all unread notifications as read. Returns the count of notifications marked.",
176854
+ category: CATEGORY10,
176773
176855
  inputSchema: {},
176774
176856
  handler: createToolHandler(
176775
176857
  "mark_all_notifications_read",
@@ -176780,6 +176862,7 @@ var notificationTools = [
176780
176862
  {
176781
176863
  name: "archive_notification",
176782
176864
  description: "Archive a notification. Archived notifications are hidden from the main inbox view.",
176865
+ category: CATEGORY10,
176783
176866
  inputSchema: archiveNotificationParamsJsonSchema,
176784
176867
  handler: createToolHandler(
176785
176868
  "archive_notification",
@@ -176790,6 +176873,7 @@ var notificationTools = [
176790
176873
  {
176791
176874
  name: "archive_all_notifications",
176792
176875
  description: "Archive all notifications. Returns the count of notifications archived.",
176876
+ category: CATEGORY10,
176793
176877
  inputSchema: {},
176794
176878
  handler: createToolHandler(
176795
176879
  "archive_all_notifications",
@@ -176800,6 +176884,7 @@ var notificationTools = [
176800
176884
  {
176801
176885
  name: "delete_notification",
176802
176886
  description: "Permanently delete a notification. This action cannot be undone.",
176887
+ category: CATEGORY10,
176803
176888
  inputSchema: deleteNotificationParamsJsonSchema,
176804
176889
  handler: createToolHandler(
176805
176890
  "delete_notification",
@@ -176810,6 +176895,7 @@ var notificationTools = [
176810
176895
  {
176811
176896
  name: "get_notification_context",
176812
176897
  description: "Get notification context for an entity. Returns tracking information for a specific object.",
176898
+ category: CATEGORY10,
176813
176899
  inputSchema: getNotificationContextParamsJsonSchema,
176814
176900
  handler: createToolHandler(
176815
176901
  "get_notification_context",
@@ -176820,6 +176906,7 @@ var notificationTools = [
176820
176906
  {
176821
176907
  name: "list_notification_contexts",
176822
176908
  description: "List notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status.",
176909
+ category: CATEGORY10,
176823
176910
  inputSchema: listNotificationContextsParamsJsonSchema,
176824
176911
  handler: createToolHandler(
176825
176912
  "list_notification_contexts",
@@ -176830,6 +176917,7 @@ var notificationTools = [
176830
176917
  {
176831
176918
  name: "pin_notification_context",
176832
176919
  description: "Pin or unpin a notification context. Pinned contexts are highlighted in the inbox.",
176920
+ category: CATEGORY10,
176833
176921
  inputSchema: pinNotificationContextParamsJsonSchema,
176834
176922
  handler: createToolHandler(
176835
176923
  "pin_notification_context",
@@ -176840,6 +176928,7 @@ var notificationTools = [
176840
176928
  {
176841
176929
  name: "list_notification_settings",
176842
176930
  description: "List notification provider settings. Returns current notification preferences.",
176931
+ category: CATEGORY10,
176843
176932
  inputSchema: listNotificationSettingsParamsJsonSchema,
176844
176933
  handler: createToolHandler(
176845
176934
  "list_notification_settings",
@@ -176850,6 +176939,7 @@ var notificationTools = [
176850
176939
  {
176851
176940
  name: "update_notification_provider_setting",
176852
176941
  description: "Update notification provider setting. Enable or disable notifications for a specific provider.",
176942
+ category: CATEGORY10,
176853
176943
  inputSchema: updateNotificationProviderSettingParamsJsonSchema,
176854
176944
  handler: createToolHandler(
176855
176945
  "update_notification_provider_setting",
@@ -176860,6 +176950,7 @@ var notificationTools = [
176860
176950
  {
176861
176951
  name: "get_unread_notification_count",
176862
176952
  description: "Get the count of unread notifications.",
176953
+ category: CATEGORY10,
176863
176954
  inputSchema: {},
176864
176955
  handler: createToolHandler(
176865
176956
  "get_unread_notification_count",
@@ -176904,10 +176995,12 @@ var listProjects = (params) => Effect_exports.gen(function* () {
176904
176995
  });
176905
176996
 
176906
176997
  // src/mcp/tools/projects.ts
176998
+ var CATEGORY11 = "Projects";
176907
176999
  var projectTools = [
176908
177000
  {
176909
177001
  name: "list_projects",
176910
177002
  description: "List all Huly projects. Returns projects sorted by name. Supports filtering by archived status.",
177003
+ category: CATEGORY11,
176911
177004
  inputSchema: listProjectsParamsJsonSchema,
176912
177005
  handler: createToolHandler(
176913
177006
  "list_projects",
@@ -176948,10 +177041,12 @@ var fulltextSearch = (params) => Effect_exports.gen(function* () {
176948
177041
  });
176949
177042
 
176950
177043
  // src/mcp/tools/search.ts
177044
+ var CATEGORY12 = "Search";
176951
177045
  var searchTools = [
176952
177046
  {
176953
177047
  name: "fulltext_search",
176954
177048
  description: "Perform a global fulltext search across all Huly content. Searches issues, documents, messages, and other indexed content. Returns matching items sorted by relevance (newest first).",
177049
+ category: CATEGORY12,
176955
177050
  inputSchema: fulltextSearchParamsJsonSchema,
176956
177051
  handler: createToolHandler(
176957
177052
  "fulltext_search",
@@ -176974,10 +177069,12 @@ var uploadFile = (params) => Effect_exports.gen(function* () {
176974
177069
  });
176975
177070
 
176976
177071
  // src/mcp/tools/storage.ts
177072
+ var CATEGORY13 = "Storage";
176977
177073
  var storageTools = [
176978
177074
  {
176979
177075
  name: "upload_file",
176980
177076
  description: "Upload a file to Huly storage. Provide ONE of: filePath (local file - preferred), fileUrl (fetch from URL), or data (base64 - for small files only). Returns blob ID and URL for referencing the file.",
177077
+ category: CATEGORY13,
176981
177078
  inputSchema: uploadFileParamsJsonSchema,
176982
177079
  handler: createStorageToolHandler(
176983
177080
  "upload_file",
@@ -177258,10 +177355,12 @@ var stopTimer = (params) => Effect_exports.gen(function* () {
177258
177355
  });
177259
177356
 
177260
177357
  // src/mcp/tools/time.ts
177358
+ var CATEGORY14 = "Time Tracking";
177261
177359
  var timeTools = [
177262
177360
  {
177263
177361
  name: "log_time",
177264
177362
  description: "Log time spent on a Huly issue. Records a time entry with optional description. Time value is in minutes.",
177363
+ category: CATEGORY14,
177265
177364
  inputSchema: logTimeParamsJsonSchema,
177266
177365
  handler: createToolHandler(
177267
177366
  "log_time",
@@ -177272,6 +177371,7 @@ var timeTools = [
177272
177371
  {
177273
177372
  name: "get_time_report",
177274
177373
  description: "Get time tracking report for a specific Huly issue. Shows total time, estimation, remaining time, and all time entries.",
177374
+ category: CATEGORY14,
177275
177375
  inputSchema: getTimeReportParamsJsonSchema,
177276
177376
  handler: createToolHandler(
177277
177377
  "get_time_report",
@@ -177282,6 +177382,7 @@ var timeTools = [
177282
177382
  {
177283
177383
  name: "list_time_spend_reports",
177284
177384
  description: "List all time entries across issues. Supports filtering by project and date range. Returns entries sorted by date (newest first).",
177385
+ category: CATEGORY14,
177285
177386
  inputSchema: listTimeSpendReportsParamsJsonSchema,
177286
177387
  handler: createToolHandler(
177287
177388
  "list_time_spend_reports",
@@ -177292,6 +177393,7 @@ var timeTools = [
177292
177393
  {
177293
177394
  name: "get_detailed_time_report",
177294
177395
  description: "Get detailed time breakdown for a project. Shows total time grouped by issue and by employee. Supports date range filtering.",
177396
+ category: CATEGORY14,
177295
177397
  inputSchema: getDetailedTimeReportParamsJsonSchema,
177296
177398
  handler: createToolHandler(
177297
177399
  "get_detailed_time_report",
@@ -177302,6 +177404,7 @@ var timeTools = [
177302
177404
  {
177303
177405
  name: "list_work_slots",
177304
177406
  description: "List scheduled work slots. Shows planned time blocks attached to ToDos. Supports filtering by employee and date range.",
177407
+ category: CATEGORY14,
177305
177408
  inputSchema: listWorkSlotsParamsJsonSchema,
177306
177409
  handler: createToolHandler(
177307
177410
  "list_work_slots",
@@ -177312,6 +177415,7 @@ var timeTools = [
177312
177415
  {
177313
177416
  name: "create_work_slot",
177314
177417
  description: "Create a scheduled work slot. Attaches a time block to a ToDo for planning purposes.",
177418
+ category: CATEGORY14,
177315
177419
  inputSchema: createWorkSlotParamsJsonSchema,
177316
177420
  handler: createToolHandler(
177317
177421
  "create_work_slot",
@@ -177322,6 +177426,7 @@ var timeTools = [
177322
177426
  {
177323
177427
  name: "start_timer",
177324
177428
  description: "Start a client-side timer on a Huly issue. Validates the issue exists and returns a start timestamp. Use log_time to record the elapsed time when done.",
177429
+ category: CATEGORY14,
177325
177430
  inputSchema: startTimerParamsJsonSchema,
177326
177431
  handler: createToolHandler(
177327
177432
  "start_timer",
@@ -177332,6 +177437,7 @@ var timeTools = [
177332
177437
  {
177333
177438
  name: "stop_timer",
177334
177439
  description: "Stop a client-side timer on a Huly issue. Returns the stop timestamp. Calculate elapsed time from start/stop timestamps and use log_time to record it.",
177440
+ category: CATEGORY14,
177335
177441
  inputSchema: stopTimerParamsJsonSchema,
177336
177442
  handler: createToolHandler(
177337
177443
  "stop_timer",
@@ -177569,10 +177675,12 @@ var getRegions = () => Effect_exports.gen(function* () {
177569
177675
  });
177570
177676
 
177571
177677
  // src/mcp/tools/workspace.ts
177678
+ var CATEGORY15 = "Workspace";
177572
177679
  var workspaceTools = [
177573
177680
  {
177574
177681
  name: "list_workspace_members",
177575
177682
  description: "List members in the current Huly workspace with their roles. Returns members with account IDs and roles.",
177683
+ category: CATEGORY15,
177576
177684
  inputSchema: listWorkspaceMembersParamsJsonSchema,
177577
177685
  handler: createWorkspaceToolHandler(
177578
177686
  "list_workspace_members",
@@ -177583,6 +177691,7 @@ var workspaceTools = [
177583
177691
  {
177584
177692
  name: "update_member_role",
177585
177693
  description: "Update a workspace member's role. Requires appropriate permissions. Valid roles: READONLYGUEST, DocGuest, GUEST, USER, MAINTAINER, OWNER, ADMIN.",
177694
+ category: CATEGORY15,
177586
177695
  inputSchema: updateMemberRoleParamsJsonSchema,
177587
177696
  handler: createWorkspaceToolHandler(
177588
177697
  "update_member_role",
@@ -177593,6 +177702,7 @@ var workspaceTools = [
177593
177702
  {
177594
177703
  name: "get_workspace_info",
177595
177704
  description: "Get information about the current workspace including name, URL, region, and settings.",
177705
+ category: CATEGORY15,
177596
177706
  inputSchema: { type: "object", properties: {} },
177597
177707
  handler: createNoParamsWorkspaceToolHandler(
177598
177708
  "get_workspace_info",
@@ -177602,6 +177712,7 @@ var workspaceTools = [
177602
177712
  {
177603
177713
  name: "list_workspaces",
177604
177714
  description: "List all workspaces accessible to the current user. Returns workspace summaries sorted by last visit.",
177715
+ category: CATEGORY15,
177605
177716
  inputSchema: listWorkspacesParamsJsonSchema,
177606
177717
  handler: createWorkspaceToolHandler(
177607
177718
  "list_workspaces",
@@ -177612,6 +177723,7 @@ var workspaceTools = [
177612
177723
  {
177613
177724
  name: "create_workspace",
177614
177725
  description: "Create a new Huly workspace. Returns the workspace UUID and URL. Optionally specify a region.",
177726
+ category: CATEGORY15,
177615
177727
  inputSchema: createWorkspaceParamsJsonSchema,
177616
177728
  handler: createWorkspaceToolHandler(
177617
177729
  "create_workspace",
@@ -177622,6 +177734,7 @@ var workspaceTools = [
177622
177734
  {
177623
177735
  name: "delete_workspace",
177624
177736
  description: "Permanently delete the current workspace. This action cannot be undone. Use with extreme caution.",
177737
+ category: CATEGORY15,
177625
177738
  inputSchema: { type: "object", properties: {} },
177626
177739
  handler: createNoParamsWorkspaceToolHandler(
177627
177740
  "delete_workspace",
@@ -177631,6 +177744,7 @@ var workspaceTools = [
177631
177744
  {
177632
177745
  name: "get_user_profile",
177633
177746
  description: "Get the current user's profile information including bio, location, and social links.",
177747
+ category: CATEGORY15,
177634
177748
  inputSchema: { type: "object", properties: {} },
177635
177749
  handler: createNoParamsWorkspaceToolHandler(
177636
177750
  "get_user_profile",
@@ -177640,6 +177754,7 @@ var workspaceTools = [
177640
177754
  {
177641
177755
  name: "update_user_profile",
177642
177756
  description: "Update the current user's profile. Supports bio, city, country, website, social links, and public visibility.",
177757
+ category: CATEGORY15,
177643
177758
  inputSchema: updateUserProfileParamsJsonSchema,
177644
177759
  handler: createWorkspaceToolHandler(
177645
177760
  "update_user_profile",
@@ -177650,6 +177765,7 @@ var workspaceTools = [
177650
177765
  {
177651
177766
  name: "update_guest_settings",
177652
177767
  description: "Update workspace guest settings. Control read-only guest access and guest sign-up permissions.",
177768
+ category: CATEGORY15,
177653
177769
  inputSchema: updateGuestSettingsParamsJsonSchema,
177654
177770
  handler: createWorkspaceToolHandler(
177655
177771
  "update_guest_settings",
@@ -177660,6 +177776,7 @@ var workspaceTools = [
177660
177776
  {
177661
177777
  name: "get_regions",
177662
177778
  description: "Get available regions for workspace creation. Returns region codes and display names.",
177779
+ category: CATEGORY15,
177663
177780
  inputSchema: getRegionsParamsJsonSchema,
177664
177781
  handler: createWorkspaceToolHandler(
177665
177782
  "get_regions",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firfi/huly-mcp",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "MCP server for Huly integration",
5
5
  "mcpName": "io.github.dearlordylord/huly-mcp",
6
6
  "type": "module",