CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Huly Mcp

varaprasadreddy9676/huly-mcp
480 toolsauthSTDIOregistry active
Summary

Connects Claude directly to your Huly workspace via 36 tools spanning the full platform API. You get project and issue CRUD with status, priority, and assignee updates, plus comment threads, time logging, and labels. It also handles milestones, components, issue relations (blocked-by, parent/child), and teamspace documents with Markdown support and issue linking. Auth runs through an email one-time code setup wizard that writes your token to the env file. Useful when you're already in Huly for project management and want to create issues, update sprints, or draft technical documents without leaving your AI chat. Works across Claude Desktop, Cursor, Windsurf, Cline, Continue, and Zed using standard stdio transport.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

80 tools
get_versionReturns the current version of this Huly MCP server and the latest version available on npm.

Returns the current version of this Huly MCP server and the latest version available on npm.

No parameter schema in public metadata yet.

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

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

Parameters* required
limitinteger
Maximum number of projects to return (default: 50)
includeArchivedboolean
Include archived projects in results (default: false, showing only active)
get_projectGet full details of a Huly project including its statuses. Returns project name, description, archived flag, default status, and all available statuses.1 params

Get full details of a Huly project including its statuses. Returns project name, description, archived flag, default status, and all available statuses.

Parameters* required
projectstring
a string that will be trimmed
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 statuses before creating or updating issues.1 params

List all issue statuses for a Huly project with category info. Returns status name, isDone, isCanceled, and isDefault flags. Use this to discover valid statuses before creating or updating issues.

Parameters* required
projectstring
a string that will be trimmed
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 uppercase alphanumeric chars starting with a letter.4 params

Create a new Huly tracker project. Idempotent: returns existing project if one with the same identifier already exists (created=false). Identifier must be 1-5 uppercase alphanumeric chars starting with a letter.

Parameters* required
namestring
a string that will be trimmed
privateboolean
Whether project is private (default: false)
identifierstring
Unique project identifier, 1-5 uppercase alphanumeric chars starting with letter (e.g., 'HULY', 'QA')
descriptionstring
Project description
update_projectUpdate a Huly project. Only provided fields are modified. Set description to null to clear it.3 params

Update a Huly project. Only provided fields are modified. Set description to null to clear it.

Parameters* required
namestring
a string that will be trimmed
projectstring
a string that will be trimmed
descriptionvalue
New description (null to clear)
delete_projectPermanently delete a Huly project. All issues, milestones, and components in this project will be orphaned. This action cannot be undone.1 params

Permanently delete a Huly project. All issues, milestones, and components in this project will be orphaned. This action cannot be undone.

Parameters* required
projectstring
a string that will be trimmed
list_issuesQuery Huly issues with optional filters. Returns issues sorted by modification date (newest first). Supports filtering by project, status, assignee, component, and parentIssue (to list children of a specific issue). Supports searching by title substring (titleSearch) and descr...13 params

Query Huly issues with optional filters. Returns issues sorted by modification date (newest first). Supports filtering by project, status, assignee, component, and parentIssue (to list children of a specific issue). Supports searching by title substring (titleSearch) and descr...

Parameters* required
limitinteger
Maximum number of issues to return (default: 50)
statusstring
a string that will be trimmed
projectstring
a string that will be trimmed
assigneevalue
Filter by assignee email or display name
componentstring
a string that will be trimmed
hasDueDateboolean
Filter by due date presence. true = only issues with a due date, false = only issues without.
isTopLevelboolean
When true, only return top-level issues (not sub-issues). false or omitted returns all issues.
titleRegexstring
Filter issues by title using a regex pattern (e.g., '^BUG'). Mutually exclusive with titleSearch. Note: regex support depends on the Huly backend; use titleSearch for broader compatibility.
hasAssigneeboolean
Filter by assignee presence. true = only assigned issues, false = only unassigned issues.
parentIssuestring
a string that will be trimmed
titleSearchstring
Search issues by title substring (case-insensitive). Mutually exclusive with titleRegex.
hasComponentboolean
Filter by component presence. true = only issues with a component, false = only issues without.
descriptionSearchstring
Search issues by description content (fulltext search)
get_issueRetrieve full details for a Huly issue including markdown description. Use this to view issue content, comments, or full metadata.2 params

Retrieve full details for a Huly issue including markdown description. Use this to view issue content, comments, or full metadata.

Parameters* required
projectstring
a string that will be trimmed
identifierstring
a string that will be trimmed
create_issueCreate a new issue in a Huly project. Optionally set taskType by ID or display name; it is resolved within the target project's project type, and status is validated against that task type's workflow. Use list_task_types or get_project_type to discover valid task types and sta...10 params

Create a new issue in a Huly project. Optionally set taskType by ID or display name; it is resolved within the target project's project type, and status is validated against that task type's workflow. Use list_task_types or get_project_type to discover valid task types and sta...

Parameters* required
titlestring
a string that will be trimmed
statusstring
a string that will be trimmed
dueDatevalue
Due date as Unix timestamp in milliseconds (e.g., 1719792000000 for 2024-07-01), or null to clear
projectstring
a string that will be trimmed
assigneevalue
Assignee email address or display name
prioritystring
one of urgent · high · medium · low · no-priority
taskTypestring
a string that will be trimmed
estimationnumber
Time estimation in minutes
descriptionstring
Issue description (markdown supported)
parentIssuestring
a string that will be trimmed
update_issueUpdate fields on an existing Huly issue. Optionally set taskType by ID or display name; it is resolved within the target project's project type, and the status is preserved only when valid for the new task type. Use list_task_types or get_project_type to discover valid task ty...10 params

Update fields on an existing Huly issue. Optionally set taskType by ID or display name; it is resolved within the target project's project type, and the status is preserved only when valid for the new task type. Use list_task_types or get_project_type to discover valid task ty...

Parameters* required
titlestring
a string that will be trimmed
statusstring
a string that will be trimmed
dueDatevalue
Due date as Unix timestamp in milliseconds (e.g., 1719792000000 for 2024-07-01), or null to clear
projectstring
a string that will be trimmed
assigneevalue
New assignee email or display name (null to unassign)
prioritystring
one of urgent · high · medium · low · no-priority
taskTypestring
a string that will be trimmed
estimationvalue
Time estimation in minutes, or null to clear
identifierstring
a string that will be trimmed
descriptionstring
New issue description (markdown supported)
add_issue_labelAdd a tag/label to a Huly issue. Creates the tag if it doesn't exist in the project.4 params

Add a tag/label to a Huly issue. Creates the tag if it doesn't exist in the project.

Parameters* required
colorinteger
Color code (0-9, default: 0)
labelstring
a string that will be trimmed
projectstring
a string that will be trimmed
identifierstring
a string that will be trimmed
remove_issue_labelRemove a tag/label from a Huly issue. Detaches the label reference; does not delete the label definition.3 params

Remove a tag/label from a Huly issue. Detaches the label reference; does not delete the label definition.

Parameters* required
labelstring
a string that will be trimmed
projectstring
a string that will be trimmed
identifierstring
a string that will be trimmed
delete_issuePermanently delete a Huly issue. This action cannot be undone.2 params

Permanently delete a Huly issue. This action cannot be undone.

Parameters* required
projectstring
a string that will be trimmed
identifierstring
a string that will be trimmed
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.3 params

Move an issue to a new parent (making it a sub-issue) or to top-level (null). Updates parent/child relationships and sub-issue counts.

Parameters* required
projectstring
a string that will be trimmed
newParentvalue
New parent issue identifier, or null to make top-level
identifierstring
a string that will be trimmed
list_componentsList components in a Huly project. Components organize issues by area/feature. Returns components sorted by modification date (newest first).2 params

List components in a Huly project. Components organize issues by area/feature. Returns components sorted by modification date (newest first).

Parameters* required
limitinteger
Maximum number of components to return (default: 50)
projectstring
a string that will be trimmed
get_componentRetrieve full details for a Huly component. Use this to view component content and metadata.2 params

Retrieve full details for a Huly component. Use this to view component content and metadata.

Parameters* required
projectstring
a string that will be trimmed
componentstring
a string that will be trimmed
create_componentCreate a new component in a Huly project. Components help organize issues by area/feature. Returns the created component ID and label.4 params

Create a new component in a Huly project. Components help organize issues by area/feature. Returns the created component ID and label.

Parameters* required
leadvalue
Lead person email address or display name
labelstring
a string that will be trimmed
projectstring
a string that will be trimmed
descriptionstring
Component description (markdown supported)
update_componentUpdate fields on an existing Huly component. Only provided fields are modified.5 params

Update fields on an existing Huly component. Only provided fields are modified.

Parameters* required
leadvalue
New lead person email or display name (null to unassign)
labelstring
a string that will be trimmed
projectstring
a string that will be trimmed
componentstring
a string that will be trimmed
descriptionstring
New component description (markdown supported)
set_issue_componentSet or clear the component on a Huly issue. Pass null for component to clear it.3 params

Set or clear the component on a Huly issue. Pass null for component to clear it.

Parameters* required
projectstring
a string that will be trimmed
componentvalue
Component ID or label (null to clear)
identifierstring
a string that will be trimmed
delete_componentPermanently delete a Huly component. This action cannot be undone.2 params

Permanently delete a Huly component. This action cannot be undone.

Parameters* required
projectstring
a string that will be trimmed
componentstring
a string that will be trimmed
list_issue_templatesList issue templates in a Huly project. Templates define reusable issue configurations. Returns templates sorted by modification date (newest first).2 params

List issue templates in a Huly project. Templates define reusable issue configurations. Returns templates sorted by modification date (newest first).

Parameters* required
limitinteger
Maximum number of templates to return (default: 50)
projectstring
a string that will be trimmed
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 IDs.2 params

Retrieve full details for a Huly issue template including children (sub-task templates). Use this to view template content, default values, and child template IDs.

Parameters* required
projectstring
a string that will be trimmed
templatestring
a string that will be trimmed
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 become sub-issues when creating issues from this template. Returns the created template ID and title.8 params

Create a new issue template in a Huly project. Templates define default values for new issues. Optionally include children (sub-task templates) that will become sub-issues when creating issues from this template. Returns the created template ID and title.

Parameters* required
titlestring
a string that will be trimmed
projectstring
a string that will be trimmed
assigneevalue
Default assignee email address or display name
childrenarray
Child (sub-task) templates to include
prioritystring
one of urgent · high · medium · low · no-priority
componentstring
a string that will be trimmed
estimationnumber
Default estimation in minutes
descriptionstring
Template description (markdown supported)
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), sub-issues are created automatically unless includeChildren is set to false. Returns the created issue identifier and count...8 params

Create a new issue from a template. Applies template defaults, allowing overrides for specific fields. If the template has children (sub-task templates), sub-issues are created automatically unless includeChildren is set to false. Returns the created issue identifier and count...

Parameters* required
titlestring
a string that will be trimmed
statusstring
a string that will be trimmed
projectstring
a string that will be trimmed
assigneevalue
Override assignee email or display name
prioritystring
one of urgent · high · medium · low · no-priority
templatestring
a string that will be trimmed
descriptionstring
Override description (uses template description if not specified)
includeChildrenboolean
Whether to create sub-issues from template children (default: true)
update_issue_templateUpdate fields on an existing Huly issue template. Only provided fields are modified.8 params

Update fields on an existing Huly issue template. Only provided fields are modified.

Parameters* required
titlestring
a string that will be trimmed
projectstring
a string that will be trimmed
assigneevalue
New default assignee email or display name (null to unassign)
prioritystring
one of urgent · high · medium · low · no-priority
templatestring
a string that will be trimmed
componentvalue
New default component ID or label (null to clear)
estimationnumber
New default estimation in minutes
descriptionstring
New template description (markdown supported)
delete_issue_templatePermanently delete a Huly issue template. This action cannot be undone.2 params

Permanently delete a Huly issue template. This action cannot be undone.

Parameters* required
projectstring
a string that will be trimmed
templatestring
a string that will be trimmed
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 the child template ID.8 params

Add a child (sub-task) template to an issue template. The child defines default values for sub-issues created when using create_issue_from_template. Returns the child template ID.

Parameters* required
titlestring
a string that will be trimmed
projectstring
a string that will be trimmed
assigneevalue
Child default assignee email or display name
prioritystring
one of urgent · high · medium · low · no-priority
templatestring
a string that will be trimmed
componentstring
a string that will be trimmed
estimationnumber
Child default estimation in minutes
descriptionstring
Child template description
remove_template_childRemove a child (sub-task) template from an issue template by its child ID. Get child IDs from get_issue_template response.3 params

Remove a child (sub-task) template from an issue template by its child ID. Get child IDs from get_issue_template response.

Parameters* required
childIdstring
a string that will be trimmed
projectstring
a string that will be trimmed
templatestring
a string that will be trimmed
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 target — pushes into source's blockedBy), 'relates-to' (bidirectional link — updates both sides). targetIssue accepts cros...4 params

Add a relation between two issues. Relation types: 'blocks' (source blocks target — pushes into target's blockedBy), 'is-blocked-by' (source is blocked by target — pushes into source's blockedBy), 'relates-to' (bidirectional link — updates both sides). targetIssue accepts cros...

Parameters* required
projectstring
a string that will be trimmed
targetIssuestring
a string that will be trimmed
relationTypestring
one of blocks · is-blocked-by · relates-to
issueIdentifierstring
a string that will be trimmed
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, 'relates-to' pulls from both sides. No-op if the relation doesn't exist.4 params

Remove a relation between two issues. Mirrors add_issue_relation: 'blocks' pulls from target's blockedBy, 'is-blocked-by' pulls from source's blockedBy, 'relates-to' pulls from both sides. No-op if the relation doesn't exist.

Parameters* required
projectstring
a string that will be trimmed
targetIssuestring
a string that will be trimmed
relationTypestring
one of blocks · is-blocked-by · relates-to
issueIdentifierstring
a string that will be trimmed
list_issue_relationsList all relations of an issue. Returns blockedBy (issues blocking this one), blocks (issues this one blocks), relations (bidirectional issue links), and documents (linked documents with title/teamspace).2 params

List all relations of an issue. Returns blockedBy (issues blocking this one), blocks (issues this one blocks), relations (bidirectional issue links), and documents (linked documents with title/teamspace).

Parameters* required
projectstring
a string that will be trimmed
issueIdentifierstring
a string that will be trimmed
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_relations to see linked documents.4 params

Link a Huly document to an issue. The link appears in the issue's Relations panel in the UI. Idempotent: no-op if the document is already linked. Use list_issue_relations to see linked documents.

Parameters* required
projectstring
a string that will be trimmed
documentstring
a string that will be trimmed
teamspacestring
a string that will be trimmed
issueIdentifierstring
a string that will be trimmed
unlink_document_from_issueRemove a document link from an issue. Idempotent: no-op if the document is not linked.4 params

Remove a document link from an issue. Idempotent: no-op if the document is not linked.

Parameters* required
projectstring
a string that will be trimmed
documentstring
a string that will be trimmed
teamspacestring
a string that will be trimmed
issueIdentifierstring
a string that will be trimmed
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).2 params

List label/tag definitions in the workspace. Labels are global (not project-scoped). Returns labels for tracker issues sorted by modification date (newest first).

Parameters* required
limitinteger
Maximum number of labels to return (default: 50)
categorystring
a string that will be trimmed
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 already exists (created=false). Use add_issue_label to attach a label to a specific issue.4 params

Create a new label/tag definition in the workspace. Labels are global and can be attached to any issue. Returns existing label if one with the same title already exists (created=false). Use add_issue_label to attach a label to a specific issue.

Parameters* required
colorinteger
Color code (0-9, default: 0)
titlestring
a string that will be trimmed
categorystring
a string that will be trimmed
descriptionstring
Label description
update_labelUpdate a label/tag definition. Accepts label ID or title. Only provided fields are modified.4 params

Update a label/tag definition. Accepts label ID or title. Only provided fields are modified.

Parameters* required
colorinteger
New color code (0-9)
labelstring
a string that will be trimmed
titlestring
a string that will be trimmed
descriptionstring
New label description
delete_labelPermanently delete a label/tag definition. Accepts label ID or title. This action cannot be undone.1 params

Permanently delete a label/tag definition. Accepts label ID or title. This action cannot be undone.

Parameters* required
labelstring
a string that will be trimmed
list_tag_categoriesList tag/label categories in the workspace. Categories group labels (e.g., 'Priority Labels', 'Type Labels'). Optional targetClass filter (defaults to all).2 params

List tag/label categories in the workspace. Categories group labels (e.g., 'Priority Labels', 'Type Labels'). Optional targetClass filter (defaults to all).

Parameters* required
limitinteger
Maximum number of categories to return (default: 50)
targetClassstring
a string that will be trimmed
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 targetClass to tracker issues.3 params

Create a new tag/label category. Idempotent: returns existing category if one with the same label and targetClass already exists (created=false). Defaults targetClass to tracker issues.

Parameters* required
labelstring
a string that will be trimmed
defaultboolean
Whether this is a default category (default: false)
targetClassstring
a string that will be trimmed
update_tag_categoryUpdate a tag/label category. Accepts category ID or label name. Only provided fields are modified.3 params

Update a tag/label category. Accepts category ID or label name. Only provided fields are modified.

Parameters* required
labelstring
a string that will be trimmed
defaultboolean
New default flag
categorystring
a string that will be trimmed
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.1 params

Permanently delete a tag/label category. Accepts category ID or label name. Labels in this category will be orphaned (not deleted). This action cannot be undone.

Parameters* required
categorystring
a string that will be trimmed
list_commentsList comments on a Huly issue. Returns comments sorted by creation date (oldest first).3 params

List comments on a Huly issue. Returns comments sorted by creation date (oldest first).

Parameters* required
limitinteger
Maximum number of comments to return (default: 50)
projectstring
a string that will be trimmed
issueIdentifierstring
a string that will be trimmed
add_commentAdd a comment to a Huly issue. Comment body supports markdown formatting.3 params

Add a comment to a Huly issue. Comment body supports markdown formatting.

Parameters* required
bodystring
a string that will be trimmed
projectstring
a string that will be trimmed
issueIdentifierstring
a string that will be trimmed
update_commentUpdate an existing comment on a Huly issue. Comment body supports markdown formatting.4 params

Update an existing comment on a Huly issue. Comment body supports markdown formatting.

Parameters* required
bodystring
a string that will be trimmed
projectstring
a string that will be trimmed
commentIdstring
a string that will be trimmed
issueIdentifierstring
a string that will be trimmed
delete_commentDelete a comment from a Huly issue. This action cannot be undone.3 params

Delete a comment from a Huly issue. This action cannot be undone.

Parameters* required
projectstring
a string that will be trimmed
commentIdstring
a string that will be trimmed
issueIdentifierstring
a string that will be trimmed
preview_deletionPreview the impact of deleting a Huly entity before actually deleting it. Shows affected sub-entities, relations, and warnings. Supports issues, projects, components, and milestones. Use this to understand cascade effects before calling a delete operation.3 params

Preview the impact of deleting a Huly entity before actually deleting it. Shows affected sub-entities, relations, and warnings. Supports issues, projects, components, and milestones. Use this to understand cascade effects before calling a delete operation.

Parameters* required
projectstring
a string that will be trimmed
entityTypestring
Type of entity: issue, project, component, milestoneone of issue · project · component · milestone
identifierstring
Entity identifier within the project. Required for issue (e.g., 'PROJ-123' or number), component (label or ID), milestone (label or ID). Ignored for entityType='project'.
list_milestonesList milestones in a Huly project. Returns milestones sorted by modification date (newest first).2 params

List milestones in a Huly project. Returns milestones sorted by modification date (newest first).

Parameters* required
limitinteger
Maximum number of milestones to return (default: 50)
projectstring
a string that will be trimmed
get_milestoneRetrieve full details for a Huly milestone. Use this to view milestone content and metadata.2 params

Retrieve full details for a Huly milestone. Use this to view milestone content and metadata.

Parameters* required
projectstring
a string that will be trimmed
milestonestring
a string that will be trimmed
create_milestoneCreate a new milestone in a Huly project. Returns the created milestone ID and label.4 params

Create a new milestone in a Huly project. Returns the created milestone ID and label.

Parameters* required
labelstring
a string that will be trimmed
projectstring
a string that will be trimmed
targetDateinteger
Target date as Unix timestamp in milliseconds
descriptionstring
Milestone description (markdown supported)
update_milestoneUpdate fields on an existing Huly milestone. Only provided fields are modified.6 params

Update fields on an existing Huly milestone. Only provided fields are modified.

Parameters* required
labelstring
a string that will be trimmed
statusstring
New milestone statusone of planned · in-progress · completed · canceled
projectstring
a string that will be trimmed
milestonestring
a string that will be trimmed
targetDateinteger
New target date as Unix timestamp in milliseconds
descriptionstring
New milestone description (markdown supported)
set_issue_milestoneSet or clear the milestone on a Huly issue. Pass null for milestone to clear it.3 params

Set or clear the milestone on a Huly issue. Pass null for milestone to clear it.

Parameters* required
projectstring
a string that will be trimmed
milestonevalue
Milestone ID or label (null to clear)
identifierstring
a string that will be trimmed
delete_milestonePermanently delete a Huly milestone. This action cannot be undone.2 params

Permanently delete a Huly milestone. This action cannot be undone.

Parameters* required
projectstring
a string that will be trimmed
milestonestring
a string that will be trimmed
list_teamspacesList all Huly document teamspaces. Returns teamspaces sorted by name. Supports filtering by archived status.2 params

List all Huly document teamspaces. Returns teamspaces sorted by name. Supports filtering by archived status.

Parameters* required
limitinteger
Maximum number of teamspaces to return (default: 50)
includeArchivedboolean
Include archived teamspaces in results (default: false, showing only active)
get_teamspaceGet details for a Huly document teamspace including document count. Finds by name or ID, including archived teamspaces.1 params

Get details for a Huly document teamspace including document count. Finds by name or ID, including archived teamspaces.

Parameters* required
teamspacestring
a string that will be trimmed
create_teamspaceCreate a new Huly document teamspace. Idempotent: returns existing teamspace if one with the same name exists.3 params

Create a new Huly document teamspace. Idempotent: returns existing teamspace if one with the same name exists.

Parameters* required
namestring
a string that will be trimmed
privateboolean
Whether the teamspace is private (default: false)
descriptionstring
Teamspace description
update_teamspaceUpdate fields on an existing Huly document teamspace. Only provided fields are modified. Set description to null to clear it.4 params

Update fields on an existing Huly document teamspace. Only provided fields are modified. Set description to null to clear it.

Parameters* required
namestring
a string that will be trimmed
archivedboolean
Set archived status
teamspacestring
a string that will be trimmed
descriptionvalue
New description (null to clear)
delete_teamspacePermanently delete a Huly document teamspace. This action cannot be undone.1 params

Permanently delete a Huly document teamspace. This action cannot be undone.

Parameters* required
teamspacestring
a string that will be trimmed
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 the Huly web app. Supports searching by title substring (titleSearch) and content (contentSearch).5 params

List documents in a Huly teamspace. Returns documents sorted by modification date (newest first). Each result includes a 'url' field pointing to the document in the Huly web app. Supports searching by title substring (titleSearch) and content (contentSearch).

Parameters* required
limitinteger
Maximum number of documents to return (default: 50)
teamspacestring
a string that will be trimmed
titleRegexstring
Filter documents by title using a regex pattern (e.g., '^RFC'). Mutually exclusive with titleSearch. Note: regex support depends on the Huly backend; use titleSearch for broader compatibility.
titleSearchstring
Search documents by title substring (case-insensitive). Mutually exclusive with titleRegex.
contentSearchstring
Search documents by content (fulltext search)
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 content and metadata.2 params

Retrieve full details for a Huly document including markdown content and a 'url' field pointing to the document in the Huly web app. Use this to view document content and metadata.

Parameters* required
documentstring
a string that will be trimmed
teamspacestring
a string that will be trimmed
create_documentCreate a new document in a Huly teamspace. Content supports full markdown including native Mermaid diagrams (```mermaid blocks render interactively in Huly UI). Optionally pass parent as a document title or ID to create a nested child document; invalid parents fail instead of...4 params

Create a new document in a Huly teamspace. Content supports full markdown including native Mermaid diagrams (```mermaid blocks render interactively in Huly UI). Optionally pass parent as a document title or ID to create a nested child document; invalid parents fail instead of...

Parameters* required
titlestring
a string that will be trimmed
parentstring
a string that will be trimmed
contentstring
Document content (markdown supported)
teamspacestring
a string that will be trimmed
edit_documentEdit an existing Huly document. Two content modes (mutually exclusive): (1) 'content' for full replace, (2) 'old_text' + 'new_text' for targeted search-and-replace. Multiple matches error unless replace_all is true. Empty new_text deletes matched text. Also supports renaming v...7 params

Edit an existing Huly document. Two content modes (mutually exclusive): (1) 'content' for full replace, (2) 'old_text' + 'new_text' for targeted search-and-replace. Multiple matches error unless replace_all is true. Empty new_text deletes matched text. Also supports renaming v...

Parameters* required
titlestring
a string that will be trimmed
contentstring
Full replacement content (markdown). Mutually exclusive with old_text/new_text.
documentstring
a string that will be trimmed
new_textstring
Replacement text. Empty string deletes the matched text. Required when old_text is provided.
old_textstring
Exact text to find in the document. Must be non-empty. Mutually exclusive with content.
teamspacestring
a string that will be trimmed
replace_allboolean
Replace all occurrences of old_text (default: false). Only used with old_text/new_text.
list_inline_commentsList inline comment threads from a Huly document. Extracts comments embedded in document content as ProseMirror marks. Each comment includes the highlighted text and thread ID. Set includeReplies=true to also fetch thread reply messages with sender names.3 params

List inline comment threads from a Huly document. Extracts comments embedded in document content as ProseMirror marks. Each comment includes the highlighted text and thread ID. Set includeReplies=true to also fetch thread reply messages with sender names.

Parameters* required
documentstring
a string that will be trimmed
teamspacestring
a string that will be trimmed
includeRepliesboolean
Include thread reply messages for each inline comment (default: false)
delete_documentPermanently delete a Huly document. This action cannot be undone.2 params

Permanently delete a Huly document. This action cannot be undone.

Parameters* required
documentstring
a string that will be trimmed
teamspacestring
a string that will be trimmed
list_associationsList Huly association definitions: class-level typed links that define which document classes may be related. Use this before create_relation to discover association IDs, source/target classes, and whether relation writes are supported.6 params

List Huly association definitions: class-level typed links that define which document classes may be related. Use this before create_relation to discover association IDs, source/target classes, and whether relation writes are supported.

Parameters* required
limitinteger
Maximum number of associations to return (default: 50)
associationstring
a string that will be trimmed
sourceClassstring
a string that will be trimmed
targetClassstring
a string that will be trimmed
writableOnlyboolean
Only return associations whose relation create/delete path has been validated and allowlisted
includeSystemboolean
Include internal/system associations. Defaults to false.
list_relationsList concrete Huly relation instances under an association, optionally filtered by source and target documents. Requires at least one filter to avoid broad workspace scans.5 params

List concrete Huly relation instances under an association, optionally filtered by source and target documents. Requires at least one filter to avoid broad workspace scans.

Parameters* required
limitinteger
Maximum number of relations to return (default: 50)
sourcevalue
Optional source endpoint filter
targetvalue
Optional target endpoint filter
directionstring
Relation traversal direction: source-to-target, target-to-source, either. Defaults to source-to-target.one of source-to-target · target-to-source · either
associationstring
a string that will be trimmed
create_relationIdempotently create one concrete relation between two resolved documents. Only succeeds for associations where list_associations reports canCreateRelation=true; otherwise it fails clearly. This build currently reports no generic associations as writable until a write allowlist...4 params

Idempotently create one concrete relation between two resolved documents. Only succeeds for associations where list_associations reports canCreateRelation=true; otherwise it fails clearly. This build currently reports no generic associations as writable until a write allowlist...

Parameters* required
sourcevalue
Source endpoint document
targetvalue
Target endpoint document
ifExistsstring
return_existing (default) returns an existing relation; fail reports an existing relation as an errorone of return_existing · fail
associationstring
a string that will be trimmed
delete_relationIdempotently delete one concrete relation by relation ID or by exact association/source/target triple. Only succeeds for associations where list_associations reports canDeleteRelation=true; otherwise it fails clearly. This build currently reports no generic associations as wri...

Idempotently delete one concrete relation by relation ID or by exact association/source/target triple. Only succeeds for associations where list_associations reports canDeleteRelation=true; otherwise it fails clearly. This build currently reports no generic associations as wri...

No parameter schema in public metadata yet.

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.5 params

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

Parameters* required
datastring
Base64-encoded file data (fallback for small files <10KB)
fileUrlstring
URL to fetch file from (for remote files)
filePathstring
Local file path to upload (preferred - avoids context flooding)
filenamestring
a string that will be trimmed
contentTypestring
a string that will be trimmed
list_attachmentsList attachments on a Huly object (issue, document, etc.). Returns attachments sorted by modification date (newest first).3 params

List attachments on a Huly object (issue, document, etc.). Returns attachments sorted by modification date (newest first).

Parameters* required
limitinteger
Maximum number of attachments to return (default: 50)
objectIdstring
a string that will be trimmed
objectClassstring
a string that will be trimmed
get_attachmentRetrieve full details for a Huly attachment including download URL.1 params

Retrieve full details for a Huly attachment including download URL.

Parameters* required
attachmentIdstring
a string that will be trimmed
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.10 params

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

Parameters* required
datastring
Base64-encoded file data (fallback for small files <10KB)
spacestring
a string that will be trimmed
pinnedboolean
Whether to pin the attachment (default: false)
fileUrlstring
URL to fetch file from (for remote files)
filePathstring
Local file path to upload (preferred - avoids context flooding)
filenamestring
a string that will be trimmed
objectIdstring
a string that will be trimmed
contentTypestring
a string that will be trimmed
descriptionstring
Attachment description
objectClassstring
a string that will be trimmed
update_attachmentUpdate attachment metadata (description, pinned status).3 params

Update attachment metadata (description, pinned status).

Parameters* required
pinnedboolean
Pin or unpin the attachment
descriptionvalue
New description (null to clear)
attachmentIdstring
a string that will be trimmed
delete_attachmentPermanently delete an attachment. This action cannot be undone.1 params

Permanently delete an attachment. This action cannot be undone.

Parameters* required
attachmentIdstring
a string that will be trimmed
pin_attachmentPin or unpin an attachment.2 params

Pin or unpin an attachment.

Parameters* required
pinnedboolean
Whether to pin (true) or unpin (false)
attachmentIdstring
a string that will be trimmed
download_attachmentGet download URL for an attachment along with file metadata (name, type, size).1 params

Get download URL for an attachment along with file metadata (name, type, size).

Parameters* required
attachmentIdstring
a string that will be trimmed
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.9 params

Add an attachment to a Huly issue. Convenience method that finds the issue by project and identifier. Provide ONE of: filePath, fileUrl, or data.

Parameters* required
datastring
Base64-encoded file data (fallback for small files <10KB)
pinnedboolean
Whether to pin the attachment (default: false)
fileUrlstring
URL to fetch file from (for remote files)
projectstring
a string that will be trimmed
filePathstring
Local file path to upload (preferred - avoids context flooding)
filenamestring
a string that will be trimmed
identifierstring
a string that will be trimmed
contentTypestring
a string that will be trimmed
descriptionstring
Attachment description
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.9 params

Add an attachment to a Huly document. Convenience method that finds the document by teamspace and title/ID. Provide ONE of: filePath, fileUrl, or data.

Parameters* required
datastring
Base64-encoded file data (fallback for small files <10KB)
pinnedboolean
Whether to pin the attachment (default: false)
fileUrlstring
URL to fetch file from (for remote files)
documentstring
a string that will be trimmed
filePathstring
Local file path to upload (preferred - avoids context flooding)
filenamestring
a string that will be trimmed
teamspacestring
a string that will be trimmed
contentTypestring
a string that will be trimmed
descriptionstring
Attachment description
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).4 params

List all persons in the Huly workspace. Returns persons sorted by modification date (newest first). Supports searching by name substring (nameSearch) and email substring (emailSearch).

Parameters* required
limitinteger
Maximum number of persons to return (default: 50)
nameRegexstring
Filter persons by name using a regex pattern (e.g., '^Smith'). Mutually exclusive with nameSearch. Note: regex support depends on the Huly backend; use nameSearch for broader compatibility.
nameSearchstring
Search persons by name substring (case-insensitive). Mutually exclusive with nameRegex.
emailSearchstring
Search persons by email substring (case-insensitive)
create_personCreate a new person in Huly. Returns the created person ID.4 params

Create a new person in Huly. Returns the created person ID.

Parameters* required
citystring
City
emailvalue
Email address
lastNamestring
a string that will be trimmed
firstNamestring
a string that will be trimmed

huly-mcp-sdk

The most complete MCP server for Huly — the open-source project management platform.

Connects Claude Desktop (and any MCP-compatible client) directly to your Huly workspace. Manage projects, issues, milestones, components, documents, labels, and more — all via natural language.


Tools (36 total)

CategoryToolDescription
Projectslist_projectsList all projects in the workspace
get_projectGet project details + available statuses
create_projectCreate a new tracker project with a unique identifier
Issueslist_issuesList issues with optional status / priority filters
get_issueGet full details of an issue (e.g. PROJ-42)
create_issueCreate a new issue
update_issueUpdate title, status, priority, assignee, due date, component, milestone
delete_issuePermanently delete an issue by identifier
Commentsadd_commentAdd a comment to an issue
list_commentsList all comments on an issue (includes IDs for delete_comment)
delete_commentDelete a specific comment by ID
Time Trackinglog_timeLog hours spent on an issue
Labelslist_labelsList all labels with color + usage count
create_labelCreate a new label with an optional hex color
add_labelAdd a label to an issue (auto-creates if it doesn't exist)
remove_labelRemove a label from an issue
Relationsadd_relationMark two issues as related (bidirectional)
add_blocked_byMark an issue as blocked by another issue
set_parentSet or clear the parent epic of an issue
Memberslist_membersList workspace members
Milestoneslist_milestonesList milestones for a project
create_milestoneCreate a milestone with a target date and status
Componentslist_componentsList components (sub-areas) in a project
create_componentCreate a new component with optional lead
Documentslist_teamspacesList document teamspaces
create_teamspaceCreate a new teamspace (top-level document folder)
list_documentsList documents in a teamspace
delete_documentPermanently delete a document by ID
get_documentGet document metadata + content
create_documentCreate a new document in a teamspace
update_documentWrite Markdown content to a document — Mermaid diagrams render natively
link_documentLink a document to an issue — appears in the Relations panel
Searchsearch_issuesFull-text search across all issues

Requirements

  • Node.js >= 20
  • A Huly account — huly.app (cloud) or self-hosted

Quick Start

npx huly-mcp-sdk setup

This runs the interactive setup wizard — sends a one-time code to your email (works for Google/GitHub SSO accounts too) and writes your .env file automatically.

Your workspace slug is the part of your Huly URL after the domain: huly.app/myteam → slug is myteam.


Compatible Clients

The same MCP server works across all major AI coding tools. Pick your client.

Auth note: All config examples below use HULY_TOKEN. If you have issues with token expiry, use email + password instead — just replace the env block with:

"HULY_EMAIL": "your@email.com",
"HULY_PASSWORD": "yourpassword",
"HULY_WORKSPACE": "your-workspace-slug"

See Manual Auth for details on both options.


Claude Desktop

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "huly": {
      "command": "npx",
      "args": ["huly-mcp-sdk"],
      "env": {
        "HULY_TOKEN": "your-token",
        "HULY_WORKSPACE": "your-workspace-slug"
      }
    }
  }
}

Restart Claude Desktop after saving.


Claude Code (CLI)

claude mcp add huly -e HULY_TOKEN=your-token -e HULY_WORKSPACE=your-slug -- npx huly-mcp-sdk

Or scope it to a single project only:

claude mcp add huly --scope project -e HULY_TOKEN=your-token -e HULY_WORKSPACE=your-slug -- npx huly-mcp-sdk

Verify it's connected: claude mcp list


Cursor

Create or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "huly": {
      "command": "npx",
      "args": ["huly-mcp-sdk"],
      "env": {
        "HULY_TOKEN": "your-token",
        "HULY_WORKSPACE": "your-workspace-slug"
      }
    }
  }
}

Restart Cursor. The tools appear in the Agent panel under MCP.


Windsurf (Codeium)

Create or edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "huly": {
      "command": "npx",
      "args": ["huly-mcp-sdk"],
      "env": {
        "HULY_TOKEN": "your-token",
        "HULY_WORKSPACE": "your-workspace-slug"
      }
    }
  }
}

Restart Windsurf. MCP tools are available to the Cascade AI panel.


VS Code — Cline extension

  1. Install the Cline extension
  2. Open Cline settings → MCP Servers → Edit MCP Settings
  3. Add:
{
  "huly": {
    "command": "npx",
    "args": ["huly-mcp-sdk"],
    "env": {
      "HULY_TOKEN": "your-token",
      "HULY_WORKSPACE": "your-workspace-slug"
    }
  }
}

VS Code — Continue extension

  1. Install the Continue extension
  2. Edit ~/.continue/config.json and add to the mcpServers array:
{
  "mcpServers": [
    {
      "name": "huly",
      "command": "npx",
      "args": ["huly-mcp-sdk"],
      "env": {
        "HULY_TOKEN": "your-token",
        "HULY_WORKSPACE": "your-workspace-slug"
      }
    }
  ]
}

Zed

Edit ~/.config/zed/settings.json and add a context_servers entry:

{
  "context_servers": {
    "huly": {
      "command": {
        "path": "npx",
        "args": ["huly-mcp-sdk"],
        "env": {
          "HULY_TOKEN": "your-token",
          "HULY_WORKSPACE": "your-workspace-slug"
        }
      }
    }
  }
}

OpenAI Codex CLI

Edit ~/.codex/config.json and add to mcpServers:

{
  "mcpServers": {
    "huly": {
      "type": "stdio",
      "command": "npx",
      "args": ["huly-mcp-sdk"],
      "env": {
        "HULY_TOKEN": "your-token",
        "HULY_WORKSPACE": "your-workspace-slug"
      }
    }
  }
}

Any other MCP-compatible client

The server uses standard stdio transport. If your tool supports MCP, the config pattern is always the same:

  • command: npx
  • args: ["huly-mcp-sdk"]
  • env: HULY_TOKEN + HULY_WORKSPACE

Consult your tool's MCP documentation for the exact config file location.

Alternative (avoid npx cold-start): Clone and build once, then point directly at the compiled binary:

git clone https://github.com/varaprasadreddy9676/huly-mcp.git
cd huly-mcp && npm install && npm run build

Replace "command": "npx", "args": ["huly-mcp-sdk"] with "command": "node", "args": ["/absolute/path/to/huly-mcp/dist/index.js"] in any config above.


image

Example Prompts

Projects & issues:

  • "Create a new project called 'Mobile App' with identifier MOBILE"
  • "List all in-progress issues in the PROJ project"
  • "Create a high-priority issue in PROJ titled 'Fix login timeout'"
  • "Update PROJ-42 status to Done, assign it to Sarah, and move it to the Auth component"
  • "Search for issues related to authentication"
  • "Add a comment to PROJ-15 saying the fix is deployed"
  • "List all comments on PROJ-42 to see the discussion"

Milestones & components:

  • "Create a milestone 'v2.0 Launch' in PROJ with target date 2026-06-01"
  • "List milestones for the PROJ project"
  • "Create a component called 'Auth' in PROJ"
  • "List all components in PROJ"

Labels & relations:

  • "Add the label 'bug' to PROJ-42"
  • "Create a label called 'backend' with color #3b82f6"
  • "Mark PROJ-55 as blocked by PROJ-12"
  • "Set PROJ-42 as a subtask of PROJ-5"

Time tracking:

  • "Log 2.5 hours on PROJ-42 for the database refactor"

Documents:

  • "List all documents in the Engineering teamspace"
  • "Create a document called 'API Design' in the Engineering teamspace"
  • "Update the API Design document with this Markdown: ..."
  • "Add a Mermaid architecture diagram to the EP1 document"
  • "Link document abc123 to issue PROJ-42"
  • "Delete the second comment on PROJ-15"

Document Content

Reading: get_document

get_document always returns full metadata (title, teamspace, comments, snapshots). To also fetch and display the text content, set the optional HULY_FRONT_URL env var:

"env": {
  "HULY_TOKEN": "...",
  "HULY_WORKSPACE": "myteam",
  "HULY_FRONT_URL": "https://front.huly.app"
}

For self-hosted Huly, set HULY_FRONT_URL to your own front service URL (e.g. http://localhost:8083).

Writing: update_document

update_document accepts a documentId and a markdown string and writes rich structured content directly to the document — no manual editing required.

Supported Markdown:

ElementSyntax
Headings#, ##, ###
Bold / inline code**bold**, `code`
Paragraphsplain text
Bullet lists- item
Pipe tables| col | col |
Code blocks```lang
Mermaid diagrams```mermaid — stored as Huly's native mermaid node type so diagrams render as interactive visuals in the editor

Example:

update_document({
  documentId: "abc123",
  markdown: `# Service Flow\n\n` +
    `## Architecture\n\n` +
    "```mermaid\n" +
    "flowchart TD\n" +
    "  A([User]) --> B[Browse Catalogue]\n" +
    "  B --> C[Pay via Razorpay]\n" +
    "  C --> D[Order Confirmed]\n" +
    "```\n\n" +
    "## Business Rules\n\n" +
    "- Payment required before confirmation\n" +
    "- All orders synced to HIS\n"
})

The Mermaid block renders as a live interactive diagram in Huly's document editor — not as a code block.


Bulk CSV Import

Import many issues at once from a CSV file — useful for migrating from other tools:

node scripts/import-csv.js tasks.csv PROJ

CSV format:

title,priority,status,dueDate
Fix login bug,High,In Progress,2025-04-01
Add dark mode,Medium,,
Improve performance,Urgent,,2025-05-01

Required column: title. Optional: priority (Urgent/High/Medium/Low), status (must match a status name in the project), dueDate (YYYY-MM-DD).


Manual Auth

Create a .env file in the project root (or pass via env in your client config):

Option A — Email + password (recommended):

Works if you have a password set on your Huly account (Profile → Security → Change password).

HULY_EMAIL=your@email.com
HULY_PASSWORD=yourpassword
HULY_WORKSPACE=your-workspace-slug

Option B — Token:

HULY_WORKSPACE=your-workspace-slug
HULY_TOKEN=your-token-here

To get a token: go to huly.app → open browser DevTools → Application → Local Storage → https://huly.app → copy the token value.

Tokens expire after some time. If you get an auth error, switch to email + password auth or refresh the token from DevTools.

Self-hosted Huly:

HULY_ACCOUNTS_URL=https://your-huly-instance.com/account
HULY_FRONT_URL=https://your-huly-instance.com

Architecture

  • Single long-lived WebSocket connection — connects once per process via @hcengineering/server-client, not per tool call (model load takes 1–3 s, so this keeps tools fast)
  • Lazy init — connects on the first tool call so auth errors surface clearly in Claude
  • Dual auth — OTP token (works for Google/GitHub SSO) or email + password
  • Stdio transport — standard MCP transport compatible with Claude Desktop and any MCP client

Changelog

v0.5.6 — delete_document

  • New: delete_document — permanently delete a document by ID

v0.5.5 — create_teamspace

  • New: create_teamspace — create a new document teamspace (top-level folder for organising documents by project or team)

v0.5.2 — delete_comment + link_document

  • New: delete_comment — delete a specific comment from an issue by ID; list_comments now includes comment IDs in its output
  • New: link_document — link a Huly document to an issue; the document appears in the Relations panel on the issue

v0.5.0 — Document Writing + Bug Fixes

  • New: update_document — write Markdown to any Huly document programmatically; \``mermaid` blocks use Huly's native node type and render as interactive diagrams
  • Fix: IssueStatus queries — statuses are stored globally in Huly (core:space:Model), not per-project; removed incorrect space filter that caused "no statuses found" errors on create_issue, update_issue, and list_issues
  • Fix: create_project — sets members: [currentUser] so newly created projects are immediately visible in the Huly UI

v0.4.0

  • log_time, list_comments, component/milestone assignment on update_issue

v0.3.1

  • get_document, create_document

v0.3.0

  • create_project, create_milestone, assignee support on issues

Links

  • npm: https://www.npmjs.com/package/huly-mcp-sdk
  • GitHub: https://github.com/varaprasadreddy9676/huly-mcp
  • MCP Registry: https://registry.modelcontextprotocol.io (search "huly-mcp")

License

Eclipse Public License 2.0

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

HULY_TOKEN*secret

Huly workspace token — get from huly.app DevTools → Application → Local Storage → token

HULY_WORKSPACE*

Your Huly workspace slug (the part after huly.app/ in your URL, e.g. 'myteam')

HULY_FRONT_URL

Optional — set to https://front.huly.app to enable reading document content

Registryactive
Packagehuly-mcp-sdk
TransportSTDIO
AuthRequired
UpdatedMar 17, 2026
View on GitHub