@levinariy.fedorov/youtrack-mcp 0.1.0 → 0.1.1
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 +3 -3
- package/dist/issues.d.ts +4 -3
- package/dist/issues.js +2 -2
- package/dist/server.js +4 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ MCP-сервер прямо в продукте, и если он у вас ес
|
|
|
16
16
|
"mcpServers": {
|
|
17
17
|
"youtrack": {
|
|
18
18
|
"command": "npx",
|
|
19
|
-
"args": ["-y", "@levinariy.fedorov/youtrack-mcp@0.1.
|
|
19
|
+
"args": ["-y", "@levinariy.fedorov/youtrack-mcp@0.1.1"]
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -56,8 +56,8 @@ npx @levinariy.fedorov/youtrack-mcp profiles
|
|
|
56
56
|
вызывающий получает объект, а не JSON внутри текста.
|
|
57
57
|
|
|
58
58
|
`read_issue` отдаёт поля плоской картой (`fields["Type"]`), у комментария —
|
|
59
|
-
булево `public` вместо разбора видимости, у вложения —
|
|
60
|
-
|
|
59
|
+
булево `public` вместо разбора видимости, у вложения — `commentId` того комментария,
|
|
60
|
+
к которому оно приложено (нет поля — приложено к самой задаче). Даты приходят датами: у YouTrack они лежат миллисекундами эпохи и от
|
|
61
61
|
обычного целого неотличимы, поэтому тип поля запрашивается вместе со значением.
|
|
62
62
|
С `attachments: true` файлы скачиваются на диск и получают `path`: содержимое в
|
|
63
63
|
ответ не попадает, читать файл — отдельный шаг.
|
package/dist/issues.d.ts
CHANGED
|
@@ -16,8 +16,8 @@ export type Attachment = {
|
|
|
16
16
|
name: string;
|
|
17
17
|
mimeType: string;
|
|
18
18
|
size: number;
|
|
19
|
-
/** Комментарий, к которому приложен
|
|
20
|
-
commentId
|
|
19
|
+
/** Комментарий, к которому приложен файл. Нет поля — файл приложен к самой задаче. */
|
|
20
|
+
commentId?: string;
|
|
21
21
|
/** Путь на диске. Появляется, только если файлы просили скачать. */
|
|
22
22
|
path?: string;
|
|
23
23
|
};
|
|
@@ -38,7 +38,8 @@ export type Issue = {
|
|
|
38
38
|
reporter: Person;
|
|
39
39
|
created: string;
|
|
40
40
|
updated: string;
|
|
41
|
-
|
|
41
|
+
/** Когда задача решена. Нет поля — не решена. */
|
|
42
|
+
resolved?: string;
|
|
42
43
|
/** Значения полей задачи по именам: Type, State, Business solution, Priority. */
|
|
43
44
|
fields: Record<string, string>;
|
|
44
45
|
comments: Comment[];
|
package/dist/issues.js
CHANGED
|
@@ -88,7 +88,7 @@ function toIssue(raw, baseUrl) {
|
|
|
88
88
|
reporter: person(raw.reporter),
|
|
89
89
|
created: moment(raw.created) ?? "",
|
|
90
90
|
updated: moment(raw.updated) ?? "",
|
|
91
|
-
resolved: moment(raw.resolved),
|
|
91
|
+
...(moment(raw.resolved) === null ? {} : { resolved: moment(raw.resolved) }),
|
|
92
92
|
fields: collectFields(raw),
|
|
93
93
|
comments: (raw.comments ?? []).map((comment) => ({
|
|
94
94
|
id: comment.id ?? "",
|
|
@@ -104,7 +104,7 @@ function toIssue(raw, baseUrl) {
|
|
|
104
104
|
name: attachment.name ?? "",
|
|
105
105
|
mimeType: attachment.mimeType ?? "",
|
|
106
106
|
size: attachment.size ?? 0,
|
|
107
|
-
commentId: attachment.comment
|
|
107
|
+
...(attachment.comment?.id ? { commentId: attachment.comment.id } : {})
|
|
108
108
|
})),
|
|
109
109
|
links: (raw.links ?? [])
|
|
110
110
|
.filter((link) => (link.issues ?? []).length > 0)
|
package/dist/server.js
CHANGED
|
@@ -31,7 +31,9 @@ const IssueSchema = z.object({
|
|
|
31
31
|
reporter: PersonSchema,
|
|
32
32
|
created: z.string(),
|
|
33
33
|
updated: z.string(),
|
|
34
|
-
|
|
34
|
+
// Не nullable и не union: оба дают type: ["string","null"], а часть MCP-клиентов
|
|
35
|
+
// читает type только как строку. Нерешённая задача — поле просто отсутствует.
|
|
36
|
+
resolved: z.string().optional(),
|
|
35
37
|
fields: z.record(z.string(), z.string()),
|
|
36
38
|
comments: z.array(z.object({
|
|
37
39
|
id: z.string(),
|
|
@@ -45,7 +47,7 @@ const IssueSchema = z.object({
|
|
|
45
47
|
name: z.string(),
|
|
46
48
|
mimeType: z.string(),
|
|
47
49
|
size: z.number(),
|
|
48
|
-
commentId: z.string().
|
|
50
|
+
commentId: z.string().optional(),
|
|
49
51
|
path: z.string().optional()
|
|
50
52
|
})),
|
|
51
53
|
links: z.array(z.object({ type: z.string(), issues: z.array(z.object({ id: z.string(), summary: z.string() })) }))
|
package/package.json
CHANGED