@gor-dev/yandex-tracker-mcp 1.0.0 → 1.0.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 +38 -1
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -5
- package/dist/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ No installation needed! Use directly with npx:
|
|
|
20
20
|
claude mcp add yandex-tracker \
|
|
21
21
|
-e YANDEX_TRACKER_TOKEN="your_token" \
|
|
22
22
|
-e YANDEX_TRACKER_ORG_ID="your_org_id" \
|
|
23
|
-
-- npx -y yandex-tracker-mcp
|
|
23
|
+
-- npx -y @gor-dev/yandex-tracker-mcp
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
### Manual Installation
|
|
@@ -231,6 +231,39 @@ The server provides helpful error messages:
|
|
|
231
231
|
- **400 Bad Request**: Invalid parameters or format
|
|
232
232
|
- **403 Forbidden**: Insufficient permissions
|
|
233
233
|
|
|
234
|
+
### Common Issues
|
|
235
|
+
|
|
236
|
+
#### "Organization is not available, not ready or not found" (403 Error)
|
|
237
|
+
|
|
238
|
+
This error occurs when the organization ID header is incorrect. Make sure you're using the right combination:
|
|
239
|
+
|
|
240
|
+
**For OAuth Token:**
|
|
241
|
+
```bash
|
|
242
|
+
export YANDEX_TRACKER_TOKEN="your_oauth_token"
|
|
243
|
+
export YANDEX_TRACKER_ORG_ID="your_org_id" # NOT cloud org ID!
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**For IAM Token:**
|
|
247
|
+
```bash
|
|
248
|
+
export YANDEX_TRACKER_IAM_TOKEN="your_iam_token"
|
|
249
|
+
export YANDEX_TRACKER_CLOUD_ORG_ID="your_cloud_org_id" # NOT regular org ID!
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
**How to find your Organization ID:**
|
|
253
|
+
|
|
254
|
+
1. **For OAuth (X-Org-Id):**
|
|
255
|
+
- Go to Yandex Tracker settings
|
|
256
|
+
- Look for "Organization ID" (numeric ID like `12345`)
|
|
257
|
+
|
|
258
|
+
2. **For Cloud Organizations (X-Cloud-Org-Id):**
|
|
259
|
+
- Go to [Yandex Cloud Console](https://console.cloud.yandex.ru/)
|
|
260
|
+
- Navigate to Organization settings
|
|
261
|
+
- Copy the Cloud Organization ID (format: `bpf...` or similar)
|
|
262
|
+
|
|
263
|
+
**Note:** The server automatically uses the correct header based on your authentication method:
|
|
264
|
+
- OAuth token → uses `X-Org-Id` header
|
|
265
|
+
- IAM token → uses `X-Cloud-Org-Id` header
|
|
266
|
+
|
|
234
267
|
## Security
|
|
235
268
|
|
|
236
269
|
- Never commit your OAuth token or IAM token
|
|
@@ -242,6 +275,10 @@ The server provides helpful error messages:
|
|
|
242
275
|
|
|
243
276
|
MIT
|
|
244
277
|
|
|
278
|
+
## npm Package
|
|
279
|
+
|
|
280
|
+
Published at: https://www.npmjs.com/package/@gor-dev/yandex-tracker-mcp
|
|
281
|
+
|
|
245
282
|
## Sources
|
|
246
283
|
|
|
247
284
|
This implementation is based on:
|
package/dist/client.d.ts
CHANGED
|
@@ -12,7 +12,8 @@ interface YandexTrackerConfig {
|
|
|
12
12
|
}
|
|
13
13
|
export declare class YandexTrackerClient {
|
|
14
14
|
private readonly authHeader;
|
|
15
|
-
private readonly
|
|
15
|
+
private readonly orgIdHeaderName;
|
|
16
|
+
private readonly orgIdHeaderValue;
|
|
16
17
|
constructor(config: YandexTrackerConfig);
|
|
17
18
|
/**
|
|
18
19
|
* Make an authenticated request to Yandex Tracker API
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,MAAM,EAAE,mBAAmB;IAuBvC;;OAEG;YACW,OAAO;IAwCrB;;;OAGG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9C;;;OAGG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IA2B/E;;;OAGG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,GAAG,CAAC;IAmBf;;;OAGG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAInD;;;OAGG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CAoCH"}
|
package/dist/client.js
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
const API_BASE_URL = "https://api.tracker.yandex.net/v2";
|
|
8
8
|
export class YandexTrackerClient {
|
|
9
9
|
authHeader;
|
|
10
|
-
|
|
10
|
+
orgIdHeaderName;
|
|
11
|
+
orgIdHeaderValue;
|
|
11
12
|
constructor(config) {
|
|
12
13
|
// Determine authentication method
|
|
13
14
|
if (config.iamToken) {
|
|
@@ -19,12 +20,15 @@ export class YandexTrackerClient {
|
|
|
19
20
|
else {
|
|
20
21
|
throw new Error("Either token or iamToken must be provided");
|
|
21
22
|
}
|
|
22
|
-
// Determine organization ID
|
|
23
|
+
// Determine organization ID and header
|
|
24
|
+
// Priority: cloudOrgId > orgId (Cloud Org ID works with both OAuth and IAM)
|
|
23
25
|
if (config.cloudOrgId) {
|
|
24
|
-
this.
|
|
26
|
+
this.orgIdHeaderName = "X-Cloud-Org-Id";
|
|
27
|
+
this.orgIdHeaderValue = config.cloudOrgId;
|
|
25
28
|
}
|
|
26
29
|
else if (config.orgId) {
|
|
27
|
-
this.
|
|
30
|
+
this.orgIdHeaderName = "X-Org-Id";
|
|
31
|
+
this.orgIdHeaderValue = config.orgId;
|
|
28
32
|
}
|
|
29
33
|
else {
|
|
30
34
|
throw new Error("Either orgId or cloudOrgId must be provided");
|
|
@@ -37,7 +41,7 @@ export class YandexTrackerClient {
|
|
|
37
41
|
const url = `${API_BASE_URL}${endpoint}`;
|
|
38
42
|
const headers = {
|
|
39
43
|
Authorization: this.authHeader,
|
|
40
|
-
|
|
44
|
+
[this.orgIdHeaderName]: this.orgIdHeaderValue,
|
|
41
45
|
"Content-Type": "application/json",
|
|
42
46
|
...options.headers,
|
|
43
47
|
};
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,YAAY,GAAG,mCAAmC,CAAC;AASzD,MAAM,OAAO,mBAAmB;IACb,UAAU,CAAS;IACnB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,YAAY,GAAG,mCAAmC,CAAC;AASzD,MAAM,OAAO,mBAAmB;IACb,UAAU,CAAS;IACnB,eAAe,CAAS;IACxB,gBAAgB,CAAS;IAE1C,YAAY,MAA2B;QACrC,kCAAkC;QAClC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChD,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,uCAAuC;QACvC,4EAA4E;QAC5E,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC;YACxC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5C,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,QAAgB,EAChB,UAAuB,EAAE;QAEzB,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,IAAI,CAAC,UAAU;YAC9B,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,gBAAgB;YAC7C,cAAc,EAAE,kBAAkB;YAClC,GAAG,OAAO,CAAC,OAAO;SACnB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,GAAG,OAAO;YACV,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,YAAY,GAAG,uBAAuB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACnF,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC5B,YAAY,IAAI,cAAc,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,CAAC;qBAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC5B,YAAY,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,gDAAgD;QAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAA4B;QAC9D,mDAAmD;QACnD,MAAM,IAAI,GAAwB,EAAE,CAAC;QAErC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAElC,iCAAiC;YACjC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;YAC7B,CAAC;YACD,2CAA2C;iBACtC,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACxD,CAAC;YACD,gBAAgB;iBACX,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,QAAQ,EAAE,EAAE;YACzC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,OAIC;QAED,MAAM,IAAI,GAAwB;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,QAAQ,UAAU,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,QAAQ,UAAU,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,MAMlB;QAMC,MAAM,IAAI,GAAwB,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,4CAA4C;QAC5C,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5D,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG,mBAAmB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,+DAA+D;YACrF,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;SAC3B,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.js
CHANGED