Huly Mcp MCP Server

MCP server for Huly integration — 209 tools across 23 categories (issues, projects, tasks, comments, documents, cards, channels, calendar, time tracking, test management, processes, custom fields…

Local serverstdioMIT

What is the Huly Mcp Server?

Huly Mcp is an MCP project maintained in the dugynoo/huly-mcp repository. The maintainer describes its purpose as “MCP server for Huly integration — 209 tools across 23 categories (issues, projects, tasks, comments, documents, cards, channels, calendar, time tracking, test management, processes, custom…”. Read the project documentation for the complete scope.

Installation

The documented npm package is @dugynoo/huly-mcp. The configuration below comes from the maintainer’s example; adapt its paths and account values to your environment.

Configuration values

The example declares HULY_URL, HULY_EMAIL, HULY_PASSWORD, HULY_WORKSPACE. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

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
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 category info. Returns status name, isDone, isCanceled, and isDefault flags. Use this to discover valid…
create_projectCreate a new Huly tracker project. Idempotent: returns existing project if one with the same identifier already exists (created=false). Identifier must be…
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…
list_issuesQuery Huly issues with optional filters. Returns issues sorted by modification date (newest first). Supports filtering by project, status, assignee, component,
get_issueRetrieve full details for a Huly issue including markdown description. Use this to view issue content, comments, or full metadata.
create_issueCreate a new issue in a Huly project. Optionally create as a sub-issue by specifying parentIssue. Description supports markdown formatting. Returns the created
update_issueUpdate fields on an existing Huly issue. Only provided fields are modified. Description updates support markdown.
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 to a new parent (making it a sub-issue) or to top-level (null). Updates parent/child relationships and sub-issue counts.
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. Returns the created component ID and label.
update_componentUpdate fields on an existing Huly component. Only provided fields are modified.
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_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…
create_issue_templateCreate a new issue template in a Huly project. Templates define default values for new issues. Optionally include children (sub-task templates) that will…
create_issue_from_templateCreate a new issue from a template. Applies template defaults, allowing overrides for specific fields. If the template has children (sub-task templates)…
update_issue_templateUpdate fields on an existing Huly issue template. Only provided fields are modified.
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. Returns…
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…
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…
list_issue_relationsList all relations of an issue. Returns blockedBy (issues blocking this one), relations (bidirectional issue links), and documents (linked documents with…
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…
unlink_document_from_issueRemove a document link from an issue. Idempotent: no-op if the document is not linked.
list_commentsList comments on a Huly issue. Returns comments sorted by creation date (oldest first). Comments with thread replies include them in a replies array (oldest…
add_commentAdd a comment to a Huly issue. Comment body supports markdown formatting.
update_commentUpdate an existing comment on a Huly issue. Comment body supports markdown formatting.
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. Returns the created milestone ID and label.
update_milestoneUpdate fields on an existing Huly milestone. Only provided fields are modified.
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_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…
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…
create_documentCreate a new document in a Huly teamspace. Content supports full markdown including native Mermaid diagrams (mermaid blocks render interactively in Huly UI).…
edit_documentEdit an existing Huly document. Two content modes (mutually exclusive): (1) 'content' for full replace, (2) 'old_text' + 'new_text' for targeted…
list_inline_commentsList inline comment threads from a Huly document. Extracts comments embedded in document content as ProseMirror marks. Each comment includes the highlighted…
delete_documentPermanently delete a Huly document. This action cannot be undone.
upload_fileUpload a file to Huly storage. Provide ONE of: filePath (local file - preferred), fileUrl (fetch from URL), or data (base64 - for small files only). Returns…
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 of: filePath (local file - preferred), fileUrl (fetch from URL), or data (base64). Returns the attachment ID…
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).
add_issue_attachmentAdd an attachment to a Huly issue. Convenience method that finds the issue by project and identifier. Provide ONE of: filePath, fileUrl, or data.
add_document_attachmentAdd an attachment to a Huly document. Convenience method that finds the document by teamspace and title/ID. Provide ONE of: filePath, fileUrl, or data.
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_employeesList employees (persons who are team members). Returns employees sorted by modification date (newest first).
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…
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…
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…
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…
add_organization_channelAdd a contact channel (phone, email, website/homepage, LinkedIn, Twitter, GitHub, Facebook, Telegram) to an organization identified by ID or exact unique name.
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.…
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…
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…
list_channelsList all Huly channels. Returns channels sorted by name. Supports filtering by archived status. Supports searching by name substring (nameSearch) and topic…
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.
list_channel_messagesList messages in a Huly channel. Returns messages sorted by date (newest first).
send_channel_messageSend a message to a Huly channel. Message body supports markdown formatting.
update_channel_messageUpdate a channel message. Only the body can be modified.
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).…
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…
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…
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…
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…
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.
update_thread_replyUpdate a thread reply. Only the body can be modified.
delete_thread_replyPermanently delete a thread reply. This action cannot be undone.
list_eventsList calendar events. Returns events sorted by date. 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
get_eventRetrieve full details for a calendar event including description. Use this to view event content and metadata.
create_eventCreate a new calendar event. Description supports markdown formatting. Optional calendarId targets a specific calendar; when omitted, the event uses the…
update_eventUpdate fields on an existing calendar event. Only provided fields are modified. Description updates support markdown.
delete_eventPermanently delete a calendar event. This action cannot be undone.
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. Optional calendarId targets a specific calendar; when omitted…
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. Time value is in minutes.
get_time_reportGet time tracking report for a specific Huly issue. Shows total time, estimation, remaining time, and all time entries.
list_time_spend_reportsList all time entries across issues. Supports filtering by project and date range. Returns entries sorted by date (newest first).
get_detailed_time_reportGet detailed time breakdown for a project. Shows total time grouped by issue and by employee. Supports date range filtering.
list_work_slotsList scheduled work slots. Shows planned time blocks attached to ToDos. Supports filtering by employee and date range.
create_work_slotCreate a scheduled work slot. Attaches a time block to a ToDo for planning purposes.
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.
dedup_planner_todosRemove duplicate Planner ToDo items that the Huly server sometimes creates more than once per issue
fulltext_searchPerform a global fulltext search across all Huly content. Searches issues, documents, messages, and other indexed content. Returns matching items sorted by…
list_activityList activity messages for a Huly object. Returns activity sorted by date (newest first).
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_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.
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.
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.
pin_notification_contextPin or unpin a notification context. Pinned contexts are highlighted in the inbox.
list_notification_settingsList notification provider settings. Returns current notification preferences.
update_notification_provider_settingUpdate notification provider setting. Enable or disable notifications for a specific provider.
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. Defaults to 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_associationsList Huly Association definitions in the workspace. Each Association is a typed link between two document classes (e.g. Person ↔ Organization with…
create_associationCreate a new Huly Association between two document classes. Idempotent: returns existing association if one already exists with the same (classA, classB…
list_relationsList Huly Relations — concrete links between documents. Filter by association (ID), docA (source document ID), or docB (target document ID).
create_relationLink two documents through an existing Association. Idempotent: returns existing relation if one already connects (docA, docB) via the same association.
delete_relationRemove a Relation between two documents. Idempotent: returns deleted=false if the relation no longer exists.
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…
get_cardRetrieve full details for a Huly card including markdown content. Use this to view card content and metadata.
create_cardCreate a new card in a Huly card space. Requires a master tag (card type). Content supports markdown formatting. Returns the created card id.
update_cardUpdate fields on an existing Huly card. Only provided fields are modified. Content updates support markdown.
delete_cardPermanently delete a Huly card. This action cannot be undone.
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…
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 auto-parsed: numbers from…
list_labelsList label/tag definitions in the workspace. Labels are global (not project-scoped). Returns labels for tracker issues sorted by modification date (newest…
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…
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_funnelsList all Huly sales funnels (lead pipelines). Returns each funnel's stable ID and display name, sorted by name. Supports filtering by archived status.
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…
get_leadRetrieve full details for a Huly lead including markdown description, customer name, funnel ID and funnel name, and status. Lead identifiers follow the…
list_processesList Huly Process definitions in the workspace. Each Process is a workflow attached to a card class (master tag). Optionally filter by masterTag to find…
get_processFetch a single Huly Process definition by ID or display name. Returns name, description, master tag, and start/automation flags. Read-only.
list_executionsList Process Executions — live or completed workflow runs against specific cards. Filter by process (ID or name), card (card ID), or status…
start_processStart a new Process execution against a card. Resolves the process by ID or display name and creates an active Execution at the first workflow state (lowest…
cancel_executionCancel an in-flight Process execution by setting its status to 'cancelled'. Idempotent — already-cancelled executions return cancelled=false.
list_tag_categoriesList tag/label categories in the workspace. Categories group labels (e.g., 'Priority Labels', 'Type Labels'). Optional targetClass filter (defaults to all).
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…
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…
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.…
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…
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 backlog, todo, active, done, or
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. Requires project and suite. Defaults: type=functional, priority=medium, status=draft.
update_test_caseUpdate a test case. Accepts test case ID or name. Only provided fields are modified. Set assignee to null to unassign.
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. Idempotent: returns existing plan if one with the same name exists (created=false).
update_test_planUpdate a test plan's name or description. Only provided fields are modified. Pass description=null to clear.
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. For bulk creation from a plan, use run_test_plan instead.
update_test_runUpdate a test run's name, description, or due date. Only provided fields are modified. Pass null to clear optional fields.
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. Status values: untested, blocked, passed, failed.
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…
list_user_statusesList Huly user presence records — who is currently online, with their account UUID and last status change timestamp. Filter by online (true/false) or user…

How to install the Huly Mcp Server

{
  "mcpServers": {
    "huly": {
      "command": "npx",
      "args": [
        "-y",
        "@dugynoo/huly-mcp@latest"
      ],
      "env": {
        "HULY_URL": "https://huly.app",
        "HULY_EMAIL": "your@email.com",
        "HULY_PASSWORD": "YOUR_HULY_PASSWORD",
        "HULY_WORKSPACE": "yourworkspace"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
HULY_URLDeclared in the maintainer’s client configuration.Yes
HULY_EMAILDeclared in the maintainer’s client configuration.Check documentation
HULY_PASSWORDDeclared in the maintainer’s client configuration.Check documentation
HULY_WORKSPACEDeclared in the maintainer’s client configuration.Yes