Huly MCP: feature-complete MCP server for Huly integration
Huly MCP: feature-complete MCP server for Huly integration
By default (HULY_TOOL_MODE=auto), Huly MCP optimizes for current MCP clients by avoiding a 470-tool eager list. Exact claude-code sessions receive native Huly tools. Codex, Cursor, Windsurf, Copilot, OpenCode, Claude AI/Desktop-style clients, and unknown clients receive a small proxy surface: list_tool_categories, search_tools, get_tool_schema, and invoke_tool.
Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| list_tool_categories | Lists Huly tool categories available through this proxy. Use this first when you need a broad map of capabilities before searching for a specific Huly tool. |
| search_tools | Searches the current proxy-visible Huly tool catalog by tool name, category, description, and parameter names. Returns exact tool names plus required and option |
| 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 |
| 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 too |
| list_project_target_preferences | List low-level per-project tracker target preference records. These Huly ProjectTargetPreference records are attached to projects and used by tracker UI/workflo |
| upsert_project_target_preference | Create or update the low-level ProjectTargetPreference record for a project. This refreshes usedOn and merges SDK-open target preference props by key. Use for t |
| list_projects | List all Huly projects. Returns projects sorted by name. Supports filtering by archived status. |
| get_project | Get full details of a Huly project including its statuses. Returns project name, description, archived flag, default status, and all available statuses. |
| list_statuses | List all issue statuses for a Huly project with workflow category and default info. Returns status name, category, and isDefault. Use this to discover valid sta |
| create_project | Create a new Huly tracker project. Idempotent: returns existing project if one with the same identifier already exists (created=false). Identifier must be 1-5 u |
| update_project | Update a Huly project. Only provided fields are modified. Set description to null to clear it. |
| delete_project | Permanently delete a Huly project. All issues, milestones, and components in this project will be orphaned. This action cannot be undone. |
| preview_deletion | Preview the impact of deleting a Huly entity before actually deleting it. Shows affected sub-entities, relations, and warnings. Supports issues, projects, compo |
| list_external_tracker_targets | List external issue-tracker targets mapped to a Huly project. Omit provider to list every provider supported by this server, or pass provider:'github' to list m |
| publish_issue_to_external_tracker | Request publication of an existing Huly issue as a new issue in Huly's configured external tracker. Identify the issue with project and its human identifier (fo |
| get_issue_publication_status | Read the Huly-persisted external publication state for an issue identified by project and human issue identifier. Returns not_requested, pending, published, or |
| list_components | List components in a Huly project. Components organize issues by area/feature. Returns components sorted by modification date (newest first). |
| get_component | Retrieve full details for a Huly component. Use this to view component content and metadata. |
| create_component | Create a new component in a Huly project. Components help organize issues by area/feature. Description supports markdown. Markdown links to current-workspace Hu |
| update_component | Update fields on an existing Huly component. Only provided fields are modified. Description supports markdown. Markdown links to current-workspace Huly browse U |
| set_issue_component | Set or clear the component on a Huly issue. Pass null for component to clear it. |
| delete_component | Permanently delete a Huly component. This action cannot be undone. |
| list_issues | Query Huly issues with optional filters. Returns issues sorted by modification date (newest first). Supports filtering by project, exact workflow status name (s |
| get_issue | Retrieve full details for a Huly issue including markdown description, its creator as a stable Person reference { id, name?, email? } when resolvable, its assig |
| create_issue | Create a new issue in a Huly project. Assignee accepts an email, Person display name, or exact agent UserProfile title and always stores the linked Person. Omit |
| update_issue | Update fields on an existing Huly issue. Assignee accepts an email, Person display name, or exact agent UserProfile title and always stores the linked Person; u |
| add_issue_label | Add a tag/label to a Huly issue. Creates the tag if it doesn't exist in the project. |
| remove_issue_label | Remove a tag/label from a Huly issue. Detaches the label reference; does not delete the label definition. |
| delete_issue | Permanently delete a Huly issue. This action cannot be undone. |
| move_issue | Move an issue tree within its project, preserving IDs, identifiers and attributes. issue/parent accept full identifiers or stable IDs; project accepts identifie |
| list_issue_templates | List issue templates in a Huly project. Templates define reusable issue configurations. Returns templates sorted by modification date (newest first). |
| get_issue_template | Retrieve full details for a Huly issue template including children (sub-task templates). Use this to view template content, default values, and child template I |
| create_issue_template | Create a new issue template in a Huly project. Templates define default values for new issues. Template and child descriptions support markdown. Markdown links |
| create_issue_from_template | Create a new issue from a template. Applies template defaults, allowing overrides for specific fields. Description override supports markdown. Markdown links to |
| update_issue_template | Update fields on an existing Huly issue template. Only provided fields are modified. Description supports markdown. Markdown links to current-workspace Huly bro |
| delete_issue_template | Permanently delete a Huly issue template. This action cannot be undone. |
| add_template_child | Add a child (sub-task) template to an issue template. The child defines default values for sub-issues created when using create_issue_from_template. Child descr |
| remove_template_child | Remove a child (sub-task) template from an issue template by its child ID. Get child IDs from get_issue_template response. |
| 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 targe |
| 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, 'relate |
| list_issue_relations | List all relations of an issue. Returns blockedBy (issues blocking this one), blocks (issues this one blocks), relations (bidirectional issue links), and docume |
| link_document_to_issue | Link a Huly document to an issue. The link appears in the issue's Relations panel in the UI. Idempotent: no-op if the document is already linked. Use list_issue |
| unlink_document_from_issue | Remove a document link from an issue. Idempotent: no-op if the document is not linked. |
| list_related_issue_targets | List rules that choose the default destination project for related issues. A spaceRule says related issues from one space default to targetProject. A classRule |
| set_related_issue_target | Set the default destination project for related issues from a space or object class. For space, creates or updates a spaceRule. For objectClass, only updates an |
| delete_related_issue_space_target | Delete the spaceRule that chooses the default destination project for related issues from one space. This only deletes spaceRule targets; classRule deletion is |
| list_comments | List comments on a Huly issue. Returns comments sorted by creation date (oldest first). |
| add_comment | Add a comment to a Huly issue. Comment body supports markdown formatting. Markdown links to current-workspace Huly browse URLs with _class, _id, and label becom |
| update_comment | Update an existing comment on a Huly issue. Comment body supports markdown formatting. Markdown links to current-workspace Huly browse URLs with _class, _id, an |
| delete_comment | Delete a comment from a Huly issue. This action cannot be undone. |
| list_milestones | List milestones in a Huly project. Returns milestones sorted by modification date (newest first). |
| get_milestone | Retrieve full details for a Huly milestone. Use this to view milestone content and metadata. |
| create_milestone | Create a new milestone in a Huly project. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become |
| update_milestone | Update fields on an existing Huly milestone. Only provided fields are modified. Description supports markdown. Markdown links to current-workspace Huly browse U |
| set_issue_milestone | Set or clear the milestone on a Huly issue. Pass null for milestone to clear it. |
| delete_milestone | Permanently delete a Huly milestone. This action cannot be undone. |
| list_document_snapshots | List version-history snapshots for one Huly document. A snapshot is a saved point-in-time copy from the document's change history. Resolve the document by teams |
| get_document_snapshot | Get one point-in-time Huly document history snapshot and return markdown content. Resolve the document by teamspace plus document title or ID; resolve the snaps |
| list_teamspaces | List all Huly document teamspaces. Returns teamspaces sorted by name. Supports filtering by archived status. |
| get_teamspace | Get details for a Huly document teamspace including document count. Finds by name or ID, including archived teamspaces. |
| create_teamspace | Create a new Huly document teamspace. Idempotent: returns existing teamspace if one with the same name exists. |
| update_teamspace | Update fields on an existing Huly document teamspace. Only provided fields are modified. Set description to null to clear it. |
| delete_teamspace | Permanently delete a Huly document teamspace. This action cannot be undone. |
| list_documents | List documents in a Huly teamspace. Returns documents sorted by modification date (newest first). Each result includes a 'url' field pointing to the document in |
| get_document | Retrieve full details for a Huly document including markdown content and a 'url' field pointing to the document in the Huly web app. Use this to view document c |
| create_document | Create a new document in a Huly teamspace. Content is markdown and supports native Mermaid diagrams (mermaid blocks render interactively in Huly UI). Use markdo |
| edit_document | Edit an existing Huly document. You may rename with title and/or edit the body. Body editing has two mutually exclusive modes: (1) content replaces the entire m |
| list_inline_comments | List inline comment threads from a Huly document. Extracts comments embedded in document content as ProseMirror marks. Each comment includes the highlighted tex |
| delete_document | Permanently delete a Huly document. This action cannot be undone. |
| list_document_label_definitions | List label definitions available for ordinary Huly documents by optional title substring. Does not expose raw target-class or category mechanics. |
| list_document_labels | List labels attached to one ordinary Huly document. Resolves the teamspace by name or ID and the document by title or ID; no raw class, space, or collection val |
| add_document_label | Idempotently attach a label to an ordinary Huly document resolved by teamspace and title or ID. label accepts a definition ID or exact title; a missing title cr |
| remove_document_label | Detach a label from one ordinary Huly document without deleting the reusable label definition. Returns detached=false when the label exists but is not attached; |
| upload_file | Upload a file to Huly storage. Provide one source: filePath is resolved on the MCP server host, data is client-local base64 content, and fileUrl is fetched by t |
| list_attachments | List attachments on a Huly object (issue, document, etc.). Returns attachments sorted by modification date (newest first). |
| get_attachment | Retrieve full details for a Huly attachment including download URL. |
| add_attachment | Add an attachment to a Huly object. Provide one source: filePath is resolved on the MCP server host, data is client-local base64 content, and fileUrl is fetched |
| update_attachment | Update attachment metadata (description, pinned status). |
| delete_attachment | Permanently delete an attachment. This action cannot be undone. |
| pin_attachment | Pin or unpin an attachment. |
| download_attachment | Get download URL for an attachment along with file metadata (name, type, size). |
| read_attachment_content | Return a supported image attachment (JPEG, PNG, GIF, or WebP; maximum 4 MiB) as one MCP image content block plus metadata-only structured content. Use this to i |
| add_issue_attachment | Add an attachment to a Huly issue resolved by project and identifier. Provide one source: filePath is resolved on the MCP server host, data is client-local base |
| add_document_attachment | Add an attachment to a Huly document resolved by teamspace and title/ID. Provide one source: filePath is resolved on the MCP server host, data is client-local b |
| save_attachment | Save/bookmark an attachment for later reference. Idempotent when already saved. |
| unsave_attachment | Remove an attachment from saved/bookmarks. |
| list_saved_attachments | List saved/bookmarked attachments for the current user. |
| list_drawings | List drawings attached to a raw Huly parent object. |
| get_drawing | Get a drawing by ID. |
| create_drawing | Create a drawing under a raw Huly parent object. |
| update_drawing | Update drawing content. Pass null content to clear it. |
| delete_drawing | Delete a drawing. This action cannot be undone. |
| list_employees | List employees (persons who are team members), sorted by modification date (newest first). Each summary exposes stable Contact Employee fields city, email, role |
| set_employee_position | Idempotently set an employee's official position on contact.mixin.Employee. employee must be an object with exactly one locator field: {id}, {email}, or {name}; |
| invite_employee | Create or promote and invite an employee, or resend an inactive employee invitation. mode=create-or-promote requires the exact Huly display name and email; one |
| list_inactive_employees | List every inactive Employee before applying output pagination. Each result distinguishes the account link, workspace membership and role, Person identity, and |
| deactivate_employee | Preview or execute an employee lifecycle change resolved by exact email or exact display name. action=deactivate only sets Employee.active=false and retains wor |
| 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 |
| get_person | Retrieve full details for a person including contact channels. Use personId or email to identify the person. |
| create_person | Create a new person in Huly. Returns the created person ID. |
| update_person | Update fields on an existing person. Only provided fields are modified. |
| delete_person | Permanently delete a person from Huly. This action cannot be undone. |
| list_contact_channel_providers | List supported contact channel provider labels for person and organization channel tools. |
| list_person_channels | List contact channels for a person. Person accepts person ID, exact email address, or exact Huly display name; ambiguous names fail and should be retried with e |
| add_person_channel | Idempotently add a contact channel to a person. Person accepts person ID, exact email address, or exact Huly display name. Provider labels match list_contact_ch |
| update_person_channel | Update one contact channel on a person. Person accepts person ID, exact email, or exact display name. Identify the channel with exactly one locator: channelId, |
| remove_person_channel | Remove one contact channel from a person. Person accepts person ID, exact email, or exact display name. Identify the channel with exactly one locator: channelId |
| list_organizations | List all organizations in the Huly workspace. Returns organizations sorted by modification date (newest first). |
| create_organization | Create a new organization in Huly. Optionally add members by person ID or email. Fails if any requested member cannot be resolved. Returns the created organizat |
| get_organization | Retrieve full details for an organization by ID or exact name when that name is unique - including city, description, member count, and modification timestamp. |
| update_organization | Update fields on an existing organization identified by ID or exact name when that name is unique. Only provided fields are modified. Description supports markd |
| delete_organization | Permanently delete an organization identified by ID or exact name when that name is unique. Use with care - this cannot be undone. Useful for cleaning up duplic |
| make_organization_customer | Apply the Customer mixin to an organization so it appears in the Huly Leads > Customers view. Idempotent - safe to call on organizations that are already custom |
| make_person_customer | Apply the native Customer mixin to one existing person so it appears in Huly Leads > Customers. Resolve by person ID, exact email address, or exact display name |
| add_organization_channel | Idempotently add a contact channel to an organization identified by ID or exact unique name. Provider labels: email, phone, linkedin, twitter, github, facebook, |
| list_organization_channels | List contact channels for an organization identified by ID or exact unique organization name. Returns channelId, provider label, value, and optional activity me |
| update_organization_channel | Update one contact channel on an organization identified by ID or exact unique name. Identify the channel with exactly one locator: channelId, or provider plus |
| remove_organization_channel | Remove one contact channel from an organization identified by ID or exact unique name. Identify the channel with exactly one locator: channelId, or provider plu |
| add_organization_member | Link a person as a member of an organization. The person appears under the org's Members tab in Huly. Use person ID or email to identify the person. Idempotent: |
| list_organization_members | List all persons who are members of an organization. Returns each member's person ID, name, and primary email (if any). When using a name instead of an ID, that |
| list_person_organizations | List all organizations that a person is a member of. Provide personId or email. Returns each organization's ID and name. |
| remove_organization_member | Unlink a person from an organization's members. Reverses add_organization_member. Returns removed: false if the person was not a member. When using an organizat |
| merge_people | Preview or execute a native-reference-preserving person merge with an explicitly selected source and survivor; source and survivor must each contain exactly one |
| get_person_administration | Inspect one person's identity and profile administration surface; person must contain exactly one exact locator: {id}, {email}, or {name}; duplicate email/name |
| list_social_identity_providers | List SocialIdentity providers installed in this Huly workspace, returning native provider IDs and types. |
| repair_person_social_identities | Apply only Huly's native safe, idempotent SocialIdentity repairs from the authenticated person's authoritative account record: recreate missing active projectio |
| list_person_comments | List notes/comments genuinely attached to one person, oldest first; person must contain exactly one exact locator: {id}, {email}, or {name}; duplicate email/nam |
| add_person_comment | Add a markdown note/comment to one person; person must contain exactly one exact locator: {id}, {email}, or {name}; duplicate email/name matches fail as ambiguo |
| update_person_comment | Idempotently update a note/comment belonging to one resolved person; person must contain exactly one exact locator: {id}, {email}, or {name}; duplicate email/na |
| delete_person_comment | Permanently delete a note/comment only when it belongs to one resolved person; person must contain exactly one exact locator: {id}, {email}, or {name}; duplicat |
| list_person_attachments | List attachments genuinely attached to one person; person must contain exactly one exact locator: {id}, {email}, or {name}; duplicate email/name matches fail as |
| add_person_attachment | Upload and attach a file to one person from exactly one of filePath, fileUrl, or base64 data; person must contain exactly one exact locator: {id}, {email}, or { |
| get_person_attachment | Get an attachment only when it belongs to one resolved person; person must contain exactly one exact locator: {id}, {email}, or {name}; duplicate email/name mat |
| update_person_attachment | Update description or pinned state only when the attachment belongs to one resolved person; person must contain exactly one exact locator: {id}, {email}, or {na |
| delete_person_attachment | Permanently delete an attachment only when it belongs to one resolved person; person must contain exactly one exact locator: {id}, {email}, or {name}; duplicate |
| list_chat_message_attachments | List files attached directly to a Huly chat message target. target.kind supports channel_message, dm_message, and thread_reply; the tool resolves channel names |
| get_chat_message_attachment | Get one file attached directly to a Huly channel message, direct-message message, or thread reply. The attachmentId must belong to the resolved target. |
| add_chat_message_attachment | Attach a file directly to a Huly channel message, direct-message message, or thread reply. Provide filename, contentType, and exactly one source: filePath is re |
| update_chat_message_attachment | Update description and/or pinned state for a file attached directly to a Huly channel message, direct-message message, or thread reply. The attachmentId must be |
| delete_chat_message_attachment | Delete one file attached directly to a Huly channel message, direct-message message, or thread reply. The attachmentId must belong to the resolved target. |
| list_channel_members | List members of a Huly channel by channel name or ID. Returns each member account UUID and the workspace display name when available. |
| add_channel_members | Idempotently add members to a non-archived Huly channel. Members accept account UUID, exact email, or exact person display name and resolve to Huly account UUID |
| remove_channel_members | Idempotently remove members from a non-archived Huly channel. Members accept account UUID, exact email, or exact person display name. Refuses removals that woul |
| join_channel | Join a non-archived Huly channel as the authenticated account. Idempotent when the account is already a member. |
| leave_channel | Leave a non-archived Huly channel as the authenticated account. Idempotent when already absent. Refuses to leave if that would leave the channel empty or withou |
| archive_channel | Archive a Huly channel by channel name or ID. This is reversible with unarchive_channel and is idempotent when the channel is already archived. |
| unarchive_channel | Unarchive a Huly channel by channel name or ID. Idempotent when the channel is already active. |
| 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 authentica |
| 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 dis |
| 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 |
| 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 o |
| 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, plu |
| 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 acti |
| 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 res |
| list_channels | List all Huly channels. Returns channels sorted by name. Supports filtering by archived status. Supports searching by name substring (nameSearch) and topic subs |
| get_channel | Retrieve full details for a Huly channel including topic and member list. |
| create_channel | Create a new channel in Huly. Returns the created channel ID and name. |
| update_channel | Update fields on an existing Huly channel. Only provided fields are modified. |
| delete_channel | Permanently delete a Huly channel. This action cannot be undone. For reversible channel lifecycle changes, use archive_channel and unarchive_channel instead. |
| list_channel_messages | List messages in a Huly channel. Returns messages sorted by date (newest first). |
| list_external_channel_messages | Read persisted Telegram contact-channel messages or assess why an external provider cannot be read safely. For provider=telegram, resolve channel by exact store |
| 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 be |
| 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, _i |
| delete_channel_message | Permanently delete a channel message. This action cannot be undone. |
| list_direct_messages | List direct message conversations in Huly. Returns conversations sorted by date (newest first). |
| create_direct_message | Open a one-to-one direct-message conversation with a workspace member. The person argument accepts an email or exact display name (e.g. Smith,Bill). Idempotent: |
| list_dm_messages | List messages in a direct-message conversation, newest first. The dm argument accepts either the DM _id or a participant display name (e.g. Kerr,Shannon); a nam |
| send_dm_message | Send a message to a direct-message conversation. The dm argument accepts either the DM _id or a participant display name; a name resolves only to a one-to-one D |
| update_dm_message | Update a direct-message message. The dm argument accepts either the DM _id or a participant display name; a name resolves only to a one-to-one DM with the authe |
| delete_dm_message | Permanently delete a direct-message message. The dm argument accepts either the DM _id or a participant display name; a name resolves only to a one-to-one DM wi |
| list_thread_replies | List replies in a message thread. Returns replies sorted by date (oldest first). |
| add_thread_reply | Add a reply to a message thread. Reply body supports markdown formatting. Markdown links to current-workspace Huly browse URLs with _class, _id, and label becom |
| update_thread_reply | Update a thread reply. Only the body can be modified; body supports markdown formatting. Markdown links to current-workspace Huly browse URLs with _class, _id, |
| delete_thread_reply | Permanently delete a thread reply. This action cannot be undone. |
| list_events | List calendar events sorted by date, with meetingRoom identity when an Event has the native Meeting composition. Supports filtering by date range. |
| list_calendars | List writable, non-hidden calendars that can be used as create_event or create_recurring_event targets. Use this before creating events when you need to choose |
| list_calendar_settings | List the authenticated caller's Calendar settings, including caller-owned hidden and read-only calendars. Returns each calendar's stable ID, name, kind, hidden |
| set_primary_calendar | Set the authenticated caller's primary personal calendar by calendarId or an unambiguous exact calendarName. The target must be caller-owned, visible, and Write |
| update_calendar_settings | Update local visibility and/or hidden settings on one authenticated caller-owned calendar. Visibility accepts public, freeBusy, or private. Hidden changes are a |
| get_event | Retrieve full details for a calendar event, including description and meetingRoom identity when it has the native Meeting composition. |
| create_event | Create a new calendar event. Description supports markdown formatting. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become n |
| update_event | Update fields on an existing calendar event. Only provided fields are modified. Description updates support markdown. Markdown links to current-workspace Huly b |
| delete_event | Permanently delete a calendar event. This action cannot be undone. |
| list_schedules | List calendar scheduling links/availability schedules. Optional owner accepts an employee/person ID, exact name, or email. |
| get_schedule | Retrieve one calendar schedule including owner, availability, calendar target, time zone, and room information when it is a meeting schedule. |
| create_schedule | Create a calendar schedule. Owner accepts an employee/person ID, exact name, or email; calendar can be targeted by calendarId or calendarName. Optional meetingR |
| update_schedule | Update a calendar schedule. Supports owner, title, description, duration, interval, availability, timeZone, and calendar move by calendarId or calendarName. mee |
| delete_schedule | Delete a calendar schedule by scheduleId. |
| list_recurring_events | List recurring event definitions. Returns recurring events sorted by modification date (newest first). |
| create_recurring_event | Create a new recurring calendar event with RFC5545 RRULE rules. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, |
| 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 |
| log_time | Log time spent on a Huly issue. Records a time entry with optional description. Values are hours (Huly native unit): 0.25 = 15 minutes; 8 = one work day. |
| get_time_report | Get time tracking report for a specific Huly issue. Shows total time, estimation, remaining time, and all time entries. Values are hours (Huly native unit): 0.2 |
| list_time_spend_reports | List all time entries across issues. Supports filtering by project and date range. Returns entries sorted by date (newest first). Values are hours (Huly native |
| get_detailed_time_report | Get detailed time breakdown for a project. Shows total time grouped by issue and by employee. Supports date range filtering. Values are hours (Huly native unit) |
| list_work_slots | List scheduled work slots created by schedule_todo, Huly UI, or other clients. Shows planned time blocks attached to ToDos. Supports filtering by employee and d |
| 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. |
| 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. |
| fulltext_search | Perform a global fulltext search across all Huly content. Searches issues, documents, messages, and other indexed content. Returns matching items sorted by rele |
| list_associations | List Huly association definitions: class-level typed links that define which document classes may be related. Use this before create_relation to discover associ |
| create_association | Idempotently create one Huly association definition between two non-system classes. Use sourceClass/targetClass with sourceRole/targetRole and cardinality; retu |
| delete_association | Idempotently delete one Huly association definition only when no concrete relations reference it. If relations exist, delete_relation must clean them up first; |
| list_relations | List concrete Huly relation instances under an association, optionally filtered by source and target documents. Endpoint locators support raw, issue, document, |
| create_relation | Idempotently create one concrete relation between two resolved documents for a writable association. Endpoint locators support raw, issue, document, card, and e |
| delete_relation | Idempotently delete one concrete relation by relation ID or by exact association/source/target triple. Triple endpoint locators support raw, issue, document, ca |
| list_activity | List activity messages for a Huly issue, document, channel, or raw Huly object. Prefer friendly targets: project+issueIdentifier for issues, teamspace+document |
| get_activity_message | Get a single activity message by ID, including subclass metadata when available. |
| pin_activity_message | Pin or unpin an activity message. Idempotent when the pin state already matches. |
| list_activity_filters | List configured activity filters in display order. |
| list_activity_references | List activity references connected to a raw Huly object. Use direction to list references from the object, to the object, or both. |
| list_activity_replies | List thread replies on any activity message, not only channel messages. |
| add_activity_reply | Add a Markdown reply to any activity message. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; ex |
| update_activity_reply | Update a generic activity reply body. Body supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Hul |
| delete_activity_reply | Delete a generic activity reply. |
| add_reaction | Add an emoji reaction to an activity message. |
| remove_reaction | Remove an emoji reaction from an activity message. |
| list_reactions | List reactions on an activity message. |
| save_message | Save/bookmark an activity message for later reference. |
| unsave_message | Remove an activity message from saved/bookmarks. |
| list_saved_messages | List saved/bookmarked activity messages. |
| list_mentions | List @mentions of the current user in activity messages. |
| list_notification_providers | List model-declared notification providers such as inbox, push, and sound. Use returned provider IDs for setting updates. Older REST servers may return compatib |
| list_notification_types | List model-declared notification types. Use returned type IDs for provider-specific setting updates. Older REST servers may return compatibility metadata with a |
| list_notifications | List inbox notifications. Returns notifications sorted by modification date (newest first). Supports filtering by read/archived status. |
| get_notification | Retrieve full details for a notification. Use this to view notification content and metadata. |
| mark_notification_read | Mark a notification as read. Idempotent: returns success when the notification is already read. |
| mark_notification_unread | Mark a notification as unread. Idempotent: returns success when the notification is already unread. |
| mark_all_notifications_read | Mark all unread notifications as read. Returns the count of notifications marked. |
| archive_notification | Archive a notification. Archived notifications are hidden from the main inbox view. Idempotent when already archived. |
| unarchive_notification | Unarchive a notification so it can appear in active notification lists again. Idempotent when already active. |
| archive_all_notifications | Archive all notifications. Returns the count of notifications archived. |
| delete_notification | Permanently delete a notification. This action cannot be undone. |
| get_notification_context | Get notification context for an entity. Returns tracking information for a specific object. |
| list_notification_contexts | List notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status and can include hidden contexts |
| pin_notification_context | Pin or unpin a notification context. Pinned contexts are highlighted in the inbox. Idempotent when the pin state already matches. |
| hide_notification_context | Hide or unhide a notification context. Hidden contexts are omitted from list_notification_contexts unless includeHidden is true. Idempotent when the hidden stat |
| archive_notification_context | Archive all inbox notifications in a notification context. Idempotent: returns count 0 when no active notifications remain. |
| unarchive_notification_context | Unarchive all archived inbox notifications in a notification context. Idempotent: returns count 0 when no archived notifications remain. |
| subscribe_to_object_notifications | Subscribe the authenticated account to notifications for a raw Huly object by adding a core collaborator row. Idempotent when already subscribed. |
| unsubscribe_from_object_notifications | Unsubscribe the authenticated account from notifications for a raw Huly object by removing its collaborator row. Idempotent when already absent. |
| list_notification_settings | List notification provider settings. Returns current notification preferences. |
| update_notification_provider_setting | Enable or disable a notification provider setting. Validates providerId against authoritative model definitions when available; compatible REST fallback is pres |
| update_notification_type_setting | Enable or disable one notification type for one provider. Validates both IDs against authoritative model definitions when available, and creates a type setting |
| get_unread_notification_count | Get the count of unread notifications. |
| list_workspace_members | List members in the current Huly workspace with their roles. Returns members with account IDs and roles. |
| update_member_role | Update a workspace member's role. Requires appropriate permissions. Valid roles: READONLYGUEST, DocGuest, GUEST, USER, MAINTAINER, OWNER, ADMIN. |
| get_workspace_info | Get information about the current workspace including name, URL, region, and settings. |
| list_workspaces | List all workspaces accessible to the current user. Returns workspace summaries sorted by last visit. |
| create_workspace | Create a new Huly workspace. Returns the workspace UUID and URL. Optionally specify a region. |
| delete_workspace | Permanently delete the current workspace. This action cannot be undone. Use with extreme caution. |
| get_user_profile | Get the current user's profile information including bio, location, and social links. |
| update_user_profile | Update the current user's profile. Supports bio, city, country, website, social links, and public visibility. |
| update_guest_settings | Update workspace guest settings. Control read-only guest access and guest sign-up permissions. |
| create_access_link | Create a Huly workspace access link. When role is omitted, role=GUEST. Supports anonymous reusable guest links by setting personalized=false with notBefore and |
| get_regions | Get available regions for workspace creation. Returns region codes and display names. |
| list_approval_requests | List generic Huly approval Request documents from the published @hcengineering/request SDK package. This is read-only discovery: filter by status, raw attachedT |
| get_approval_request | Read one generic Huly approval Request document by raw request _id. Returns person refs with best-effort contact metadata plus the opaque SDK tx/rejectedTx payl |
| add_approval_request | Create a generic Huly approval Request attached to any target document. Provide raw attachedTo and attachedToClass from the target, requested people as Person i |
| add_approval_request_comment | Add a plain markdown comment to an approval Request by request _id. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become nati |
| approve_approval_request | Approve an active approval Request as the current Huly user. The current user's Employee/Person ref must be in the request's requested list. Optionally attach a |
| reject_approval_request | Reject an active approval Request as the current Huly user and attach the required markdown rejection decision comment. Markdown links to current-workspace Huly |
| cancel_approval_request | Cancel an active approval Request created by the current Huly user. This is the safe removal-from-workflow operation; hard delete is intentionally not exposed. |
| list_boards | List Huly boards from @hcengineering/board, sorted by name. Boards are task.Project-backed spaces; this is not the separate Huly Card module. |
| get_board | Get one Huly board by board _id or exact board name. Returns board metadata, project type, and card count. |
| create_board | Create a Huly board. Idempotent by exact active board name; pass projectType by _id or exact name only when the default board project type is ambiguous. |
| update_board | Update a Huly board's name, description, or privacy. board accepts board _id or exact board name. |
| archive_board | Archive a Huly board by board _id or exact board name. This hides the board but does not delete cards. |
| unarchive_board | Unarchive a Huly board by board _id or exact board name. |
| list_board_cards | List cards on one @hcengineering/board board. board accepts board _id or exact board name; cards are sorted newest modified first. |
| get_board_card | Get one board card. board accepts board _id or exact board name; card accepts card _id, CARD-123, bare number 123, or exact title scoped to the board. |
| create_board_card | Create a board card with safe defaults. Resolves kind/status from the board project type, increments the CARD-number sequence, and stores markdown description a |
| update_board_card | Update board card fields: title, markdown description, status, assignee, members, location, cover, startDate, and dueDate. Markdown links to current-workspace H |
| archive_board_card | Archive a board card. card accepts _id, CARD-123, bare number, or exact title scoped to the board. |
| unarchive_board_card | Unarchive a board card. card accepts _id, CARD-123, bare number, or exact title scoped to the board. |
| delete_board_card | Permanently delete an already archived board card using Huly removeCollection. Active cards are rejected; call archive_board_card first. |
| list_board_labels | List board label definitions. Board labels are @hcengineering/tags TagElement rows for board cards, with targetClass = @hcengineering/board Card. |
| create_board_label | Create a board label definition for board cards. Idempotent by exact title when one label matches; uses board.category.Other when no default category exists. |
| update_board_label | Update a board label definition by TagElement _id or exact title. At least one of title, color, description, or category is required. |
| delete_board_label | Delete one board label definition by TagElement _id or exact title. This removes the label definition, not a board card. |
| list_board_card_labels | List board labels attached to one board card. Resolves board by _id/name and card by _id, CARD-123, bare number, or exact title. |
| add_board_card_label | Attach a board label to a board card. If label is a new title, creates the board-card label definition first; repeated calls are idempotent. |
| remove_board_card_label | Detach a board label from one board card. Returns detached=false when the label exists but is not attached to that card. |
| list_board_menu_pages | Read-only list of board menu page model docs. Optional page filters by MenuPage _id, raw pageId, main/archive alias, or exact label. |
| list_board_saved_views | Read-only list of board saved filtered views. Queries view.class.FilteredView where attachedTo = board.app.Board and reports own/shared visibility. |
| get_board_saved_view | Read one board saved filtered view by FilteredView _id or exact name, scoped to attachedTo = board.app.Board. No saved-view writes are performed. |
| list_board_viewlets | Read-only list of board card viewlets. Queries view.class.Viewlet with attachTo = board.class.Card and includes descriptor metadata plus matching ViewletPrefere |
| get_board_common_preference | Read the CommonBoardPreference row attached to board.app.Board. Returns present=false when the preference row is absent and never creates it. |
| list_card_comments | List comments genuinely attached to one Huly card, oldest first. Resolves cardSpace by exact name or ID and card by exact title or ID. Includes comments created |
| add_card_comment | Add a markdown comment to one Huly card, resolving the card space by exact name or ID and the card by exact title or ID. Markdown links to current-workspace Hul |
| update_card_comment | Update one comment that belongs to the resolved Huly card. Resolves the card space by exact name or ID and the card by exact title or ID. Markdown links to curr |
| delete_card_comment | Permanently delete one comment that belongs to the resolved Huly card. Resolves the card space by exact name or ID and the card by exact title or ID. This actio |
| list_card_spaces | List all Huly card spaces. Returns card spaces sorted by name. Card spaces are containers for cards. |
| list_master_tags | List master tags (card types) available in a Huly card space. Master tags define the type/schema of cards that can be created in a space. |
| list_cards | List cards in a Huly card space. Returns cards sorted by modification date (newest first). Supports filtering by type (master tag), title substring, and content |
| get_card | Retrieve full details for a Huly card including markdown content. When Huly supplies a coherent version number and chain identity, returns them together in one |
| list_card_versions | Read one page of a Huly card's version history using any version card ID or exact title. Returns deterministic oldest-version-first entries, an authoritative to |
| create_card | Create a new card in a Huly card space. Requires a master tag (card type). Content supports markdown formatting. Markdown links to current-workspace Huly browse |
| update_card | Update fields on an existing Huly card. Only provided fields are modified. Content updates support markdown. Markdown links to current-workspace Huly browse URL |
| delete_card | Permanently delete a Huly card. This action cannot be undone. |
| list_object_collaborators | List notification collaborators on a Huly issue, document, or raw object. Prefer friendly targets: project+issueIdentifier for issues or teamspace+document for |
| add_object_collaborator | Subscribe a workspace member to object notifications by adding a core collaborator row. Member can be an account UUID, exact employee/person name, or email. Ide |
| remove_object_collaborator | Unsubscribe a workspace member from object notifications by removing its collaborator row. Member can be an account UUID, exact employee/person name, or email. |
| list_custom_fields | List custom field definitions in the workspace. Returns fields with their labels, types, and owner class info. Custom fields are created in the Huly UI on Card |
| get_custom_field_values | Read custom field values from a document. Pass the document's ID and class (from list_cards, list_issues, etc.). Returns all custom field values found on the do |
| set_custom_field | Set a custom field value on a document. Requires the document ID, class, field ID (from list_custom_fields), and value. Values are parsed before Huly writes: nu |
| list_drives | List Huly Drive spaces. When includeArchived is omitted, includeArchived=undefined. Use this before path operations when you do not know the exact drive id or e |
| get_drive | Get one Huly Drive by exact drive id or exact drive name. If an exact name is ambiguous, the error includes candidate ids so the next call can use the id. |
| create_drive | Idempotently create a Huly Drive space. If an active Drive with the same exact name already exists, returns it with created=false. Initial members and owners ac |
| update_drive | Update safe metadata on an existing Drive: name, description, private, archived, or autoJoin. Provide at least one update field. This changes the Drive space, n |
| delete_drive | Permanently delete an empty Huly Drive space. The Drive must contain no files or folders; non-empty Drives fail with child count and item summaries. This is per |
| add_drive_members | Idempotently add members to an existing Drive. Members accept account UUIDs, exact emails, or exact person names and resolve to Huly account UUIDs before replac |
| remove_drive_members | Idempotently remove members from an existing Drive. Members accept account UUIDs, exact emails, or exact person names and resolve to Huly account UUIDs before r |
| set_drive_owners | Replace owners on an existing Drive. Owners accept account UUIDs, exact emails, or exact person names. By default, each owner is also ensured as a Drive member. |
| list_drive_items | List children under a folder path in a Drive. Paths are POSIX-like and normalized to absolute; '/' lists the root. Duplicate same-parent titles fail with candid |
| get_drive_item | Get one Drive folder or file by either exact itemId or path. Provide only one locator. File results include current version, size, MIME type, and download URL w |
| list_drive_file_comments | List comments on a Drive file resolved by filePath or fileId. Provide only one locator. Returns comments sorted by creation date, oldest first. |
| add_drive_file_comment | Add a Markdown comment to a Drive file resolved by filePath or fileId. Provide only one locator. The comment is attached directly to the file. Markdown links to |
| update_drive_file_comment | Update a comment on a Drive file resolved by filePath or fileId. Provide only one locator. Idempotent when the comment body is unchanged. Markdown links to curr |
| delete_drive_file_comment | Permanently delete a comment from a Drive file resolved by filePath or fileId. Provide only one locator. This deletes the comment, not the file. |
| list_drive_file_activity | List activity messages for a Drive file resolved by filePath or fileId. Provide only one locator. Returns activity sorted by date, newest first. |
| create_drive_folder | Idempotently create a Drive folder path, creating missing parents like mkdir -p. Returns created=false when the full folder path already exists. |
| upload_drive_file | Upload a file into Drive at a full path including filename. Provide exactly one source: filePath is resolved on the MCP server host, data is client-local base64 |
| upload_drive_file_version | Upload a new version for an existing Drive file resolved by file id or file path. Provide exactly one source: filePath is resolved on the MCP server host, data |
| move_drive_item | Move a Drive item, meaning a file or folder, to another existing folder path in the same Drive without renaming it. Idempotent when the item is already in that |
| rename_drive_item | Rename a Drive item, meaning a file or folder, in its current folder. Idempotent when the title is unchanged. Rejects sibling title collisions; use move_drive_i |
| delete_drive_item | Permanently delete a Drive item, meaning a file or folder. Files are deleted with their version records. Folders must be empty; non-empty folders fail with chil |
| list_drive_file_versions | List versions for a Drive file resolved by file id or file path. Marks the current version and includes blob id, size, MIME type, lastModified, and download URL |
| restore_drive_file_version | Restore an existing Drive file version by version id or numeric version. Idempotent when the requested version is already current and does not increment the fil |
| list_departments | List HR departments with exact full paths, hierarchy, managers, subscribers, team lead, direct Staff assignments, server-derived member count, and stable counte |
| get_department | Get one HR department by exact full slash-separated path or department ID. |
| create_department | Create a top-level or nested HR department. Parent and people use exact paths/IDs/names/emails and reject ambiguity. Names cannot contain '/'. Department.member |
| update_department | Rename, move, or replace department metadata and people. Rejects duplicate sibling names, parent cycles, and moves of subtrees with server-derived members; clea |
| delete_department | Preview destructive impact by default. Execution requires execute=true plus exact previewed descendant and assigned-Staff counts; Huly then cascades descendant |
| list_staff | List HR Staff and authoritative department assignments. Optionally scope by exact department path/ID, include descendants, and filter Employee active state. |
| assign_staff_department | Assign an exact employee ID/email/display name by writing only authoritative Staff.department. Use department=null to clear. Department.members hierarchy propag |
| list_hr_request_comments | List comments directly attached to an exact HR request ID, with total and truncation metadata. |
| add_hr_request_comment | Add a Markdown comment directly to an exact HR request ID. |
| update_hr_request_comment | Update a comment that belongs directly to an exact HR request. |
| delete_hr_request_comment | Delete a comment that belongs directly to an exact HR request. |
| list_hr_request_attachments | List files directly attached to an exact HR request ID, with total and truncation metadata. |
| get_hr_request_attachment | Get one file belonging directly to an exact HR request. |
| add_hr_request_attachment | Attach a file to an exact HR request. Provide filename, contentType, and exactly one of filePath, fileUrl, or base64 data. |
| update_hr_request_attachment | Update description and/or pinned state for a file belonging directly to an exact HR request. |
| delete_hr_request_attachment | Delete one file belonging directly to an exact HR request. |
| list_hr_request_types | Discover installed HR request types by stable ID and Huly-translated human label. Set locale to a supported Huly locale such as fr; labels from any supported lo |
| list_hr_requests | List HR requests with exact optional employee, department, and request-type filters. Calendar dates are inclusive YYYY-MM-DD values stored with UTC offset 0. Ev |
| get_hr_request | Get one HR request by the exact raw request ID returned by list_hr_requests. |
| create_hr_request | Create an employee-attached HR request using exact employee, department, and request-type resolution. Dates are inclusive calendar dates in YYYY-MM-DD form and |
| update_hr_request | Update selected HR request fields by exact request ID. Department and type locators resolve exactly; omitted fields are preserved. Dates remain inclusive YYYY-M |
| delete_hr_request | Delete one exact HR request. Its comments and attachments are Huly-owned attached collections and follow the request deletion lifecycle. |
| list_public_holidays | List public-holiday documents with exact optional department and inclusive date filters. includeInherited adds every ancestor department explicitly; it never ad |
| get_public_holiday | Get one public-holiday document by the exact raw ID returned by list_public_holidays. |
| create_public_holiday | Create one public holiday for an exact department ID or full path. The date is a timezone-independent Gregorian calendar day stored as Huly TzDate with UTC offs |
| update_public_holiday | Update selected fields of one exact public-holiday ID. Department paths resolve exactly and duplicate department/date pairs are rejected. Omitted fields are pre |
| delete_public_holiday | Permanently delete one public-holiday document by exact raw ID. |
| get_hr_schedule | Return every HR request overlapping an inclusive UTC calendar-date range, every applicable holiday document, and one day cell per date. Department scope include |
| get_hr_table | Return a complete employee table for an inclusive UTC calendar-date range. Base workdays are Monday-Friday minus applicable inherited holiday dates; negative re |
| get_hr_summary_report | Return complete request totals grouped by exact department and request type for an inclusive UTC date range. Requests are clipped to the range; calendar days in |
| list_inventory_product_attachments | List files attached directly to an inventory product resolved by product ID or exact name. Pass category to disambiguate duplicate product names. |
| get_inventory_product_attachment | Get one file attached directly to an inventory product. The attachmentId must belong to the resolved product. |
| add_inventory_product_attachment | Add a file to an inventory product resolved by product ID or exact name. Provide exactly one source: filePath is resolved on the MCP server host, data is client |
| update_inventory_product_attachment | Update description and/or pinned state for a file attached directly to an inventory product. The attachmentId must belong to the resolved product. |
| delete_inventory_product_attachment | Permanently delete a file attached directly to an inventory product. The attachmentId must belong to the resolved product. |
| list_inventory_product_photos | List photos attached directly to an inventory product resolved by product ID or exact name. Pass category to disambiguate duplicate product names. |
| get_inventory_product_photo | Get one photo attached directly to an inventory product. The photoId must belong to the resolved product. |
| add_inventory_product_photo | Add a photo to an inventory product using Huly's product photos collection. Provide exactly one source: filePath is resolved on the MCP server host, data is cli |
| update_inventory_product_photo | Update description and/or pinned state for a photo attached directly to an inventory product. The photoId must belong to the resolved product. |
| delete_inventory_product_photo | Permanently delete a photo attached directly to an inventory product. The photoId must belong to the resolved product. |
| list_inventory_product_comments | List comments attached directly to an inventory product resolved by product ID or exact name. Returns comments oldest first. |
| add_inventory_product_comment | Add a Markdown comment directly to an inventory product resolved by product ID or exact name. Pass category to disambiguate duplicate names. Markdown links to c |
| update_inventory_product_comment | Update a comment attached directly to an inventory product. The commentId must belong to the resolved product. Markdown links to current-workspace Huly browse U |
| delete_inventory_product_comment | Permanently delete a comment attached directly to an inventory product. The commentId must belong to the resolved product. |
| list_inventory_product_activity | List activity messages for an inventory product resolved by product ID or exact name. This is read-only audit/activity history, newest first. |
| list_inventory_categories | List inventory categories sorted by name. Omit parentCategory to search all categories, or pass a parent category ID/exact name/root to list direct children. qu |
| get_inventory_category | Get one inventory category by ID or exact name. If the name is duplicated under different parents, pass parentCategory or use the category ID. |
| create_inventory_category | Create an inventory category. Defaults parentCategory to the Inventory root. Rejects duplicate category names under the same parent. |
| update_inventory_category | Rename and/or move an inventory category. category accepts ID or exact name; pass parentCategory when a name may be duplicated. Rejects duplicate names in the d |
| delete_inventory_category | Delete an empty inventory category by ID or exact name. Refuses categories that still contain child categories or products; this action does not cascade. |
| list_inventory_products | List inventory products sorted by name. Optionally scope to category by ID/exact name and filter product names with query. |
| get_inventory_product | Get one inventory product by ID or exact product name. If product names are duplicated, pass category or use the product ID. |
| create_inventory_product | Create an inventory product in a category resolved by ID or exact name. Rejects duplicate product names in the same category. |
| update_inventory_product | Rename and/or move an inventory product. product accepts ID or exact name; pass category when a name may be duplicated. Rejects duplicate names in the destinati |
| delete_inventory_product | Delete an inventory product by ID or exact name. Refuses products with variants, photos, attachments, or comments; this action does not cascade. |
| list_inventory_variants | List inventory variants/SKUs sorted by name. Optionally scope to product by ID/exact name; category can disambiguate product names. query filters variant names |
| get_inventory_variant | Get one inventory variant by ID, exact variant name, or exact SKU. If the name/SKU is duplicated, pass product or use the variant ID. |
| create_inventory_variant | Create an inventory variant/SKU under a product resolved by ID or exact name. Rejects duplicate variant names or SKUs in the same product. |
| update_inventory_variant | Rename and/or change the SKU of an inventory variant. variant accepts ID, exact name, or exact SKU; pass product when needed. Rejects duplicate names or SKUs in |
| delete_inventory_variant | Delete one inventory variant/SKU by ID, exact variant name, or exact SKU. This action does not delete its product. |
| 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 |
| 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 alread |
| update_label | Update a label/tag definition. Accepts label ID or title. Only provided fields are modified. |
| delete_label | Permanently delete a label/tag definition. Accepts label ID or title. This action cannot be undone. |
| list_lead_comments | List native comments on one lead resolved by exact funnel ID/name and LEAD- . Returns Markdown with native Huly references preserved. |
| add_lead_comment | Add a Markdown comment to one exact lead. Current-workspace Huly links are stored as native references. |
| update_lead_comment | Update one comment belonging to an exact lead; comments attached elsewhere are rejected. Markdown native references are preserved. |
| delete_lead_comment | Delete one comment only when it belongs to the exact lead target. |
| list_lead_attachments | List native attachment references belonging to one exact lead. |
| add_lead_attachment | Upload a local path, URL, or base64 payload and attach the native file reference to one exact lead. |
| get_lead_attachment | Get metadata and a download URL for an attachment only when it belongs to one exact lead. |
| update_lead_attachment | Update description or pinned state for an attachment only when it belongs to one exact lead. |
| delete_lead_attachment | Delete an attachment only when it belongs to one exact lead. The native blob reference remains governed by Huly storage cleanup. |
| list_lead_label_definitions | List reusable native label definitions whose target class is Lead, without raw class IDs. Returns the full matching total and whether the limited page is trunca |
| list_lead_labels | List native TagReference label relations attached to one exact lead. |
| add_lead_label | Idempotently attach a label relation to one exact lead. Accepts a definition ID or exact title; a missing title creates the Lead label definition. |
| update_lead_label | Update the published optional weight on every matching TagReference relation for one exact lead and label. |
| remove_lead_label | Idempotently remove all matching TagReference relations from one exact lead without deleting the reusable label definition. |
| list_funnels | List all Huly sales funnels (lead pipelines). Returns each funnel's stable ID and display name, sorted by name. Supports filtering by archived status. |
| get_funnel | Get one funnel by stable _id or exact name. Ambiguous names are rejected. Returns the full stable Funnel/Project projection, validated Lead workflow, content co |
| create_funnel | Create a native Huly funnel after validating its Funnel project type, Lead task types, workflow statuses, membership, and owners. Full description accepts Markd |
| update_funnel | Update a funnel resolved by stable _id or exact unambiguous name. Validates the existing Funnel project type/workflow and membership before mutation. Null clear |
| archive_funnel | Archive a funnel without deleting it. Returns lead/comment/attachment impact so the caller can assess the hidden native content. Already archived funnels are an |
| delete_funnel | Permanently delete an exact funnel only after it is archived and empty. First call get_funnel or archive_funnel, then pass the observed impact counts as expecte |
| list_leads | Query Huly leads in a funnel with optional filters. Pass the funnel ID returned by list_funnels, or a funnel name for convenience lookup. Returns leads sorted b |
| get_lead | Retrieve one exact funnel-scoped Huly lead with Markdown descriptions, customer identity/type, workflow task type and status, rank/completion, native collection |
| create_lead | Create one native Huly lead in an active funnel for an existing person or organization. Resolve the funnel by ID or exact name; identify the customer explicitly |
| update_lead | Update a native Huly lead by funnel ID or exact name and LEAD- identifier. Supported fields are title, Markdown description, a workflow status matched exactly a |
| move_lead | Move a native Huly lead to another active funnel after validating both native Funnel project types and Lead workflows. Pass a destination status matched exactly |
| delete_lead | Preview native lead deletion impact by default. The preview reads authoritative comment, attachment, and label relation counts. To permanently delete, pass exec |
| list_mail_threads | Discover read-only Huly Mail thread metadata in one call: outer channel titles, human-resolved spaces, timestamps, and up to 10 newest child subject summaries p |
| list_message_template_categories | List global Huly message template categories. Categories group reusable message templates across the workspace. Returns category IDs, names, descriptions, archi |
| list_message_templates | List global Huly message templates. Optionally filter by category ID or exact category name, and search template titles by substring. Returns each template ID, |
| get_message_template | Retrieve one global Huly message template by template ID or exact title. If a title is ambiguous, pass category as category ID or exact category name. Returns t |
| 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 f |
| 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 |
| 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 |
| 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 en |
| 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. co |
| 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 referenc |
| 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 attribu |
| 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 prese |
| list_todo_label_definitions | List label definitions available for Huly Planner ToDos by optional title substring. Does not expose raw target-class or category mechanics. |
| list_todo_labels | List labels attached to one Planner ToDo. Resolves the ToDo by raw ID or the same human-oriented issue, title, owner, and completion locators used by get_todo. |
| add_todo_label | Idempotently attach a label to a Planner ToDo resolved by raw ID or human locator. label accepts a definition ID or exact title; a missing title creates the ToD |
| remove_todo_label | Detach a label from one Planner ToDo without deleting the reusable label definition. Returns detached=false when the label exists but is not attached; duplicate |
| list_todos | List Huly Planner ToDos. Empty input returns up to 50 ToDos in planner order with all completion states. Use owner, issue, document, title, due date, priority, |
| get_todo | Get one Planner ToDo by raw todoId or by a human locator such as issue + title + owner or attachedTo.type=document with teamspace/document + title. Returns stab |
| create_todo | Create a Planner ToDo. Omit attachedTo for a personal ToDo, pass attachedTo.type=issue with project and identifier for an issue action item, or pass attachedTo. |
| update_todo | Update a Planner ToDo by human locator or raw todoId. Human locators can target an issue or document attachment. Supports title, markdown description, owner, du |
| complete_todo | Complete a Planner ToDo by raw todoId or human locator, including a document attachment locator, by setting doneOn. Huly may trim future work slots and run issu |
| reopen_todo | Reopen a completed Planner ToDo by raw todoId or human locator, including a document attachment locator, by clearing doneOn. Human locators search completed ToD |
| delete_todo | Delete a Planner ToDo by raw todoId or human locator, including a document attachment locator. This is destructive; deleting the last open issue ToDo can cause |
| schedule_todo | Schedule a Planner ToDo by raw todoId or human locator, including a document attachment locator. Creates a Planner-visible blocking work slot on the authenticat |
| unschedule_todo | Remove ToDo work slots. Pass either workSlotId to remove one slot, or a raw ToDo ID/human locator (including a document attachment locator) with scope=all or sc |
| list_space_preferences | List low-level Huly SpacePreference records. These generic preference rows are attached to spaces and the published SDK exposes only the attached space link, so |
| get_space_preference | Read the low-level Huly SpacePreference record attached to one space. Accepts a space _id or exact name with optional class/type narrowing. Returns present=fals |
| list_processes | List read-only Huly Process workflow definitions. Optionally filter by the master tag/card type that workflows attach to. Returns process IDs, names, attached c |
| get_process | Get one Huly Process workflow definition by process ID or exact display name. If a name is ambiguous, the tool returns a typed error with candidate IDs instead |
| list_process_executions | List read-only Huly Process workflow executions. Supports filters by process ID/name, card/document ID/title, and status. Rows are enriched with process name, c |
| start_process | Start a new active Huly Process workflow execution on a card/document. Accepts process ID or exact process name, and card/document ID or exact title; ambiguous |
| cancel_execution | Idempotently cancel one Huly Process execution by execution ID. Active executions are marked cancelled; already-cancelled executions succeed with cancelled=fals |
| list_recruiting_applicant_matches | List read-only generated Recruiting applicant matches. ApplicantMatch fields are generated by Huly; this tool only reads them. Filter by candidate, complete sta |
| get_recruiting_applicant_match | Get one read-only generated Recruiting applicant match by raw applicant-match _id. Returns candidate, complete state, generated vacancy text, summary, response |
| list_recruiting_reviews | List Recruiting reviews/interviews as stable refs. Filter by candidate, application, date range, title/verdict/location query, and limit. Review locators use ra |
| get_recruiting_review | Get one Recruiting review by raw _id, RVE- , bare number, or exact title. Optional candidate/application disambiguate. Returns schedule, markdown description, v |
| create_recruiting_review | Create a Recruiting review/interview like the Huly UI: increments RVE sequence, attaches to the candidate reviews collection, stores markdown description as Hul |
| update_recruiting_review | Update a Recruiting review. review accepts raw _id, RVE- , number, or exact title; candidate/applicationContext only disambiguate. Description supports markdown |
| delete_recruiting_review | Delete a Recruiting review with Huly removeCollection. review accepts raw _id, RVE- , number, or exact title; candidate/application can disambiguate. |
| list_recruiting_opinions | List Recruiting opinions for one review. review accepts raw _id, RVE- , bare number, or exact title. Opinion refs include OPE- , parent review ref, and opinion |
| get_recruiting_opinion | Get one Recruiting opinion by raw _id, OPE- , or bare number. Pass review to disambiguate. Returns value, markdown description, comments/attachments counts, par |
| create_recruiting_opinion | Create a Recruiting opinion on one review. Increments the OPE sequence, attaches to the review opinions collection, and stores markdown description as Huly mark |
| update_recruiting_opinion | Update a Recruiting opinion value and/or markdown description. opinion accepts raw _id, OPE- , or number; review can disambiguate. Markdown links to current-wor |
| delete_recruiting_opinion | Delete a Recruiting opinion with Huly removeCollection. opinion accepts raw _id, OPE- , or number; review can disambiguate. |
| list_recruiting_comments | List comments attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion target. The target locator resolves friendly Recruiting identi |
| add_recruiting_comment | Add a Markdown comment directly to a Recruiting vacancy, candidate, applicant, review, or opinion target resolved by the shared target locator. Markdown links t |
| update_recruiting_comment | Update one comment attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion. The commentId must belong to the resolved target. Markdo |
| delete_recruiting_comment | Delete one comment attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion. The commentId must belong to the resolved target. |
| list_recruiting_attachments | List files attached directly to a Recruiting vacancy, candidate, applicant, or opinion target. Review attachments are intentionally unsupported unless the model |
| get_recruiting_attachment | Get one file attached directly to a Recruiting vacancy, candidate, applicant, or opinion. The attachmentId must belong to the resolved target. |
| add_recruiting_attachment | Attach a file to a Recruiting vacancy, candidate, applicant, or opinion target. Provide filename, contentType, and exactly one source: filePath is resolved on t |
| update_recruiting_attachment | Update description and/or pinned state for a file attached directly to a Recruiting vacancy, candidate, applicant, or opinion. The attachmentId must belong to t |
| delete_recruiting_attachment | Delete one file attached directly to a Recruiting vacancy, candidate, applicant, or opinion. The attachmentId must belong to the resolved target. |
| list_recruiting_activity | List read-only activity messages for a Recruiting vacancy, candidate, applicant, or review target resolved by friendly Recruiting identifiers. Opinions are inte |
| list_recruiting_related_issues | List tracker issues whose Huly Related Issues entries (Issue.relations) point at a Recruiting vacancy, candidate, or applicant target. |
| add_recruiting_related_issue | Idempotently add a Huly Related Issues entry (Issue.relations) from a tracker issue to a Recruiting vacancy, candidate, or applicant target. |
| remove_recruiting_related_issue | Idempotently remove a Huly Related Issues entry (Issue.relations) from a tracker issue to a Recruiting vacancy, candidate, or applicant target. |
| list_recruiting_vacancy_types | List Huly Recruiting vacancy workflow types. Use the returned type ID or exact type name in create_recruiting_vacancy. Defaults vacancy creation to Huly's Defau |
| list_recruiting_vacancy_statuses | List applicant workflow statuses for one vacancy. vacancy accepts raw _id, VCN- , bare number, or exact name. Statuses are read from the vacancy's ProjectType; |
| list_recruiting_vacancies | List Recruiting vacancies as stable refs. Supports includeArchived, name query, type ID/name, company organization ID/name, and limit. Vacancy refs include both |
| get_recruiting_vacancy | Get one Recruiting vacancy by raw _id, VCN- , bare number, or exact name. Returns descriptions, type, company, location, due date, privacy, archive state, and e |
| create_recruiting_vacancy | Create a Recruiting vacancy like the Huly UI: increments the vacancy sequence, stores fullDescription as markdown-backed collaborative markup, defaults members/ |
| update_recruiting_vacancy | Update mutable Recruiting vacancy fields. vacancy accepts raw _id, VCN- , bare number, or exact name. Provide at least one field. fullDescription supports markd |
| archive_recruiting_vacancy | Archive a Recruiting vacancy by raw _id, VCN- , bare number, or exact name. |
| unarchive_recruiting_vacancy | Unarchive a Recruiting vacancy by raw _id, VCN- , bare number, or exact name. |
| list_recruiting_candidates | List persons that already have the Recruiting Candidate mixin. Use set_recruiting_candidate_profile, add_recruiting_candidate_skill, or create_recruiting_applic |
| get_recruiting_candidate | Get one Recruiting candidate by person _id, email, or exact display name. Returns profile fields, skills, application/review counts, and primary email when avai |
| set_recruiting_candidate_profile | Create or update the Recruiting Candidate profile mixin on an existing person. For a new candidate, call create_person first, then call this tool with the retur |
| list_recruiting_candidate_custom_fields | List custom field definitions applicable to an existing Recruiting Candidate. candidate accepts a person _id, exact email, or exact display name. Fields owned b |
| get_recruiting_candidate_custom_field_values | Read all applicable custom field values for an existing Recruiting Candidate, including definitions that are currently unset. candidate accepts a person _id, ex |
| set_recruiting_candidate_custom_field | Set one custom field on an existing Recruiting Candidate by field ID from list_recruiting_candidate_custom_fields. candidate accepts a person _id, exact email, |
| list_recruiting_skills | List Recruiting skill tag definitions. Skills are Huly tags scoped to targetClass recruit:mixin:Candidate; use returned titles or IDs with candidate skill tools |
| list_recruiting_candidate_skills | List skill tag references attached to one Recruiting candidate by person _id, email, or exact name. |
| add_recruiting_candidate_skill | Attach a skill to a candidate. candidate accepts person _id, email, or exact name. skill accepts title or tag ID; missing skill titles are created. Optional cat |
| remove_recruiting_candidate_skill | Detach a Recruiting skill from a candidate by skill title or tag ID. Idempotent when the skill is absent. |
| list_recruiting_applicants | List Recruiting applicants. Optionally filter by vacancy, candidate, and status. vacancy accepts raw _id/VCN-number/number/name; candidate accepts person _id/em |
| get_recruiting_applicant | Get one Recruiting applicant by raw _id, APP- , or bare number. Pass vacancy and/or candidate when an APP number could be ambiguous. |
| create_recruiting_applicant | Create an applicant linking one vacancy and candidate. Rejects duplicate vacancy/candidate pairs, increments APP sequence, resolves status from that vacancy wor |
| update_recruiting_applicant | Update applicant status, assignee, startDate, and/or dueDate. applicant accepts raw _id, APP- , or number; vacancy/candidate only disambiguate. Pass null to cle |
| delete_recruiting_applicant | Delete an applicant with Huly removeCollection. applicant accepts raw _id, APP- , or number; vacancy/candidate can disambiguate APP numbers. |
| list_huly_classes | Discover Huly model class, interface, and mixin IDs visible in this workspace. Use this before raw-object, generic association, custom field, or model-backed wo |
| get_huly_class | Read one Huly class/interface/mixin by exact ID and return its inheritance chain plus model attributes. Use this when you need fields, ref targets, enum IDs, or |
| list_huly_attributes | Discover Huly model attributes across the workspace or directly on one class/mixin. Returns attribute IDs, owner classes, labels, type families, ref targets, en |
| list_huly_enums | Discover Huly enum model documents and their valid values. Use enum IDs from get_huly_class or list_huly_attributes to inspect allowed enum values before writin |
| list_huly_plugin_configurations | List read-only Huly plugin configuration records from core.class.PluginConfiguration. Returns plugin id, label, enabled/beta flags, and transaction count so an |
| list_huly_domain_index_configurations | List read-only Huly domain index configuration records from core.class.DomainIndexConfiguration. Returns each domain plus disabled, skip, and enabled-index summ |
| 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 integ |
| 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 m |
| 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 l |
| 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 unr |
| 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 loud |
| 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 t |
| 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 eac |
| 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 def |
| 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, |
| 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 d |
| 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 |
| 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 refus |
| 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 ato |
| list_spaces | List generic Huly spaces across modules. When includeArchived is omitted, includeArchived=undefined. Returns raw space id, class, type, privacy, archived, autoJ |
| get_space | Get one generic Huly space by raw space _id or exact space name. Resolution tries _id first, then exact name. If a name matches multiple spaces, pass class and/ |
| 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 c |
| 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 permission |
| 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 ass |
| 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; |
| 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, |
| 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. Th |
| 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-specif |
| 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 bef |
| 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 UUID |
| set_space_owners | Replace owners on an existing Huly space. Owners accept account UUID, exact email, or exact person display name. By default, owners are also ensured in members. |
| set_space_role_members | Replace members assigned to one role on a typed Huly space while preserving all other role assignments. Role accepts a raw role _id or exact role name from the |
| add_space_role_members | Idempotently add members to one role on a typed Huly space while preserving all other role assignments. Role accepts a raw role _id or exact role name from the |
| remove_space_role_members | Idempotently remove members from one role on a typed Huly space while preserving all other role assignments. Role accepts a raw role _id or exact role name from |
| get_support_status | Discover Huly support-widget model/setup and the authenticated account's private stored status rows in one read-only call. Returns supported=false when either r |
| list_tag_categories | List tag/label categories in the workspace. Categories group labels (e.g., 'Priority Labels', 'Type Labels'). Omit targetClass to include all classes. |
| create_tag_category | Create a new tag/label category. Idempotent: returns existing category if one with the same label and targetClass already exists (created=false). Defaults targe |
| update_tag_category | Update a tag/label category. Accepts category ID or label name. Only provided fields are modified. |
| delete_tag_category | Permanently delete a tag/label category. Accepts category ID or label name. Labels in this category will be orphaned (not deleted). This action cannot be undone |
| list_tags | List generic Huly tag definitions for one SDK target class. Prefer module tools for issue labels, document labels, Planner ToDo labels, board labels, and recrui |
| create_tag | Create a generic Huly tag definition for one targetClass. Idempotent by targetClass + title. Prefer module label or skill tools when attaching to a supported ob |
| update_tag | Update a generic Huly tag definition. The tag argument accepts a tag ID or exact title, resolved within targetClass. |
| delete_tag | Delete a generic Huly tag definition by ID or exact title, resolved within targetClass. This deletes the tag definition, not only one object's tag reference. |
| list_attached_tags | List generic Huly TagReference rows attached to one raw object collection. Prefer module tools for issues, documents, Planner ToDos, board cards, and recruiting |
| attach_tag | Attach a generic Huly tag to one raw object collection. Prefer module tools for supported issue, document, Planner, board, and recruiting objects; this SDK fall |
| detach_tag | Detach a generic Huly tag from one raw object collection. Prefer module tools for supported issue, document, Planner, board, and recruiting objects; this SDK fa |
| list_project_types | List Huly tracker project types/workflow templates. Returns ID, display name, descriptor, task type count, status count, and whether the type appears to be the |
| get_project_type | Inspect one Huly tracker project type in a single call. Accepts projectType as ID or display name; when omitted, uses the unambiguous Classic tracker type. Retu |
| list_task_types | List Huly issue/task types. Optionally filter by projectType ID or display name. Returns task type identity, parent project type, kind, issue class, and availab |
| create_task_type | Add a Huly issue/task type to a project type idempotently by normalized name. Copies required workflow configuration from an existing template task type unless |
| create_issue_status | Add a Huly issue workflow status idempotently by normalized name within a project type and task type scope. Accepts category as a Huly SDK task.statusCategory k |
| list_test_projects | List test management projects. Returns test projects sorted by name. These are separate from tracker projects. |
| list_test_suites | List test suites in a test project. Accepts project ID or name. Optional parent filter for nested suites. |
| get_test_suite | Get a single test suite by ID or name within a test project. Returns suite details and test case count. |
| create_test_suite | Create a test suite in a test project. Idempotent: returns existing suite if one with the same name exists (created=false). Optional parent for nesting. |
| update_test_suite | Update a test suite. Accepts suite ID or name. Only provided fields are modified. |
| delete_test_suite | Permanently delete a test suite. Accepts suite ID or name. This action cannot be undone. |
| list_test_cases | List test cases in a test project. Optional filters: suite (ID or name), assignee (name or email). |
| get_test_case | Get a single test case by ID or name within a test project. |
| create_test_case | Create a test case attached to a suite. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become n |
| update_test_case | Update a test case. Accepts test case ID or name. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and labe |
| delete_test_case | Permanently delete a test case. Accepts test case ID or name. This action cannot be undone. |
| list_test_plans | List test plans in a test management project. Returns plan names and IDs. Requires project ID or name. |
| get_test_plan | Get test plan details including its items (test cases). Accepts plan ID or name within a project. |
| create_test_plan | Create a test plan in a project. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native H |
| update_test_plan | Update a test plan's name or description. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become |
| delete_test_plan | Permanently delete a test plan. This does not delete associated test runs. Cannot be undone. |
| add_test_plan_item | Add a test case to a test plan. Resolves test case by ID or name. Optionally assign a person by email or name. |
| remove_test_plan_item | Remove a test case from a test plan by item ID. Get item IDs from get_test_plan. |
| list_test_runs | List test runs in a test management project. Returns run names, IDs, and due dates. |
| get_test_run | Get test run details including all results. Accepts run ID or name within a project. |
| create_test_run | Create a test run in a project. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Hu |
| update_test_run | Update a test run's name, description, or due date. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and la |
| delete_test_run | Permanently delete a test run. This does not delete associated test results. Cannot be undone. |
| list_test_results | List test results in a test run. Returns result names, statuses, and assignees. |
| get_test_result | Get test result details. Accepts result ID or name. |
| create_test_result | Create a test result in a run. Resolves test case by ID or name. Status defaults to 'untested'. |
| update_test_result | Update a test result's status, assignee, or description. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, a |
| delete_test_result | Permanently delete a test result. Cannot be undone. |
| run_test_plan | Execute a test plan: creates a test run and one test result per plan item. Returns the run ID and count of results created. Optionally name the run and set a du |
| list_user_statuses | List Huly user presence records. Returns account UUIDs, online status, and last modified timestamp. Use this to check who is currently connected; presence is ma |
| list_filtered_views | List saved filtered views from @hcengineering/view. Use attachedTo to scope by raw app/resource string such as board:app:Board; omit attachedTo to discover save |
| get_filtered_view | Get one saved filtered view by FilteredView _id or exact name. Pass attachedTo, such as board:app:Board, when an exact name may exist in more than one module. R |
| list_viewlets | List viewlets from @hcengineering/view model metadata. Use attachTo with a Huly class id such as board:class:Card to scope by rendered document class; use list_ |
| list_office_floors | List virtual office floors. |
| get_office_floor | Get one virtual office floor by floorId. |
| create_office_floor | Create one durable virtual-office Floor with a nonblank name. Returns the generated floorId immediately. Floor rename and deletion are intentionally unavailable |
| list_office_rooms | List virtual office rooms, including access mode, type, floor, floor-plan position/size, language, and recording/transcription defaults. |
| get_office_room | Get one virtual office room by roomId, including description when readable. |
| create_office_room | Create one durable video, audio, reception, or personal office on a Floor resolved from an exact ID or unambiguous exact name. Video/audio/reception require a n |
| update_office_room | Update one durable Room or Office by roomId. Accepts only name, Markdown description, access, startWithTranscription, and startWithRecording. Personal offices r |
| list_offices | List personal office rooms and their assigned people when readable. |
| get_office | Get one personal office room by roomId, including assigned person and description when readable. |
| list_active_room_info | List transient active room occupancy summaries. |
| list_active_room_participants | List transient active virtual-office participants and positions, optionally filtered by roomId. |
| list_meeting_minutes | List meeting notes/transcript records (minutes) by optional attachment target and created-on range. |
| get_meeting_minutes | Get one meeting notes/transcript record (minutes) by meetingMinutesId, including description when readable. |
| list_device_preferences | List readable virtual-office media device preferences. |
| list_office_defaults | List room-level language, default recording, and default transcription settings. |
| list_workbench_applications | List read-only Huly Workbench application model declarations by exact URL alias or case-insensitive alias substring. Returns untranslated labelId values, static |
| 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 att |
| 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 a |
| 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 |
| 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. |
| delete_workflow_status | Permanently delete an unreferenced generic workflow Status by ID or exact name. Refuses deletion while any StatusCategory default, ProjectType, TaskType, or tas |
| 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, |
| 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 |
| 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 |
| 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 co |
| delete_status_category | Permanently delete an unreferenced generic StatusCategory by ID or exact label. Refuses deletion while any Status references the category, preventing dangling r |
{
"mcpServers": {
"huly": {
"command": "npx",
"args": [
"-y",
"@firfi/huly-mcp@latest"
],
"env": {
"HULY_URL": "https://your-huly-instance.example.com",
"HULY_TOKEN": "YOUR_HULY_TOKEN",
"HULY_WORKSPACE": "yourworkspace"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
| Variable | Description | Required |
|---|---|---|
| HULY_URL | Declared in the maintainer’s client configuration. | Check documentation |
| HULY_TOKEN | Declared in the maintainer’s client configuration. | Check documentation |
| HULY_WORKSPACE | Declared in the maintainer’s client configuration. | Check documentation |
Read, search and edit files inside allowed directories with the Model Context Protocol reference Filesystem server.
Retrieve version-aware library documentation and code examples with Context7 MCP, using resolve-library-id and query-docs.
MCP Server for Microsoft Education
Control dedicated 4G mobile and residential proxies on mobileproxy.space from AI agents.
habari-mcp
MCP server for Agent Room — multi-agent meeting rooms. Create rooms, send messages, and monitor conversations from Claude Code, Cursor, or any MCP