huly-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@huly-mcpShow me all high priority issues in the 'Bug Tracking' project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Huly MCP Server
This is a Model Context Protocol (MCP) server for the Huly project and document management platform, allowing AI assistants such as Claude Code and Codex to interact with Huly directly.
What is MCP?
Model Context Protocol (MCP) allows AI assistants to access external tools through a standardized interface. This server implements the MCP specification and talks to Huly through its official @hcengineering client SDK over WebSocket. It runs locally as a stdio server — the AI assistant launches it and communicates over standard input/output. There is no HTTP endpoint to host or expose.
Related MCP server: Jira MCP Server
Features
This MCP server provides access to the following Huly functionalities.
Search Actions
List Projects: Retrieve all tracker projects and their identifiers.
Search Issues: Find issues in a project with rich filters — title, assignee, unassigned, status, priority, component, milestone, label, parent (sub-issues), modified-after, and due-before.
Get Issue: Fetch full detail of a single issue: markdown description, labels, parent/sub-issues, and comment & attachment counts.
List Persons: Fetch workspace people, filtered by name.
List Statuses: List workflow statuses (Todo, In Progress, Done…).
List Components / Milestones / Labels: List a project's components, milestones, and available labels.
List Comments / Attachments: Read an issue's comments (markdown, with author names) and its attachments.
Write Actions
Create Issue: Create a new issue under a project with title, markdown description, assignee, priority, component, milestone, due date, status, and optional parent (sub-issue).
Update Issue: Change any field of an issue — title, description, assignee, status, priority, component, milestone, due date, or estimation.
Delete Issue: Permanently remove an issue.
Add Comment: Post a markdown comment on an issue.
Add Attachment: Upload a local file as an attachment on an issue.
Add / Remove Label: Attach or remove a label (auto-creates the tag if it doesn't exist).
Create Milestone: Create a new milestone inside a project.
Installation
# Clone the repository
git clone <REPO_URL> huly-mcp-server
# Navigate to the project directory
cd huly-mcp-server
# Install dependencies
npm installNo build step is required — the server is plain ES-module JavaScript and runs directly on Node.js (≥ 18).
Usage
Configuration
The server is configured with environment variables (or a local .env file — copy .env.example to .env):
Variable | Description | Default |
| Base URL of the Huly instance |
|
| Workspace identifier |
|
| Personal workspace token (recommended) | — |
| Login used only as a fallback to mint a token | — |
Getting your token
You authenticate with a personal token so your password never lives in any config file:
cp .env.example .env # then fill in HULY_EMAIL and HULY_PASSWORD
npm run token # prints your personal HULY_TOKENPaste the printed token into .env as HULY_TOKEN=... and into your AI assistant's MCP config (below).
Running the server
The server is normally launched by your AI assistant, but you can start it manually to verify it connects:
npm startSetup in Claude Code
claude mcp add huly \
--env HULY_URL=https://your-huly-instance.com \
--env HULY_WORKSPACE=your-workspace-name \
--env HULY_TOKEN=PASTE_YOUR_TOKEN_HERE \
-- node /absolute/path/to/huly-mcp-server/server.jsOr add it manually to ~/.claude.json under mcpServers:
{
"mcpServers": {
"huly": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/huly-mcp-server/server.js"],
"env": {
"HULY_URL": "https://your-huly-instance.com",
"HULY_WORKSPACE": "your-workspace-name",
"HULY_TOKEN": "PASTE_YOUR_TOKEN_HERE"
}
}
}
}Restart Claude Code, then verify with claude mcp list.
Setup in Codex
codex mcp add huly \
--env HULY_URL=https://your-huly-instance.com \
--env HULY_WORKSPACE=your-workspace-name \
--env HULY_TOKEN=PASTE_YOUR_TOKEN_HERE \
-- node /absolute/path/to/huly-mcp-server/server.jsOr add it manually to ~/.codex/config.toml:
[mcp_servers.huly]
command = "node"
args = ["/absolute/path/to/huly-mcp-server/server.js"]
[mcp_servers.huly.env]
HULY_URL = "https://your-huly-instance.com"
HULY_WORKSPACE = "your-workspace-name"
HULY_TOKEN = "PASTE_YOUR_TOKEN_HERE"Restart Codex, then verify with codex mcp list.
Development
Project Structure
huly-mcp-server/
├── server.js # MCP server — all tool definitions and Huly client wiring
├── get-token.js # Mints a personal workspace token from email + password
├── .env.example # Configuration template (copy to .env)
├── .gitignore # Excludes .env, tokens, and node_modules
├── package.json # Pinned dependencies and npm scripts
└── README.mdEach tool is defined in server.js as a server.tool(name, description, schema, handler) block. Handlers are wrapped in a guard() helper so thrown errors become clean MCP error responses instead of crashing the process.
Notes for maintainers
Discovered against our Huly instance (server 0.7.242, client 0.7.423):
Do not use the SDK
markdown()helper withcreateDoc/updateDoc/addCollection. In client0.7.423,processMarkupassigns the upload promise without awaiting it, storing{}instead of a markup ref. Callawait client.uploadMarkup(...)explicitly and pass the returned ref.Comment authors:
createdByis a social id — resolve viacontact.class.SocialIdentity→Person, notpersonUuid.Person names are stored
"LastName,FirstName"— match by substring.
Testing
Run the server manually and confirm it connects and lists tools:
npm startThere is no automated test suite yet. Contributions adding one are welcome.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MinaFikry/huly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server