@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 +4 -3
- package/package.json +1 -1
- package/src/client.mjs +11 -0
- package/src/dispatch.mjs +1 -0
- package/src/mcpShared.mjs +5 -0
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
|
|
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` | `
|
|
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
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.',
|