@vitalyostanin/youtrack-mcp 0.5.0 → 0.5.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-ru.md CHANGED
@@ -19,23 +19,28 @@ MCP сервер для полноценной интеграции с YouTrack
19
19
 
20
20
  ## Содержание
21
21
 
22
- - [YouTrack MCP Server](#youtrack-mcp-server)
23
- - [Содержание](#содержание)
24
- - [Требования](#требования)
25
- - [Установка](#установка)
26
- - [Разработка и релиз](#разработка-и-релиз)
27
- - [Запуск сервера (stdio)](#запуск-сервера-stdio)
28
- - [Конфигурация для Code (Рекомендуется)](#конфигурация-для-code-рекомендуется)
29
- - [Конфигурация для Claude Code CLI](#конфигурация-для-claude-code-cli)
30
- - [Конфигурация для VS Code Cline](#конфигурация-для-vs-code-cline)
31
- - [Инструменты MCP](#инструменты-mcp)
32
- - [Сервис](#сервис)
33
- - [Задачи](#задачи)
34
- - [Звездочки задач](#звездочки-задач)
35
- - [Трудозатраты](#трудозатраты)
36
- - [Пользователи и проекты](#пользователи-и-проекты)
37
- - [Статьи](#статьи)
38
- - [Вложения](#вложения)
22
+ - [Требования](#требования)
23
+ - [Установка](#установка)
24
+ - [Используя npx (Рекомендуется)](#используя-npx-рекомендуется)
25
+ - [Используя Claude MCP CLI](#используя-claude-mcp-cli)
26
+ - [Ручная установка (Для разработки)](#ручная-установка-для-разработки)
27
+ - [Разработка и релиз](#разработка-и-релиз)
28
+ - [GitHub Actions Workflows](#github-actions-workflows)
29
+ - [Настройка NPM_TOKEN](#настройка-npmtoken)
30
+ - [Процесс релиза](#процесс-релиза)
31
+ - [Ручная сборка и тестирование](#ручная-сборка-и-тестирование)
32
+ - [Запуск сервера (stdio)](#запуск-сервера-stdio)
33
+ - [Конфигурация для Code (Рекомендуется)](#конфигурация-для-code-рекомендуется)
34
+ - [Конфигурация для Claude Code CLI](#конфигурация-для-claude-code-cli)
35
+ - [Конфигурация для VS Code Cline](#конфигурация-для-vs-code-cline)
36
+ - [Инструменты MCP](#инструменты-mcp)
37
+ - [Сервис](#сервис)
38
+ - [Задачи](#задачи)
39
+ - [Звездочки задач](#звездочки-задач)
40
+ - [Трудозатраты](#трудозатраты)
41
+ - [Пользователи и проекты](#пользователи-и-проекты)
42
+ - [Статьи](#статьи)
43
+ - [Вложения](#вложения)
39
44
 
40
45
  ## Требования
41
46
 
@@ -187,17 +192,16 @@ node dist/index.js
187
192
  ```
188
193
 
189
194
  ## Конфигурация для Code (Рекомендуется)
190
-
191
- Чтобы использовать этот MCP сервер с [Code](https://github.com/just-every/code), добавьте следующую конфигурацию в `~/.code/config.toml`:
192
-
195
+ Добавьте в `~/.code/config.toml`:
193
196
  ```toml
194
197
  [mcp_servers.youtrack-mcp]
195
198
  command = "npx"
196
199
  args = ["-y", "@vitalyostanin/youtrack-mcp@latest"]
197
- env = { "YOUTRACK_URL" = "https://youtrack.example.com", "YOUTRACK_TOKEN" = "perm:your-token-here" }
198
- ```
199
200
 
200
- **Примечание:** Эта конфигурация использует npx для запуска опубликованного пакета. Альтернативно, для локальной разработки используйте `command = "node"` с `args = ["/path/to/dist/index.js"]`.
201
+ [mcp_servers.youtrack-mcp.env]
202
+ YOUTRACK_URL = "https://youtrack.example.com"
203
+ YOUTRACK_TOKEN = "perm:your-token-here"
204
+ ```
201
205
 
202
206
  ## Конфигурация для Claude Code CLI
203
207
 
@@ -244,14 +248,17 @@ env = { "YOUTRACK_URL" = "https://youtrack.example.com", "YOUTRACK_TOKEN" = "per
244
248
  "args": ["-y", "@vitalyostanin/youtrack-mcp@latest"],
245
249
  "env": {
246
250
  "YOUTRACK_URL": "https://youtrack.example.com",
247
- "YOUTRACK_TOKEN": "perm:your-token-here"
251
+ "YOUTRACK_TOKEN": "perm:your-token-here",
252
+ "YOUTRACK_COMPACT_MODE": "false"
248
253
  }
249
254
  }
250
255
  }
251
256
  }
252
257
  ```
253
258
 
254
- **Примечание:** Эта конфигурация использует npx для запуска опубликованного пакета. Для локальной разработки используйте `"command": "node"` с `"args": ["/абсолютный/путь/к/youtrack-mcp/dist/index.js"]`. Переменные окружения `YOUTRACK_TIMEZONE`, `YOUTRACK_HOLIDAYS`, `YOUTRACK_PRE_HOLIDAYS` и `YOUTRACK_USER_ALIASES` являются опциональными.
259
+ **Важно для Cline:** Установите `YOUTRACK_COMPACT_MODE` в `"false"`, чтобы полные ответы инструментов также попадали в поле `content` MCP (в дополнение к `structuredContent`). Это повышает совместимость с клиентами, рассчитывающими на текстовое содержимое.
260
+
261
+ **Примечание:** Эта конфигурация использует npx для запуска опубликованного пакета. Для локальной разработки используйте `"command": "node"` с `"args": ["/абсолютный/путь/к/youtrack-mcp/dist/index.js"]`. Переменные окружения `YOUTRACK_TIMEZONE`, `YOUTRACK_HOLIDAYS`, `YOUTRACK_PRE_HОЛИДAYS` и `YOUTRACK_USER_ALIASES` являются опциональными.
255
262
 
256
263
  ## Инструменты MCP
257
264
 
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # YouTrack MCP Server
2
2
 
3
+ Also available in Russian: [README-ru.md](README-ru.md)
4
+
3
5
  [![CI](https://github.com/VitalyOstanin/youtrack-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/VitalyOstanin/youtrack-mcp/actions/workflows/ci.yml)
4
6
  [![npm version](https://img.shields.io/npm/v/@vitalyostanin/youtrack-mcp.svg)](https://www.npmjs.com/package/@vitalyostanin/youtrack-mcp)
5
7
 
@@ -19,24 +21,30 @@ MCP server for comprehensive YouTrack integration with the following capabilitie
19
21
 
20
22
  ## Table of Contents
21
23
 
22
- - [YouTrack MCP Server](#youtrack-mcp-server)
23
- - [Table of Contents](#table-of-contents)
24
- - [Requirements](#requirements)
25
- - [Installation](#installation)
26
- - [Development & Release](#development--release)
27
- - [Running the server (stdio)](#running-the-server-stdio)
28
- - [Configuration for Code (Recommended)](#configuration-for-code-recommended)
29
- - [Configuration for Claude Code CLI](#configuration-for-claude-code-cli)
30
- - [Configuration for VS Code Cline](#configuration-for-vs-code-cline)
31
- - [MCP Tools](#mcp-tools)
32
- - [Service](#service)
33
- - [Issues](#issues)
34
- - [Issue Stars](#issue-stars)
35
- - [Work Items](#work-items)
36
- - [Users and Projects](#users-and-projects)
37
- - [Articles](#articles)
38
- - [Search](#search)
39
- - [Important Notes](#important-notes)
24
+ - [Requirements](#requirements)
25
+ - [Installation](#installation)
26
+ - [Using npx (Recommended)](#using-npx-recommended)
27
+ - [Using Claude MCP CLI](#using-claude-mcp-cli)
28
+ - [Manual Installation (Development)](#manual-installation-development)
29
+ - [Development & Release](#development--release)
30
+ - [GitHub Actions Workflows](#github-actions-workflows)
31
+ - [Setting up NPM_TOKEN](#setting-up-npmtoken)
32
+ - [Release Process](#release-process)
33
+ - [Manual Build & Test](#manual-build--test)
34
+ - [Running the server (stdio)](#running-the-server-stdio)
35
+ - [Configuration for Code (Recommended)](#configuration-for-code-recommended)
36
+ - [Configuration for Claude Code CLI](#configuration-for-claude-code-cli)
37
+ - [Configuration for VS Code Cline](#configuration-for-vs-code-cline)
38
+ - [MCP Tools](#mcp-tools)
39
+ - [Service](#service)
40
+ - [Issues](#issues)
41
+ - [Issue Stars](#issue-stars)
42
+ - [Work Items](#work-items)
43
+ - [Users and Projects](#users-and-projects)
44
+ - [Articles](#articles)
45
+ - [Search](#search)
46
+ - [Important Notes](#important-notes)
47
+ - [Destructive Operations](#destructive-operations)
40
48
 
41
49
  ## Requirements
42
50
 
@@ -188,17 +196,16 @@ node dist/index.js
188
196
  ```
189
197
 
190
198
  ## Configuration for Code (Recommended)
191
-
192
- To use this MCP server with [Code](https://github.com/just-every/code), add the following configuration to your `~/.code/config.toml`:
193
-
199
+ Add to `~/.code/config.toml`:
194
200
  ```toml
195
201
  [mcp_servers.youtrack-mcp]
196
202
  command = "npx"
197
203
  args = ["-y", "@vitalyostanin/youtrack-mcp@latest"]
198
- env = { "YOUTRACK_URL" = "https://youtrack.example.com", "YOUTRACK_TOKEN" = "perm:your-token-here" }
199
- ```
200
204
 
201
- **Note:** This configuration uses npx to run the published package. Alternatively, for local development, use `command = "node"` with `args = ["/path/to/dist/index.js"]`.
205
+ [mcp_servers.youtrack-mcp.env]
206
+ YOUTRACK_URL = "https://youtrack.example.com"
207
+ YOUTRACK_TOKEN = "perm:your-token-here"
208
+ ```
202
209
 
203
210
  ## Configuration for Claude Code CLI
204
211
 
@@ -245,13 +252,16 @@ To use this MCP server with [Cline](https://github.com/cline/cline) extension in
245
252
  "args": ["-y", "@vitalyostanin/youtrack-mcp@latest"],
246
253
  "env": {
247
254
  "YOUTRACK_URL": "https://youtrack.example.com",
248
- "YOUTRACK_TOKEN": "perm:your-token-here"
255
+ "YOUTRACK_TOKEN": "perm:your-token-here",
256
+ "YOUTRACK_COMPACT_MODE": "false"
249
257
  }
250
258
  }
251
259
  }
252
260
  }
253
261
  ```
254
262
 
263
+ **Important for Cline:** Set `YOUTRACK_COMPACT_MODE` to `"false"` so full tool responses are also included in the MCP `content` field (in addition to `structuredContent`). This improves compatibility with some clients relying on text content.
264
+
255
265
  **Note:** This configuration uses npx to run the published package. For local development, use `"command": "node"` with `"args": ["/absolute/path/to/youtrack-mcp/dist/index.js"]`. The `YOUTRACK_TIMEZONE`, `YOUTRACK_HOLIDAYS`, `YOUTRACK_PRE_HOLIDAYS`, and `YOUTRACK_USER_ALIASES` environment variables are optional.
256
266
 
257
267
  ## MCP Tools
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitalyostanin/youtrack-mcp",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "scripts": {
5
5
  "build": "tsc -p tsconfig.json",
6
6
  "postbuild": "chmod +x dist/index.js",
@@ -39,7 +39,7 @@ export class YoutrackServer {
39
39
  registerIssueSearchTools(this.server, this.client, config);
40
40
  registerWorkitemTools(this.server, this.client);
41
41
  registerWorkitemReportTools(this.server, this.client);
42
- registerArticleTools(this.server, this.client);
42
+ registerArticleTools(this.server, this.client, config);
43
43
  registerArticleSearchTools(this.server, this.client);
44
44
  registerUserTools(this.server, this.client);
45
45
  registerProjectTools(this.server, this.client);
@@ -1,4 +1,5 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { YoutrackClient } from "../youtrack-client.js";
3
- export declare function registerArticleTools(server: McpServer, client: YoutrackClient): void;
3
+ import type { YoutrackConfig } from "../types.js";
4
+ export declare function registerArticleTools(server: McpServer, client: YoutrackClient, config?: YoutrackConfig): void;
4
5
  //# sourceMappingURL=article-tools.d.ts.map
@@ -32,12 +32,12 @@ const articleLookupSchema = z.object(articleLookupArgs);
32
32
  const articleListSchema = z.object(articleListArgs);
33
33
  const articleCreateSchema = z.object(articleCreateArgs);
34
34
  const articleUpdateSchema = z.object(articleUpdateArgs);
35
- export function registerArticleTools(server, client) {
35
+ export function registerArticleTools(server, client, config) {
36
36
  server.tool("article_get", "Get YouTrack article by ID. Note: Returns predefined fields only - id, idReadable, summary, content, contentPreview, usesMarkdown, parentArticle (id, idReadable), project (id, shortName, name).", articleLookupArgs, async (rawInput) => {
37
37
  try {
38
38
  const payload = articleLookupSchema.parse(rawInput);
39
39
  const article = await client.getArticle(payload.articleId);
40
- const response = toolSuccess(article);
40
+ const response = toolSuccess(article, config?.compactMode);
41
41
  return response;
42
42
  }
43
43
  catch (error) {
@@ -52,7 +52,7 @@ export function registerArticleTools(server, client) {
52
52
  parentArticleId: payload.parentArticleId,
53
53
  projectId: payload.projectId,
54
54
  });
55
- const response = toolSuccess(articles);
55
+ const response = toolSuccess(articles, config?.compactMode);
56
56
  return response;
57
57
  }
58
58
  catch (error) {
@@ -71,7 +71,7 @@ export function registerArticleTools(server, client) {
71
71
  usesMarkdown: payload.usesMarkdown,
72
72
  returnRendered: payload.returnRendered,
73
73
  });
74
- const response = toolSuccess(article);
74
+ const response = toolSuccess(article, config?.compactMode);
75
75
  return response;
76
76
  }
77
77
  catch (error) {
@@ -92,7 +92,7 @@ export function registerArticleTools(server, client) {
92
92
  usesMarkdown: payload.usesMarkdown,
93
93
  returnRendered: payload.returnRendered,
94
94
  });
95
- const response = toolSuccess(article);
95
+ const response = toolSuccess(article, config?.compactMode);
96
96
  return response;
97
97
  }
98
98
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitalyostanin/youtrack-mcp",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "scripts": {
5
5
  "build": "tsc -p tsconfig.json",
6
6
  "postbuild": "chmod +x dist/index.js",