@spatialy/huly-mcp 0.1.41

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 @firfi/huly-mcp contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,363 @@
1
+ # @firfi/huly-mcp
2
+
3
+ [![npm](https://img.shields.io/npm/v/@firfi/huly-mcp)](https://www.npmjs.com/package/@firfi/huly-mcp)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@firfi/huly-mcp)](https://www.npmjs.com/package/@firfi/huly-mcp)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![MCP](https://img.shields.io/badge/MCP-compatible-blue)](https://modelcontextprotocol.io)
7
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/)
8
+ [![MCP Server](https://badge.mcpx.dev?type=server&features=tools)](https://github.com/dearlordylord/huly-mcp)
9
+ [![cooked at Monadical](https://img.shields.io/endpoint?url=https://monadical.com/static/api/cooked-at-monadical.json)](https://monadical.com)
10
+
11
+ MCP server for [Huly](https://huly.io/) integration.
12
+
13
+ ## Installation
14
+
15
+ The standard configuration works with most MCP clients:
16
+
17
+ ```json
18
+ {
19
+ "mcpServers": {
20
+ "huly": {
21
+ "command": "npx",
22
+ "args": ["-y", "@firfi/huly-mcp@latest"],
23
+ "env": {
24
+ "HULY_URL": "https://huly.app",
25
+ "HULY_EMAIL": "your@email.com",
26
+ "HULY_PASSWORD": "yourpassword",
27
+ "HULY_WORKSPACE": "yourworkspace"
28
+ }
29
+ }
30
+ }
31
+ }
32
+ ```
33
+
34
+ <details>
35
+ <summary>Claude Code</summary>
36
+
37
+ ```bash
38
+ claude mcp add huly \
39
+ -e HULY_URL=https://huly.app \
40
+ -e HULY_EMAIL=your@email.com \
41
+ -e HULY_PASSWORD=yourpassword \
42
+ -e HULY_WORKSPACE=yourworkspace \
43
+ -- npx -y @firfi/huly-mcp@latest
44
+ ```
45
+
46
+ Or add to `~/.claude.json` using the standard config above.
47
+
48
+ </details>
49
+
50
+ <details>
51
+ <summary>Claude Desktop</summary>
52
+
53
+ Add the standard config to your `claude_desktop_config.json`:
54
+
55
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
56
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
57
+
58
+ </details>
59
+
60
+ <details>
61
+ <summary>VS Code</summary>
62
+
63
+ Add to your user settings (`.vscode/mcp.json`) or use Command Palette → "MCP: Add Server":
64
+
65
+ ```json
66
+ {
67
+ "servers": {
68
+ "huly": {
69
+ "command": "npx",
70
+ "args": ["-y", "@firfi/huly-mcp@latest"],
71
+ "env": {
72
+ "HULY_URL": "https://huly.app",
73
+ "HULY_EMAIL": "your@email.com",
74
+ "HULY_PASSWORD": "yourpassword",
75
+ "HULY_WORKSPACE": "yourworkspace"
76
+ }
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ </details>
83
+
84
+ <details>
85
+ <summary>Cursor</summary>
86
+
87
+ Add the standard config to `~/.cursor/mcp.json`, or via Settings → Tools & Integrations → New MCP Server.
88
+
89
+ </details>
90
+
91
+ <details>
92
+ <summary>Windsurf</summary>
93
+
94
+ Add the standard config to your Windsurf MCP configuration file.
95
+
96
+ </details>
97
+
98
+ ## HTTP Transport
99
+
100
+ By default, the server uses stdio transport. For HTTP transport (Streamable HTTP):
101
+
102
+ ```bash
103
+ HULY_URL=https://huly.app \
104
+ HULY_EMAIL=your@email.com \
105
+ HULY_PASSWORD=yourpassword \
106
+ HULY_WORKSPACE=yourworkspace \
107
+ MCP_TRANSPORT=http \
108
+ npx -y @firfi/huly-mcp@latest
109
+ ```
110
+
111
+ Server listens on `http://127.0.0.1:3000/mcp` by default.
112
+
113
+ Configure with `MCP_HTTP_PORT` and `MCP_HTTP_HOST`:
114
+
115
+ ```bash
116
+ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-mcp@latest
117
+ ```
118
+
119
+ ## Environment Variables
120
+
121
+ | Variable | Required | Description |
122
+ |----------|----------|-------------|
123
+ | `HULY_URL` | Yes | Huly instance URL |
124
+ | `HULY_EMAIL` | Auth* | Account email |
125
+ | `HULY_PASSWORD` | Auth* | Account password |
126
+ | `HULY_TOKEN` | Auth* | API token (alternative to email/password) |
127
+ | `HULY_WORKSPACE` | Yes | Workspace identifier |
128
+ | `HULY_CONNECTION_TIMEOUT` | No | Connection timeout in ms (default: 30000) |
129
+ | `MCP_TRANSPORT` | No | Transport type: `stdio` (default) or `http` |
130
+ | `MCP_HTTP_PORT` | No | HTTP server port (default: 3000) |
131
+ | `MCP_HTTP_HOST` | No | HTTP server host (default: 127.0.0.1) |
132
+ | `TOOLSETS` | No | Comma-separated tool categories to expose. If unset, all tools are exposed. Example: `issues,projects,search` |
133
+
134
+ *Auth: Provide either `HULY_EMAIL` + `HULY_PASSWORD` or `HULY_TOKEN`.
135
+
136
+ <!-- tools:start -->
137
+ ## Available Tools
138
+
139
+ **`TOOLSETS` categories:** `projects`, `issues`, `comments`, `milestones`, `documents`, `storage`, `attachments`, `contacts`, `channels`, `calendar`, `time tracking`, `search`, `activity`, `notifications`, `workspace`, `cards`, `labels`
140
+
141
+ ### Projects
142
+
143
+ | Tool | Description |
144
+ |------|-------------|
145
+ | `list_projects` | List all Huly projects. Returns projects sorted by name. Supports filtering by archived status. |
146
+ | `get_project` | Get full details of a Huly project including statuses. Returns project metadata, default status, and all available statuses. |
147
+ | `create_project` | Create a new Huly project with the given identifier and name. The identifier must be 1-5 uppercase characters (e.g. 'PROJ'). Creates with default Backlog status. |
148
+ | `update_project` | Update fields on an existing Huly project. Only provided fields are modified. |
149
+ | `delete_project` | Permanently delete a Huly project and all its issues. This action cannot be undone. |
150
+
151
+ ### Issues
152
+
153
+ | Tool | Description |
154
+ |------|-------------|
155
+ | `preview_deletion` | Preview the impact of deleting a Huly entity before actually deleting it. Shows affected sub-entities, relations, and warnings. Supports issues, projects, components, and milestones. Use this to understand cascade effects before calling a delete operation. |
156
+ | `list_issues` | 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). |
157
+ | `get_issue` | Retrieve full details for a Huly issue including markdown description. Use this to view issue content, comments, or full metadata. |
158
+ | `create_issue` | Create a new issue in a Huly project. Optionally create as a sub-issue by specifying parentIssue. Description supports markdown formatting. Returns the created issue identifier. |
159
+ | `update_issue` | Update fields on an existing Huly issue. Only provided fields are modified. Description updates support markdown. |
160
+ | `add_issue_label` | Add a tag/label to a Huly issue. Creates the tag if it doesn't exist in the project. |
161
+ | `remove_issue_label` | Remove a tag/label from a Huly issue. Detaches the label reference; does not delete the label definition. |
162
+ | `delete_issue` | Permanently delete a Huly issue. This action cannot be undone. |
163
+ | `list_components` | List components in a Huly project. Components organize issues by area/feature. Returns components sorted by modification date (newest first). |
164
+ | `get_component` | Retrieve full details for a Huly component. Use this to view component content and metadata. |
165
+ | `create_component` | Create a new component in a Huly project. Components help organize issues by area/feature. Returns the created component ID and label. |
166
+ | `update_component` | Update fields on an existing Huly component. Only provided fields are modified. |
167
+ | `set_issue_component` | Set or clear the component on a Huly issue. Pass null for component to clear it. |
168
+ | `delete_component` | Permanently delete a Huly component. This action cannot be undone. |
169
+ | `list_issue_templates` | List issue templates in a Huly project. Templates define reusable issue configurations. Returns templates sorted by modification date (newest first). |
170
+ | `get_issue_template` | Retrieve full details for a Huly issue template. Use this to view template content and default values. |
171
+ | `create_issue_template` | Create a new issue template in a Huly project. Templates define default values for new issues. Returns the created template ID and title. |
172
+ | `create_issue_from_template` | Create a new issue from a template. Applies template defaults, allowing overrides for specific fields. Returns the created issue identifier. |
173
+ | `update_issue_template` | Update fields on an existing Huly issue template. Only provided fields are modified. |
174
+ | `delete_issue_template` | Permanently delete a Huly issue template. This action cannot be undone. |
175
+ | `add_issue_relation` | Add a relation between two issues. Relation types: 'blocks' (source blocks target — pushes into target's blockedBy), 'is-blocked-by' (source is blocked by target — pushes into source's blockedBy), 'relates-to' (bidirectional link — updates both sides). targetIssue accepts cross-project identifiers like 'OTHER-42'. No-op if the relation already exists. |
176
+ | `remove_issue_relation` | Remove a relation between two issues. Mirrors add_issue_relation: 'blocks' pulls from target's blockedBy, 'is-blocked-by' pulls from source's blockedBy, 'relates-to' pulls from both sides. No-op if the relation doesn't exist. |
177
+ | `list_issue_relations` | List all relations of an issue. Returns blockedBy (issues blocking this one) and relations (bidirectional links) with resolved identifiers. Does NOT return issues that this issue blocks — use list_issue_relations on the target issue to see that. |
178
+
179
+ ### Comments
180
+
181
+ | Tool | Description |
182
+ |------|-------------|
183
+ | `list_comments` | List comments on a Huly issue. Returns comments sorted by creation date (oldest first). |
184
+ | `add_comment` | Add a comment to a Huly issue. Comment body supports markdown formatting. |
185
+ | `update_comment` | Update an existing comment on a Huly issue. Comment body supports markdown formatting. |
186
+ | `delete_comment` | Delete a comment from a Huly issue. This action cannot be undone. |
187
+
188
+ ### Milestones
189
+
190
+ | Tool | Description |
191
+ |------|-------------|
192
+ | `list_milestones` | List milestones in a Huly project. Returns milestones sorted by modification date (newest first). |
193
+ | `get_milestone` | Retrieve full details for a Huly milestone. Use this to view milestone content and metadata. |
194
+ | `create_milestone` | Create a new milestone in a Huly project. Returns the created milestone ID and label. |
195
+ | `update_milestone` | Update fields on an existing Huly milestone. Only provided fields are modified. |
196
+ | `set_issue_milestone` | Set or clear the milestone on a Huly issue. Pass null for milestone to clear it. |
197
+ | `delete_milestone` | Permanently delete a Huly milestone. This action cannot be undone. |
198
+
199
+ ### Documents
200
+
201
+ | Tool | Description |
202
+ |------|-------------|
203
+ | `list_teamspaces` | List all Huly document teamspaces. Returns teamspaces sorted by name. Supports filtering by archived status. |
204
+ | `get_teamspace` | Get details of a single Huly teamspace by name or ID. Returns teamspace metadata including name, description, archived and private status. |
205
+ | `create_teamspace` | Create a new Huly document teamspace. Returns the created teamspace id and name. |
206
+ | `update_teamspace` | Update fields on an existing Huly teamspace. Only provided fields are modified. |
207
+ | `delete_teamspace` | Permanently delete a Huly teamspace and all its documents. This action cannot be undone. |
208
+ | `list_documents` | List documents in a Huly teamspace. Returns documents sorted by modification date (newest first). Supports searching by title substring (titleSearch) and content (contentSearch). |
209
+ | `get_document` | Retrieve full details for a Huly document including markdown content. Use this to view document content and metadata. |
210
+ | `create_document` | Create a new document in a Huly teamspace. Content supports markdown formatting. Returns the created document id. |
211
+ | `update_document` | Update fields on an existing Huly document. Only provided fields are modified. Content updates support markdown. |
212
+ | `delete_document` | Permanently delete a Huly document. This action cannot be undone. |
213
+
214
+ ### Storage
215
+
216
+ | Tool | Description |
217
+ |------|-------------|
218
+ | `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. |
219
+
220
+ ### Attachments
221
+
222
+ | Tool | Description |
223
+ |------|-------------|
224
+ | `list_attachments` | List attachments on a Huly object (issue, document, etc.). Returns attachments sorted by modification date (newest first). |
225
+ | `get_attachment` | Retrieve full details for a Huly attachment including download URL. |
226
+ | `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. |
227
+ | `update_attachment` | Update attachment metadata (description, pinned status). |
228
+ | `delete_attachment` | Permanently delete an attachment. This action cannot be undone. |
229
+ | `pin_attachment` | Pin or unpin an attachment. |
230
+ | `download_attachment` | Get download URL for an attachment along with file metadata (name, type, size). |
231
+ | `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. |
232
+ | `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. |
233
+
234
+ ### Contacts
235
+
236
+ | Tool | Description |
237
+ |------|-------------|
238
+ | `list_persons` | 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). |
239
+ | `get_person` | Retrieve full details for a person including contact channels. Use personId or email to identify the person. |
240
+ | `create_person` | Create a new person in Huly. Returns the created person ID. |
241
+ | `update_person` | Update fields on an existing person. Only provided fields are modified. |
242
+ | `delete_person` | Permanently delete a person from Huly. This action cannot be undone. |
243
+ | `list_employees` | List employees (persons who are team members). Returns employees sorted by modification date (newest first). |
244
+ | `list_organizations` | List all organizations in the Huly workspace. Returns organizations sorted by modification date (newest first). |
245
+ | `create_organization` | Create a new organization in Huly. Optionally add members by person ID or email. Returns the created organization ID. |
246
+
247
+ ### Channels
248
+
249
+ | Tool | Description |
250
+ |------|-------------|
251
+ | `list_channels` | List all Huly channels. Returns channels sorted by name. Supports filtering by archived status. Supports searching by name substring (nameSearch) and topic substring (topicSearch). |
252
+ | `get_channel` | Retrieve full details for a Huly channel including topic and member list. |
253
+ | `create_channel` | Create a new channel in Huly. Returns the created channel ID and name. |
254
+ | `update_channel` | Update fields on an existing Huly channel. Only provided fields are modified. |
255
+ | `delete_channel` | Permanently delete a Huly channel. This action cannot be undone. |
256
+ | `list_channel_messages` | List messages in a Huly channel. Returns messages sorted by date (newest first). |
257
+ | `send_channel_message` | Send a message to a Huly channel. Message body supports markdown formatting. |
258
+ | `list_direct_messages` | List direct message conversations in Huly. Returns conversations sorted by date (newest first). |
259
+ | `list_thread_replies` | List replies in a message thread. Returns replies sorted by date (oldest first). |
260
+ | `add_thread_reply` | Add a reply to a message thread. Reply body supports markdown formatting. |
261
+ | `update_thread_reply` | Update a thread reply. Only the body can be modified. |
262
+ | `delete_thread_reply` | Permanently delete a thread reply. This action cannot be undone. |
263
+
264
+ ### Calendar
265
+
266
+ | Tool | Description |
267
+ |------|-------------|
268
+ | `list_events` | List calendar events. Returns events sorted by date. Supports filtering by date range. |
269
+ | `get_event` | Retrieve full details for a calendar event including description. Use this to view event content and metadata. |
270
+ | `create_event` | Create a new calendar event. Description supports markdown formatting. Returns the created event ID. |
271
+ | `update_event` | Update fields on an existing calendar event. Only provided fields are modified. Description updates support markdown. |
272
+ | `delete_event` | Permanently delete a calendar event. This action cannot be undone. |
273
+ | `list_recurring_events` | List recurring event definitions. Returns recurring events sorted by modification date (newest first). |
274
+ | `create_recurring_event` | Create a new recurring calendar event with RFC5545 RRULE rules. Description supports markdown. Returns the created event ID. |
275
+ | `list_event_instances` | 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). |
276
+
277
+ ### Time Tracking
278
+
279
+ | Tool | Description |
280
+ |------|-------------|
281
+ | `log_time` | Log time spent on a Huly issue. Records a time entry with optional description. Time value is in minutes. |
282
+ | `get_time_report` | Get time tracking report for a specific Huly issue. Shows total time, estimation, remaining time, and all time entries. |
283
+ | `list_time_spend_reports` | List all time entries across issues. Supports filtering by project and date range. Returns entries sorted by date (newest first). |
284
+ | `get_detailed_time_report` | Get detailed time breakdown for a project. Shows total time grouped by issue and by employee. Supports date range filtering. |
285
+ | `list_work_slots` | List scheduled work slots. Shows planned time blocks attached to ToDos. Supports filtering by employee and date range. |
286
+ | `create_work_slot` | Create a scheduled work slot. Attaches a time block to a ToDo for planning purposes. |
287
+ | `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. |
288
+ | `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. |
289
+
290
+ ### Search
291
+
292
+ | Tool | Description |
293
+ |------|-------------|
294
+ | `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). |
295
+
296
+ ### Activity
297
+
298
+ | Tool | Description |
299
+ |------|-------------|
300
+ | `list_activity` | List activity messages for a Huly object. Returns activity sorted by date (newest first). |
301
+ | `add_reaction` | Add an emoji reaction to an activity message. |
302
+ | `remove_reaction` | Remove an emoji reaction from an activity message. |
303
+ | `list_reactions` | List reactions on an activity message. |
304
+ | `save_message` | Save/bookmark an activity message for later reference. |
305
+ | `unsave_message` | Remove an activity message from saved/bookmarks. |
306
+ | `list_saved_messages` | List saved/bookmarked activity messages. |
307
+ | `list_mentions` | List @mentions of the current user in activity messages. |
308
+
309
+ ### Notifications
310
+
311
+ | Tool | Description |
312
+ |------|-------------|
313
+ | `list_notifications` | List inbox notifications. Returns notifications sorted by modification date (newest first). Supports filtering by read/archived status. |
314
+ | `get_notification` | Retrieve full details for a notification. Use this to view notification content and metadata. |
315
+ | `mark_notification_read` | Mark a notification as read. |
316
+ | `mark_all_notifications_read` | Mark all unread notifications as read. Returns the count of notifications marked. |
317
+ | `archive_notification` | Archive a notification. Archived notifications are hidden from the main inbox view. |
318
+ | `archive_all_notifications` | Archive all notifications. Returns the count of notifications archived. |
319
+ | `delete_notification` | Permanently delete a notification. This action cannot be undone. |
320
+ | `get_notification_context` | Get notification context for an entity. Returns tracking information for a specific object. |
321
+ | `list_notification_contexts` | List notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status. |
322
+ | `pin_notification_context` | Pin or unpin a notification context. Pinned contexts are highlighted in the inbox. |
323
+ | `list_notification_settings` | List notification provider settings. Returns current notification preferences. |
324
+ | `update_notification_provider_setting` | Update notification provider setting. Enable or disable notifications for a specific provider. |
325
+ | `get_unread_notification_count` | Get the count of unread notifications. |
326
+
327
+ ### Workspace
328
+
329
+ | Tool | Description |
330
+ |------|-------------|
331
+ | `list_workspace_members` | List members in the current Huly workspace with their roles. Returns members with account IDs and roles. |
332
+ | `update_member_role` | Update a workspace member's role. Requires appropriate permissions. Valid roles: READONLYGUEST, DocGuest, GUEST, USER, MAINTAINER, OWNER, ADMIN. |
333
+ | `get_workspace_info` | Get information about the current workspace including name, URL, region, and settings. |
334
+ | `list_workspaces` | List all workspaces accessible to the current user. Returns workspace summaries sorted by last visit. |
335
+ | `create_workspace` | Create a new Huly workspace. Returns the workspace UUID and URL. Optionally specify a region. |
336
+ | `delete_workspace` | Permanently delete the current workspace. This action cannot be undone. Use with extreme caution. |
337
+ | `get_user_profile` | Get the current user's profile information including bio, location, and social links. |
338
+ | `update_user_profile` | Update the current user's profile. Supports bio, city, country, website, social links, and public visibility. |
339
+ | `update_guest_settings` | Update workspace guest settings. Control read-only guest access and guest sign-up permissions. |
340
+ | `get_regions` | Get available regions for workspace creation. Returns region codes and display names. |
341
+
342
+ ### Cards
343
+
344
+ | Tool | Description |
345
+ |------|-------------|
346
+ | `list_card_types` | List available card types (MasterTags) in the Huly workspace. Use this to discover what card types exist before creating or filtering cards. |
347
+ | `list_cards` | List cards in the Huly workspace. Optionally filter by card type ID. Returns cards sorted by modification date (newest first). |
348
+ | `get_card` | Get full details of a Huly card including markdown content. Look up by title or ID. |
349
+ | `create_card` | Create a new card in the Huly workspace. Optionally specify a card type (MasterTag ID from list_card_types). Content supports markdown. |
350
+ | `update_card` | Update fields on an existing Huly card. Only provided fields are modified. Content updates support markdown. |
351
+ | `delete_card` | Permanently delete a Huly card. This action cannot be undone. |
352
+
353
+ ### Labels
354
+
355
+ | Tool | Description |
356
+ |------|-------------|
357
+ | `list_labels` | List label/tag definitions in the workspace. Labels are global (not project-scoped). Returns labels for tracker issues sorted by modification date (newest first). |
358
+ | `create_label` | Create a new label/tag definition in the workspace. Labels are global and can be attached to any issue. Returns existing label if one with the same title already exists (created=false). Use add_issue_label to attach a label to a specific issue. |
359
+ | `update_label` | Update a label/tag definition. Accepts label ID or title. Only provided fields are modified. |
360
+ | `delete_label` | Permanently delete a label/tag definition. Accepts label ID or title. This action cannot be undone. |
361
+
362
+ <!-- tools:end -->
363
+