bitrix24-tasks-mcp-server 1.1.0 → 1.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 CHANGED
@@ -67,21 +67,71 @@ Required webhook scopes:
67
67
  - `task`
68
68
  - `tasks_extended`
69
69
  - `sonet_group`
70
- - `disk` (required for attaching images/files to tasks)
70
+ - `disk` (required for attaching images/files to tasks and comments)
71
+ - `im` (required for task chat comments on the new task card)
71
72
 
72
73
  Optional environment variables:
73
74
 
74
75
  - `BITRIX24_DISK_FOLDER_ID` — target folder ID for uploads. If omitted, the webhook user's disk storage root folder is used.
75
76
 
76
- ## Attaching images and files to tasks
77
+ ## Attaching and downloading task files
77
78
 
78
79
  Bitrix24 stores task attachments on Disk. The MCP uploads a local file with `disk.folder.uploadfile`, then attaches it to the task with `tasks.task.files.attach` (fallback: `UF_TASK_WEBDAV_FILES` on `tasks.task.update`).
79
80
 
81
+ Download uses `task.item.getfiles` (primary; works with the task webhook scope) and falls back to `disk.file.get` when needed. File IDs are collected from:
82
+
83
+ - `UF_TASK_WEBDAV_FILES` (tokens like `n186771`)
84
+ - `[disk file id=n186771]` / `[disk file id=151641]` markers in the task description (`n` prefix = FILE_ID, without prefix = ATTACHMENT_ID)
85
+
80
86
  Tools:
81
87
 
88
+ - `bitrix24_get_task_files` — download files attached to a task (returns metadata; images also returned as MCP image content)
82
89
  - `bitrix24_attach_files_to_task` — attach one or more local files to an existing task
83
90
  - `bitrix24_create_task` — optional `filePaths` array to attach files right after task creation
84
91
 
92
+ Example — fetch task comments (auto: chat API, then legacy):
93
+
94
+ ```json
95
+ {
96
+ "taskId": "100173",
97
+ "preferApi": "auto",
98
+ "limit": 50,
99
+ "includeAttachments": true,
100
+ "imagesOnly": true
101
+ }
102
+ ```
103
+
104
+ Example — post comment with local files:
105
+
106
+ ```json
107
+ {
108
+ "taskId": "100173",
109
+ "text": "См. вложение",
110
+ "filePaths": ["/absolute/path/to/screenshot.png"],
111
+ "preferApi": "auto"
112
+ }
113
+ ```
114
+
115
+ Required webhook scopes for comments: `task`, `im`, `disk`.
116
+
117
+ Example — fetch images from task `100173`:
118
+
119
+ ```json
120
+ {
121
+ "taskId": "100173",
122
+ "imagesOnly": true
123
+ }
124
+ ```
125
+
126
+ Optional: save all files to a local folder:
127
+
128
+ ```json
129
+ {
130
+ "taskId": "100173",
131
+ "saveToDirectory": "/tmp/bitrix24-task-100173"
132
+ }
133
+ ```
134
+
85
135
  Example MCP call:
86
136
 
87
137
  ```json
@@ -116,11 +166,14 @@ Local development in Cursor (`~/.cursor/mcp.json`):
116
166
  - `bitrix24_create_task` supports optional `checklist` parameter to add checklist items during task creation
117
167
  - `bitrix24_create_task` supports optional `parentTaskId` for parent/subtask linkage
118
168
  - `bitrix24_get_task` - Get task by ID
169
+ - `bitrix24_get_task_comments` - Get task comments via task chat (`im.dialog.messages.get`) or legacy `task.commentitem.getlist`, with attachment download
170
+ - `bitrix24_add_task_comment` - Post comment via chat (`tasks.task.chat.message.send` / `im.disk.file.commit`) or legacy `task.commentitem.add`
119
171
  - `bitrix24_list_tasks` - List tasks (by default only tasks of current webhook user)
120
172
  - `bitrix24_get_latest_tasks` - Get latest tasks by creation date
121
173
  - `bitrix24_get_tasks_from_date_range` - Get tasks created in a date range
122
174
  - `bitrix24_update_task` - Update an existing task
123
175
  - `bitrix24_update_task` supports `parentTaskId` to change parent linkage
176
+ - `bitrix24_get_task_files` - Download task attachments from Bitrix24 Disk (images returned as MCP image content)
124
177
  - `bitrix24_attach_files_to_task` - Upload local files and attach them to a task
125
178
  - `bitrix24_create_task` supports optional `filePaths` to attach files during creation
126
179
  - `bitrix24_add_task_checklist_item` - Add checklist item to task
@@ -1,3 +1,9 @@
1
+ import { BitrixCommentAttachment, BitrixTaskComment } from './taskComments.js';
2
+ import { TaskChatRef, TaskCommentsApiMode } from './taskChat.js';
3
+ export type { TaskCommentsApiMode };
4
+ export interface RestRequestOptions {
5
+ useApiV3?: boolean;
6
+ }
1
7
  export interface BitrixTask {
2
8
  ID?: string;
3
9
  TITLE?: string;
@@ -28,6 +34,71 @@ export interface TaskFileAttachmentResult {
28
34
  diskObjectId: string;
29
35
  attachmentId?: string;
30
36
  }
37
+ export interface BitrixDiskFile {
38
+ id: string;
39
+ name: string;
40
+ size?: number;
41
+ downloadUrl?: string;
42
+ detailUrl?: string;
43
+ mimeType: string;
44
+ isImage: boolean;
45
+ }
46
+ export interface TaskAttachedFile {
47
+ attachmentId: string;
48
+ fileId?: string;
49
+ name: string;
50
+ size?: number;
51
+ downloadUrl?: string;
52
+ viewUrl?: string;
53
+ }
54
+ export interface TaskFileDownloadResult {
55
+ diskFileId: string;
56
+ attachmentId?: string;
57
+ fileId?: string;
58
+ fileName: string;
59
+ mimeType: string;
60
+ size?: number;
61
+ isImage: boolean;
62
+ downloadUrl?: string;
63
+ viewUrl?: string;
64
+ savedPath?: string;
65
+ base64?: string;
66
+ error?: string;
67
+ commentId?: string;
68
+ }
69
+ export interface GetTaskFilesOptions {
70
+ diskFileIds?: string[];
71
+ includeContent?: boolean;
72
+ imagesOnly?: boolean;
73
+ saveToDirectory?: string;
74
+ }
75
+ export type TaskCommentsPreferApi = 'auto' | 'chat' | 'legacy';
76
+ export interface GetTaskCommentsOptions {
77
+ preferApi?: TaskCommentsPreferApi;
78
+ order?: Record<string, 'asc' | 'desc' | 'ASC' | 'DESC'>;
79
+ filter?: Record<string, unknown>;
80
+ commentIds?: string[];
81
+ includeAttachments?: boolean;
82
+ includeContent?: boolean;
83
+ imagesOnly?: boolean;
84
+ saveToDirectory?: string;
85
+ attachmentIds?: string[];
86
+ includeSystemMessages?: boolean;
87
+ limit?: number;
88
+ lastId?: number;
89
+ firstId?: number;
90
+ }
91
+ export interface SendTaskCommentOptions {
92
+ preferApi?: TaskCommentsPreferApi;
93
+ text?: string;
94
+ filePaths?: string[];
95
+ diskFolderId?: string;
96
+ authorId?: string;
97
+ }
98
+ export interface TaskCommentWithAttachments extends BitrixTaskComment {
99
+ attachments: BitrixCommentAttachment[];
100
+ downloadedFiles: TaskFileDownloadResult[];
101
+ }
31
102
  export interface BitrixProject {
32
103
  ID?: string;
33
104
  NAME?: string;
@@ -58,7 +129,11 @@ export declare class Bitrix24Client {
58
129
  private lastRequestTime;
59
130
  private readonly RATE_LIMIT_DELAY;
60
131
  constructor(webhookUrl?: string);
132
+ getPortalOrigin(): string;
133
+ private buildMethodUrl;
134
+ private extractApiError;
61
135
  private enforceRateLimit;
136
+ callRest(method: string, params?: Record<string, any>, options?: RestRequestOptions): Promise<any>;
62
137
  private makeRequest;
63
138
  private appendFormValue;
64
139
  createTask(task: BitrixTask): Promise<string>;
@@ -107,6 +182,54 @@ export declare class Bitrix24Client {
107
182
  attached: TaskFileAttachmentResult[];
108
183
  errors: string[];
109
184
  }>;
185
+ private normalizeTaskAttachedFile;
186
+ listTaskAttachedFiles(taskId: string): Promise<TaskAttachedFile[]>;
187
+ private matchesRequestedFileId;
188
+ private selectTaskAttachedFiles;
189
+ getDiskFile(diskFileId: string): Promise<BitrixDiskFile>;
190
+ private resolveDownloadUrl;
191
+ downloadDiskFileContent(downloadUrl: string): Promise<Buffer>;
192
+ collectTaskDiskFileIds(task: Record<string, unknown>): string[];
193
+ private downloadTaskAttachedFile;
194
+ getTaskFiles(taskId: string, options?: GetTaskFilesOptions): Promise<{
195
+ taskId: string;
196
+ diskFileIds: string[];
197
+ files: TaskFileDownloadResult[];
198
+ errors: string[];
199
+ }>;
200
+ resolveTaskChat(taskId: string): Promise<TaskChatRef | null>;
201
+ listTaskComments(taskId: string, options?: {
202
+ order?: Record<string, 'asc' | 'desc' | 'ASC' | 'DESC'>;
203
+ filter?: Record<string, unknown>;
204
+ }): Promise<BitrixTaskComment[]>;
205
+ getTaskComment(taskId: string, commentId: string): Promise<BitrixTaskComment | null>;
206
+ private fetchTaskCommentRawItems;
207
+ private downloadChatFileAttachment;
208
+ private getTaskCommentsFromChat;
209
+ private getTaskCommentsLegacy;
210
+ private sendTaskCommentViaChat;
211
+ private sendTaskCommentLegacy;
212
+ sendTaskComment(taskId: string, options: SendTaskCommentOptions): Promise<{
213
+ success: boolean;
214
+ apiMode: TaskCommentsApiMode;
215
+ taskId: string;
216
+ chatId?: string;
217
+ messageId?: string;
218
+ commentId?: string;
219
+ uploadedDiskFileIds: string[];
220
+ errors: string[];
221
+ }>;
222
+ private matchesRequestedAttachmentId;
223
+ private selectCommentAttachments;
224
+ private downloadCommentAttachment;
225
+ getTaskComments(taskId: string, options?: GetTaskCommentsOptions): Promise<{
226
+ taskId: string;
227
+ apiMode: TaskCommentsApiMode;
228
+ chatId?: string;
229
+ dialogId?: string;
230
+ comments: TaskCommentWithAttachments[];
231
+ errors: string[];
232
+ }>;
110
233
  createProject(project: BitrixProject): Promise<string>;
111
234
  getProject(id: string): Promise<BitrixProject | null>;
112
235
  updateProject(id: string, project: Partial<BitrixProject>): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bitrix24/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bitrix24/client.ts"],"names":[],"mappings":"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"}