@itm-platform/mcp-server 1.0.2 → 1.0.6
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/LICENSE +21 -0
- package/README.md +34 -17
- package/dist/auth/api-key-auth.d.ts.map +1 -1
- package/dist/auth/api-key-auth.js +0 -3
- package/dist/auth/api-key-auth.js.map +1 -1
- package/dist/clients/audit-client.d.ts +2 -0
- package/dist/clients/audit-client.d.ts.map +1 -1
- package/dist/clients/audit-client.js +4 -4
- package/dist/clients/audit-client.js.map +1 -1
- package/dist/clients/rest-client.js +4 -4
- package/dist/clients/rest-client.js.map +1 -1
- package/dist/instrument-server.d.ts +2 -1
- package/dist/instrument-server.d.ts.map +1 -1
- package/dist/instrument-server.js +14 -3
- package/dist/instrument-server.js.map +1 -1
- package/dist/prompts/project-status.d.ts.map +1 -1
- package/dist/prompts/project-status.js +7 -2
- package/dist/prompts/project-status.js.map +1 -1
- package/dist/prompts/risk-analysis.d.ts.map +1 -1
- package/dist/prompts/risk-analysis.js +5 -1
- package/dist/prompts/risk-analysis.js.map +1 -1
- package/dist/server.js +24 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/datamart.d.ts.map +1 -1
- package/dist/tools/datamart.js +3 -1
- package/dist/tools/datamart.js.map +1 -1
- package/dist/tools/financials.d.ts.map +1 -1
- package/dist/tools/financials.js +11 -16
- package/dist/tools/financials.js.map +1 -1
- package/dist/tools/graphql-queries.d.ts +1 -0
- package/dist/tools/graphql-queries.d.ts.map +1 -1
- package/dist/tools/graphql-queries.js +16 -0
- package/dist/tools/graphql-queries.js.map +1 -1
- package/dist/tools/projects.d.ts +22 -0
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +25 -12
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/risks-issues.d.ts.map +1 -1
- package/dist/tools/risks-issues.js +11 -17
- package/dist/tools/risks-issues.js.map +1 -1
- package/dist/tools/services.d.ts +15 -0
- package/dist/tools/services.d.ts.map +1 -1
- package/dist/tools/services.js +70 -19
- package/dist/tools/services.js.map +1 -1
- package/dist/tools/subcomponent-page.d.ts +13 -0
- package/dist/tools/subcomponent-page.d.ts.map +1 -0
- package/dist/tools/subcomponent-page.js +46 -0
- package/dist/tools/subcomponent-page.js.map +1 -0
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +6 -7
- package/dist/tools/tasks.js.map +1 -1
- package/dist/validation/query-validator.d.ts +1 -0
- package/dist/validation/query-validator.d.ts.map +1 -1
- package/dist/validation/query-validator.js +25 -0
- package/dist/validation/query-validator.js.map +1 -1
- package/dist/validation/result-size-guard.d.ts +21 -0
- package/dist/validation/result-size-guard.d.ts.map +1 -0
- package/dist/validation/result-size-guard.js +38 -0
- package/dist/validation/result-size-guard.js.map +1 -0
- package/package.json +11 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface ResultSizeGuardConfig {
|
|
2
|
+
warnBytes?: number;
|
|
3
|
+
hardBytes?: number;
|
|
4
|
+
}
|
|
5
|
+
interface ContentItem {
|
|
6
|
+
type: string;
|
|
7
|
+
text?: string;
|
|
8
|
+
}
|
|
9
|
+
interface ToolResult {
|
|
10
|
+
content: ContentItem[];
|
|
11
|
+
isError?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface GuardResult {
|
|
14
|
+
result: ToolResult;
|
|
15
|
+
responseBytes: number;
|
|
16
|
+
wasTruncated: boolean;
|
|
17
|
+
warning?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function guardResultSize(result: ToolResult, config?: ResultSizeGuardConfig): GuardResult;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=result-size-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-size-guard.d.ts","sourceRoot":"","sources":["../../src/validation/result-size-guard.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,qBAAqB,GAAG,WAAW,CAuC/F"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const DEFAULT_WARN_BYTES = 50_000;
|
|
2
|
+
const DEFAULT_HARD_BYTES = 100_000;
|
|
3
|
+
export function guardResultSize(result, config) {
|
|
4
|
+
if (result.isError) {
|
|
5
|
+
return { result, responseBytes: 0, wasTruncated: false };
|
|
6
|
+
}
|
|
7
|
+
const warnBytes = config?.warnBytes ?? DEFAULT_WARN_BYTES;
|
|
8
|
+
const hardBytes = config?.hardBytes ?? DEFAULT_HARD_BYTES;
|
|
9
|
+
let totalBytes = 0;
|
|
10
|
+
for (const item of result.content) {
|
|
11
|
+
if (item.type === 'text' && item.text) {
|
|
12
|
+
totalBytes += Buffer.byteLength(item.text, 'utf8');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (totalBytes > hardBytes) {
|
|
16
|
+
return {
|
|
17
|
+
result: {
|
|
18
|
+
isError: true,
|
|
19
|
+
content: [{
|
|
20
|
+
type: 'text',
|
|
21
|
+
text: `Result too large (${totalBytes} bytes). Use the dedicated subcomponent tools with limit/skip and narrow fields.`,
|
|
22
|
+
}],
|
|
23
|
+
},
|
|
24
|
+
responseBytes: totalBytes,
|
|
25
|
+
wasTruncated: true,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (totalBytes > warnBytes) {
|
|
29
|
+
return {
|
|
30
|
+
result,
|
|
31
|
+
responseBytes: totalBytes,
|
|
32
|
+
wasTruncated: false,
|
|
33
|
+
warning: `Large result: ${totalBytes} bytes (warn threshold: ${warnBytes})`,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return { result, responseBytes: totalBytes, wasTruncated: false };
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=result-size-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-size-guard.js","sourceRoot":"","sources":["../../src/validation/result-size-guard.ts"],"names":[],"mappings":"AAsBA,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,MAAM,UAAU,eAAe,CAAC,MAAkB,EAAE,MAA8B;IAChF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAE1D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qBAAqB,UAAU,kFAAkF;qBACxH,CAAC;aACH;YACD,aAAa,EAAE,UAAU;YACzB,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,MAAM;YACN,aAAa,EAAE,UAAU;YACzB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,iBAAiB,UAAU,2BAA2B,SAAS,GAAG;SAC5E,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACpE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itm-platform/mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "MCP server for ITM Platform",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"mcpName": "io.github.itmplatform/mcp-server",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"mcp",
|
|
9
|
+
"mcp-server",
|
|
10
|
+
"project-management",
|
|
11
|
+
"itm-platform",
|
|
12
|
+
"ai",
|
|
13
|
+
"model-context-protocol"
|
|
14
|
+
],
|
|
5
15
|
"type": "module",
|
|
6
16
|
"main": "dist/server.js",
|
|
7
17
|
"bin": {
|