huly-mcp-sdk 0.3.0 → 0.4.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 -43
- package/dist/connection.d.ts +4 -0
- package/dist/connection.js +12 -1
- package/dist/connection.js.map +1 -1
- package/dist/schemas.d.ts +49 -0
- package/dist/schemas.js +21 -2
- package/dist/schemas.js.map +1 -1
- package/dist/server.js +8 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/comments.d.ts +9 -0
- package/dist/tools/comments.js +28 -1
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/documents.d.ts +18 -0
- package/dist/tools/documents.js +100 -2
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/issues.d.ts +2 -0
- package/dist/tools/issues.js +22 -0
- package/dist/tools/issues.js.map +1 -1
- package/dist/tools/log-time.d.ts +10 -0
- package/dist/tools/log-time.js +31 -0
- package/dist/tools/log-time.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,33 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
> The most complete MCP server for [Huly](https://huly.app) — the open-source project management platform.
|
|
4
4
|
|
|
5
|
-
Connects **Claude Desktop** (and any [MCP](https://modelcontextprotocol.io)-compatible client) directly to your Huly workspace. Manage
|
|
5
|
+
Connects **Claude Desktop** (and any [MCP](https://modelcontextprotocol.io)-compatible client) directly to your Huly workspace. Manage projects, issues, milestones, components, documents, labels, and more — all via natural language.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
## Tools (
|
|
9
|
+
## Tools (31 total)
|
|
10
10
|
|
|
11
11
|
| Category | Tool | Description |
|
|
12
12
|
|----------|------|-------------|
|
|
13
13
|
| **Projects** | `list_projects` | List all projects in the workspace |
|
|
14
14
|
| | `get_project` | Get project details + available statuses |
|
|
15
|
-
|
|
|
15
|
+
| | `create_project` | Create a new tracker project with a unique identifier |
|
|
16
|
+
| **Issues** | `list_issues` | List issues with optional status / priority filters |
|
|
16
17
|
| | `get_issue` | Get full details of an issue (e.g. `PROJ-42`) |
|
|
17
18
|
| | `create_issue` | Create a new issue |
|
|
18
|
-
| | `update_issue` | Update title, status, priority, assignee,
|
|
19
|
+
| | `update_issue` | Update title, status, priority, assignee, due date, component, milestone |
|
|
19
20
|
| | `delete_issue` | Permanently delete an issue by identifier |
|
|
20
21
|
| **Comments** | `add_comment` | Add a comment to an issue |
|
|
21
|
-
|
|
|
22
|
+
| | `list_comments` | List all comments on an issue |
|
|
23
|
+
| **Time Tracking** | `log_time` | Log hours spent on an issue |
|
|
24
|
+
| **Labels** | `list_labels` | List all labels with color + usage count |
|
|
22
25
|
| | `create_label` | Create a new label with an optional hex color |
|
|
23
|
-
| | `add_label` | Add a label to an issue (auto-creates
|
|
26
|
+
| | `add_label` | Add a label to an issue (auto-creates if it doesn't exist) |
|
|
24
27
|
| | `remove_label` | Remove a label from an issue |
|
|
25
28
|
| **Relations** | `add_relation` | Mark two issues as related (bidirectional) |
|
|
26
29
|
| | `add_blocked_by` | Mark an issue as blocked by another issue |
|
|
27
30
|
| | `set_parent` | Set or clear the parent epic of an issue |
|
|
28
31
|
| **Members** | `list_members` | List workspace members |
|
|
29
32
|
| **Milestones** | `list_milestones` | List milestones for a project |
|
|
33
|
+
| | `create_milestone` | Create a milestone with a target date and status |
|
|
34
|
+
| **Components** | `list_components` | List components (sub-areas) in a project |
|
|
35
|
+
| | `create_component` | Create a new component with optional lead |
|
|
30
36
|
| **Documents** | `list_teamspaces` | List document teamspaces |
|
|
31
37
|
| | `list_documents` | List documents in a teamspace |
|
|
38
|
+
| | `get_document` | Get document metadata + content (see [Document content](#document-content)) |
|
|
39
|
+
| | `create_document` | Create a new document in a teamspace |
|
|
32
40
|
| **Search** | `search_issues` | Full-text search across all issues |
|
|
33
41
|
|
|
34
42
|
---
|
|
@@ -42,30 +50,17 @@ Connects **Claude Desktop** (and any [MCP](https://modelcontextprotocol.io)-comp
|
|
|
42
50
|
|
|
43
51
|
## Quick Start
|
|
44
52
|
|
|
45
|
-
### 1. Install
|
|
53
|
+
### 1. Install via npx (easiest)
|
|
46
54
|
|
|
47
55
|
```bash
|
|
48
|
-
|
|
49
|
-
cd huly-mcp
|
|
50
|
-
npm install
|
|
51
|
-
npm run build
|
|
56
|
+
npx huly-mcp-sdk setup
|
|
52
57
|
```
|
|
53
58
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
Run the interactive setup wizard — it sends a one-time code to your email (works for Google/GitHub SSO accounts too):
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
npm run setup
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
The wizard will ask for your email address and workspace slug, send a 6-digit OTP to your inbox, and write a `.env` file automatically.
|
|
59
|
+
This runs the interactive setup wizard — sends a one-time code to your email (works for Google/GitHub SSO accounts too) and writes your `.env` file automatically.
|
|
63
60
|
|
|
64
61
|
**Your workspace slug** is the part of your Huly URL after the domain: `huly.app/`**`myteam`** → slug is `myteam`.
|
|
65
62
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
### 3. Configure Claude Desktop
|
|
63
|
+
### 2. Configure Claude Desktop
|
|
69
64
|
|
|
70
65
|
Add this to your Claude Desktop config:
|
|
71
66
|
|
|
@@ -76,10 +71,10 @@ Add this to your Claude Desktop config:
|
|
|
76
71
|
{
|
|
77
72
|
"mcpServers": {
|
|
78
73
|
"huly": {
|
|
79
|
-
"command": "
|
|
80
|
-
"args": ["
|
|
74
|
+
"command": "npx",
|
|
75
|
+
"args": ["huly-mcp-sdk"],
|
|
81
76
|
"env": {
|
|
82
|
-
"HULY_TOKEN": "paste-token-
|
|
77
|
+
"HULY_TOKEN": "paste-token-here",
|
|
83
78
|
"HULY_WORKSPACE": "your-workspace-slug"
|
|
84
79
|
}
|
|
85
80
|
}
|
|
@@ -89,32 +84,64 @@ Add this to your Claude Desktop config:
|
|
|
89
84
|
|
|
90
85
|
Restart Claude Desktop after saving.
|
|
91
86
|
|
|
87
|
+
> **Alternative (clone & build):**
|
|
88
|
+
> ```bash
|
|
89
|
+
> git clone https://github.com/varaprasadreddy9676/huly-mcp.git
|
|
90
|
+
> cd huly-mcp && npm install && npm run build
|
|
91
|
+
> ```
|
|
92
|
+
> Then use `"command": "node", "args": ["/absolute/path/to/huly-mcp/dist/index.js"]` in your config.
|
|
93
|
+
|
|
92
94
|
---
|
|
93
95
|
|
|
94
96
|
## Example Prompts
|
|
95
97
|
|
|
96
|
-
**
|
|
98
|
+
**Projects & issues:**
|
|
99
|
+
- *"Create a new project called 'Mobile App' with identifier MOBILE"*
|
|
97
100
|
- *"List all in-progress issues in the PROJ project"*
|
|
98
101
|
- *"Create a high-priority issue in PROJ titled 'Fix login timeout'"*
|
|
99
|
-
- *"Update PROJ-42 status to Done and
|
|
102
|
+
- *"Update PROJ-42 status to Done, assign it to Sarah, and move it to the Auth component"*
|
|
100
103
|
- *"Search for issues related to authentication"*
|
|
101
104
|
- *"Add a comment to PROJ-15 saying the fix is deployed"*
|
|
105
|
+
- *"List all comments on PROJ-42 to see the discussion"*
|
|
102
106
|
|
|
103
|
-
**
|
|
104
|
-
- *"
|
|
107
|
+
**Milestones & components:**
|
|
108
|
+
- *"Create a milestone 'v2.0 Launch' in PROJ with target date 2026-06-01"*
|
|
109
|
+
- *"List milestones for the PROJ project"*
|
|
110
|
+
- *"Create a component called 'Auth' in PROJ"*
|
|
111
|
+
- *"List all components in PROJ"*
|
|
112
|
+
|
|
113
|
+
**Labels & relations:**
|
|
105
114
|
- *"Add the label 'bug' to PROJ-42"*
|
|
106
115
|
- *"Create a label called 'backend' with color #3b82f6"*
|
|
107
|
-
- *"Remove the 'wontfix' label from PROJ-10"*
|
|
108
|
-
|
|
109
|
-
**Relations:**
|
|
110
116
|
- *"Mark PROJ-55 as blocked by PROJ-12"*
|
|
111
|
-
- *"Mark PROJ-30 and PROJ-31 as related"*
|
|
112
117
|
- *"Set PROJ-42 as a subtask of PROJ-5"*
|
|
113
118
|
|
|
114
|
-
**
|
|
115
|
-
- *"
|
|
116
|
-
- *"
|
|
119
|
+
**Time tracking:**
|
|
120
|
+
- *"Log 2.5 hours on PROJ-42 for the database refactor"*
|
|
121
|
+
- *"Log 1 hour on PROJ-55 — Fixed bug in login form"*
|
|
122
|
+
|
|
123
|
+
**Documents:**
|
|
117
124
|
- *"List all documents in the Engineering teamspace"*
|
|
125
|
+
- *"Create a document called 'API Design' in the Engineering teamspace"*
|
|
126
|
+
- *"Get the content of document abc123"*
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Document Content
|
|
131
|
+
|
|
132
|
+
Document content in Huly is stored in a collaborative editing layer (not inline in the database). `get_document` always returns full metadata. To also fetch and read the **text content**, set the optional `HULY_FRONT_URL` env var:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
"env": {
|
|
136
|
+
"HULY_TOKEN": "...",
|
|
137
|
+
"HULY_WORKSPACE": "myteam",
|
|
138
|
+
"HULY_FRONT_URL": "https://front.huly.app"
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
For **self-hosted** Huly, set `HULY_FRONT_URL` to your own front service URL (e.g. `http://localhost:8083`).
|
|
143
|
+
|
|
144
|
+
Without `HULY_FRONT_URL`, `get_document` still returns the title, teamspace, comments, snapshots count, and the blob reference ID.
|
|
118
145
|
|
|
119
146
|
---
|
|
120
147
|
|
|
@@ -137,13 +164,11 @@ Improve performance,Urgent,,2025-05-01
|
|
|
137
164
|
|
|
138
165
|
Required column: `title`. Optional: `priority` (Urgent/High/Medium/Low), `status` (must match a status name in the project), `dueDate` (YYYY-MM-DD).
|
|
139
166
|
|
|
140
|
-
Auth is read from your `.env` file automatically.
|
|
141
|
-
|
|
142
167
|
---
|
|
143
168
|
|
|
144
169
|
## Manual Auth
|
|
145
170
|
|
|
146
|
-
|
|
171
|
+
Create a `.env` file in the project root:
|
|
147
172
|
|
|
148
173
|
**Option A — Token (recommended for all account types):**
|
|
149
174
|
|
|
@@ -152,10 +177,9 @@ HULY_WORKSPACE=your-workspace-slug
|
|
|
152
177
|
HULY_TOKEN=your-token-here
|
|
153
178
|
```
|
|
154
179
|
|
|
155
|
-
To get a token
|
|
156
|
-
1. Go to [huly.app](https://huly.app) → open browser DevTools → Application → Local Storage → `https://huly.app` → copy the `token` value.
|
|
180
|
+
To get a token: go to [huly.app](https://huly.app) → open browser DevTools → Application → Local Storage → `https://huly.app` → copy the `token` value.
|
|
157
181
|
|
|
158
|
-
> Tokens expire after some time. If you get an auth error, run `
|
|
182
|
+
> Tokens expire after some time. If you get an auth error, run `npx huly-mcp-sdk setup` again or refresh the token from DevTools.
|
|
159
183
|
|
|
160
184
|
**Option B — Email + password:**
|
|
161
185
|
|
|
@@ -171,6 +195,7 @@ HULY_WORKSPACE=your-workspace-slug
|
|
|
171
195
|
|
|
172
196
|
```bash
|
|
173
197
|
HULY_ACCOUNTS_URL=https://your-huly-instance.com/account
|
|
198
|
+
HULY_FRONT_URL=https://your-huly-instance.com
|
|
174
199
|
```
|
|
175
200
|
|
|
176
201
|
---
|
|
@@ -184,6 +209,14 @@ HULY_ACCOUNTS_URL=https://your-huly-instance.com/account
|
|
|
184
209
|
|
|
185
210
|
---
|
|
186
211
|
|
|
212
|
+
## Links
|
|
213
|
+
|
|
214
|
+
- npm: https://www.npmjs.com/package/huly-mcp-sdk
|
|
215
|
+
- GitHub: https://github.com/varaprasadreddy9676/huly-mcp
|
|
216
|
+
- MCP Registry: https://registry.modelcontextprotocol.io (search "huly-mcp")
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
187
220
|
## License
|
|
188
221
|
|
|
189
222
|
[Eclipse Public License 2.0](https://www.eclipse.org/legal/epl-2.0/)
|
package/dist/connection.d.ts
CHANGED
|
@@ -2,4 +2,8 @@ import { type AccountClient } from '@hcengineering/account-client';
|
|
|
2
2
|
import { TxOperations } from '@hcengineering/core';
|
|
3
3
|
export declare function getConnection(): Promise<TxOperations>;
|
|
4
4
|
export declare function getAccountClient(): Promise<AccountClient>;
|
|
5
|
+
export declare function getWorkspaceInfo(): Promise<{
|
|
6
|
+
wsToken: string;
|
|
7
|
+
workspaceUuid: string;
|
|
8
|
+
}>;
|
|
5
9
|
export declare function closeConnection(): Promise<void>;
|
package/dist/connection.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getConnection = getConnection;
|
|
4
4
|
exports.getAccountClient = getAccountClient;
|
|
5
|
+
exports.getWorkspaceInfo = getWorkspaceInfo;
|
|
5
6
|
exports.closeConnection = closeConnection;
|
|
6
7
|
const account_client_1 = require("@hcengineering/account-client");
|
|
7
8
|
const core_1 = require("@hcengineering/core");
|
|
@@ -24,6 +25,12 @@ async function getAccountClient() {
|
|
|
24
25
|
await getConnection();
|
|
25
26
|
return state.accountClient;
|
|
26
27
|
}
|
|
28
|
+
async function getWorkspaceInfo() {
|
|
29
|
+
if (state !== null)
|
|
30
|
+
return { wsToken: state.wsToken, workspaceUuid: state.workspaceUuid };
|
|
31
|
+
await getConnection();
|
|
32
|
+
return { wsToken: state.wsToken, workspaceUuid: state.workspaceUuid };
|
|
33
|
+
}
|
|
27
34
|
async function connect() {
|
|
28
35
|
const email = process.env.HULY_EMAIL;
|
|
29
36
|
const password = process.env.HULY_PASSWORD;
|
|
@@ -36,6 +43,7 @@ async function connect() {
|
|
|
36
43
|
let socialId;
|
|
37
44
|
let endpoint;
|
|
38
45
|
let wsToken;
|
|
46
|
+
let workspaceUuid = '';
|
|
39
47
|
if (hulyToken != null) {
|
|
40
48
|
// Token-based auth — for SSO accounts (Google/GitHub login on huly.app)
|
|
41
49
|
// Get the token from your browser: huly.app → DevTools → Application →
|
|
@@ -53,6 +61,7 @@ async function connect() {
|
|
|
53
61
|
socialId = info.socialId;
|
|
54
62
|
endpoint = info.endpoint;
|
|
55
63
|
wsToken = info.token;
|
|
64
|
+
workspaceUuid = String(info.workspace ?? '');
|
|
56
65
|
}
|
|
57
66
|
else if ('token' in info && info.token != null) {
|
|
58
67
|
// It's a plain LoginInfo (account-level token) — still need selectWorkspace
|
|
@@ -66,6 +75,7 @@ async function connect() {
|
|
|
66
75
|
}
|
|
67
76
|
endpoint = wsInfo.endpoint;
|
|
68
77
|
wsToken = wsInfo.token;
|
|
78
|
+
workspaceUuid = String(wsInfo.workspace ?? '');
|
|
69
79
|
}
|
|
70
80
|
else {
|
|
71
81
|
throw new Error('Token auth: unexpected response from getLoginInfoByToken. Token may be incomplete.');
|
|
@@ -93,6 +103,7 @@ async function connect() {
|
|
|
93
103
|
}
|
|
94
104
|
socialId = loginInfo.socialId;
|
|
95
105
|
endpoint = wsInfo.endpoint;
|
|
106
|
+
workspaceUuid = String(wsInfo.workspace ?? '');
|
|
96
107
|
wsToken = wsInfo.token;
|
|
97
108
|
}
|
|
98
109
|
// Step 3: open WebSocket connection
|
|
@@ -100,7 +111,7 @@ async function connect() {
|
|
|
100
111
|
const txClient = new core_1.TxOperations(rawConnection, socialId);
|
|
101
112
|
// Build workspace-scoped account client for member lookups
|
|
102
113
|
const accountClient = (0, account_client_1.getClient)(accountsUrl, wsToken);
|
|
103
|
-
return { txClient, rawConnection, accountClient };
|
|
114
|
+
return { txClient, rawConnection, accountClient, wsToken, workspaceUuid };
|
|
104
115
|
}
|
|
105
116
|
async function closeConnection() {
|
|
106
117
|
if (state !== null) {
|
package/dist/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas.d.ts
CHANGED
|
@@ -62,6 +62,8 @@ export declare const UpdateIssueSchema: z.ZodObject<{
|
|
|
62
62
|
priority: z.ZodOptional<z.ZodEnum<["NoPriority", "Urgent", "High", "Medium", "Low"]>>;
|
|
63
63
|
dueDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
64
64
|
assignee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
65
|
+
componentLabel: z.ZodOptional<z.ZodString>;
|
|
66
|
+
milestoneLabel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
65
67
|
}, "strip", z.ZodTypeAny, {
|
|
66
68
|
identifier: string;
|
|
67
69
|
title?: string | undefined;
|
|
@@ -69,6 +71,8 @@ export declare const UpdateIssueSchema: z.ZodObject<{
|
|
|
69
71
|
statusName?: string | undefined;
|
|
70
72
|
dueDate?: string | null | undefined;
|
|
71
73
|
assignee?: string | null | undefined;
|
|
74
|
+
componentLabel?: string | undefined;
|
|
75
|
+
milestoneLabel?: string | null | undefined;
|
|
72
76
|
}, {
|
|
73
77
|
identifier: string;
|
|
74
78
|
title?: string | undefined;
|
|
@@ -76,6 +80,8 @@ export declare const UpdateIssueSchema: z.ZodObject<{
|
|
|
76
80
|
statusName?: string | undefined;
|
|
77
81
|
dueDate?: string | null | undefined;
|
|
78
82
|
assignee?: string | null | undefined;
|
|
83
|
+
componentLabel?: string | undefined;
|
|
84
|
+
milestoneLabel?: string | null | undefined;
|
|
79
85
|
}>;
|
|
80
86
|
export declare const AddCommentSchema: z.ZodObject<{
|
|
81
87
|
identifier: z.ZodString;
|
|
@@ -153,6 +159,26 @@ export declare const ListDocumentsSchema: z.ZodObject<{
|
|
|
153
159
|
}, {
|
|
154
160
|
teamspaceId: string;
|
|
155
161
|
}>;
|
|
162
|
+
export declare const GetDocumentSchema: z.ZodObject<{
|
|
163
|
+
documentId: z.ZodString;
|
|
164
|
+
}, "strip", z.ZodTypeAny, {
|
|
165
|
+
documentId: string;
|
|
166
|
+
}, {
|
|
167
|
+
documentId: string;
|
|
168
|
+
}>;
|
|
169
|
+
export declare const CreateDocumentSchema: z.ZodObject<{
|
|
170
|
+
teamspaceId: z.ZodString;
|
|
171
|
+
title: z.ZodString;
|
|
172
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
173
|
+
}, "strip", z.ZodTypeAny, {
|
|
174
|
+
title: string;
|
|
175
|
+
teamspaceId: string;
|
|
176
|
+
parentId?: string | undefined;
|
|
177
|
+
}, {
|
|
178
|
+
title: string;
|
|
179
|
+
teamspaceId: string;
|
|
180
|
+
parentId?: string | undefined;
|
|
181
|
+
}>;
|
|
156
182
|
export declare const SearchIssuesSchema: z.ZodObject<{
|
|
157
183
|
query: z.ZodString;
|
|
158
184
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
@@ -230,3 +256,26 @@ export declare const SetParentSchema: z.ZodObject<{
|
|
|
230
256
|
identifier: string;
|
|
231
257
|
parentIdentifier?: string | null | undefined;
|
|
232
258
|
}>;
|
|
259
|
+
export declare const ListCommentsSchema: z.ZodObject<{
|
|
260
|
+
identifier: z.ZodString;
|
|
261
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
262
|
+
}, "strip", z.ZodTypeAny, {
|
|
263
|
+
identifier: string;
|
|
264
|
+
limit: number;
|
|
265
|
+
}, {
|
|
266
|
+
identifier: string;
|
|
267
|
+
limit?: number | undefined;
|
|
268
|
+
}>;
|
|
269
|
+
export declare const LogTimeSchema: z.ZodObject<{
|
|
270
|
+
identifier: z.ZodString;
|
|
271
|
+
hours: z.ZodNumber;
|
|
272
|
+
description: z.ZodOptional<z.ZodString>;
|
|
273
|
+
}, "strip", z.ZodTypeAny, {
|
|
274
|
+
identifier: string;
|
|
275
|
+
hours: number;
|
|
276
|
+
description?: string | undefined;
|
|
277
|
+
}, {
|
|
278
|
+
identifier: string;
|
|
279
|
+
hours: number;
|
|
280
|
+
description?: string | undefined;
|
|
281
|
+
}>;
|
package/dist/schemas.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SetParentSchema = exports.AddBlockedBySchema = exports.AddRelationSchema = exports.RemoveLabelSchema = exports.AddLabelSchema = exports.CreateLabelSchema = exports.ListLabelsSchema = exports.SearchIssuesSchema = exports.ListDocumentsSchema = exports.CreateProjectSchema = exports.CreateComponentSchema = exports.ListComponentsSchema = exports.CreateMilestoneSchema = exports.ListMilestonesSchema = exports.AddCommentSchema = exports.UpdateIssueSchema = exports.DeleteIssueSchema = exports.CreateIssueSchema = exports.GetIssueSchema = exports.ListIssuesSchema = exports.GetProjectSchema = void 0;
|
|
3
|
+
exports.LogTimeSchema = exports.ListCommentsSchema = exports.SetParentSchema = exports.AddBlockedBySchema = exports.AddRelationSchema = exports.RemoveLabelSchema = exports.AddLabelSchema = exports.CreateLabelSchema = exports.ListLabelsSchema = exports.SearchIssuesSchema = exports.CreateDocumentSchema = exports.GetDocumentSchema = exports.ListDocumentsSchema = exports.CreateProjectSchema = exports.CreateComponentSchema = exports.ListComponentsSchema = exports.CreateMilestoneSchema = exports.ListMilestonesSchema = exports.AddCommentSchema = exports.UpdateIssueSchema = exports.DeleteIssueSchema = exports.CreateIssueSchema = exports.GetIssueSchema = exports.ListIssuesSchema = exports.GetProjectSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const PriorityEnum = zod_1.z.enum(['NoPriority', 'Urgent', 'High', 'Medium', 'Low']);
|
|
6
6
|
exports.GetProjectSchema = zod_1.z.object({
|
|
@@ -31,7 +31,9 @@ exports.UpdateIssueSchema = zod_1.z.object({
|
|
|
31
31
|
statusName: zod_1.z.string().optional().describe('New status name'),
|
|
32
32
|
priority: PriorityEnum.optional().describe('New priority'),
|
|
33
33
|
dueDate: zod_1.z.string().nullable().optional().describe('New due date (ISO 8601) or null to clear'),
|
|
34
|
-
assignee: zod_1.z.string().nullable().optional().describe('Assignee name (first/last/full) or null to unassign')
|
|
34
|
+
assignee: zod_1.z.string().nullable().optional().describe('Assignee name (first/last/full) or null to unassign'),
|
|
35
|
+
componentLabel: zod_1.z.string().optional().describe('Component name to assign, or null to unassign'),
|
|
36
|
+
milestoneLabel: zod_1.z.string().nullable().optional().describe('Milestone name to assign, or null to clear')
|
|
35
37
|
});
|
|
36
38
|
exports.AddCommentSchema = zod_1.z.object({
|
|
37
39
|
identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
|
|
@@ -64,6 +66,14 @@ exports.CreateProjectSchema = zod_1.z.object({
|
|
|
64
66
|
exports.ListDocumentsSchema = zod_1.z.object({
|
|
65
67
|
teamspaceId: zod_1.z.string().describe('Teamspace _id from list_teamspaces')
|
|
66
68
|
});
|
|
69
|
+
exports.GetDocumentSchema = zod_1.z.object({
|
|
70
|
+
documentId: zod_1.z.string().describe('Document _id from list_documents')
|
|
71
|
+
});
|
|
72
|
+
exports.CreateDocumentSchema = zod_1.z.object({
|
|
73
|
+
teamspaceId: zod_1.z.string().describe('Teamspace _id from list_teamspaces'),
|
|
74
|
+
title: zod_1.z.string().min(1).describe('Document title'),
|
|
75
|
+
parentId: zod_1.z.string().optional().describe('Parent document _id (for nested docs); omit for top-level')
|
|
76
|
+
});
|
|
67
77
|
exports.SearchIssuesSchema = zod_1.z.object({
|
|
68
78
|
query: zod_1.z.string().min(1).describe('Search query'),
|
|
69
79
|
limit: zod_1.z.number().int().min(1).max(50).default(20).describe('Max results')
|
|
@@ -97,4 +107,13 @@ exports.SetParentSchema = zod_1.z.object({
|
|
|
97
107
|
identifier: zod_1.z.string().describe('Child issue identifier, e.g. "PROJ-123"'),
|
|
98
108
|
parentIdentifier: zod_1.z.string().nullable().optional().describe('Parent issue identifier, or null to clear parent')
|
|
99
109
|
});
|
|
110
|
+
exports.ListCommentsSchema = zod_1.z.object({
|
|
111
|
+
identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
|
|
112
|
+
limit: zod_1.z.number().int().min(1).max(100).default(20).describe('Max comments to return')
|
|
113
|
+
});
|
|
114
|
+
exports.LogTimeSchema = zod_1.z.object({
|
|
115
|
+
identifier: zod_1.z.string().describe('Issue identifier, e.g. "PROJ-123"'),
|
|
116
|
+
hours: zod_1.z.number().positive().describe('Hours spent (e.g. 2.5)'),
|
|
117
|
+
description: zod_1.z.string().optional().describe('What was done (optional note)')
|
|
118
|
+
});
|
|
100
119
|
//# sourceMappingURL=schemas.js.map
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,MAAM,YAAY,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;AAEjE,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CACnE,CAAC,CAAA;AAEW,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACzE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACnF,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAChE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACrF,CAAC,CAAA;AAEW,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CACrE,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACzE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;IAChD,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACvE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CAC1F,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAC/E,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACpE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IAClD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC7D,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC1D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC9F,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -5,6 +5,7 @@ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
|
5
5
|
const projects_1 = require("./tools/projects");
|
|
6
6
|
const issues_1 = require("./tools/issues");
|
|
7
7
|
const comments_1 = require("./tools/comments");
|
|
8
|
+
const log_time_1 = require("./tools/log-time");
|
|
8
9
|
const members_1 = require("./tools/members");
|
|
9
10
|
const milestones_1 = require("./tools/milestones");
|
|
10
11
|
const documents_1 = require("./tools/documents");
|
|
@@ -14,7 +15,7 @@ const relations_1 = require("./tools/relations");
|
|
|
14
15
|
const components_1 = require("./tools/components");
|
|
15
16
|
const schemas_1 = require("./schemas");
|
|
16
17
|
function createServer() {
|
|
17
|
-
const server = new mcp_js_1.McpServer({ name: 'huly-mcp', version: '0.
|
|
18
|
+
const server = new mcp_js_1.McpServer({ name: 'huly-mcp', version: '0.4.0' });
|
|
18
19
|
// Projects
|
|
19
20
|
server.tool('list_projects', 'List all projects in the Huly workspace', {}, projects_1.listProjects);
|
|
20
21
|
server.tool('get_project', 'Get a project by its identifier (e.g. "PROJ")', schemas_1.GetProjectSchema.shape, projects_1.getProject);
|
|
@@ -23,10 +24,13 @@ function createServer() {
|
|
|
23
24
|
server.tool('list_issues', 'List issues in a project with optional filters', schemas_1.ListIssuesSchema.shape, issues_1.listIssues);
|
|
24
25
|
server.tool('get_issue', 'Get full details of an issue by identifier (e.g. "PROJ-123")', schemas_1.GetIssueSchema.shape, issues_1.getIssue);
|
|
25
26
|
server.tool('create_issue', 'Create a new issue in a project', schemas_1.CreateIssueSchema.shape, issues_1.createIssue);
|
|
26
|
-
server.tool('update_issue', 'Update an existing issue (title, status, priority, due date, assignee)', schemas_1.UpdateIssueSchema.shape, issues_1.updateIssue);
|
|
27
|
+
server.tool('update_issue', 'Update an existing issue (title, status, priority, due date, assignee, component, milestone)', schemas_1.UpdateIssueSchema.shape, issues_1.updateIssue);
|
|
27
28
|
server.tool('delete_issue', 'Permanently delete an issue by identifier (e.g. "PROJ-123")', schemas_1.DeleteIssueSchema.shape, issues_1.deleteIssue);
|
|
28
29
|
// Comments
|
|
29
30
|
server.tool('add_comment', 'Add a comment to an issue', schemas_1.AddCommentSchema.shape, comments_1.addComment);
|
|
31
|
+
server.tool('list_comments', 'List all comments on an issue', schemas_1.ListCommentsSchema.shape, comments_1.listComments);
|
|
32
|
+
// Time tracking
|
|
33
|
+
server.tool('log_time', 'Log hours spent on an issue', schemas_1.LogTimeSchema.shape, log_time_1.logTime);
|
|
30
34
|
// Labels
|
|
31
35
|
server.tool('list_labels', 'List all labels in the workspace', schemas_1.ListLabelsSchema.shape, labels_1.listLabels);
|
|
32
36
|
server.tool('create_label', 'Create a new label with an optional hex color', schemas_1.CreateLabelSchema.shape, labels_1.createLabel);
|
|
@@ -47,6 +51,8 @@ function createServer() {
|
|
|
47
51
|
// Documents
|
|
48
52
|
server.tool('list_teamspaces', 'List all document teamspaces in the workspace', {}, documents_1.listTeamspaces);
|
|
49
53
|
server.tool('list_documents', 'List documents in a teamspace', schemas_1.ListDocumentsSchema.shape, documents_1.listDocuments);
|
|
54
|
+
server.tool('get_document', 'Get metadata and content of a document (content requires HULY_FRONT_URL env)', schemas_1.GetDocumentSchema.shape, documents_1.getDocument);
|
|
55
|
+
server.tool('create_document', 'Create a new document in a teamspace', schemas_1.CreateDocumentSchema.shape, documents_1.createDocument);
|
|
50
56
|
// Search
|
|
51
57
|
server.tool('search_issues', 'Full-text search across all issues', schemas_1.SearchIssuesSchema.shape, search_1.searchIssues);
|
|
52
58
|
return server;
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/comments.d.ts
CHANGED
package/dist/tools/comments.js
CHANGED
|
@@ -3,11 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.addComment = void 0;
|
|
6
|
+
exports.listComments = exports.addComment = void 0;
|
|
7
7
|
const tracker_1 = __importDefault(require("@hcengineering/tracker"));
|
|
8
8
|
const chunter_1 = __importDefault(require("@hcengineering/chunter"));
|
|
9
|
+
const contact_1 = __importDefault(require("@hcengineering/contact"));
|
|
9
10
|
const connection_1 = require("../connection");
|
|
10
11
|
const errors_1 = require("../utils/errors");
|
|
12
|
+
const format_1 = require("../utils/format");
|
|
13
|
+
const core_1 = require("@hcengineering/core");
|
|
11
14
|
exports.addComment = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
12
15
|
const client = await (0, connection_1.getConnection)();
|
|
13
16
|
const issue = await client.findOne(tracker_1.default.class.Issue, { identifier: args.identifier });
|
|
@@ -16,4 +19,28 @@ exports.addComment = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
|
16
19
|
await client.addCollection(chunter_1.default.class.ChatMessage, issue.space, issue._id, tracker_1.default.class.Issue, 'comments', { message: args.message });
|
|
17
20
|
return `✅ Comment added to **${args.identifier}**.`;
|
|
18
21
|
});
|
|
22
|
+
exports.listComments = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
23
|
+
const client = await (0, connection_1.getConnection)();
|
|
24
|
+
const issue = await client.findOne(tracker_1.default.class.Issue, { identifier: args.identifier });
|
|
25
|
+
if (issue == null)
|
|
26
|
+
throw new Error(`Issue '${args.identifier}' not found.`);
|
|
27
|
+
const comments = await client.findAll(chunter_1.default.class.ChatMessage, { attachedTo: issue._id }, { limit: args.limit, sort: { createdOn: core_1.SortingOrder.Ascending } });
|
|
28
|
+
if (comments.length === 0)
|
|
29
|
+
return `No comments found on **${args.identifier}**.`;
|
|
30
|
+
// Filter comments with valid authors
|
|
31
|
+
const commentsWithAuthors = comments.filter((c) => c.createdBy != null);
|
|
32
|
+
// Resolve author details
|
|
33
|
+
const authorIds = [...new Set(commentsWithAuthors.map((c) => c.createdBy))];
|
|
34
|
+
const members = authorIds.length > 0
|
|
35
|
+
? await client.findAll(contact_1.default.class.Member, { _id: { $in: authorIds } })
|
|
36
|
+
: [];
|
|
37
|
+
const memberMap = new Map(members.map((m) => [m._id, m.name ?? m._id]));
|
|
38
|
+
const lines = commentsWithAuthors.map((comment) => {
|
|
39
|
+
const author = memberMap.get(comment.createdBy) ?? 'Unknown';
|
|
40
|
+
const date = (0, format_1.formatDate)(comment.createdOn);
|
|
41
|
+
const message = comment.message ?? '';
|
|
42
|
+
return `**${author}** @ ${date}:\n> ${message.split('\n').join('\n> ')}`;
|
|
43
|
+
});
|
|
44
|
+
return `## Comments on ${args.identifier} (${comments.length})\n\n${lines.join('\n\n')}`;
|
|
45
|
+
});
|
|
19
46
|
//# sourceMappingURL=comments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/tools/comments.ts"],"names":[],"mappings":";;;;;;AAAA,qEAA4C;AAC5C,qEAA4C;AAC5C,8CAA6C;AAC7C,4CAAiD;
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/tools/comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,3 +12,21 @@ export declare const listDocuments: (args: {
|
|
|
12
12
|
text: string;
|
|
13
13
|
}>;
|
|
14
14
|
}>;
|
|
15
|
+
export declare const getDocument: (args: {
|
|
16
|
+
documentId: string;
|
|
17
|
+
}) => Promise<{
|
|
18
|
+
content: Array<{
|
|
19
|
+
type: "text";
|
|
20
|
+
text: string;
|
|
21
|
+
}>;
|
|
22
|
+
}>;
|
|
23
|
+
export declare const createDocument: (args: {
|
|
24
|
+
title: string;
|
|
25
|
+
teamspaceId: string;
|
|
26
|
+
parentId?: string | undefined;
|
|
27
|
+
}) => Promise<{
|
|
28
|
+
content: Array<{
|
|
29
|
+
type: "text";
|
|
30
|
+
text: string;
|
|
31
|
+
}>;
|
|
32
|
+
}>;
|
package/dist/tools/documents.js
CHANGED
|
@@ -3,9 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.listDocuments = exports.listTeamspaces = void 0;
|
|
6
|
+
exports.createDocument = exports.getDocument = exports.listDocuments = exports.listTeamspaces = void 0;
|
|
7
7
|
const document_1 = __importDefault(require("@hcengineering/document"));
|
|
8
8
|
const core_1 = require("@hcengineering/core");
|
|
9
|
+
const document_2 = require("@hcengineering/document");
|
|
9
10
|
const connection_1 = require("../connection");
|
|
10
11
|
const errors_1 = require("../utils/errors");
|
|
11
12
|
exports.listTeamspaces = (0, errors_1.wrapToolHandler)(async () => {
|
|
@@ -21,7 +22,104 @@ exports.listDocuments = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
|
21
22
|
const docs = await client.findAll(document_1.default.class.Document, { space: args.teamspaceId }, { sort: { rank: core_1.SortingOrder.Ascending }, limit: 100 });
|
|
22
23
|
if (docs.length === 0)
|
|
23
24
|
return 'No documents found in this teamspace.';
|
|
24
|
-
|
|
25
|
+
// Build parent-child tree display
|
|
26
|
+
const noParentId = document_1.default.ids.NoParent;
|
|
27
|
+
const lines = docs.map((d) => {
|
|
28
|
+
const isNested = d.parent != null && String(d.parent) !== noParentId;
|
|
29
|
+
const prefix = isNested ? ' - ' : '- ';
|
|
30
|
+
return `${prefix}**${d.title}** (id: \`${d._id}\`)${d.snapshots != null && d.snapshots > 0 ? ` [${d.snapshots} snapshots]` : ''}`;
|
|
31
|
+
});
|
|
25
32
|
return `## Documents (${docs.length})\n\n${lines.join('\n')}`;
|
|
26
33
|
});
|
|
34
|
+
exports.getDocument = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
35
|
+
const client = await (0, connection_1.getConnection)();
|
|
36
|
+
const doc = await client.findOne(document_1.default.class.Document, { _id: args.documentId });
|
|
37
|
+
if (doc == null)
|
|
38
|
+
throw new Error(`Document '${args.documentId}' not found.`);
|
|
39
|
+
const teamspace = await client.findOne(document_1.default.class.Teamspace, { _id: doc.space });
|
|
40
|
+
const lines = [
|
|
41
|
+
`## ${doc.title}`,
|
|
42
|
+
`**ID:** \`${doc._id}\``,
|
|
43
|
+
`**Teamspace:** ${teamspace?.name ?? doc.space}`,
|
|
44
|
+
`**Comments:** ${doc.comments ?? 0}`,
|
|
45
|
+
`**Attachments:** ${doc.attachments ?? 0}`,
|
|
46
|
+
`**Snapshots:** ${doc.snapshots ?? 0}`
|
|
47
|
+
];
|
|
48
|
+
// Provide content access instructions if content blob ref exists
|
|
49
|
+
if (doc.content != null) {
|
|
50
|
+
const frontUrl = process.env.HULY_FRONT_URL;
|
|
51
|
+
if (frontUrl != null && frontUrl !== '') {
|
|
52
|
+
const { wsToken, workspaceUuid } = await (0, connection_1.getWorkspaceInfo)();
|
|
53
|
+
const blobUrl = `${frontUrl}/files?file=${encodeURIComponent(doc.content)}&workspace=${workspaceUuid}&token=${wsToken}`;
|
|
54
|
+
lines.push(`\n**Content:** Available at blob ref \`${doc.content}\``);
|
|
55
|
+
lines.push(`**Content URL:** ${blobUrl}`);
|
|
56
|
+
// Try to fetch content
|
|
57
|
+
try {
|
|
58
|
+
const res = await fetch(blobUrl);
|
|
59
|
+
if (res.ok) {
|
|
60
|
+
const text = await res.text();
|
|
61
|
+
// Huly stores content as JSON markup — extract plain text if possible
|
|
62
|
+
try {
|
|
63
|
+
const parsed = JSON.parse(text);
|
|
64
|
+
const extracted = extractText(parsed);
|
|
65
|
+
if (extracted.length > 0) {
|
|
66
|
+
lines.push(`\n**Content:**\n${extracted}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
lines.push(`\n**Content (raw):**\n${text.substring(0, 2000)}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
lines.push(`_(Set HULY_FRONT_URL env var to fetch content)_`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
lines.push(`\n**Content blob ref:** \`${doc.content}\``);
|
|
80
|
+
lines.push(`_(Set HULY_FRONT_URL env var to fetch document content, e.g. https://front.huly.app)_`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
lines.push('\n**Content:** _(empty document)_');
|
|
85
|
+
}
|
|
86
|
+
return lines.join('\n');
|
|
87
|
+
});
|
|
88
|
+
exports.createDocument = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
89
|
+
const client = await (0, connection_1.getConnection)();
|
|
90
|
+
const teamspace = await client.findOne(document_1.default.class.Teamspace, { _id: args.teamspaceId });
|
|
91
|
+
if (teamspace == null)
|
|
92
|
+
throw new Error(`Teamspace '${args.teamspaceId}' not found.`);
|
|
93
|
+
const noParent = document_1.default.ids.NoParent;
|
|
94
|
+
const parentId = args.parentId != null ? args.parentId : noParent;
|
|
95
|
+
// Compute rank (prepend before existing docs at same level)
|
|
96
|
+
const rank = await (0, document_2.getFirstRank)(client, teamspace._id, parentId);
|
|
97
|
+
const docId = (0, core_1.generateId)();
|
|
98
|
+
await client.createDoc(document_1.default.class.Document, teamspace._id, {
|
|
99
|
+
title: args.title,
|
|
100
|
+
content: null,
|
|
101
|
+
parent: parentId,
|
|
102
|
+
rank: rank ?? '',
|
|
103
|
+
icon: null,
|
|
104
|
+
color: undefined,
|
|
105
|
+
snapshots: 0,
|
|
106
|
+
attachments: 0,
|
|
107
|
+
comments: 0,
|
|
108
|
+
labels: 0,
|
|
109
|
+
references: 0,
|
|
110
|
+
embeddings: 0
|
|
111
|
+
}, docId);
|
|
112
|
+
return `✅ Document **"${args.title}"** created (id: \`${docId}\`) in teamspace "${teamspace.name}".\nOpen it in Huly to add content via the editor.`;
|
|
113
|
+
});
|
|
114
|
+
// Helper: extract plain text from Huly's ProseMirror JSON markup
|
|
115
|
+
function extractText(node) {
|
|
116
|
+
if (typeof node === 'string')
|
|
117
|
+
return node;
|
|
118
|
+
if (node == null || typeof node !== 'object')
|
|
119
|
+
return '';
|
|
120
|
+
if (node.type === 'text' && typeof node.text === 'string')
|
|
121
|
+
return node.text;
|
|
122
|
+
const children = node.content ?? node.children ?? [];
|
|
123
|
+
return children.map(extractText).join(node.type === 'paragraph' || node.type === 'heading' ? '\n' : '');
|
|
124
|
+
}
|
|
27
125
|
//# sourceMappingURL=documents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/issues.d.ts
CHANGED
|
@@ -44,6 +44,8 @@ export declare const updateIssue: (args: {
|
|
|
44
44
|
statusName?: string | undefined;
|
|
45
45
|
dueDate?: string | null | undefined;
|
|
46
46
|
assignee?: string | null | undefined;
|
|
47
|
+
componentLabel?: string | undefined;
|
|
48
|
+
milestoneLabel?: string | null | undefined;
|
|
47
49
|
}) => Promise<{
|
|
48
50
|
content: Array<{
|
|
49
51
|
type: "text";
|
package/dist/tools/issues.js
CHANGED
|
@@ -186,6 +186,28 @@ exports.updateIssue = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
|
186
186
|
updates.assignee = match._id;
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
+
if (args.componentLabel !== undefined) {
|
|
190
|
+
if (args.componentLabel === null) {
|
|
191
|
+
updates.component = null;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
const component = await client.findOne(tracker_1.default.class.Component, { space: issue.space, label: args.componentLabel });
|
|
195
|
+
if (component == null)
|
|
196
|
+
throw new Error(`Component '${args.componentLabel}' not found in this project.`);
|
|
197
|
+
updates.component = component._id;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (args.milestoneLabel !== undefined) {
|
|
201
|
+
if (args.milestoneLabel === null) {
|
|
202
|
+
updates.milestone = null;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
const milestone = await client.findOne(tracker_1.default.class.Milestone, { space: issue.space, label: args.milestoneLabel });
|
|
206
|
+
if (milestone == null)
|
|
207
|
+
throw new Error(`Milestone '${args.milestoneLabel}' not found in this project.`);
|
|
208
|
+
updates.milestone = milestone._id;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
189
211
|
if (Object.keys(updates).length === 0)
|
|
190
212
|
return `No changes made to ${args.identifier}.`;
|
|
191
213
|
await client.updateDoc(tracker_1.default.class.Issue, issue.space, issue._id, updates);
|
package/dist/tools/issues.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/tools/issues.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/tools/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logTime = void 0;
|
|
7
|
+
const tracker_1 = __importDefault(require("@hcengineering/tracker"));
|
|
8
|
+
const contact_1 = __importDefault(require("@hcengineering/contact"));
|
|
9
|
+
const connection_1 = require("../connection");
|
|
10
|
+
const errors_1 = require("../utils/errors");
|
|
11
|
+
const core_1 = require("@hcengineering/core");
|
|
12
|
+
exports.logTime = (0, errors_1.wrapToolHandler)(async (args) => {
|
|
13
|
+
const client = await (0, connection_1.getConnection)();
|
|
14
|
+
const issue = await client.findOne(tracker_1.default.class.Issue, { identifier: args.identifier });
|
|
15
|
+
if (issue == null)
|
|
16
|
+
throw new Error(`Issue '${args.identifier}' not found.`);
|
|
17
|
+
// Get current user
|
|
18
|
+
const me = await client.findOne(contact_1.default.class.Member, {});
|
|
19
|
+
if (me == null)
|
|
20
|
+
throw new Error('Could not identify current user.');
|
|
21
|
+
const now = new Date().getTime();
|
|
22
|
+
const valueInHours = args.hours;
|
|
23
|
+
await client.addCollection(tracker_1.default.class.TimeSpendReport, issue.space, issue._id, tracker_1.default.class.Issue, 'reports', {
|
|
24
|
+
employee: me._id,
|
|
25
|
+
date: now,
|
|
26
|
+
value: valueInHours,
|
|
27
|
+
description: args.description ?? ''
|
|
28
|
+
}, (0, core_1.generateId)());
|
|
29
|
+
return `✅ Logged **${args.hours}h** on **${args.identifier}**${args.description ? ` — "${args.description}"` : ''}`;
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=log-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-time.js","sourceRoot":"","sources":["../../src/tools/log-time.ts"],"names":[],"mappings":";;;;;;AAAA,qEAA4C;AAC5C,qEAA4C;AAC5C,8CAA6C;AAC7C,4CAAiD;AAIjD,8CAAgD;AAEnC,QAAA,OAAO,GAAG,IAAA,wBAAe,EAAgC,KAAK,EAAE,IAAI,EAAE,EAAE;IACnF,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,GAAE,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IACxF,IAAI,KAAK,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,UAAU,cAAc,CAAC,CAAA;IAE3E,mBAAmB;IACnB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACzD,IAAI,EAAE,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IAEnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAChC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;IAE/B,MAAM,MAAM,CAAC,aAAa,CACxB,iBAAO,CAAC,KAAK,CAAC,eAAe,EAC7B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,GAAG,EACT,iBAAO,CAAC,KAAK,CAAC,KAAK,EACnB,SAAS,EACT;QACE,QAAQ,EAAE,EAAE,CAAC,GAAqB;QAClC,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;KACpC,EACD,IAAA,iBAAU,GAAE,CACb,CAAA;IAED,OAAO,cAAc,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACrH,CAAC,CAAC,CAAA"}
|