@bgx4k3p/huly-mcp-server 2.2.0 → 2.2.1

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/README.md CHANGED
@@ -425,6 +425,7 @@ Full list of all MCP tools available through this server.
425
425
  | `get_label` | Find a label by name |
426
426
  | `create_label` | Create a new label with optional color |
427
427
  | `update_label` | Update label name, color, or description |
428
+ | `delete_label` | Permanently delete a label |
428
429
  | `add_label` | Add a label to an issue |
429
430
  | `remove_label` | Remove a label from an issue |
430
431
 
@@ -442,8 +443,8 @@ Full list of all MCP tools available through this server.
442
443
  | --- | --- | --- |
443
444
  | `list_components` | List components in a project | -- |
444
445
  | `get_component` | Find a component by name | -- |
445
- | `create_component` | Create a new component | `descriptionFormat`: md/html/plain |
446
- | `update_component` | Update component fields | `descriptionFormat`: md/html/plain |
446
+ | `create_component` | Create a new component (optional lead) | `descriptionFormat`: md/html/plain |
447
+ | `update_component` | Update component name, description, or lead | `descriptionFormat`: md/html/plain |
447
448
  | `delete_component` | Delete a component | -- |
448
449
 
449
450
  ### Milestones
@@ -517,7 +518,7 @@ fetches related data in a single call:
517
518
  | --- | --- | --- | --- | --- | --- |
518
519
  | Project | `create_project` | `get_project` | `list_projects` | `update_project` | `delete_project` |
519
520
  | Issue | `create_issue` | `get_issue` | `list_issues` | `update_issue` | `delete_issue` |
520
- | Label | `create_label` | `get_label` | `list_labels` | `update_label` | `remove_label` |
521
+ | Label | `create_label` | `get_label` | `list_labels` | `update_label` | `delete_label` |
521
522
  | Component | `create_component` | `get_component` | `list_components` | `update_component` | `delete_component` |
522
523
  | Milestone | `create_milestone` | `get_milestone` | `list_milestones` | `update_milestone` | `delete_milestone` |
523
524
  | Comment | `add_comment` | `get_comment` | `list_comments` | `update_comment` | `delete_comment` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgx4k3p/huly-mcp-server",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "MCP server for Huly issue tracking with stdio and Streamable HTTP transports",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/client.mjs CHANGED
@@ -1782,6 +1782,17 @@ export class HulyClient {
1782
1782
  };
1783
1783
  }
1784
1784
 
1785
+ async deleteLabel(name) {
1786
+ const client = await this._getClient();
1787
+ const tagElement = await client.findOne(tags.class.TagElement, {
1788
+ title: name,
1789
+ targetClass: tracker.class.Issue
1790
+ });
1791
+ if (!tagElement) throw new Error(`Label "${name}" not found`);
1792
+ await client.removeDoc(tags.class.TagElement, tagElement.space, tagElement._id);
1793
+ return { message: `Label "${name}" deleted`, id: tagElement._id };
1794
+ }
1795
+
1785
1796
  /**
1786
1797
  * Add a "related to" relationship between two issues.
1787
1798
  * @param {string} issueId - Issue identifier
package/src/dispatch.mjs CHANGED
@@ -117,6 +117,7 @@ export const workspaceTools = {
117
117
  create_label: (a, c) => c.createLabel(a.name, a.color, a.description),
118
118
  update_label: (a, c) =>
119
119
  c.updateLabel(a.name, { newName: a.newName, color: a.color, description: a.description }),
120
+ delete_label: (a, c) => c.deleteLabel(a.name),
120
121
 
121
122
  // Relations
122
123
  add_relation: (a, c) => c.addRelation(a.issueId, a.relatedToIssueId),
package/src/mcpShared.mjs CHANGED
@@ -388,6 +388,11 @@ function getToolDefinitions() {
388
388
  description: 'Update an existing label\'s name, color, or description. Use list_labels to see available labels.',
389
389
  inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Current label name to find' }, newName: { type: 'string', description: 'New label name' }, color: { type: ['string', 'number'], description: 'New color: name (red, salmon, pink, hotpink, magenta, purple, indigo, violet, navy, blue, sky, cyan, teal, ocean, mint, green, olive, lime, gold, orange, brown, silver, gray, slate), palette index (0-23), or RGB hex (e.g., 0xBB83FC)' }, description: { type: 'string', description: 'New description' }, ...workspaceProp }, required: ['name'] }
390
390
  },
391
+ {
392
+ name: 'delete_label',
393
+ description: 'Permanently delete a label. Irreversible — confirm with the user before proceeding.',
394
+ inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Label name to delete' }, ...workspaceProp }, required: ['name'] }
395
+ },
391
396
  {
392
397
  name: 'get_label',
393
398
  description: 'Get details for a specific label by name.',