@firfi/huly-mcp 0.52.5 → 0.52.6

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.
Files changed (3) hide show
  1. package/README.md +25 -22
  2. package/dist/index.cjs +97935 -104768
  3. package/package.json +6 -12
package/README.md CHANGED
@@ -36,7 +36,7 @@ detected executable and required version, and the same `unsupported Node.js runt
36
36
  stderr. Upgrade Node.js or configure the MCP server command to use the absolute path of a compatible Node.js
37
37
  executable, then restart the MCP server. Huly operations remain unavailable until the runtime is upgraded.
38
38
 
39
- The standard configuration works with most MCP clients:
39
+ The standard configuration uses a Huly API token and works with most MCP clients:
40
40
 
41
41
  ```json
42
42
  {
@@ -46,8 +46,7 @@ The standard configuration works with most MCP clients:
46
46
  "args": ["-y", "@firfi/huly-mcp@latest"],
47
47
  "env": {
48
48
  "HULY_URL": "https://your-huly-instance.example.com",
49
- "HULY_EMAIL": "your@email.com",
50
- "HULY_PASSWORD": "yourpassword",
49
+ "HULY_TOKEN": "your-huly-api-token",
51
50
  "HULY_WORKSPACE": "yourworkspace"
52
51
  }
53
52
  }
@@ -55,6 +54,12 @@ The standard configuration works with most MCP clients:
55
54
  }
56
55
  ```
57
56
 
57
+ Prefer a managed API token created in Huly account settings when the target deployment supports it. Managed tokens
58
+ are bound to one workspace, assigned an expiry, and can be revoked without changing the account password. They still
59
+ inherit the account's full rights in that workspace, so use a dedicated integration account with only the workspace
60
+ role, space memberships, and data access the automation needs. Older Huly deployments may not expose managed token
61
+ settings; email/password authentication remains available as a compatibility fallback.
62
+
58
63
  ## Tool Exposure Defaults
59
64
 
60
65
  By default (`HULY_TOOL_MODE=auto`), Huly MCP optimizes for current MCP clients by avoiding a 470-tool eager list. Exact `claude-code` sessions receive native Huly tools. Codex, Cursor, Windsurf, Copilot, OpenCode, Claude AI/Desktop-style clients, and unknown clients receive a small proxy surface: `list_tool_categories`, `search_tools`, `get_tool_schema`, and `invoke_tool`.
@@ -69,8 +74,7 @@ Use Codex's MCP manager:
69
74
  ```bash
70
75
  codex mcp add huly \
71
76
  --env HULY_URL=https://your-huly-instance.example.com \
72
- --env HULY_EMAIL=your@email.com \
73
- --env HULY_PASSWORD=yourpassword \
77
+ --env HULY_TOKEN=your-huly-api-token \
74
78
  --env HULY_WORKSPACE=yourworkspace \
75
79
  -- npx -y @firfi/huly-mcp@latest
76
80
  ```
@@ -84,8 +88,7 @@ args = ["-y", "@firfi/huly-mcp@latest"]
84
88
 
85
89
  [mcp_servers.huly.env]
86
90
  HULY_URL = "https://your-huly-instance.example.com"
87
- HULY_EMAIL = "your@email.com"
88
- HULY_PASSWORD = "yourpassword"
91
+ HULY_TOKEN = "your-huly-api-token"
89
92
  HULY_WORKSPACE = "yourworkspace"
90
93
  ```
91
94
 
@@ -97,8 +100,7 @@ HULY_WORKSPACE = "yourworkspace"
97
100
  ```bash
98
101
  claude mcp add huly \
99
102
  -e HULY_URL=https://your-huly-instance.example.com \
100
- -e HULY_EMAIL=your@email.com \
101
- -e HULY_PASSWORD=yourpassword \
103
+ -e HULY_TOKEN=your-huly-api-token \
102
104
  -e HULY_WORKSPACE=yourworkspace \
103
105
  -- npx -y @firfi/huly-mcp@latest
104
106
  ```
@@ -130,8 +132,7 @@ Add with Command Palette → "MCP: Add Server", or put this in a VS Code MCP con
130
132
  "args": ["-y", "@firfi/huly-mcp@latest"],
131
133
  "env": {
132
134
  "HULY_URL": "https://your-huly-instance.example.com",
133
- "HULY_EMAIL": "your@email.com",
134
- "HULY_PASSWORD": "yourpassword",
135
+ "HULY_TOKEN": "your-huly-api-token",
135
136
  "HULY_WORKSPACE": "yourworkspace"
136
137
  }
137
138
  }
@@ -168,8 +169,7 @@ Open the global configuration file (`~/.config/opencode/opencode.json`) and merg
168
169
  "command": ["npx", "-y", "@firfi/huly-mcp@latest"],
169
170
  "environment": {
170
171
  "HULY_URL": "https://your-huly-instance.example.com",
171
- "HULY_EMAIL": "your@email.com",
172
- "HULY_PASSWORD": "yourpassword",
172
+ "HULY_TOKEN": "your-huly-api-token",
173
173
  "HULY_WORKSPACE": "yourworkspace"
174
174
  }
175
175
  }
@@ -226,8 +226,7 @@ By default, the server uses stdio transport. For HTTP transport:
226
226
 
227
227
  ```bash
228
228
  HULY_URL=https://your-huly-instance.example.com \
229
- HULY_EMAIL=your@email.com \
230
- HULY_PASSWORD=yourpassword \
229
+ HULY_TOKEN=your-huly-api-token \
231
230
  HULY_WORKSPACE=yourworkspace \
232
231
  MCP_TRANSPORT=http \
233
232
  npx -y @firfi/huly-mcp@latest
@@ -243,7 +242,9 @@ MCP_TRANSPORT=http MCP_HTTP_PORT=8080 MCP_HTTP_HOST=0.0.0.0 npx -y @firfi/huly-m
243
242
 
244
243
  ### HTTP MCP Protocol Support
245
244
 
246
- Both stdio and HTTP implement the released MCP `2026-07-28` interface and retain SDK-owned compatibility for MCP `2025-06-18` clients. Stdio pins each connection to the protocol era selected by its opening exchange; HTTP serves legacy requests statelessly. Modern HTTP requires one JSON-RPC message per POST, `Accept: application/json, text/event-stream`, `MCP-Protocol-Version: 2026-07-28`, `Mcp-Method`, method-specific `Mcp-Name`, and per-request `_meta.io.modelcontextprotocol/*` client metadata. Huly credentials are configured separately through env vars or supported `x-huly-*` headers.
245
+ Both transports are implemented with Effect AI's MCP server and protocol adapters. The server configures the released MCP `2026-07-28` stateless protocol and the MCP `2025-06-18` compatibility protocol. Modern HTTP requires one JSON-RPC message per POST, `Accept: application/json, text/event-stream`, `MCP-Protocol-Version: 2026-07-28`, `Mcp-Method`, method-specific `Mcp-Name`, and per-request `_meta.io.modelcontextprotocol/*` client metadata. Legacy HTTP supports initialized sessions using the returned `Mcp-Session-Id` and bare stateless calls with request-local bindings. Huly credentials are configured separately through env vars or supported `x-huly-*` headers.
246
+
247
+ See [MCP transport architecture and certification](docs/MCP_TRANSPORT_CERTIFICATION.md) for the implementation boundary and the current verification record.
247
248
 
248
249
  For hosted or tunneled HTTP deployments, you can require an MCP endpoint bearer token:
249
250
 
@@ -283,9 +284,9 @@ For a Smithery publish schema example, see [docs/SMITHERY_URL_PUBLISH.md](docs/S
283
284
  | Variable | Required | Description |
284
285
  |----------|----------|-------------|
285
286
  | `HULY_URL` | Yes | Reachable self-hosted or replacement hosted Huly instance URL |
286
- | `HULY_EMAIL` | Auth* | Account email |
287
- | `HULY_PASSWORD` | Auth* | Account password |
288
- | `HULY_TOKEN` | Auth* | API token (alternative to email/password) |
287
+ | `HULY_TOKEN` | Auth* | Preferred: managed Huly API token where supported |
288
+ | `HULY_EMAIL` | Auth* | Compatibility fallback: account email |
289
+ | `HULY_PASSWORD` | Auth* | Compatibility fallback: account password |
289
290
  | `HULY_WORKSPACE` | Yes | Workspace identifier |
290
291
  | `HULY_CONNECTION_TIMEOUT` | No | Connection timeout in ms. Omit to use the package default. |
291
292
  | `MCP_TRANSPORT` | No | Transport type: `stdio` (default) or `http` |
@@ -297,7 +298,8 @@ For a Smithery publish schema example, see [docs/SMITHERY_URL_PUBLISH.md](docs/S
297
298
  | `TOOLSETS` | No | Comma-separated tool categories to expose. If neither `TOOLSETS` nor `TOOLS` is set, all native Huly tools are exposed. Example: `issues,projects,search` |
298
299
  | `TOOLS` | No | Comma-separated exact tool names to expose in addition to selected toolsets. Example: `list_documents,create_issue` |
299
300
 
300
- *Auth: Provide either `HULY_EMAIL` + `HULY_PASSWORD` or `HULY_TOKEN`.
301
+ *Auth: Prefer `HULY_TOKEN`. Use `HULY_EMAIL` + `HULY_PASSWORD` only when the Huly deployment does not support a
302
+ managed API token or another compatibility constraint requires password authentication.
301
303
 
302
304
  ## Built-in Diagnostic Tools
303
305
 
@@ -1184,7 +1186,7 @@ When resolved tool exposure is `proxy`, clients see the built-in tools plus thes
1184
1186
 
1185
1187
  ## Troubleshooting
1186
1188
 
1187
- ### Passwords with special characters
1189
+ ### Password fallback with special characters
1188
1190
 
1189
1191
  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.
1190
1192
 
@@ -1217,7 +1219,8 @@ For Claude JSON config, the shell-sensitive characters above can be written dire
1217
1219
  }
1218
1220
  ```
1219
1221
 
1220
- Alternatively, use `HULY_TOKEN` instead of email/password to bypass password auth entirely (see [Environment Variables](#environment-variables)).
1222
+ Prefer `HULY_TOKEN` instead of this password fallback when the deployment supports managed API tokens (see
1223
+ [Environment Variables](#environment-variables)).
1221
1224
 
1222
1225
  ### MCP client shows "Failed to reconnect"
1223
1226