@firfi/huly-mcp 0.47.0 → 0.48.0
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 +56 -2
- package/dist/index.cjs +6877 -2633
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -290,7 +290,7 @@ When resolved tool exposure is `proxy`, clients see the built-in tools plus thes
|
|
|
290
290
|
| `get_tool_schema` | Returns the exact input and output schema for one proxy-visible Huly tool. Use this before invoke_tool when you are not certain about required argument names or result shape. |
|
|
291
291
|
| `invoke_tool` | Invokes one proxy-visible Huly tool by exact name with its arguments. This tool can call read or write Huly operations; check get_tool_schema and the target tool annotations when safety matters. |
|
|
292
292
|
|
|
293
|
-
**`TOOLSETS` categories:** `projects`, `issues`, `comments`, `milestones`, `documents`, `storage`, `attachments`, `contacts`, `channels`, `calendar`, `time tracking`, `search`, `associations`, `activity`, `notifications`, `workspace`, `approvals`, `boards`, `cards`, `collaborators`, `custom-fields`, `drive`, `inventory`, `labels`, `leads`, `templates`, `planner`, `preferences`, `processes`, `recruiting`, `sdk-discovery`, `spaces`, `tag-categories`, `tags`, `task-management`, `test-management`, `user-statuses`, `views`, `virtual-office`
|
|
293
|
+
**`TOOLSETS` categories:** `projects`, `issues`, `comments`, `milestones`, `documents`, `storage`, `attachments`, `contacts`, `channels`, `calendar`, `time tracking`, `search`, `associations`, `activity`, `notifications`, `workspace`, `approvals`, `boards`, `cards`, `collaborators`, `custom-fields`, `drive`, `inventory`, `labels`, `leads`, `templates`, `model-administration`, `planner`, `preferences`, `processes`, `recruiting`, `sdk-discovery`, `security-administration`, `sequence-administration`, `spaces`, `tag-categories`, `tags`, `task-management`, `test-management`, `user-statuses`, `views`, `virtual-office`, `workflow-statuses`
|
|
294
294
|
|
|
295
295
|
### Projects
|
|
296
296
|
|
|
@@ -457,13 +457,17 @@ When resolved tool exposure is `proxy`, clients see the built-in tools plus thes
|
|
|
457
457
|
| `create_group_direct_message` | Open a group direct-message conversation with at least two other workspace members. The `people` array accepts exact emails or exact display names; the authenticated account is included automatically. Idempotent by exact sorted member set: returns an existing group DM with `created: false` when one already exists. For one other person, use create_direct_message. |
|
|
458
458
|
| `set_conversation_starred` | Set the authenticated user's starred state for exactly one conversation. Provide either `channel` (channel name or ID) or `dm` (DM ID, or one-to-one participant display name), plus `starred`. Creates the missing notification context when needed. |
|
|
459
459
|
| `set_conversation_closed` | Set the authenticated user's closed/visible state for exactly one conversation. Provide either `channel` or `dm`, plus `closed`. Closing only hides the current user's notification context; it does not leave channels or remove members. |
|
|
460
|
+
| `list_pinned_chat_messages` | List pinned top-level messages and pinned thread replies in exactly one Huly channel or direct-message conversation. Provide `channel` (name or ID) or `dm` (DM ID or one-to-one participant name), not both. Results are newest-first across both message kinds. |
|
|
461
|
+
| `set_chat_message_pinned` | Idempotently pin or unpin a top-level message or thread reply located inside exactly one Huly channel or direct-message conversation. Provide `channel` or `dm`, plus the messageId; the message must belong to the resolved conversation. |
|
|
462
|
+
| `request_channel_access` | Attempt the Huly private-channel request-access workflow by channel name or ID. The current Chunter SDK/model has no stable request-access record or server action, so this build returns supported=false with a stable reasonCode and performs no mutation. |
|
|
463
|
+
| `translate_chat_message` | Attempt to translate a located Huly channel/DM message to targetLanguage. Current Huly translation is browser-only, uses an optional AI endpoint, and stores results only in UI state; this build returns supported=false with a stable reasonCode and does not fabricate translated text. |
|
|
460
464
|
| `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). |
|
|
461
465
|
| `get_channel` | Retrieve full details for a Huly channel including topic and member list. |
|
|
462
466
|
| `create_channel` | Create a new channel in Huly. Returns the created channel ID and name. |
|
|
463
467
|
| `update_channel` | Update fields on an existing Huly channel. Only provided fields are modified. |
|
|
464
468
|
| `delete_channel` | Permanently delete a Huly channel. This action cannot be undone. For reversible channel lifecycle changes, use archive_channel and unarchive_channel instead. |
|
|
465
469
|
| `list_channel_messages` | List messages in a Huly channel. Returns messages sorted by date (newest first). |
|
|
466
|
-
| `list_external_channel_messages` |
|
|
470
|
+
| `list_external_channel_messages` | Assess whether external messages can be listed safely for a provider channel. Gmail returns supported=false because Huly does not expose the live deployment-wide v1/v2 writer version needed to distinguish current legacy records from stale data; Telegram returns supported=false because no compatible published message package is installed. Returns an unsupportedReason and an empty messages array. The limit defaults to 50 and is capped at 200. This tool never sends, replies, deletes, mutates, or returns fake messages. |
|
|
467
471
|
| `send_channel_message` | Send a message to a Huly channel. Message body supports markdown formatting. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. |
|
|
468
472
|
| `update_channel_message` | Update a channel message. Only the body can be modified; body supports markdown formatting. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. |
|
|
469
473
|
| `delete_channel_message` | Permanently delete a channel message. This action cannot be undone. |
|
|
@@ -757,6 +761,17 @@ When resolved tool exposure is `proxy`, clients see the built-in tools plus thes
|
|
|
757
761
|
| `render_message_template` | Render one global Huly message template by template ID or exact title. Substitutes only caller-provided values for matching dollar-brace placeholder field IDs from placeholderFieldIds; does not execute Huly TemplateField provider resources. Unresolved placeholders remain in renderedMessage and are reported in unresolvedFieldIds. |
|
|
758
762
|
| `list_message_template_fields` | List Huly message template fields/placeholders without executing provider resources or rendering templates. Optionally filter by field category ID or exact raw label string, and search raw field labels by substring. Returns field IDs, labels, category summaries, and provider resource IDs. |
|
|
759
763
|
|
|
764
|
+
### Model-Administration
|
|
765
|
+
|
|
766
|
+
| Tool | Description |
|
|
767
|
+
|------|-------------|
|
|
768
|
+
| `create_huly_enum` | Create a Huly model enum with ordered option values. An exact case-insensitive name is idempotent only when its ordered values match; otherwise the call returns a conflict. This changes workspace model metadata. confirm=true is required so an agent cannot mutate the model accidentally. |
|
|
769
|
+
| `update_huly_enum` | Update a Huly model enum resolved by exact ID or name. Renaming and adding options are safe; removing an option is refused while any attribute references the enum. This changes workspace model metadata. confirm=true is required so an agent cannot mutate the model accidentally. |
|
|
770
|
+
| `delete_huly_enum` | Permanently delete a Huly model enum resolved by exact ID or name. Refuses deletion while any attribute references it. This changes workspace model metadata. confirm=true is required so an agent cannot mutate the model accidentally. |
|
|
771
|
+
| `create_huly_attribute` | Create a custom Huly Attribute/property on a class resolved by exact ID, tail name, or label. Supports string, number, boolean, date, markup, enum, and reference types; enum and reference targets also resolve by name. Existing same-name attributes are idempotent only when their definition matches; otherwise the call returns a conflict. New records are always isCustom=true. This changes workspace model metadata. confirm=true is required so an agent cannot mutate the model accidentally. |
|
|
772
|
+
| `update_huly_attribute` | Update label, index, automation-only, or hidden state for a Huly Attribute resolved by ID or exact name. Pass class by ID/name to disambiguate. Built-in attributes permit hidden-only updates; all other built-in mutations are protected, and property keys/types cannot be changed here. Hide/unhide uses the SDK behavior exercised by Huly settings. This changes workspace model metadata. confirm=true is required so an agent cannot mutate the model accidentally. |
|
|
773
|
+
| `delete_huly_attribute` | Permanently delete an unused custom Huly Attribute resolved by ID or exact name. Pass class by ID/name to disambiguate. Built-in attributes and attributes present on any owning-class document are protected. This changes workspace model metadata. confirm=true is required so an agent cannot mutate the model accidentally. |
|
|
774
|
+
|
|
760
775
|
### Planner
|
|
761
776
|
|
|
762
777
|
| Tool | Description |
|
|
@@ -851,6 +866,27 @@ When resolved tool exposure is `proxy`, clients see the built-in tools plus thes
|
|
|
851
866
|
| `list_huly_sequences` | List read-only Huly sequence counters from core.class.Sequence and core.class.CustomSequence. Returns sequence id, attached class id, current non-negative integer value, and custom prefix when present. |
|
|
852
867
|
| `describe_huly_space_type_capabilities` | Describe one Huly SpaceType by id or exact name in a single read-only call. Returns descriptor metadata, base/target classes, roles, role permissions, default members, autoJoin, and the stored role-assignment shape. |
|
|
853
868
|
|
|
869
|
+
### Security-Administration
|
|
870
|
+
|
|
871
|
+
| Tool | Description |
|
|
872
|
+
|------|-------------|
|
|
873
|
+
| `create_huly_permission` | Create a base Huly Permission with a clear human label and optional class/transaction constraints. Class accepts an exact class ID, tail name, or label. Exact labels are idempotent only when the full definition matches. This changes workspace access-control metadata. confirm=true is required so an agent cannot mutate security configuration accidentally. |
|
|
874
|
+
| `update_huly_permission` | Update a custom Huly Permission resolved by exact ID or exact label. Namespaced built-in permissions are protected. Label/description changes are allowed on unreferenced custom permissions; semantic changes are refused while referenced by a role or SpaceType descriptor. Null clears optional constraints. This changes workspace access-control metadata. confirm=true is required so an agent cannot mutate security configuration accidentally. |
|
|
875
|
+
| `delete_huly_permission` | Permanently delete a custom Huly Permission resolved by exact ID or exact label. Namespaced built-ins are protected, and referenced permissions are refused loudly. This changes workspace access-control metadata. confirm=true is required so an agent cannot mutate security configuration accidentally. |
|
|
876
|
+
| `create_space_role` | Create a Huly role definition using a SpaceType ID or exact name and permission ID or exact label values. The call creates both the attached Role and required typed-space assignment attribute, compensating if the second write fails. Workspace-scoped permissions are restricted to the stable all-spaces SpaceType. Existing exact role names are idempotent only when permission sets match. This changes workspace access-control metadata. confirm=true is required so an agent cannot mutate security configuration accidentally. |
|
|
877
|
+
| `set_space_role_permissions` | Replace one existing role definition's permission set. SpaceType accepts an ID or exact name, role accepts an ID or exact name scoped to that SpaceType, and each permission accepts an ID or exact label. Pass permissions=[] to clear the role. This changes workspace access-control metadata. confirm=true is required so an agent cannot mutate security configuration accidentally. |
|
|
878
|
+
| `get_class_collaborator_metadata` | Get the direct core ClassCollaborators metadata for a Huly class resolved by class ID, tail name, or label. Returns configured=false when the class inherits defaults or has no direct record. |
|
|
879
|
+
| `set_class_collaborator_metadata` | Create or replace direct core ClassCollaborators metadata for a class resolved by class ID, tail name, or label. fieldSelection supports all person-like fields, no fields, or exact property names validated against the class and its ancestors. Security propagation flags are normalized explicitly. This changes workspace access-control metadata. confirm=true is required so an agent cannot mutate security configuration accidentally. |
|
|
880
|
+
| `delete_class_collaborator_metadata` | Permanently delete the direct core ClassCollaborators metadata record for a class resolved by ID, tail name, or label. Inherited metadata is never selected or deleted. This changes workspace access-control metadata. confirm=true is required so an agent cannot mutate security configuration accidentally. |
|
|
881
|
+
|
|
882
|
+
### Sequence-Administration
|
|
883
|
+
|
|
884
|
+
| Tool | Description |
|
|
885
|
+
|------|-------------|
|
|
886
|
+
| `create_huly_sequence` | Create a zero-valued standard Sequence or prefixed CustomSequence for a class resolved by exact ID, tail name, or label. Retrying returns the matching existing definition and never resets or increments its counter; a different kind or prefix returns a conflict. This changes a workspace sequence definition. confirm=true is required so an agent cannot mutate sequence metadata accidentally. |
|
|
887
|
+
| `update_huly_custom_sequence` | Set only the prefix of a CustomSequence resolved by exact sequence ID or attached class ID/name. The compare-and-set guard does not change the counter and refuses a concurrent change; standard Sequence records are protected. This changes a workspace sequence definition. confirm=true is required so an agent cannot mutate sequence metadata accidentally. |
|
|
888
|
+
| `delete_huly_sequence` | Permanently delete a never-used Sequence or CustomSequence resolved by exact sequence ID or attached class ID/name. expectedCurrentValue must be 0 and is an atomic compare-and-delete guard, so an active or advanced counter cannot be removed; referenced CustomSequence records are protected. This changes a workspace sequence definition. confirm=true is required so an agent cannot mutate sequence metadata accidentally. |
|
|
889
|
+
|
|
854
890
|
### Spaces
|
|
855
891
|
|
|
856
892
|
| Tool | Description |
|
|
@@ -860,6 +896,9 @@ When resolved tool exposure is `proxy`, clients see the built-in tools plus thes
|
|
|
860
896
|
| `list_space_types` | List configured Huly SpaceType records. Returns descriptor id, base class, target class, default members, autoJoin, and role count for discovering typed-space configuration. |
|
|
861
897
|
| `get_space_type` | Get one Huly SpaceType by raw SpaceType _id or exact name, including descriptor metadata, role definitions, role permission ids/labels, and available permissions. |
|
|
862
898
|
| `list_space_permissions` | List core Huly Permission records for space/workspace access control discovery. Filter by scope, objectClass, or search text. This is read-only and does not assign permissions. |
|
|
899
|
+
| `create_space` | Create a generic Huly typed space by SpaceType _id or exact name. This single call resolves member, owner, and role locators; applies SpaceType default members; and creates role assignments. For safety, only non-system types whose SDK descriptor base class is exactly core:class:TypedSpace are supported. Specialized project, teamspace, drive, funnel, vacancy, and similar types fail with a typed error directing callers to their purpose-built tools. Defaults: private=false, autoJoin=false, restricted=false, owners=[calling account]. |
|
|
900
|
+
| `get_global_space_admins` | Get the workspace-wide Huly space administrators from the stable core Admin role on the all-spaces typed space. Returns account UUIDs and requires no raw space, role, or mixin refs. |
|
|
901
|
+
| `set_global_space_admins` | Replace the workspace-wide Huly space-admin list. Admins accept account UUIDs, exact emails, or exact person display names; pass admins=[] to clear the role. The tool resolves the stable core all-spaces space and Admin role internally. |
|
|
863
902
|
| `update_space` | Update safe common metadata on an existing Huly space: name, description, private, archived, and autoJoin. Does not create/delete spaces or mutate module-specific required fields. |
|
|
864
903
|
| `add_space_members` | Idempotently add members to an existing Huly space. Members accept account UUID, exact email, or exact person display name and resolve to Huly account UUIDs before replacing the full members array. |
|
|
865
904
|
| `remove_space_members` | Idempotently remove members from an existing Huly space. Members accept account UUID, exact email, or exact person display name and resolve to Huly account UUIDs before replacing the full members array. |
|
|
@@ -964,6 +1003,21 @@ When resolved tool exposure is `proxy`, clients see the built-in tools plus thes
|
|
|
964
1003
|
| `list_device_preferences` | List readable virtual-office media device preferences. |
|
|
965
1004
|
| `list_office_defaults` | List room-level language, default recording, and default transcription settings. |
|
|
966
1005
|
|
|
1006
|
+
### Workflow-Statuses
|
|
1007
|
+
|
|
1008
|
+
| Tool | Description |
|
|
1009
|
+
|------|-------------|
|
|
1010
|
+
| `list_workflow_statuses` | List generic Huly workflow Status records across the workspace model. Filter by status attribute ID/exact name and category ID/exact label. Returns resolved attribute and category relationships. For one tracker project's issue statuses, use list_statuses instead. |
|
|
1011
|
+
| `get_workflow_status` | Get one generic Huly workflow Status by ID or exact case-insensitive name. Pass ofAttribute when a name exists for multiple status attributes; ambiguous names are rejected with matching IDs. |
|
|
1012
|
+
| `create_workflow_status` | Create a generic Huly workflow Status for an attribute resolved by ID or exact name. Optionally resolve a shared category by ID or exact label; pass a category ID when its label is ambiguous. Idempotently returns the existing normalized name in that attribute with created=false. Tracker project-type wiring remains owned by create_issue_status. |
|
|
1013
|
+
| `update_workflow_status` | Update a generic workflow Status by ID or exact name. Use currentOfAttribute to disambiguate the target. category, color, and description accept null to clear. Renaming is refused while a StatusCategory uses the status as its default; update that default first. Moving attributes is allowed only when the status is unreferenced and both attributes use the same concrete Status class. Categories may be shared across attributes. |
|
|
1014
|
+
| `delete_workflow_status` | Permanently delete an unreferenced generic workflow Status by ID or exact name. Refuses deletion while any StatusCategory default, ProjectType, TaskType, or task record references it. This tool never rewrites tracker workflow arrays; use tracker-specific workflow tools to remove those references first. |
|
|
1015
|
+
| `list_status_categories` | List generic Huly StatusCategory records, optionally filtered by status attribute ID or exact name. Returns each category's resolved attribute, default status, and number of statuses that reference it. |
|
|
1016
|
+
| `get_status_category` | Get one generic Huly StatusCategory by ID or exact case-insensitive label. Pass ofAttribute when a label exists for multiple status attributes; ambiguous labels are rejected with matching IDs. |
|
|
1017
|
+
| `create_status_category` | Create a generic Huly StatusCategory for an attribute resolved by ID or exact name. defaultStatus is resolved within the same attribute, preserving the category/default relationship. Idempotently returns an existing normalized label with created=false. |
|
|
1018
|
+
| `update_status_category` | Update a generic StatusCategory by ID or exact label. The resulting default status must belong to the resulting attribute. Statuses from other attributes may continue to reference the category because Huly categories can be shared. |
|
|
1019
|
+
| `delete_status_category` | Permanently delete an unreferenced generic StatusCategory by ID or exact label. Refuses deletion while any Status references the category, preventing dangling relationships. |
|
|
1020
|
+
|
|
967
1021
|
<!-- tools:end -->
|
|
968
1022
|
|
|
969
1023
|
## Troubleshooting
|