Huly MCP Server

Huly MCP: feature-complete MCP server for Huly integration

Remote serverstreamable-http

What is the Huly MCP Server?

Huly MCP: feature-complete MCP server for Huly integration

The short version

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.

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
list_tool_categoriesLists 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_toolsSearches 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_schemaReturns 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_toolInvokes 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_preferencesList 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_preferenceCreate 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_projectsList all Huly projects. Returns projects sorted by name. Supports filtering by archived status.
get_projectGet full details of a Huly project including its statuses. Returns project name, description, archived flag, default status, and all available statuses.
list_statusesList 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_projectCreate 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_projectUpdate a Huly project. Only provided fields are modified. Set description to null to clear it.
delete_projectPermanently delete a Huly project. All issues, milestones, and components in this project will be orphaned. This action cannot be undone.
preview_deletionPreview 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_targetsList 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_trackerRequest 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_statusRead the Huly-persisted external publication state for an issue identified by project and human issue identifier. Returns not_requested, pending, published, or
list_componentsList components in a Huly project. Components organize issues by area/feature. Returns components sorted by modification date (newest first).
get_componentRetrieve full details for a Huly component. Use this to view component content and metadata.
create_componentCreate a new component in a Huly project. Components help organize issues by area/feature. Description supports markdown. Markdown links to current-workspace Hu
update_componentUpdate fields on an existing Huly component. Only provided fields are modified. Description supports markdown. Markdown links to current-workspace Huly browse U
set_issue_componentSet or clear the component on a Huly issue. Pass null for component to clear it.
delete_componentPermanently delete a Huly component. This action cannot be undone.
list_issuesQuery Huly issues with optional filters. Returns issues sorted by modification date (newest first). Supports filtering by project, exact workflow status name (s
get_issueRetrieve full details for a Huly issue including markdown description, its creator as a stable Person reference { id, name?, email? } when resolvable, its assig
create_issueCreate 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_issueUpdate 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_labelAdd a tag/label to a Huly issue. Creates the tag if it doesn't exist in the project.
remove_issue_labelRemove a tag/label from a Huly issue. Detaches the label reference; does not delete the label definition.
delete_issuePermanently delete a Huly issue. This action cannot be undone.
move_issueMove an issue tree within its project, preserving IDs, identifiers and attributes. issue/parent accept full identifiers or stable IDs; project accepts identifie
list_issue_templatesList issue templates in a Huly project. Templates define reusable issue configurations. Returns templates sorted by modification date (newest first).
get_issue_templateRetrieve 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_templateCreate 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_templateCreate a new issue from a template. Applies template defaults, allowing overrides for specific fields. Description override supports markdown. Markdown links to
update_issue_templateUpdate fields on an existing Huly issue template. Only provided fields are modified. Description supports markdown. Markdown links to current-workspace Huly bro
delete_issue_templatePermanently delete a Huly issue template. This action cannot be undone.
add_template_childAdd 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_childRemove a child (sub-task) template from an issue template by its child ID. Get child IDs from get_issue_template response.
add_issue_relationAdd 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_relationRemove 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_relationsList 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_issueLink 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_issueRemove a document link from an issue. Idempotent: no-op if the document is not linked.
list_related_issue_targetsList 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_targetSet 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_targetDelete the spaceRule that chooses the default destination project for related issues from one space. This only deletes spaceRule targets; classRule deletion is
list_commentsList comments on a Huly issue. Returns comments sorted by creation date (oldest first).
add_commentAdd 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_commentUpdate 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_commentDelete a comment from a Huly issue. This action cannot be undone.
list_milestonesList milestones in a Huly project. Returns milestones sorted by modification date (newest first).
get_milestoneRetrieve full details for a Huly milestone. Use this to view milestone content and metadata.
create_milestoneCreate 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_milestoneUpdate fields on an existing Huly milestone. Only provided fields are modified. Description supports markdown. Markdown links to current-workspace Huly browse U
set_issue_milestoneSet or clear the milestone on a Huly issue. Pass null for milestone to clear it.
delete_milestonePermanently delete a Huly milestone. This action cannot be undone.
list_document_snapshotsList 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_snapshotGet 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_teamspacesList all Huly document teamspaces. Returns teamspaces sorted by name. Supports filtering by archived status.
get_teamspaceGet details for a Huly document teamspace including document count. Finds by name or ID, including archived teamspaces.
create_teamspaceCreate a new Huly document teamspace. Idempotent: returns existing teamspace if one with the same name exists.
update_teamspaceUpdate fields on an existing Huly document teamspace. Only provided fields are modified. Set description to null to clear it.
delete_teamspacePermanently delete a Huly document teamspace. This action cannot be undone.
list_documentsList 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_documentRetrieve 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_documentCreate 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_documentEdit 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_commentsList inline comment threads from a Huly document. Extracts comments embedded in document content as ProseMirror marks. Each comment includes the highlighted tex
delete_documentPermanently delete a Huly document. This action cannot be undone.
list_document_label_definitionsList label definitions available for ordinary Huly documents by optional title substring. Does not expose raw target-class or category mechanics.
list_document_labelsList 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_labelIdempotently 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_labelDetach 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_fileUpload 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_attachmentsList attachments on a Huly object (issue, document, etc.). Returns attachments sorted by modification date (newest first).
get_attachmentRetrieve full details for a Huly attachment including download URL.
add_attachmentAdd 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_attachmentUpdate attachment metadata (description, pinned status).
delete_attachmentPermanently delete an attachment. This action cannot be undone.
pin_attachmentPin or unpin an attachment.
download_attachmentGet download URL for an attachment along with file metadata (name, type, size).
read_attachment_contentReturn 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_attachmentAdd 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_attachmentAdd 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_attachmentSave/bookmark an attachment for later reference. Idempotent when already saved.
unsave_attachmentRemove an attachment from saved/bookmarks.
list_saved_attachmentsList saved/bookmarked attachments for the current user.
list_drawingsList drawings attached to a raw Huly parent object.
get_drawingGet a drawing by ID.
create_drawingCreate a drawing under a raw Huly parent object.
update_drawingUpdate drawing content. Pass null content to clear it.
delete_drawingDelete a drawing. This action cannot be undone.
list_employeesList employees (persons who are team members), sorted by modification date (newest first). Each summary exposes stable Contact Employee fields city, email, role
set_employee_positionIdempotently 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_employeeCreate 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_employeesList every inactive Employee before applying output pagination. Each result distinguishes the account link, workspace membership and role, Person identity, and
deactivate_employeePreview 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_personsList all persons in the Huly workspace. Returns persons sorted by modification date (newest first). Supports searching by name substring (nameSearch) and email
get_personRetrieve full details for a person including contact channels. Use personId or email to identify the person.
create_personCreate a new person in Huly. Returns the created person ID.
update_personUpdate fields on an existing person. Only provided fields are modified.
delete_personPermanently delete a person from Huly. This action cannot be undone.
list_contact_channel_providersList supported contact channel provider labels for person and organization channel tools.
list_person_channelsList 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_channelIdempotently 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_channelUpdate 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_channelRemove 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_organizationsList all organizations in the Huly workspace. Returns organizations sorted by modification date (newest first).
create_organizationCreate 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_organizationRetrieve full details for an organization by ID or exact name when that name is unique - including city, description, member count, and modification timestamp.
update_organizationUpdate 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_organizationPermanently 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_customerApply 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_customerApply 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_channelIdempotently add a contact channel to an organization identified by ID or exact unique name. Provider labels: email, phone, linkedin, twitter, github, facebook,
list_organization_channelsList contact channels for an organization identified by ID or exact unique organization name. Returns channelId, provider label, value, and optional activity me
update_organization_channelUpdate 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_channelRemove 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_memberLink 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_membersList 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_organizationsList all organizations that a person is a member of. Provide personId or email. Returns each organization's ID and name.
remove_organization_memberUnlink 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_peoplePreview 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_administrationInspect 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_providersList SocialIdentity providers installed in this Huly workspace, returning native provider IDs and types.
repair_person_social_identitiesApply only Huly's native safe, idempotent SocialIdentity repairs from the authenticated person's authoritative account record: recreate missing active projectio
list_person_commentsList 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_commentAdd 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_commentIdempotently 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_commentPermanently 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_attachmentsList 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_attachmentUpload 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_attachmentGet 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_attachmentUpdate 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_attachmentPermanently 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_attachmentsList 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_attachmentGet 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_attachmentAttach 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_attachmentUpdate 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_attachmentDelete 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_membersList members of a Huly channel by channel name or ID. Returns each member account UUID and the workspace display name when available.
add_channel_membersIdempotently 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_membersIdempotently remove members from a non-archived Huly channel. Members accept account UUID, exact email, or exact person display name. Refuses removals that woul
join_channelJoin a non-archived Huly channel as the authenticated account. Idempotent when the account is already a member.
leave_channelLeave 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_channelArchive a Huly channel by channel name or ID. This is reversible with unarchive_channel and is idempotent when the channel is already archived.
unarchive_channelUnarchive a Huly channel by channel name or ID. Idempotent when the channel is already active.
create_group_direct_messageOpen 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_starredSet 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_closedSet 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_messagesList 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_pinnedIdempotently 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_accessAttempt 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_messageAttempt 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_channelsList all Huly channels. Returns channels sorted by name. Supports filtering by archived status. Supports searching by name substring (nameSearch) and topic subs
get_channelRetrieve full details for a Huly channel including topic and member list.
create_channelCreate a new channel in Huly. Returns the created channel ID and name.
update_channelUpdate fields on an existing Huly channel. Only provided fields are modified.
delete_channelPermanently delete a Huly channel. This action cannot be undone. For reversible channel lifecycle changes, use archive_channel and unarchive_channel instead.
list_channel_messagesList messages in a Huly channel. Returns messages sorted by date (newest first).
list_external_channel_messagesRead 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_messageSend 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_messageUpdate 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_messagePermanently delete a channel message. This action cannot be undone.
list_direct_messagesList direct message conversations in Huly. Returns conversations sorted by date (newest first).
create_direct_messageOpen 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_messagesList 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_messageSend 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_messageUpdate 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_messagePermanently 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_repliesList replies in a message thread. Returns replies sorted by date (oldest first).
add_thread_replyAdd 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_replyUpdate 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_replyPermanently delete a thread reply. This action cannot be undone.
list_eventsList calendar events sorted by date, with meetingRoom identity when an Event has the native Meeting composition. Supports filtering by date range.
list_calendarsList 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_settingsList 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_calendarSet 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_settingsUpdate local visibility and/or hidden settings on one authenticated caller-owned calendar. Visibility accepts public, freeBusy, or private. Hidden changes are a
get_eventRetrieve full details for a calendar event, including description and meetingRoom identity when it has the native Meeting composition.
create_eventCreate a new calendar event. Description supports markdown formatting. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become n
update_eventUpdate fields on an existing calendar event. Only provided fields are modified. Description updates support markdown. Markdown links to current-workspace Huly b
delete_eventPermanently delete a calendar event. This action cannot be undone.
list_schedulesList calendar scheduling links/availability schedules. Optional owner accepts an employee/person ID, exact name, or email.
get_scheduleRetrieve one calendar schedule including owner, availability, calendar target, time zone, and room information when it is a meeting schedule.
create_scheduleCreate a calendar schedule. Owner accepts an employee/person ID, exact name, or email; calendar can be targeted by calendarId or calendarName. Optional meetingR
update_scheduleUpdate a calendar schedule. Supports owner, title, description, duration, interval, availability, timeZone, and calendar move by calendarId or calendarName. mee
delete_scheduleDelete a calendar schedule by scheduleId.
list_recurring_eventsList recurring event definitions. Returns recurring events sorted by modification date (newest first).
create_recurring_eventCreate a new recurring calendar event with RFC5545 RRULE rules. Description supports markdown. Markdown links to current-workspace Huly browse URLs with _class,
list_event_instancesList instances of a recurring event. Returns instances sorted by date. Supports filtering by date range. Use includeParticipants=true to fetch full participant
log_timeLog 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_reportGet 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_reportsList 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_reportGet 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_slotsList 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_timerStart 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_timerStop 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_searchPerform a global fulltext search across all Huly content. Searches issues, documents, messages, and other indexed content. Returns matching items sorted by rele
list_associationsList Huly association definitions: class-level typed links that define which document classes may be related. Use this before create_relation to discover associ
create_associationIdempotently create one Huly association definition between two non-system classes. Use sourceClass/targetClass with sourceRole/targetRole and cardinality; retu
delete_associationIdempotently delete one Huly association definition only when no concrete relations reference it. If relations exist, delete_relation must clean them up first;
list_relationsList concrete Huly relation instances under an association, optionally filtered by source and target documents. Endpoint locators support raw, issue, document,
create_relationIdempotently create one concrete relation between two resolved documents for a writable association. Endpoint locators support raw, issue, document, card, and e
delete_relationIdempotently delete one concrete relation by relation ID or by exact association/source/target triple. Triple endpoint locators support raw, issue, document, ca
list_activityList activity messages for a Huly issue, document, channel, or raw Huly object. Prefer friendly targets: project+issueIdentifier for issues, teamspace+document
get_activity_messageGet a single activity message by ID, including subclass metadata when available.
pin_activity_messagePin or unpin an activity message. Idempotent when the pin state already matches.
list_activity_filtersList configured activity filters in display order.
list_activity_referencesList activity references connected to a raw Huly object. Use direction to list references from the object, to the object, or both.
list_activity_repliesList thread replies on any activity message, not only channel messages.
add_activity_replyAdd 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_replyUpdate 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_replyDelete a generic activity reply.
add_reactionAdd an emoji reaction to an activity message.
remove_reactionRemove an emoji reaction from an activity message.
list_reactionsList reactions on an activity message.
save_messageSave/bookmark an activity message for later reference.
unsave_messageRemove an activity message from saved/bookmarks.
list_saved_messagesList saved/bookmarked activity messages.
list_mentionsList @mentions of the current user in activity messages.
list_notification_providersList 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_typesList model-declared notification types. Use returned type IDs for provider-specific setting updates. Older REST servers may return compatibility metadata with a
list_notificationsList inbox notifications. Returns notifications sorted by modification date (newest first). Supports filtering by read/archived status.
get_notificationRetrieve full details for a notification. Use this to view notification content and metadata.
mark_notification_readMark a notification as read. Idempotent: returns success when the notification is already read.
mark_notification_unreadMark a notification as unread. Idempotent: returns success when the notification is already unread.
mark_all_notifications_readMark all unread notifications as read. Returns the count of notifications marked.
archive_notificationArchive a notification. Archived notifications are hidden from the main inbox view. Idempotent when already archived.
unarchive_notificationUnarchive a notification so it can appear in active notification lists again. Idempotent when already active.
archive_all_notificationsArchive all notifications. Returns the count of notifications archived.
delete_notificationPermanently delete a notification. This action cannot be undone.
get_notification_contextGet notification context for an entity. Returns tracking information for a specific object.
list_notification_contextsList notification contexts. Returns contexts sorted by last update timestamp (newest first). Supports filtering by pinned status and can include hidden contexts
pin_notification_contextPin or unpin a notification context. Pinned contexts are highlighted in the inbox. Idempotent when the pin state already matches.
hide_notification_contextHide or unhide a notification context. Hidden contexts are omitted from list_notification_contexts unless includeHidden is true. Idempotent when the hidden stat
archive_notification_contextArchive all inbox notifications in a notification context. Idempotent: returns count 0 when no active notifications remain.
unarchive_notification_contextUnarchive all archived inbox notifications in a notification context. Idempotent: returns count 0 when no archived notifications remain.
subscribe_to_object_notificationsSubscribe the authenticated account to notifications for a raw Huly object by adding a core collaborator row. Idempotent when already subscribed.
unsubscribe_from_object_notificationsUnsubscribe the authenticated account from notifications for a raw Huly object by removing its collaborator row. Idempotent when already absent.
list_notification_settingsList notification provider settings. Returns current notification preferences.
update_notification_provider_settingEnable or disable a notification provider setting. Validates providerId against authoritative model definitions when available; compatible REST fallback is pres
update_notification_type_settingEnable 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_countGet the count of unread notifications.
list_workspace_membersList members in the current Huly workspace with their roles. Returns members with account IDs and roles.
update_member_roleUpdate a workspace member's role. Requires appropriate permissions. Valid roles: READONLYGUEST, DocGuest, GUEST, USER, MAINTAINER, OWNER, ADMIN.
get_workspace_infoGet information about the current workspace including name, URL, region, and settings.
list_workspacesList all workspaces accessible to the current user. Returns workspace summaries sorted by last visit.
create_workspaceCreate a new Huly workspace. Returns the workspace UUID and URL. Optionally specify a region.
delete_workspacePermanently delete the current workspace. This action cannot be undone. Use with extreme caution.
get_user_profileGet the current user's profile information including bio, location, and social links.
update_user_profileUpdate the current user's profile. Supports bio, city, country, website, social links, and public visibility.
update_guest_settingsUpdate workspace guest settings. Control read-only guest access and guest sign-up permissions.
create_access_linkCreate a Huly workspace access link. When role is omitted, role=GUEST. Supports anonymous reusable guest links by setting personalized=false with notBefore and
get_regionsGet available regions for workspace creation. Returns region codes and display names.
list_approval_requestsList generic Huly approval Request documents from the published @hcengineering/request SDK package. This is read-only discovery: filter by status, raw attachedT
get_approval_requestRead 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_requestCreate 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_commentAdd 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_requestApprove 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_requestReject 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_requestCancel 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_boardsList Huly boards from @hcengineering/board, sorted by name. Boards are task.Project-backed spaces; this is not the separate Huly Card module.
get_boardGet one Huly board by board _id or exact board name. Returns board metadata, project type, and card count.
create_boardCreate 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_boardUpdate a Huly board's name, description, or privacy. board accepts board _id or exact board name.
archive_boardArchive a Huly board by board _id or exact board name. This hides the board but does not delete cards.
unarchive_boardUnarchive a Huly board by board _id or exact board name.
list_board_cardsList cards on one @hcengineering/board board. board accepts board _id or exact board name; cards are sorted newest modified first.
get_board_cardGet 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_cardCreate 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_cardUpdate board card fields: title, markdown description, status, assignee, members, location, cover, startDate, and dueDate. Markdown links to current-workspace H
archive_board_cardArchive a board card. card accepts _id, CARD-123, bare number, or exact title scoped to the board.
unarchive_board_cardUnarchive a board card. card accepts _id, CARD-123, bare number, or exact title scoped to the board.
delete_board_cardPermanently delete an already archived board card using Huly removeCollection. Active cards are rejected; call archive_board_card first.
list_board_labelsList board label definitions. Board labels are @hcengineering/tags TagElement rows for board cards, with targetClass = @hcengineering/board Card.
create_board_labelCreate 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_labelUpdate a board label definition by TagElement _id or exact title. At least one of title, color, description, or category is required.
delete_board_labelDelete one board label definition by TagElement _id or exact title. This removes the label definition, not a board card.
list_board_card_labelsList 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_labelAttach 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_labelDetach a board label from one board card. Returns detached=false when the label exists but is not attached to that card.
list_board_menu_pagesRead-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_viewsRead-only list of board saved filtered views. Queries view.class.FilteredView where attachedTo = board.app.Board and reports own/shared visibility.
get_board_saved_viewRead 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_viewletsRead-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_preferenceRead the CommonBoardPreference row attached to board.app.Board. Returns present=false when the preference row is absent and never creates it.
list_card_commentsList 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_commentAdd 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_commentUpdate 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_commentPermanently 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_spacesList all Huly card spaces. Returns card spaces sorted by name. Card spaces are containers for cards.
list_master_tagsList 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_cardsList 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_cardRetrieve 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_versionsRead 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_cardCreate 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_cardUpdate fields on an existing Huly card. Only provided fields are modified. Content updates support markdown. Markdown links to current-workspace Huly browse URL
delete_cardPermanently delete a Huly card. This action cannot be undone.
list_object_collaboratorsList notification collaborators on a Huly issue, document, or raw object. Prefer friendly targets: project+issueIdentifier for issues or teamspace+document for
add_object_collaboratorSubscribe 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_collaboratorUnsubscribe 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_fieldsList 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_valuesRead 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_fieldSet 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_drivesList 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_driveGet 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_driveIdempotently 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_driveUpdate 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_drivePermanently 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_membersIdempotently 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_membersIdempotently 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_ownersReplace 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_itemsList 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_itemGet 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_commentsList 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_commentAdd 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_commentUpdate 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_commentPermanently 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_activityList activity messages for a Drive file resolved by filePath or fileId. Provide only one locator. Returns activity sorted by date, newest first.
create_drive_folderIdempotently create a Drive folder path, creating missing parents like mkdir -p. Returns created=false when the full folder path already exists.
upload_drive_fileUpload 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_versionUpload 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_itemMove 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_itemRename 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_itemPermanently 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_versionsList 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_versionRestore 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_departmentsList HR departments with exact full paths, hierarchy, managers, subscribers, team lead, direct Staff assignments, server-derived member count, and stable counte
get_departmentGet one HR department by exact full slash-separated path or department ID.
create_departmentCreate 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_departmentRename, move, or replace department metadata and people. Rejects duplicate sibling names, parent cycles, and moves of subtrees with server-derived members; clea
delete_departmentPreview destructive impact by default. Execution requires execute=true plus exact previewed descendant and assigned-Staff counts; Huly then cascades descendant
list_staffList HR Staff and authoritative department assignments. Optionally scope by exact department path/ID, include descendants, and filter Employee active state.
assign_staff_departmentAssign 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_commentsList comments directly attached to an exact HR request ID, with total and truncation metadata.
add_hr_request_commentAdd a Markdown comment directly to an exact HR request ID.
update_hr_request_commentUpdate a comment that belongs directly to an exact HR request.
delete_hr_request_commentDelete a comment that belongs directly to an exact HR request.
list_hr_request_attachmentsList files directly attached to an exact HR request ID, with total and truncation metadata.
get_hr_request_attachmentGet one file belonging directly to an exact HR request.
add_hr_request_attachmentAttach a file to an exact HR request. Provide filename, contentType, and exactly one of filePath, fileUrl, or base64 data.
update_hr_request_attachmentUpdate description and/or pinned state for a file belonging directly to an exact HR request.
delete_hr_request_attachmentDelete one file belonging directly to an exact HR request.
list_hr_request_typesDiscover 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_requestsList 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_requestGet one HR request by the exact raw request ID returned by list_hr_requests.
create_hr_requestCreate 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_requestUpdate 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_requestDelete one exact HR request. Its comments and attachments are Huly-owned attached collections and follow the request deletion lifecycle.
list_public_holidaysList public-holiday documents with exact optional department and inclusive date filters. includeInherited adds every ancestor department explicitly; it never ad
get_public_holidayGet one public-holiday document by the exact raw ID returned by list_public_holidays.
create_public_holidayCreate 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_holidayUpdate 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_holidayPermanently delete one public-holiday document by exact raw ID.
get_hr_scheduleReturn 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_tableReturn 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_reportReturn 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_attachmentsList files attached directly to an inventory product resolved by product ID or exact name. Pass category to disambiguate duplicate product names.
get_inventory_product_attachmentGet one file attached directly to an inventory product. The attachmentId must belong to the resolved product.
add_inventory_product_attachmentAdd 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_attachmentUpdate 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_attachmentPermanently delete a file attached directly to an inventory product. The attachmentId must belong to the resolved product.
list_inventory_product_photosList photos attached directly to an inventory product resolved by product ID or exact name. Pass category to disambiguate duplicate product names.
get_inventory_product_photoGet one photo attached directly to an inventory product. The photoId must belong to the resolved product.
add_inventory_product_photoAdd 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_photoUpdate 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_photoPermanently delete a photo attached directly to an inventory product. The photoId must belong to the resolved product.
list_inventory_product_commentsList comments attached directly to an inventory product resolved by product ID or exact name. Returns comments oldest first.
add_inventory_product_commentAdd 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_commentUpdate 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_commentPermanently delete a comment attached directly to an inventory product. The commentId must belong to the resolved product.
list_inventory_product_activityList activity messages for an inventory product resolved by product ID or exact name. This is read-only audit/activity history, newest first.
list_inventory_categoriesList 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_categoryGet 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_categoryCreate an inventory category. Defaults parentCategory to the Inventory root. Rejects duplicate category names under the same parent.
update_inventory_categoryRename 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_categoryDelete 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_productsList inventory products sorted by name. Optionally scope to category by ID/exact name and filter product names with query.
get_inventory_productGet one inventory product by ID or exact product name. If product names are duplicated, pass category or use the product ID.
create_inventory_productCreate an inventory product in a category resolved by ID or exact name. Rejects duplicate product names in the same category.
update_inventory_productRename 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_productDelete an inventory product by ID or exact name. Refuses products with variants, photos, attachments, or comments; this action does not cascade.
list_inventory_variantsList 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_variantGet 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_variantCreate 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_variantRename 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_variantDelete one inventory variant/SKU by ID, exact variant name, or exact SKU. This action does not delete its product.
list_labelsList label/tag definitions in the workspace. Labels are global (not project-scoped). Returns labels for tracker issues sorted by modification date (newest first
create_labelCreate 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_labelUpdate a label/tag definition. Accepts label ID or title. Only provided fields are modified.
delete_labelPermanently delete a label/tag definition. Accepts label ID or title. This action cannot be undone.
list_lead_commentsList native comments on one lead resolved by exact funnel ID/name and LEAD- . Returns Markdown with native Huly references preserved.
add_lead_commentAdd a Markdown comment to one exact lead. Current-workspace Huly links are stored as native references.
update_lead_commentUpdate one comment belonging to an exact lead; comments attached elsewhere are rejected. Markdown native references are preserved.
delete_lead_commentDelete one comment only when it belongs to the exact lead target.
list_lead_attachmentsList native attachment references belonging to one exact lead.
add_lead_attachmentUpload a local path, URL, or base64 payload and attach the native file reference to one exact lead.
get_lead_attachmentGet metadata and a download URL for an attachment only when it belongs to one exact lead.
update_lead_attachmentUpdate description or pinned state for an attachment only when it belongs to one exact lead.
delete_lead_attachmentDelete an attachment only when it belongs to one exact lead. The native blob reference remains governed by Huly storage cleanup.
list_lead_label_definitionsList 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_labelsList native TagReference label relations attached to one exact lead.
add_lead_labelIdempotently 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_labelUpdate the published optional weight on every matching TagReference relation for one exact lead and label.
remove_lead_labelIdempotently remove all matching TagReference relations from one exact lead without deleting the reusable label definition.
list_funnelsList all Huly sales funnels (lead pipelines). Returns each funnel's stable ID and display name, sorted by name. Supports filtering by archived status.
get_funnelGet 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_funnelCreate a native Huly funnel after validating its Funnel project type, Lead task types, workflow statuses, membership, and owners. Full description accepts Markd
update_funnelUpdate a funnel resolved by stable _id or exact unambiguous name. Validates the existing Funnel project type/workflow and membership before mutation. Null clear
archive_funnelArchive 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_funnelPermanently 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_leadsQuery 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_leadRetrieve one exact funnel-scoped Huly lead with Markdown descriptions, customer identity/type, workflow task type and status, rank/completion, native collection
create_leadCreate 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_leadUpdate 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_leadMove 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_leadPreview native lead deletion impact by default. The preview reads authoritative comment, attachment, and label relation counts. To permanently delete, pass exec
list_mail_threadsDiscover 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_categoriesList global Huly message template categories. Categories group reusable message templates across the workspace. Returns category IDs, names, descriptions, archi
list_message_templatesList 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_templateRetrieve 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_templateRender 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_fieldsList Huly message template fields/placeholders without executing provider resources or rendering templates. Optionally filter by field category ID or exact raw
create_huly_enumCreate 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_enumUpdate 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_enumPermanently 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_attributeCreate 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_attributeUpdate 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_attributePermanently 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_definitionsList label definitions available for Huly Planner ToDos by optional title substring. Does not expose raw target-class or category mechanics.
list_todo_labelsList 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_labelIdempotently 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_labelDetach 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_todosList 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_todoGet 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_todoCreate 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_todoUpdate 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_todoComplete 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_todoReopen a completed Planner ToDo by raw todoId or human locator, including a document attachment locator, by clearing doneOn. Human locators search completed ToD
delete_todoDelete 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_todoSchedule 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_todoRemove 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_preferencesList 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_preferenceRead 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_processesList 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_processGet 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_executionsList 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_processStart 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_executionIdempotently cancel one Huly Process execution by execution ID. Active executions are marked cancelled; already-cancelled executions succeed with cancelled=fals
list_recruiting_applicant_matchesList 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_matchGet one read-only generated Recruiting applicant match by raw applicant-match _id. Returns candidate, complete state, generated vacancy text, summary, response
list_recruiting_reviewsList Recruiting reviews/interviews as stable refs. Filter by candidate, application, date range, title/verdict/location query, and limit. Review locators use ra
get_recruiting_reviewGet one Recruiting review by raw _id, RVE- , bare number, or exact title. Optional candidate/application disambiguate. Returns schedule, markdown description, v
create_recruiting_reviewCreate a Recruiting review/interview like the Huly UI: increments RVE sequence, attaches to the candidate reviews collection, stores markdown description as Hul
update_recruiting_reviewUpdate a Recruiting review. review accepts raw _id, RVE- , number, or exact title; candidate/applicationContext only disambiguate. Description supports markdown
delete_recruiting_reviewDelete a Recruiting review with Huly removeCollection. review accepts raw _id, RVE- , number, or exact title; candidate/application can disambiguate.
list_recruiting_opinionsList 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_opinionGet one Recruiting opinion by raw _id, OPE- , or bare number. Pass review to disambiguate. Returns value, markdown description, comments/attachments counts, par
create_recruiting_opinionCreate 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_opinionUpdate 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_opinionDelete a Recruiting opinion with Huly removeCollection. opinion accepts raw _id, OPE- , or number; review can disambiguate.
list_recruiting_commentsList comments attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion target. The target locator resolves friendly Recruiting identi
add_recruiting_commentAdd 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_commentUpdate one comment attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion. The commentId must belong to the resolved target. Markdo
delete_recruiting_commentDelete one comment attached directly to a Recruiting vacancy, candidate, applicant, review, or opinion. The commentId must belong to the resolved target.
list_recruiting_attachmentsList files attached directly to a Recruiting vacancy, candidate, applicant, or opinion target. Review attachments are intentionally unsupported unless the model
get_recruiting_attachmentGet one file attached directly to a Recruiting vacancy, candidate, applicant, or opinion. The attachmentId must belong to the resolved target.
add_recruiting_attachmentAttach 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_attachmentUpdate 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_attachmentDelete one file attached directly to a Recruiting vacancy, candidate, applicant, or opinion. The attachmentId must belong to the resolved target.
list_recruiting_activityList read-only activity messages for a Recruiting vacancy, candidate, applicant, or review target resolved by friendly Recruiting identifiers. Opinions are inte
list_recruiting_related_issuesList tracker issues whose Huly Related Issues entries (Issue.relations) point at a Recruiting vacancy, candidate, or applicant target.
add_recruiting_related_issueIdempotently add a Huly Related Issues entry (Issue.relations) from a tracker issue to a Recruiting vacancy, candidate, or applicant target.
remove_recruiting_related_issueIdempotently remove a Huly Related Issues entry (Issue.relations) from a tracker issue to a Recruiting vacancy, candidate, or applicant target.
list_recruiting_vacancy_typesList 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_statusesList 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_vacanciesList Recruiting vacancies as stable refs. Supports includeArchived, name query, type ID/name, company organization ID/name, and limit. Vacancy refs include both
get_recruiting_vacancyGet 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_vacancyCreate a Recruiting vacancy like the Huly UI: increments the vacancy sequence, stores fullDescription as markdown-backed collaborative markup, defaults members/
update_recruiting_vacancyUpdate mutable Recruiting vacancy fields. vacancy accepts raw _id, VCN- , bare number, or exact name. Provide at least one field. fullDescription supports markd
archive_recruiting_vacancyArchive a Recruiting vacancy by raw _id, VCN- , bare number, or exact name.
unarchive_recruiting_vacancyUnarchive a Recruiting vacancy by raw _id, VCN- , bare number, or exact name.
list_recruiting_candidatesList persons that already have the Recruiting Candidate mixin. Use set_recruiting_candidate_profile, add_recruiting_candidate_skill, or create_recruiting_applic
get_recruiting_candidateGet 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_profileCreate 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_fieldsList 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_valuesRead 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_fieldSet 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_skillsList 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_skillsList skill tag references attached to one Recruiting candidate by person _id, email, or exact name.
add_recruiting_candidate_skillAttach 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_skillDetach a Recruiting skill from a candidate by skill title or tag ID. Idempotent when the skill is absent.
list_recruiting_applicantsList Recruiting applicants. Optionally filter by vacancy, candidate, and status. vacancy accepts raw _id/VCN-number/number/name; candidate accepts person _id/em
get_recruiting_applicantGet one Recruiting applicant by raw _id, APP- , or bare number. Pass vacancy and/or candidate when an APP number could be ambiguous.
create_recruiting_applicantCreate an applicant linking one vacancy and candidate. Rejects duplicate vacancy/candidate pairs, increments APP sequence, resolves status from that vacancy wor
update_recruiting_applicantUpdate applicant status, assignee, startDate, and/or dueDate. applicant accepts raw _id, APP- , or number; vacancy/candidate only disambiguate. Pass null to cle
delete_recruiting_applicantDelete an applicant with Huly removeCollection. applicant accepts raw _id, APP- , or number; vacancy/candidate can disambiguate APP numbers.
list_huly_classesDiscover 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_classRead 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_attributesDiscover 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_enumsDiscover 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_configurationsList 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_configurationsList read-only Huly domain index configuration records from core.class.DomainIndexConfiguration. Returns each domain plus disabled, skip, and enabled-index summ
list_huly_sequencesList 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_capabilitiesDescribe 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_permissionCreate 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_permissionUpdate 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_permissionPermanently 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_roleCreate 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_permissionsReplace 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_metadataGet 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_metadataCreate 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_metadataPermanently 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_sequenceCreate 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_sequenceSet 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_sequencePermanently 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_spacesList generic Huly spaces across modules. When includeArchived is omitted, includeArchived=undefined. Returns raw space id, class, type, privacy, archived, autoJ
get_spaceGet 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_typesList configured Huly SpaceType records. Returns descriptor id, base class, target class, default members, autoJoin, and role count for discovering typed-space c
get_space_typeGet one Huly SpaceType by raw SpaceType _id or exact name, including descriptor metadata, role definitions, role permission ids/labels, and available permission
list_space_permissionsList 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_spaceCreate 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_adminsGet 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_adminsReplace 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_spaceUpdate 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_membersIdempotently 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_membersIdempotently 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_ownersReplace 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_membersReplace 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_membersIdempotently 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_membersIdempotently 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_statusDiscover 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_categoriesList tag/label categories in the workspace. Categories group labels (e.g., 'Priority Labels', 'Type Labels'). Omit targetClass to include all classes.
create_tag_categoryCreate 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_categoryUpdate a tag/label category. Accepts category ID or label name. Only provided fields are modified.
delete_tag_categoryPermanently 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_tagsList 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_tagCreate 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_tagUpdate a generic Huly tag definition. The tag argument accepts a tag ID or exact title, resolved within targetClass.
delete_tagDelete 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_tagsList generic Huly TagReference rows attached to one raw object collection. Prefer module tools for issues, documents, Planner ToDos, board cards, and recruiting
attach_tagAttach 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_tagDetach 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_typesList 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_typeInspect 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_typesList 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_typeAdd 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_statusAdd 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_projectsList test management projects. Returns test projects sorted by name. These are separate from tracker projects.
list_test_suitesList test suites in a test project. Accepts project ID or name. Optional parent filter for nested suites.
get_test_suiteGet a single test suite by ID or name within a test project. Returns suite details and test case count.
create_test_suiteCreate 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_suiteUpdate a test suite. Accepts suite ID or name. Only provided fields are modified.
delete_test_suitePermanently delete a test suite. Accepts suite ID or name. This action cannot be undone.
list_test_casesList test cases in a test project. Optional filters: suite (ID or name), assignee (name or email).
get_test_caseGet a single test case by ID or name within a test project.
create_test_caseCreate 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_caseUpdate 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_casePermanently delete a test case. Accepts test case ID or name. This action cannot be undone.
list_test_plansList test plans in a test management project. Returns plan names and IDs. Requires project ID or name.
get_test_planGet test plan details including its items (test cases). Accepts plan ID or name within a project.
create_test_planCreate 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_planUpdate 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_planPermanently delete a test plan. This does not delete associated test runs. Cannot be undone.
add_test_plan_itemAdd 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_itemRemove a test case from a test plan by item ID. Get item IDs from get_test_plan.
list_test_runsList test runs in a test management project. Returns run names, IDs, and due dates.
get_test_runGet test run details including all results. Accepts run ID or name within a project.
create_test_runCreate 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_runUpdate 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_runPermanently delete a test run. This does not delete associated test results. Cannot be undone.
list_test_resultsList test results in a test run. Returns result names, statuses, and assignees.
get_test_resultGet test result details. Accepts result ID or name.
create_test_resultCreate a test result in a run. Resolves test case by ID or name. Status defaults to 'untested'.
update_test_resultUpdate 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_resultPermanently delete a test result. Cannot be undone.
run_test_planExecute 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_statusesList 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_viewsList 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_viewGet 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_viewletsList 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_floorsList virtual office floors.
get_office_floorGet one virtual office floor by floorId.
create_office_floorCreate one durable virtual-office Floor with a nonblank name. Returns the generated floorId immediately. Floor rename and deletion are intentionally unavailable
list_office_roomsList virtual office rooms, including access mode, type, floor, floor-plan position/size, language, and recording/transcription defaults.
get_office_roomGet one virtual office room by roomId, including description when readable.
create_office_roomCreate 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_roomUpdate one durable Room or Office by roomId. Accepts only name, Markdown description, access, startWithTranscription, and startWithRecording. Personal offices r
list_officesList personal office rooms and their assigned people when readable.
get_officeGet one personal office room by roomId, including assigned person and description when readable.
list_active_room_infoList transient active room occupancy summaries.
list_active_room_participantsList transient active virtual-office participants and positions, optionally filtered by roomId.
list_meeting_minutesList meeting notes/transcript records (minutes) by optional attachment target and created-on range.
get_meeting_minutesGet one meeting notes/transcript record (minutes) by meetingMinutesId, including description when readable.
list_device_preferencesList readable virtual-office media device preferences.
list_office_defaultsList room-level language, default recording, and default transcription settings.
list_workbench_applicationsList read-only Huly Workbench application model declarations by exact URL alias or case-insensitive alias substring. Returns untranslated labelId values, static
list_workflow_statusesList 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_statusGet 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_statusCreate 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_statusUpdate 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_statusPermanently delete an unreferenced generic workflow Status by ID or exact name. Refuses deletion while any StatusCategory default, ProjectType, TaskType, or tas
list_status_categoriesList generic Huly StatusCategory records, optionally filtered by status attribute ID or exact name. Returns each category's resolved attribute, default status,
get_status_categoryGet 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_categoryCreate 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_categoryUpdate 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_categoryPermanently delete an unreferenced generic StatusCategory by ID or exact label. Refuses deletion while any Status references the category, preventing dangling r

How to install the Huly MCP Server

{
  "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.

Configuration

VariableDescriptionRequired
HULY_URLDeclared in the maintainer’s client configuration.Check documentation
HULY_TOKENDeclared in the maintainer’s client configuration.Check documentation
HULY_WORKSPACEDeclared in the maintainer’s client configuration.Check documentation

Example prompts to try

  • “Use Huly MCP to list tool categories.”
  • “Use Huly MCP to search tools.”
  • “Use Huly MCP to get tool schema.”

Frequently asked questions

Huly MCP: feature-complete MCP server for Huly integration Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.