Huly

MCP server for Huly project management system

@firfi/huly-mcp

npm npm downloads License: MIT TypeScript MCP Server cooked at Monadical

MCP server for Huly integration.

Installation

The standard configuration works with most MCP clients:

{
  "mcpServers": {
    "huly": {
      "command": "npx",
      "args": ["-y", "@firfi/huly-mcp@latest"],
      "env": {
        "HULY_URL": "https://huly.app",
        "HULY_EMAIL": "your@email.com",
        "HULY_PASSWORD": "yourpassword",
        "HULY_WORKSPACE": "yourworkspace"
      }
    }
  }
}
claude mcp add huly \
  -e HULY_URL=https://huly.app \
  -e HULY_EMAIL=your@email.com \
  -e HULY_PASSWORD=yourpassword \
  -e HULY_WORKSPACE=yourworkspace \
  -- npx -y @firfi/huly-mcp@latest

Or add to ~/.claude.json using the standard config above.

Add the standard config to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add to your user settings (.vscode/mcp.json) or use Command Palette → "MCP: Add Server":

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

Add the standard config to ~/.cursor/mcp.json, or via Settings → Tools & Integrations → New MCP Server.

Add the standard config to your Windsurf MCP configuration file.

HTTP Transport

By default, the server uses stdio transport. For HTTP transport (Streamable HTTP):

HULY_URL=https://huly.app \
HULY_EMAIL=your@email.com \
HULY_PASSWORD=yourpassword \
HULY_WORKSPACE=yourworkspace \
MCP_TRANSPORT=http \
npx -y @firfi/huly-mcp@latest

Server listens on http://127.0.0.1:3000/mcp by default.

Configure with MCP_HTTP_PORT and MCP_HTTP_HOST:

MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-mcp@latest

Environment Variables

VariableRequiredDescription
HULY_URLYesHuly instance URL
HULY_EMAILAuth*Account email
HULY_PASSWORDAuth*Account password
HULY_TOKENAuth*API token (alternative to email/password)
HULY_WORKSPACEYesWorkspace identifier
HULY_CONNECTION_TIMEOUTNoConnection timeout in ms (default: 30000)
MCP_TRANSPORTNoTransport type: stdio (default) or http
MCP_HTTP_PORTNoHTTP server port (default: 3000)
MCP_HTTP_HOSTNoHTTP server host (default: 127.0.0.1)
TOOLSETSNoComma-separated tool categories to expose. If unset, all tools are exposed. Example: issues,projects,search

*Auth: Provide either HULY_EMAIL + HULY_PASSWORD or HULY_TOKEN.

Available Tools

TOOLSETS categories: projects, issues, comments, milestones, documents, storage, attachments, contacts, channels, calendar, time tracking, search, activity, notifications, workspace

Projects

ToolDescription
list_projectsList all Huly projects. Returns projects sorted by name. Supports filtering by archived status.

Issues

ToolDescription
list_issuesQuery Huly issues with optional filters. Returns issues sorted by modification date (newest first). Supports filtering by project, status, assignee, and milestone. Supports searching by title substring (titleSearch) and description content (descriptionSearch).
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. Description supports markdown formatting. Returns the created issue identifier.
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.
delete_issuePermanently delete a Huly issue. This action cannot be undone.
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. Use this to view template content and default values.
create_issue_templateCreate a new issue template in a Huly project. Templates define default values for new issues. Returns the created template ID and title.
create_issue_from_templateCreate a new issue from a template. Applies template defaults, allowing overrides for specific fields. Returns the created issue identifier.
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.

Comments

ToolDescription
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.
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.

Milestones

ToolDescription
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.

Documents

ToolDescription
list_teamspacesList all Huly document teamspaces. Returns teamspaces sorted by name. Supports filtering by archived status.
list_documentsList documents in a Huly teamspace. Returns documents sorted by modification date (newest first). Supports searching by title substring (titleSearch) and content (contentSearch).
get_documentRetrieve full details for a Huly document including markdown content. Use this to view document content and metadata.
create_documentCreate a new document in a Huly teamspace. Content supports markdown formatting. Returns the created document id.
update_documentUpdate fields on an existing Huly document. Only provided fields are modified. Content updates support markdown.
delete_documentPermanently delete a Huly document. This action cannot be undone.

Storage

ToolDescription
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 blob ID and URL for referencing the file.

Attachments

ToolDescription
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 and download URL.
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.

Contacts

ToolDescription
list_personsList all persons in the Huly workspace. Returns persons sorted by modification date (newest first). Supports searching by name substring (nameSearch) and email substring (emailSearch).
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. Returns the created organization ID.

Channels

ToolDescription
list_channelsList all Huly channels. Returns channels sorted by name. Supports filtering by archived status. Supports searching by name substring (nameSearch) and topic substring (topicSearch).
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.
list_direct_messagesList direct message conversations in Huly. Returns conversations sorted by date (newest first).
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.

Calendar

ToolDescription
list_eventsList calendar events. Returns events sorted by date. Supports filtering by date range.
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. Returns the created event ID.
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. Returns the created event ID.
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 info (extra lookups).

Time Tracking

ToolDescription
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.

Search

ToolDescription
fulltext_searchPerform a global fulltext search across all Huly content. Searches issues, documents, messages, and other indexed content. Returns matching items sorted by relevance (newest first).

Activity

ToolDescription
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.

Notifications

ToolDescription
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.

Workspace

ToolDescription
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.
get_regionsGet available regions for workspace creation. Returns region codes and display names.

Related Servers