Huly MCP
MCP server for Huly workspaces.
What it can do
- Get Version: Returns the current version of this Huly MCP server and the latest version available on npm.
- List Projects: List all Huly projects. Returns projects sorted by name. Supports filtering by archived status.
- Get Project: Get full details of a Huly project including its statuses. Returns project name, description, archived flag, default status, and all available statuses.
What data it sees
Do you need an account
An API key from the service settings is required
MCP server for Huly workspaces. It exposes project, issue, document, contact, calendar, notification, search, and workspace tools for LLM coding agents.
How to connect
How to connect Huly MCP to Claude
The server address to paste into Claude settings:
https://huly-mcp.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Huly MCP to ChatGPT
The server address to paste into ChatGPT settings:
https://huly-mcp.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Huly MCP to Cursor
The server address to paste into Cursor settings:
https://huly-mcp.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (60)
Raw names from tools/list. Only developers need these.
| get_version | Returns the current version of this Huly MCP server and the latest version available on npm. |
| list_projects | List all Huly projects. Returns projects sorted by name. Supports filtering by archived status. |
| get_project | Get full details of a Huly project including its statuses. Returns project name, description, archived flag, default status, and all available statuses. |
| list_statuses | List all issue statuses for a Huly project with category info. Returns status name, isDone, isCanceled, and isDefault flags. Use this to discover valid statuses before creating or updating issues. |
| create_project | Create a new Huly tracker project. Idempotent: returns existing project if one with the same identifier already exists (created=false). Identifier must be 1-5 uppercase alphanumeric chars starting with a letter. |
| update_project | Update a Huly project. Only provided fields are modified. Set description to null to clear it. |
| delete_project | Permanently delete a Huly project. All issues, milestones, and components in this project will be orphaned. This action cannot be undone. |
| list_issues | 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 description content (descriptionSearch). |
| get_issue | Retrieve full details for a Huly issue including markdown description. Use this to view issue content, comments, or full metadata. |
| create_issue | 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 statuses. Optionally create as a sub-issue by specifying parentIssue. Description supports markdown formatting. Returns the created issue identifier. |
| update_issue | 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 types and statuses. Only provided fields are modified. Description updates support markdown. |
| add_issue_label | Add a tag/label to a Huly issue. Creates the tag if it doesn't exist in the project. |
| remove_issue_label | Remove a tag/label from a Huly issue. Detaches the label reference; does not delete the label definition. |
| delete_issue | Permanently delete a Huly issue. This action cannot be undone. |
| move_issue | Move an issue to a new parent (making it a sub-issue) or to top-level (null). Updates parent/child relationships and sub-issue counts. |
| list_components | List components in a Huly project. Components organize issues by area/feature. Returns components sorted by modification date (newest first). |
| get_component | Retrieve full details for a Huly component. Use this to view component content and metadata. |
| create_component | Create a new component in a Huly project. Components help organize issues by area/feature. Returns the created component ID and label. |
| update_component | Update fields on an existing Huly component. Only provided fields are modified. |
| set_issue_component | Set or clear the component on a Huly issue. Pass null for component to clear it. |
| delete_component | Permanently delete a Huly component. This action cannot be undone. |
| list_issue_templates | List issue templates in a Huly project. Templates define reusable issue configurations. Returns templates sorted by modification date (newest first). |
| get_issue_template | Retrieve full details for a Huly issue template including children (sub-task templates). Use this to view template content, default values, and child template IDs. |
| create_issue_template | 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. |
| create_issue_from_template | 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 of children created. |
| update_issue_template | Update fields on an existing Huly issue template. Only provided fields are modified. |
| delete_issue_template | Permanently delete a Huly issue template. This action cannot be undone. |
| add_template_child | Add a child (sub-task) template to an issue template. The child defines default values for sub-issues created when using create_issue_from_template. Returns the child template ID. |
| remove_template_child | Remove a child (sub-task) template from an issue template by its child ID. Get child IDs from get_issue_template response. |
| add_issue_relation | Add a relation between two issues. Relation types: 'blocks' (source blocks target — pushes into target's blockedBy), 'is-blocked-by' (source is blocked by target — pushes into source's blockedBy), 'relates-to' (bidirectional link — updates both sides). targetIssue accepts cross-project identifiers like 'OTHER-42'. No-op if the relation already exists. |
| remove_issue_relation | Remove a relation between two issues. Mirrors add_issue_relation: 'blocks' pulls from target's blockedBy, 'is-blocked-by' pulls from source's blockedBy, 'relates-to' pulls from both sides. No-op if the relation doesn't exist. |
| list_issue_relations | List all relations of an issue. Returns blockedBy (issues blocking this one), blocks (issues this one blocks), relations (bidirectional issue links), and documents (linked documents with title/teamspace). |
| link_document_to_issue | Link a Huly document to an issue. The link appears in the issue's Relations panel in the UI. Idempotent: no-op if the document is already linked. Use list_issue_relations to see linked documents. |
| unlink_document_from_issue | Remove a document link from an issue. Idempotent: no-op if the document is not linked. |
| list_labels | List label/tag definitions in the workspace. Labels are global (not project-scoped). Returns labels for tracker issues sorted by modification date (newest first). |
| create_label | Create a new label/tag definition in the workspace. Labels are global and can be attached to any issue. Returns existing label if one with the same title already exists (created=false). Use add_issue_label to attach a label to a specific issue. |
| update_label | Update a label/tag definition. Accepts label ID or title. Only provided fields are modified. |
| delete_label | Permanently delete a label/tag definition. Accepts label ID or title. This action cannot be undone. |
| list_tag_categories | List tag/label categories in the workspace. Categories group labels (e.g., 'Priority Labels', 'Type Labels'). Optional targetClass filter (defaults to all). |
| create_tag_category | Create a new tag/label category. Idempotent: returns existing category if one with the same label and targetClass already exists (created=false). Defaults targetClass to tracker issues. |
| update_tag_category | Update a tag/label category. Accepts category ID or label name. Only provided fields are modified. |
| delete_tag_category | Permanently delete a tag/label category. Accepts category ID or label name. Labels in this category will be orphaned (not deleted). This action cannot be undone. |
| list_comments | List comments on a Huly issue. Returns comments sorted by creation date (oldest first). |
| add_comment | Add a comment to a Huly issue. Comment body supports markdown formatting. |
| update_comment | Update an existing comment on a Huly issue. Comment body supports markdown formatting. |
| delete_comment | Delete a comment from a Huly issue. This action cannot be undone. |
| preview_deletion | Preview the impact of deleting a Huly entity before actually deleting it. Shows affected sub-entities, relations, and warnings. Supports issues, projects, components, and milestones. Use this to understand cascade effects before calling a delete operation. |
| list_milestones | List milestones in a Huly project. Returns milestones sorted by modification date (newest first). |
| get_milestone | Retrieve full details for a Huly milestone. Use this to view milestone content and metadata. |
| create_milestone | Create a new milestone in a Huly project. Returns the created milestone ID and label. |
| update_milestone | Update fields on an existing Huly milestone. Only provided fields are modified. |
| set_issue_milestone | Set or clear the milestone on a Huly issue. Pass null for milestone to clear it. |
| delete_milestone | Permanently delete a Huly milestone. This action cannot be undone. |
| list_teamspaces | List all Huly document teamspaces. Returns teamspaces sorted by name. Supports filtering by archived status. |
| get_teamspace | Get details for a Huly document teamspace including document count. Finds by name or ID, including archived teamspaces. |
| create_teamspace | Create a new Huly document teamspace. Idempotent: returns existing teamspace if one with the same name exists. |
| update_teamspace | Update fields on an existing Huly document teamspace. Only provided fields are modified. Set description to null to clear it. |
| delete_teamspace | Permanently delete a Huly document teamspace. This action cannot be undone. |
| list_documents | List documents in a Huly teamspace. Returns documents sorted by modification date (newest first). Each result includes a 'url' field pointing to the document in the Huly web app. Supports searching by title substring (titleSearch) and content (contentSearch). |
| get_document | Retrieve full details for a Huly document including markdown content and a 'url' field pointing to the document in the Huly web app. Use this to view document content and metadata. |