@dugynoo/huly-mcp 0.13.0 → 0.14.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 +257 -237
- package/dist/index.cjs +5586 -5029
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,180 +1,182 @@
|
|
|
1
|
-
# @dugynoo/huly-mcp
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/@dugynoo/huly-mcp)
|
|
4
|
-
[](https://www.npmjs.com/package/@dugynoo/huly-mcp)
|
|
5
|
-
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](https://modelcontextprotocol.io)
|
|
7
|
-
[](https://www.typescriptlang.org/)
|
|
8
|
-
[](https://github.com/dugynoo/huly-mcp)
|
|
9
|
-
|
|
10
|
-
MCP server for [Huly](https://huly.io/) integration.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
</details>
|
|
89
|
-
|
|
90
|
-
<details>
|
|
91
|
-
<summary>
|
|
92
|
-
|
|
93
|
-
Add the standard config to
|
|
94
|
-
|
|
95
|
-
</details>
|
|
96
|
-
|
|
97
|
-
<details>
|
|
98
|
-
<summary>
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
"
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
|
159
|
-
|
|
160
|
-
| `
|
|
161
|
-
| `
|
|
162
|
-
| `
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
1
|
+
# @dugynoo/huly-mcp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@dugynoo/huly-mcp)
|
|
4
|
+
[](https://www.npmjs.com/package/@dugynoo/huly-mcp)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://modelcontextprotocol.io)
|
|
7
|
+
[](https://www.typescriptlang.org/)
|
|
8
|
+
[](https://github.com/dugynoo/huly-mcp)
|
|
9
|
+
|
|
10
|
+
MCP server for [Huly](https://huly.io/) integration — 209 tools across 23 categories (issues, projects, tasks, comments, documents, cards, channels, calendar, time tracking, test management, processes, custom fields, attachments, leads and more). Supports custom task types with project-scoped status workflows and read-side Process plugin tools.
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
The standard configuration works with most MCP clients:
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"mcpServers": {
|
|
19
|
+
"huly": {
|
|
20
|
+
"command": "npx",
|
|
21
|
+
"args": ["-y", "@dugynoo/huly-mcp@latest"],
|
|
22
|
+
"env": {
|
|
23
|
+
"HULY_URL": "https://huly.app",
|
|
24
|
+
"HULY_EMAIL": "your@email.com",
|
|
25
|
+
"HULY_PASSWORD": "yourpassword",
|
|
26
|
+
"HULY_WORKSPACE": "yourworkspace"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
<details>
|
|
34
|
+
<summary>Claude Code</summary>
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
claude mcp add huly \
|
|
38
|
+
-e HULY_URL=https://huly.app \
|
|
39
|
+
-e HULY_EMAIL=your@email.com \
|
|
40
|
+
-e HULY_PASSWORD=yourpassword \
|
|
41
|
+
-e HULY_WORKSPACE=yourworkspace \
|
|
42
|
+
-- npx -y @dugynoo/huly-mcp@latest
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Or add to `~/.claude.json` using the standard config above.
|
|
46
|
+
|
|
47
|
+
</details>
|
|
48
|
+
|
|
49
|
+
<details>
|
|
50
|
+
<summary>Claude Desktop</summary>
|
|
51
|
+
|
|
52
|
+
Add the standard config to your `claude_desktop_config.json`:
|
|
53
|
+
|
|
54
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
55
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
56
|
+
|
|
57
|
+
</details>
|
|
58
|
+
|
|
59
|
+
<details>
|
|
60
|
+
<summary>VS Code</summary>
|
|
61
|
+
|
|
62
|
+
Add to your user settings (`.vscode/mcp.json`) or use Command Palette → "MCP: Add Server":
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"servers": {
|
|
67
|
+
"huly": {
|
|
68
|
+
"command": "npx",
|
|
69
|
+
"args": ["-y", "@dugynoo/huly-mcp@latest"],
|
|
70
|
+
"env": {
|
|
71
|
+
"HULY_URL": "https://huly.app",
|
|
72
|
+
"HULY_EMAIL": "your@email.com",
|
|
73
|
+
"HULY_PASSWORD": "yourpassword",
|
|
74
|
+
"HULY_WORKSPACE": "yourworkspace"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
</details>
|
|
82
|
+
|
|
83
|
+
<details>
|
|
84
|
+
<summary>Cursor</summary>
|
|
85
|
+
|
|
86
|
+
Add the standard config to `~/.cursor/mcp.json`, or via Settings → Tools & Integrations → New MCP Server.
|
|
87
|
+
|
|
88
|
+
</details>
|
|
89
|
+
|
|
90
|
+
<details>
|
|
91
|
+
<summary>Windsurf</summary>
|
|
92
|
+
|
|
93
|
+
Add the standard config to your Windsurf MCP configuration file.
|
|
94
|
+
|
|
95
|
+
</details>
|
|
96
|
+
|
|
97
|
+
<details>
|
|
98
|
+
<summary>OpenCode</summary>
|
|
99
|
+
|
|
100
|
+
Open the global configuration file (`~/.config/opencode/opencode.json`) and add this config to the `mcp` section.
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
"huly": {
|
|
104
|
+
"type": "local",
|
|
105
|
+
"command": ["npx", "-y", "@dugynoo/huly-mcp@latest"],
|
|
106
|
+
"environment": {
|
|
107
|
+
"HULY_URL": "https://huly.app",
|
|
108
|
+
"HULY_EMAIL": "your@email.com",
|
|
109
|
+
"HULY_PASSWORD": "yourpassword",
|
|
110
|
+
"HULY_WORKSPACE": "yourworkspace"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
</details>
|
|
116
|
+
|
|
117
|
+
## Updating
|
|
118
|
+
|
|
119
|
+
The `@latest` tag in the install command always fetches the newest version. Most MCP clients cache the installed package, so you need to force a re-fetch:
|
|
120
|
+
|
|
121
|
+
| Client | How to update |
|
|
122
|
+
|--------|--------------|
|
|
123
|
+
| **Claude Code** | `claude mcp remove huly` then re-add with the install command above |
|
|
124
|
+
| **Claude Desktop** | Restart the app (it runs `npx` on startup) |
|
|
125
|
+
| **VS Code / Cursor** | Restart the MCP server from the command palette or reload the window |
|
|
126
|
+
| **npx (manual)** | `npx -y @dugynoo/huly-mcp@latest` — the `-y` flag skips the cache when `@latest` resolves to a new version |
|
|
127
|
+
|
|
128
|
+
## HTTP Transport
|
|
129
|
+
|
|
130
|
+
By default, the server uses stdio transport. For HTTP transport (Streamable HTTP):
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
HULY_URL=https://huly.app \
|
|
134
|
+
HULY_EMAIL=your@email.com \
|
|
135
|
+
HULY_PASSWORD=yourpassword \
|
|
136
|
+
HULY_WORKSPACE=yourworkspace \
|
|
137
|
+
MCP_TRANSPORT=http \
|
|
138
|
+
npx -y @dugynoo/huly-mcp@latest
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Server listens on `http://127.0.0.1:3000/mcp` by default.
|
|
142
|
+
|
|
143
|
+
Configure with `MCP_HTTP_PORT` and `MCP_HTTP_HOST`:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @dugynoo/huly-mcp@latest
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Environment Variables
|
|
150
|
+
|
|
151
|
+
| Variable | Required | Description |
|
|
152
|
+
|----------|----------|-------------|
|
|
153
|
+
| `HULY_URL` | Yes | Huly instance URL |
|
|
154
|
+
| `HULY_EMAIL` | Auth* | Account email |
|
|
155
|
+
| `HULY_PASSWORD` | Auth* | Account password |
|
|
156
|
+
| `HULY_TOKEN` | Auth* | API token (alternative to email/password) |
|
|
157
|
+
| `HULY_WORKSPACE` | Yes | Workspace identifier |
|
|
158
|
+
| `HULY_CONNECTION_TIMEOUT` | No | Connection timeout in ms (default: 30000) |
|
|
159
|
+
| `MCP_TRANSPORT` | No | Transport type: `stdio` (default) or `http` |
|
|
160
|
+
| `MCP_HTTP_PORT` | No | HTTP server port (default: 3000) |
|
|
161
|
+
| `MCP_HTTP_HOST` | No | HTTP server host (default: 127.0.0.1) |
|
|
162
|
+
| `TOOLSETS` | No | Comma-separated tool categories to expose. If unset, all tools are exposed. Example: `issues,projects,search` |
|
|
163
|
+
|
|
164
|
+
*Auth: Provide either `HULY_EMAIL` + `HULY_PASSWORD` or `HULY_TOKEN`.
|
|
165
|
+
|
|
166
|
+
## Differences from `@firfi/huly-mcp`
|
|
167
|
+
|
|
168
|
+
This package is a downstream of [`@firfi/huly-mcp`](https://github.com/dearlordylord/huly-mcp) with two additions:
|
|
169
|
+
|
|
170
|
+
- **`taskType` parameter on `create_issue` and `update_issue`** so issues can be created with custom task types (e.g. `Ticket`, `Bug`, `Feature`) and project-scoped status workflows (`Created`, `Awaiting approval`, etc.). Without this, issues created via MCP fall back to the default task type even when the project defines its own.
|
|
171
|
+
- **Read-side Process plugin tools**: `list_processes`, `get_process`, `list_executions`. Requires a Huly server with the Process plugin enabled (v0.7.382+).
|
|
172
|
+
|
|
173
|
+
Original upstream copyright is preserved in [`LICENSE`](./LICENSE).
|
|
174
|
+
|
|
173
175
|
<!-- tools:start -->
|
|
174
176
|
<!-- AUTO-GENERATED from src/mcp/tools/ descriptions. Do not edit manually. Run `pnpm update-readme` to regenerate. -->
|
|
175
177
|
## Available Tools
|
|
176
178
|
|
|
177
|
-
**`TOOLSETS` categories:** `projects`, `issues`, `comments`, `milestones`, `documents`, `storage`, `attachments`, `contacts`, `channels`, `calendar`, `time tracking`, `search`, `activity`, `notifications`, `workspace`, `cards`, `custom-fields`, `labels`, `leads`, `processes`, `tag-categories`, `task-management`, `test-management`
|
|
179
|
+
**`TOOLSETS` categories:** `projects`, `issues`, `comments`, `milestones`, `documents`, `storage`, `attachments`, `contacts`, `channels`, `calendar`, `time tracking`, `search`, `activity`, `notifications`, `workspace`, `associations`, `cards`, `custom-fields`, `labels`, `leads`, `processes`, `tag-categories`, `task-management`, `test-management`, `user-statuses`
|
|
178
180
|
|
|
179
181
|
### Projects
|
|
180
182
|
|
|
@@ -402,6 +404,16 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @dugynoo/huly
|
|
|
402
404
|
| `create_access_link` | Create a Huly workspace access link. Defaults to role GUEST. Supports anonymous reusable guest links by setting personalized=false with notBefore and expiration, and can restrict access to specific Huly space IDs via spaces. |
|
|
403
405
|
| `get_regions` | Get available regions for workspace creation. Returns region codes and display names. |
|
|
404
406
|
|
|
407
|
+
### Associations
|
|
408
|
+
|
|
409
|
+
| Tool | Description |
|
|
410
|
+
|------|-------------|
|
|
411
|
+
| `list_associations` | List Huly Association definitions in the workspace. Each Association is a typed link between two document classes (e.g. Person ↔ Organization with cardinality 1:1 / 1:N / N:N). Filter by `classA` or `classB`. |
|
|
412
|
+
| `create_association` | Create a new Huly Association between two document classes. Idempotent: returns existing association if one already exists with the same (classA, classB, nameA, nameB) tuple. |
|
|
413
|
+
| `list_relations` | List Huly Relations — concrete links between documents. Filter by `association` (ID), `docA` (source document ID), or `docB` (target document ID). |
|
|
414
|
+
| `create_relation` | Link two documents through an existing Association. Idempotent: returns existing relation if one already connects (docA, docB) via the same association. |
|
|
415
|
+
| `delete_relation` | Remove a Relation between two documents. Idempotent: returns deleted=false if the relation no longer exists. |
|
|
416
|
+
|
|
405
417
|
### Cards
|
|
406
418
|
|
|
407
419
|
| Tool | Description |
|
|
@@ -446,6 +458,8 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @dugynoo/huly
|
|
|
446
458
|
| `list_processes` | List Huly Process definitions in the workspace. Each Process is a workflow attached to a card class (master tag). Optionally filter by `masterTag` to find processes for a specific card type. Read-only. |
|
|
447
459
|
| `get_process` | Fetch a single Huly Process definition by ID or display name. Returns name, description, master tag, and start/automation flags. Read-only. |
|
|
448
460
|
| `list_executions` | List Process Executions — live or completed workflow runs against specific cards. Filter by `process` (ID or name), `card` (card ID), or `status` (active/done/cancelled). Each execution row includes the current workflow state and an error flag. Read-only. |
|
|
461
|
+
| `start_process` | Start a new Process execution against a card. Resolves the process by ID or display name and creates an active Execution at the first workflow state (lowest rank). The Huly server's process engine then auto-fires OnExecutionStart triggers to advance the execution. |
|
|
462
|
+
| `cancel_execution` | Cancel an in-flight Process execution by setting its status to 'cancelled'. Idempotent — already-cancelled executions return cancelled=false. |
|
|
449
463
|
|
|
450
464
|
### Tag-Categories
|
|
451
465
|
|
|
@@ -500,68 +514,74 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @dugynoo/huly
|
|
|
500
514
|
| `delete_test_result` | Permanently delete a test result. Cannot be undone. |
|
|
501
515
|
| `run_test_plan` | Execute a test plan: creates a test run and one test result per plan item. Returns the run ID and count of results created. Optionally name the run and set a due date. |
|
|
502
516
|
|
|
503
|
-
|
|
517
|
+
### User-Statuses
|
|
504
518
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
519
|
+
| Tool | Description |
|
|
520
|
+
|------|-------------|
|
|
521
|
+
| `list_user_statuses` | List Huly user presence records — who is currently online, with their account UUID and last status change timestamp. Filter by `online` (true/false) or `user` (account UUID). Read-only; presence is maintained server-side based on websocket connection state. |
|
|
522
|
+
|
|
523
|
+
<!-- tools:end -->
|
|
524
|
+
|
|
525
|
+
## Troubleshooting
|
|
526
|
+
|
|
527
|
+
### Passwords with special characters
|
|
528
|
+
|
|
529
|
+
If your Huly password contains characters like `*`, `%`, `!`, or `#`, passing it via the CLI `-e` flag may fail because the shell interprets these characters before they reach the process.
|
|
530
|
+
|
|
531
|
+
**Solution**: Edit your MCP config file directly instead of using `claude mcp add -e`. In `~/.claude.json` (user scope) or `.mcp.json` (project scope), JSON handles all special characters natively:
|
|
532
|
+
|
|
533
|
+
```json
|
|
534
|
+
{
|
|
535
|
+
"mcpServers": {
|
|
536
|
+
"huly": {
|
|
537
|
+
"type": "stdio",
|
|
538
|
+
"command": "node",
|
|
539
|
+
"args": ["path/to/dist/index.cjs"],
|
|
540
|
+
"env": {
|
|
541
|
+
"HULY_URL": "https://your-huly-instance.com",
|
|
542
|
+
"HULY_EMAIL": "you@example.com",
|
|
543
|
+
"HULY_PASSWORD": "p@ss*w0rd!#%",
|
|
544
|
+
"HULY_WORKSPACE": "your-workspace"
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
Alternatively, use `HULY_TOKEN` instead of email/password to bypass password auth entirely (see [Environment Variables](#environment-variables)).
|
|
552
|
+
|
|
553
|
+
### MCP client shows "Failed to reconnect"
|
|
554
|
+
|
|
555
|
+
After changing MCP configuration, some clients (including Claude Code) require a full restart — not just a reconnect. Exit the application completely and reopen it.
|
|
556
|
+
|
|
557
|
+
You can verify the connection works independently with:
|
|
558
|
+
```bash
|
|
559
|
+
claude mcp list # Should show "Connected"
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
### Self-hosted Huly: account locked after failed login attempts
|
|
563
|
+
|
|
564
|
+
Huly locks password login after 5 failed API authentication attempts. This commonly happens during initial setup when the password is misconfigured. The lock persists in the database across service restarts.
|
|
565
|
+
|
|
566
|
+
**Symptoms**: `PasswordLoginLocked` error from the MCP server, and the Huly web UI shows "Password login is locked due to too many failed attempts. Please use an OTP login method to unlock your account." (OTP won't work without SMTP configured.)
|
|
567
|
+
|
|
568
|
+
**Fix** — reset the lock counter in CockroachDB:
|
|
569
|
+
|
|
570
|
+
```bash
|
|
571
|
+
# Find your account UUID and check lock status
|
|
572
|
+
docker exec -e PGPASSWORD=<your_cockroach_password> <cockroach_container> \
|
|
573
|
+
cockroach sql --host=localhost --user=<db_user> --database=defaultdb --insecure \
|
|
574
|
+
-e "SELECT uuid, failed_login_attempts FROM global_account.account;"
|
|
575
|
+
|
|
576
|
+
# Reset the counter
|
|
577
|
+
docker exec -e PGPASSWORD=<your_cockroach_password> <cockroach_container> \
|
|
578
|
+
cockroach sql --host=localhost --user=<db_user> --database=defaultdb --insecure \
|
|
579
|
+
-e "UPDATE global_account.account SET failed_login_attempts = 0 WHERE uuid = '<your_account_uuid>';"
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
The CockroachDB credentials can be found in your Huly `compose.yml` or via `docker exec <cockroach_container> env | grep COCKROACH`.
|
|
583
|
+
|
|
584
|
+
### Windows-specific notes
|
|
585
|
+
|
|
586
|
+
- **Bash wrapper scripts** (sourcing `.env` files) may not work reliably when launched by MCP clients on Windows. Prefer setting env vars directly in the MCP config JSON.
|
|
587
|
+
- **Docker pulls over SSH** may fail on Windows due to credential manager issues. Pull images from the server desktop if needed.
|