@firfi/huly-mcp 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -10
- package/dist/index.cjs +1732 -1437
- package/package.json +33 -20
- package/dist/tsconfig.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -30,6 +30,36 @@ The standard configuration works with most MCP clients:
|
|
|
30
30
|
}
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
<details>
|
|
34
|
+
<summary>Codex</summary>
|
|
35
|
+
|
|
36
|
+
Use Codex's MCP manager:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
codex mcp add huly \
|
|
40
|
+
--env HULY_URL=https://huly.app \
|
|
41
|
+
--env HULY_EMAIL=your@email.com \
|
|
42
|
+
--env HULY_PASSWORD=yourpassword \
|
|
43
|
+
--env HULY_WORKSPACE=yourworkspace \
|
|
44
|
+
-- npx -y @firfi/huly-mcp@latest
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Or add it directly to `~/.codex/config.toml`:
|
|
48
|
+
|
|
49
|
+
```toml
|
|
50
|
+
[mcp_servers.huly]
|
|
51
|
+
command = "npx"
|
|
52
|
+
args = ["-y", "@firfi/huly-mcp@latest"]
|
|
53
|
+
|
|
54
|
+
[mcp_servers.huly.env]
|
|
55
|
+
HULY_URL = "https://huly.app"
|
|
56
|
+
HULY_EMAIL = "your@email.com"
|
|
57
|
+
HULY_PASSWORD = "yourpassword"
|
|
58
|
+
HULY_WORKSPACE = "yourworkspace"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
</details>
|
|
62
|
+
|
|
33
63
|
<details>
|
|
34
64
|
<summary>Claude Code</summary>
|
|
35
65
|
|
|
@@ -59,7 +89,7 @@ Add the standard config to your `claude_desktop_config.json`:
|
|
|
59
89
|
<details>
|
|
60
90
|
<summary>VS Code</summary>
|
|
61
91
|
|
|
62
|
-
Add
|
|
92
|
+
Add with Command Palette → "MCP: Add Server", or put this in a VS Code MCP config such as `.vscode/mcp.json`. Do not commit workspace config files that contain real credentials.
|
|
63
93
|
|
|
64
94
|
```json
|
|
65
95
|
{
|
|
@@ -94,16 +124,42 @@ Add the standard config to your Windsurf MCP configuration file.
|
|
|
94
124
|
|
|
95
125
|
</details>
|
|
96
126
|
|
|
127
|
+
<details>
|
|
128
|
+
<summary>OpenCode</summary>
|
|
129
|
+
|
|
130
|
+
Open the global configuration file (`~/.config/opencode/opencode.json`) and merge this entry into your config:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"mcp": {
|
|
135
|
+
"huly": {
|
|
136
|
+
"type": "local",
|
|
137
|
+
"command": ["npx", "-y", "@firfi/huly-mcp@latest"],
|
|
138
|
+
"environment": {
|
|
139
|
+
"HULY_URL": "https://huly.app",
|
|
140
|
+
"HULY_EMAIL": "your@email.com",
|
|
141
|
+
"HULY_PASSWORD": "yourpassword",
|
|
142
|
+
"HULY_WORKSPACE": "yourworkspace"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
</details>
|
|
150
|
+
|
|
97
151
|
## Updating
|
|
98
152
|
|
|
99
|
-
The `@latest` tag
|
|
153
|
+
The `@latest` tag asks the package runner for the newest version. Some MCP clients keep server processes or resolved installs alive, so restart or re-add the server when updating:
|
|
100
154
|
|
|
101
155
|
| Client | How to update |
|
|
102
156
|
|--------|--------------|
|
|
157
|
+
| **Codex** | `codex mcp remove huly` then re-add with the install command above. If your password has shell-sensitive characters, edit `~/.codex/config.toml` directly instead |
|
|
103
158
|
| **Claude Code** | `claude mcp remove huly` then re-add with the install command above |
|
|
104
159
|
| **Claude Desktop** | Restart the app (it runs `npx` on startup) |
|
|
105
|
-
| **VS Code / Cursor** | Restart the MCP server from the command palette or reload the window |
|
|
106
|
-
| **
|
|
160
|
+
| **VS Code / Cursor** | Restart the MCP server from the command palette/configured client or reload the window |
|
|
161
|
+
| **OpenCode** | Restart OpenCode or start a new session after config changes |
|
|
162
|
+
| **npx (manual)** | `npx -y @firfi/huly-mcp@latest` — the `-y` flag auto-confirms install prompts |
|
|
107
163
|
|
|
108
164
|
## HTTP Transport
|
|
109
165
|
|
|
@@ -189,7 +245,7 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
|
|
|
189
245
|
| `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. |
|
|
190
246
|
| `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. |
|
|
191
247
|
| `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. |
|
|
192
|
-
| `list_issue_relations` | List all relations of an issue. Returns blockedBy (issues blocking this one), relations (bidirectional issue links), and documents (linked documents with title/teamspace).
|
|
248
|
+
| `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). |
|
|
193
249
|
| `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. |
|
|
194
250
|
| `unlink_document_from_issue` | Remove a document link from an issue. Idempotent: no-op if the document is not linked. |
|
|
195
251
|
|
|
@@ -285,6 +341,7 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
|
|
|
285
341
|
| `update_channel_message` | Update a channel message. Only the body can be modified. |
|
|
286
342
|
| `delete_channel_message` | Permanently delete a channel message. This action cannot be undone. |
|
|
287
343
|
| `list_direct_messages` | List direct message conversations in Huly. Returns conversations sorted by date (newest first). |
|
|
344
|
+
| `create_direct_message` | Open a one-to-one direct-message conversation with a workspace member. The `person` argument accepts an email or exact display name (e.g. `Smith,Bill`). Idempotent: if a DM with that participant already exists, returns it (`created: false`); otherwise creates a new DM (`created: true`). The returned `id` can be passed as `dm` to send_dm_message, list_dm_messages, etc. |
|
|
288
345
|
| `list_dm_messages` | List messages in a direct-message conversation, newest first. The `dm` argument accepts either the DM `_id` or a participant display name (e.g. `Kerr,Shannon`); a name resolves only to a one-to-one DM with the authenticated account. |
|
|
289
346
|
| `send_dm_message` | Send a message to a direct-message conversation. The `dm` argument accepts either the DM `_id` or a participant display name; a name resolves only to a one-to-one DM with the authenticated account. Message body supports markdown formatting. |
|
|
290
347
|
| `update_dm_message` | Update a direct-message message. The `dm` argument accepts either the DM `_id` or a participant display name; a name resolves only to a one-to-one DM with the authenticated account. Only the body can be modified. |
|
|
@@ -331,7 +388,7 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
|
|
|
331
388
|
|
|
332
389
|
| Tool | Description |
|
|
333
390
|
|------|-------------|
|
|
334
|
-
| `list_activity` | List activity messages for a Huly object. Returns activity sorted by date (newest first). |
|
|
391
|
+
| `list_activity` | List activity messages for a Huly issue, document, channel, or raw Huly object. Prefer friendly targets: project+issueIdentifier for issues, teamspace+document for documents, or channel for channels. Advanced callers may pass objectId+objectClass directly. Returns activity sorted by date (newest first). |
|
|
335
392
|
| `add_reaction` | Add an emoji reaction to an activity message. |
|
|
336
393
|
| `remove_reaction` | Remove an emoji reaction from an activity message. |
|
|
337
394
|
| `list_reactions` | List reactions on an activity message. |
|
|
@@ -470,17 +527,26 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
|
|
|
470
527
|
|
|
471
528
|
### Passwords with special characters
|
|
472
529
|
|
|
473
|
-
If your Huly password contains characters like `*`, `%`, `!`, or `#`, passing it via
|
|
530
|
+
If your Huly password contains characters like `*`, `%`, `!`, or `#`, passing it via CLI environment flags such as `-e` or `--env` may fail because the shell interprets these characters before they reach the process.
|
|
474
531
|
|
|
475
|
-
**Solution**: Edit your MCP config file directly instead of
|
|
532
|
+
**Solution**: Edit your MCP config file directly instead of passing the password through the shell:
|
|
533
|
+
|
|
534
|
+
- Codex: `~/.codex/config.toml`
|
|
535
|
+
- Claude Code: `~/.claude.json` (user scope) or `.mcp.json` (project scope)
|
|
536
|
+
- Claude Desktop: `claude_desktop_config.json` in the location listed in the installation section
|
|
537
|
+
- VS Code and Cursor: use the client config location from the installation section; avoid committing workspace files that contain real credentials
|
|
538
|
+
- Windsurf: edit your Windsurf MCP configuration file directly
|
|
539
|
+
- OpenCode: `~/.config/opencode/opencode.json`
|
|
540
|
+
|
|
541
|
+
For Claude JSON config, the shell-sensitive characters above can be written directly. JSON-reserved characters such as `"` and `\` still need normal JSON escaping:
|
|
476
542
|
|
|
477
543
|
```json
|
|
478
544
|
{
|
|
479
545
|
"mcpServers": {
|
|
480
546
|
"huly": {
|
|
481
547
|
"type": "stdio",
|
|
482
|
-
"command": "
|
|
483
|
-
"args": ["
|
|
548
|
+
"command": "npx",
|
|
549
|
+
"args": ["-y", "@firfi/huly-mcp@latest"],
|
|
484
550
|
"env": {
|
|
485
551
|
"HULY_URL": "https://your-huly-instance.com",
|
|
486
552
|
"HULY_EMAIL": "you@example.com",
|