@tedorigawa001/servicenow-mcp 1.0.8 → 1.1.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 +3 -0
- package/dist/server-http.d.ts +6 -1
- package/dist/server-http.d.ts.map +1 -1
- package/dist/server-http.js +47 -4
- package/dist/server-http.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +15 -11
- package/dist/server.js.map +1 -1
- package/dist/servicenow/instances.d.ts +24 -1
- package/dist/servicenow/instances.d.ts.map +1 -1
- package/dist/servicenow/instances.js +35 -2
- package/dist/servicenow/instances.js.map +1 -1
- package/dist/tools/core.d.ts.map +1 -1
- package/dist/tools/core.js +5 -27
- package/dist/tools/core.js.map +1 -1
- package/dist/tools/deployment.d.ts.map +1 -1
- package/dist/tools/deployment.js +15 -3
- package/dist/tools/deployment.js.map +1 -1
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +25 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/integration.d.ts +4 -1
- package/dist/tools/integration.d.ts.map +1 -1
- package/dist/tools/integration.js +12 -3
- package/dist/tools/integration.js.map +1 -1
- package/dist/tools/script.d.ts.map +1 -1
- package/dist/tools/script.js +32 -2
- package/dist/tools/script.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -495,6 +495,9 @@ MCP_TRANSPORT=http MCP_HTTP_AUTH_TOKEN=replace-with-a-random-secret node dist/se
|
|
|
495
495
|
| `MCP_HTTP_CORS_ORIGIN` | `*` | CORS 許可オリジン |
|
|
496
496
|
| `MCP_HTTP_ALLOWED_HOSTS` | (なし) | カンマ区切り。指定すると DNS リバインディング保護を有効化 |
|
|
497
497
|
| `MCP_HTTP_ALLOWED_ORIGINS` | (なし) | カンマ区切り。Origin ヘッダの許可リスト |
|
|
498
|
+
| `MCP_HTTP_MAX_BODY_BYTES` | `1048576` | JSON-RPC 要求本文の最大バイト数 |
|
|
499
|
+
| `MCP_HTTP_MAX_SESSIONS` | `100` | 同時 HTTP MCP セッションの上限 |
|
|
500
|
+
| `MCP_HTTP_SESSION_IDLE_TIMEOUT_MS` | `1800000` | 未使用セッションを閉じるまでのミリ秒 |
|
|
498
501
|
|
|
499
502
|
セッションは MCP 仕様に従い、`initialize` 応答の `Mcp-Session-Id` ヘッダで払い出され、
|
|
500
503
|
以降のリクエストで再利用します(`DELETE /mcp` でセッション終了)。HTTP 接続するクライアント設定例:
|
package/dist/server-http.d.ts
CHANGED
|
@@ -19,6 +19,9 @@ export interface HttpConfig {
|
|
|
19
19
|
allowedHosts?: string[];
|
|
20
20
|
allowedOrigins?: string[];
|
|
21
21
|
authToken?: string;
|
|
22
|
+
maxBodyBytes: number;
|
|
23
|
+
maxSessions: number;
|
|
24
|
+
sessionIdleTimeoutMs: number;
|
|
22
25
|
}
|
|
23
26
|
/** Resolve HTTP transport configuration from environment variables. */
|
|
24
27
|
export declare function getHttpConfig(): HttpConfig;
|
|
@@ -29,7 +32,9 @@ export declare function closeAllSessions(): void;
|
|
|
29
32
|
/** Build a minimal JSON-RPC error payload. */
|
|
30
33
|
export declare function jsonRpcError(code: number, message: string, id?: string | number | null): string;
|
|
31
34
|
/** Read and JSON-parse the request body. Returns undefined for an empty body. */
|
|
32
|
-
export declare
|
|
35
|
+
export declare class RequestBodyTooLargeError extends Error {
|
|
36
|
+
}
|
|
37
|
+
export declare function readJsonBody(req: http.IncomingMessage, maxBodyBytes?: number): Promise<unknown>;
|
|
33
38
|
/**
|
|
34
39
|
* Handle a single MCP HTTP request. Exported for unit testing — the listener
|
|
35
40
|
* passed to `http.createServer` is a thin wrapper around this.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../src/server-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../src/server-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,uEAAuE;AACvE,wBAAgB,aAAa,IAAI,UAAU,CAmB1C;AAMD,kEAAkE;AAClE,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAE,MAAM,GAAG,MAAM,GAAG,IAAW,GAAG,MAAM,CAErG;AAwBD,iFAAiF;AACjF,qBAAa,wBAAyB,SAAQ,KAAK;CAAG;AAEtD,wBAAsB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,SAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAYxG;AAgDD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,GAAG,GAAE,UAA4B,GAChC,OAAO,CAAC,IAAI,CAAC,CAkFf;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,UAA4B,GAAG,IAAI,CAAC,MAAM,CAI/E;AAED,+EAA+E;AAC/E,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAwB5D"}
|
package/dist/server-http.js
CHANGED
|
@@ -34,10 +34,14 @@ export function getHttpConfig() {
|
|
|
34
34
|
allowedHosts: splitList(process.env.MCP_HTTP_ALLOWED_HOSTS),
|
|
35
35
|
allowedOrigins: splitList(process.env.MCP_HTTP_ALLOWED_ORIGINS),
|
|
36
36
|
authToken: process.env.MCP_HTTP_AUTH_TOKEN,
|
|
37
|
+
maxBodyBytes: Number(process.env.MCP_HTTP_MAX_BODY_BYTES) || 1_048_576,
|
|
38
|
+
maxSessions: Number(process.env.MCP_HTTP_MAX_SESSIONS) || 100,
|
|
39
|
+
sessionIdleTimeoutMs: Number(process.env.MCP_HTTP_SESSION_IDLE_TIMEOUT_MS) || 1_800_000,
|
|
37
40
|
};
|
|
38
41
|
}
|
|
39
42
|
/** Active transports keyed by session id (stateful mode). */
|
|
40
43
|
const transports = new Map();
|
|
44
|
+
const sessionTimers = new Map();
|
|
41
45
|
/** Number of live sessions — exported for observability/tests. */
|
|
42
46
|
export function activeSessionCount() {
|
|
43
47
|
return transports.size;
|
|
@@ -48,6 +52,9 @@ export function closeAllSessions() {
|
|
|
48
52
|
void transport.close();
|
|
49
53
|
}
|
|
50
54
|
transports.clear();
|
|
55
|
+
for (const timer of sessionTimers.values())
|
|
56
|
+
clearTimeout(timer);
|
|
57
|
+
sessionTimers.clear();
|
|
51
58
|
}
|
|
52
59
|
/** Build a minimal JSON-RPC error payload. */
|
|
53
60
|
export function jsonRpcError(code, message, id = null) {
|
|
@@ -73,10 +80,17 @@ function isAuthorized(req, cfg) {
|
|
|
73
80
|
return supplied.length === expected.length && timingSafeEqual(supplied, expected);
|
|
74
81
|
}
|
|
75
82
|
/** Read and JSON-parse the request body. Returns undefined for an empty body. */
|
|
76
|
-
export
|
|
83
|
+
export class RequestBodyTooLargeError extends Error {
|
|
84
|
+
}
|
|
85
|
+
export async function readJsonBody(req, maxBodyBytes = 1_048_576) {
|
|
77
86
|
const chunks = [];
|
|
87
|
+
let size = 0;
|
|
78
88
|
for await (const chunk of req) {
|
|
79
|
-
|
|
89
|
+
const buffer = Buffer.from(chunk);
|
|
90
|
+
size += buffer.length;
|
|
91
|
+
if (size > maxBodyBytes)
|
|
92
|
+
throw new RequestBodyTooLargeError(`Request body exceeds ${maxBodyBytes} bytes.`);
|
|
93
|
+
chunks.push(buffer);
|
|
80
94
|
}
|
|
81
95
|
const raw = Buffer.concat(chunks).toString('utf8');
|
|
82
96
|
if (!raw.trim())
|
|
@@ -89,6 +103,7 @@ async function createSessionTransport(cfg) {
|
|
|
89
103
|
sessionIdGenerator: () => randomUUID(),
|
|
90
104
|
onsessioninitialized: (sessionId) => {
|
|
91
105
|
transports.set(sessionId, transport);
|
|
106
|
+
refreshSessionExpiry(sessionId, transport, cfg);
|
|
92
107
|
logger.info(`HTTP session opened: ${sessionId} [${transports.size} active]`);
|
|
93
108
|
},
|
|
94
109
|
...(cfg.allowedHosts || cfg.allowedOrigins
|
|
@@ -104,11 +119,28 @@ async function createSessionTransport(cfg) {
|
|
|
104
119
|
if (sid && transports.delete(sid)) {
|
|
105
120
|
logger.info(`HTTP session closed: ${sid} [${transports.size} active]`);
|
|
106
121
|
}
|
|
122
|
+
if (sid) {
|
|
123
|
+
const timer = sessionTimers.get(sid);
|
|
124
|
+
if (timer)
|
|
125
|
+
clearTimeout(timer);
|
|
126
|
+
sessionTimers.delete(sid);
|
|
127
|
+
}
|
|
107
128
|
};
|
|
108
129
|
const server = createServer();
|
|
109
130
|
await server.connect(transport);
|
|
110
131
|
return transport;
|
|
111
132
|
}
|
|
133
|
+
function refreshSessionExpiry(sessionId, transport, cfg) {
|
|
134
|
+
const existing = sessionTimers.get(sessionId);
|
|
135
|
+
if (existing)
|
|
136
|
+
clearTimeout(existing);
|
|
137
|
+
const timer = setTimeout(() => {
|
|
138
|
+
logger.info(`HTTP session expired: ${sessionId}`);
|
|
139
|
+
void transport.close();
|
|
140
|
+
}, cfg.sessionIdleTimeoutMs);
|
|
141
|
+
timer.unref();
|
|
142
|
+
sessionTimers.set(sessionId, timer);
|
|
143
|
+
}
|
|
112
144
|
/**
|
|
113
145
|
* Handle a single MCP HTTP request. Exported for unit testing — the listener
|
|
114
146
|
* passed to `http.createServer` is a thin wrapper around this.
|
|
@@ -142,12 +174,18 @@ export async function handleHttpRequest(req, res, cfg = getHttpConfig()) {
|
|
|
142
174
|
const sessionId = req.headers['mcp-session-id'];
|
|
143
175
|
try {
|
|
144
176
|
if (req.method === 'POST') {
|
|
145
|
-
const body = await readJsonBody(req);
|
|
177
|
+
const body = await readJsonBody(req, cfg.maxBodyBytes);
|
|
146
178
|
let transport;
|
|
147
179
|
if (sessionId && transports.has(sessionId)) {
|
|
148
180
|
transport = transports.get(sessionId);
|
|
181
|
+
refreshSessionExpiry(sessionId, transport, cfg);
|
|
149
182
|
}
|
|
150
183
|
else if (!sessionId && isInitializeRequest(body)) {
|
|
184
|
+
if (transports.size >= cfg.maxSessions) {
|
|
185
|
+
res.writeHead(429, { 'Content-Type': 'application/json' });
|
|
186
|
+
res.end(jsonRpcError(-32002, 'Too many active sessions'));
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
151
189
|
transport = await createSessionTransport(cfg);
|
|
152
190
|
}
|
|
153
191
|
else {
|
|
@@ -164,6 +202,7 @@ export async function handleHttpRequest(req, res, cfg = getHttpConfig()) {
|
|
|
164
202
|
res.end(jsonRpcError(-32000, 'Bad Request: unknown or missing session id'));
|
|
165
203
|
return;
|
|
166
204
|
}
|
|
205
|
+
refreshSessionExpiry(sessionId, transports.get(sessionId), cfg);
|
|
167
206
|
await transports.get(sessionId).handleRequest(req, res);
|
|
168
207
|
return;
|
|
169
208
|
}
|
|
@@ -172,7 +211,11 @@ export async function handleHttpRequest(req, res, cfg = getHttpConfig()) {
|
|
|
172
211
|
}
|
|
173
212
|
catch (error) {
|
|
174
213
|
logger.error('HTTP request handling failed', error);
|
|
175
|
-
if (!res.headersSent) {
|
|
214
|
+
if (error instanceof RequestBodyTooLargeError && !res.headersSent) {
|
|
215
|
+
res.writeHead(413, { 'Content-Type': 'application/json' });
|
|
216
|
+
res.end(jsonRpcError(-32003, error.message));
|
|
217
|
+
}
|
|
218
|
+
else if (!res.headersSent) {
|
|
176
219
|
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
177
220
|
res.end(jsonRpcError(-32603, 'Internal server error'));
|
|
178
221
|
}
|
package/dist/server-http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-http.js","sourceRoot":"","sources":["../src/server-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-http.js","sourceRoot":"","sources":["../src/server-http.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
|
+
import { type InstanceContext } from './servicenow/instances.js';
|
|
3
4
|
export declare const SERVER_NAME = "servicenow-mcp";
|
|
4
5
|
export declare const SERVER_VERSION: string;
|
|
5
6
|
/** True if at least one ServiceNow instance is configured via any supported method. */
|
|
@@ -12,7 +13,7 @@ export declare function handleCallTool(request: {
|
|
|
12
13
|
name: string;
|
|
13
14
|
arguments?: Record<string, unknown>;
|
|
14
15
|
};
|
|
15
|
-
}): Promise<{
|
|
16
|
+
}, instanceContext?: InstanceContext): Promise<{
|
|
16
17
|
content: {
|
|
17
18
|
type: "text";
|
|
18
19
|
text: string;
|
|
@@ -32,7 +33,7 @@ export declare function handleReadResource(request: {
|
|
|
32
33
|
params: {
|
|
33
34
|
uri: string;
|
|
34
35
|
};
|
|
35
|
-
}): Promise<{
|
|
36
|
+
}, instanceContext?: InstanceContext): Promise<{
|
|
36
37
|
contents: {
|
|
37
38
|
uri: string;
|
|
38
39
|
mimeType: string;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAWnE,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AASlF,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAE5C,eAAO,MAAM,cAAc,QAEM,CAAC;AAElC,uFAAuF;AACvF,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C;AAID,wBAAsB,eAAe;;GAEpC;AAID,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC/D,EAAE,eAAe,GAAE,eAAwC;;;;;;;;;;;;GAiD3D;AAED,wBAAsB,mBAAmB;;GAExC;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAAE,eAAe,GAAE,eAAwC;;;;;;GAmBvI;AAED,wBAAsB,iBAAiB;;GAEtC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAC9D,GAAG,OAAO,CAAC,GAAG,CAAC,CASf;AAID,iEAAiE;AACjE,wBAAgB,YAAY,IAAI,MAAM,CAwBrC;AAED,wBAAsB,IAAI,kBAiBzB"}
|
package/dist/server.js
CHANGED
|
@@ -17,16 +17,18 @@ export const SERVER_NAME = 'servicenow-mcp';
|
|
|
17
17
|
export const SERVER_VERSION = JSON.parse(readFileSync(fileURLToPath(new URL('../package.json', import.meta.url)), 'utf8')).version;
|
|
18
18
|
/** True if at least one ServiceNow instance is configured via any supported method. */
|
|
19
19
|
export function isInstanceConfigured() {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
// InstanceManager owns all supported configuration sources, including the
|
|
21
|
+
// setup wizard's ~/.config/servicenow-mcp/instances.json store. Keeping the
|
|
22
|
+
// startup check on that same source of truth prevents valid wizard setups
|
|
23
|
+
// from being rejected when no environment variables are present.
|
|
24
|
+
return instanceManager.listNames().length > 0;
|
|
24
25
|
}
|
|
25
26
|
// ─── Request handlers (exported for unit testing) ─────────────────────────────
|
|
26
27
|
export async function handleListTools() {
|
|
27
28
|
return { tools: getTools() };
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
const defaultInstanceContext = instanceManager.createContext();
|
|
31
|
+
export async function handleCallTool(request, instanceContext = defaultInstanceContext) {
|
|
30
32
|
const { name, arguments: args } = request.params;
|
|
31
33
|
logger.info(`Tool called: ${name}`);
|
|
32
34
|
try {
|
|
@@ -35,8 +37,9 @@ export async function handleCallTool(request) {
|
|
|
35
37
|
throw new ServiceNowError(`Unknown tool: ${name}`, 'UNKNOWN_TOOL');
|
|
36
38
|
}
|
|
37
39
|
const instanceName = args?.['instance'];
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
+
const instanceTools = new Set(['switch_instance', 'list_instances', 'get_current_instance']);
|
|
41
|
+
const client = instanceTools.has(name) ? undefined : instanceContext.getClient(instanceName);
|
|
42
|
+
const result = await executeTool(client, name, args || {}, instanceContext);
|
|
40
43
|
return {
|
|
41
44
|
content: [
|
|
42
45
|
{
|
|
@@ -73,10 +76,10 @@ export async function handleCallTool(request) {
|
|
|
73
76
|
export async function handleListResources() {
|
|
74
77
|
return { resources: getResources() };
|
|
75
78
|
}
|
|
76
|
-
export async function handleReadResource(request) {
|
|
79
|
+
export async function handleReadResource(request, instanceContext = defaultInstanceContext) {
|
|
77
80
|
const { uri } = request.params;
|
|
78
81
|
try {
|
|
79
|
-
const client =
|
|
82
|
+
const client = instanceContext.getClient();
|
|
80
83
|
const content = await readResource(client, uri);
|
|
81
84
|
return {
|
|
82
85
|
contents: [
|
|
@@ -107,6 +110,7 @@ export async function handleGetPrompt(request) {
|
|
|
107
110
|
// ─── Server wiring ────────────────────────────────────────────────────────────
|
|
108
111
|
/** Build the MCP server with all request handlers registered. */
|
|
109
112
|
export function createServer() {
|
|
113
|
+
const instanceContext = instanceManager.createContext();
|
|
110
114
|
const server = new Server({
|
|
111
115
|
name: SERVER_NAME,
|
|
112
116
|
version: SERVER_VERSION,
|
|
@@ -118,9 +122,9 @@ export function createServer() {
|
|
|
118
122
|
},
|
|
119
123
|
});
|
|
120
124
|
server.setRequestHandler(ListToolsRequestSchema, handleListTools);
|
|
121
|
-
server.setRequestHandler(CallToolRequestSchema, handleCallTool);
|
|
125
|
+
server.setRequestHandler(CallToolRequestSchema, (request) => handleCallTool(request, instanceContext));
|
|
122
126
|
server.setRequestHandler(ListResourcesRequestSchema, handleListResources);
|
|
123
|
-
server.setRequestHandler(ReadResourceRequestSchema, handleReadResource);
|
|
127
|
+
server.setRequestHandler(ReadResourceRequestSchema, (request) => handleReadResource(request, instanceContext));
|
|
124
128
|
server.setRequestHandler(ListPromptsRequestSchema, handleListPrompts);
|
|
125
129
|
server.setRequestHandler(GetPromptRequestSchema, handleGetPrompt);
|
|
126
130
|
return server;
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
import { ServiceNowClient } from './client.js';
|
|
2
|
+
/** Per-connection instance selection. Never share this mutable state between HTTP sessions. */
|
|
3
|
+
export declare class InstanceContext {
|
|
4
|
+
private readonly manager;
|
|
5
|
+
private currentName;
|
|
6
|
+
constructor(manager: InstanceManager);
|
|
7
|
+
getClient(name?: string): ServiceNowClient;
|
|
8
|
+
switch(name: string): void;
|
|
9
|
+
getCurrentName(): string;
|
|
10
|
+
getCurrentUrl(): string;
|
|
11
|
+
listNames(): string[];
|
|
12
|
+
listAll(): Array<{
|
|
13
|
+
name: string;
|
|
14
|
+
url: string;
|
|
15
|
+
active: boolean;
|
|
16
|
+
group: string;
|
|
17
|
+
environment: string;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
2
20
|
declare class InstanceManager {
|
|
3
21
|
private instances;
|
|
4
22
|
private currentName;
|
|
@@ -8,6 +26,11 @@ declare class InstanceManager {
|
|
|
8
26
|
private register;
|
|
9
27
|
/** Return client for named instance (or current instance if no name given). */
|
|
10
28
|
getClient(name?: string): ServiceNowClient;
|
|
29
|
+
/** Create an isolated selection context for an MCP connection. */
|
|
30
|
+
createContext(): InstanceContext;
|
|
31
|
+
getDefaultName(): string;
|
|
32
|
+
assertKnown(name: string): void;
|
|
33
|
+
getUrl(name: string): string;
|
|
11
34
|
/** Reload instances from config files (call after config is updated). */
|
|
12
35
|
reload(): void;
|
|
13
36
|
/** Switch the active instance for the session. */
|
|
@@ -15,7 +38,7 @@ declare class InstanceManager {
|
|
|
15
38
|
getCurrentName(): string;
|
|
16
39
|
getCurrentUrl(): string;
|
|
17
40
|
listNames(): string[];
|
|
18
|
-
listAll(): Array<{
|
|
41
|
+
listAll(activeName?: string): Array<{
|
|
19
42
|
name: string;
|
|
20
43
|
url: string;
|
|
21
44
|
active: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/servicenow/instances.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAY/C,cAAM,eAAe;IACnB,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,WAAW,CAAqB;;IAMxC,OAAO,CAAC,aAAa;IAwGrB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,QAAQ;IAUhB,+EAA+E;IAC/E,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAS1C,yEAAyE;IACzE,MAAM,IAAI,IAAI;IAMd,kDAAkD;IAClD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ1B,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,SAAS,IAAI,MAAM,EAAE;IAIrB,OAAO,
|
|
1
|
+
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/servicenow/instances.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAY/C,+FAA+F;AAC/F,qBAAa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,WAAW,CAAS;gBAEC,OAAO,EAAE,eAAe;IAIrD,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAI1C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B,cAAc,IAAI,MAAM;IACxB,aAAa,IAAI,MAAM;IACvB,SAAS,IAAI,MAAM,EAAE;IACrB,OAAO,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAGrG;AAED,cAAM,eAAe;IACnB,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,WAAW,CAAqB;;IAMxC,OAAO,CAAC,aAAa;IAwGrB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,QAAQ;IAUhB,+EAA+E;IAC/E,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAS1C,kEAAkE;IAClE,aAAa,IAAI,eAAe;IAIhC,cAAc,IAAI,MAAM;IAExB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAE5B,yEAAyE;IACzE,MAAM,IAAI,IAAI;IAMd,kDAAkD;IAClD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ1B,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,SAAS,IAAI,MAAM,EAAE;IAIrB,OAAO,CAAC,UAAU,SAAmB,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CASlI;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -20,6 +20,28 @@ import { homedir } from 'os';
|
|
|
20
20
|
import { join } from 'path';
|
|
21
21
|
import { ServiceNowClient } from './client.js';
|
|
22
22
|
import { logger } from '../utils/logging.js';
|
|
23
|
+
/** Per-connection instance selection. Never share this mutable state between HTTP sessions. */
|
|
24
|
+
export class InstanceContext {
|
|
25
|
+
manager;
|
|
26
|
+
currentName;
|
|
27
|
+
constructor(manager) {
|
|
28
|
+
this.manager = manager;
|
|
29
|
+
this.currentName = manager.getDefaultName();
|
|
30
|
+
}
|
|
31
|
+
getClient(name) {
|
|
32
|
+
return this.manager.getClient(name || this.currentName);
|
|
33
|
+
}
|
|
34
|
+
switch(name) {
|
|
35
|
+
this.manager.assertKnown(name);
|
|
36
|
+
this.currentName = name.toLowerCase();
|
|
37
|
+
}
|
|
38
|
+
getCurrentName() { return this.currentName; }
|
|
39
|
+
getCurrentUrl() { return this.manager.getUrl(this.currentName); }
|
|
40
|
+
listNames() { return this.manager.listNames(); }
|
|
41
|
+
listAll() {
|
|
42
|
+
return this.manager.listAll(this.currentName);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
23
45
|
class InstanceManager {
|
|
24
46
|
instances = new Map();
|
|
25
47
|
currentName = 'default';
|
|
@@ -161,6 +183,17 @@ class InstanceManager {
|
|
|
161
183
|
}
|
|
162
184
|
return entry.client;
|
|
163
185
|
}
|
|
186
|
+
/** Create an isolated selection context for an MCP connection. */
|
|
187
|
+
createContext() {
|
|
188
|
+
return new InstanceContext(this);
|
|
189
|
+
}
|
|
190
|
+
getDefaultName() { return this.currentName; }
|
|
191
|
+
assertKnown(name) {
|
|
192
|
+
if (!this.instances.has(name.toLowerCase())) {
|
|
193
|
+
throw new Error(`Unknown instance "${name}". Available: ${this.listNames().join(', ')}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
getUrl(name) { return this.instances.get(name)?.url || ''; }
|
|
164
197
|
/** Reload instances from config files (call after config is updated). */
|
|
165
198
|
reload() {
|
|
166
199
|
this.instances.clear();
|
|
@@ -184,11 +217,11 @@ class InstanceManager {
|
|
|
184
217
|
listNames() {
|
|
185
218
|
return Array.from(this.instances.keys());
|
|
186
219
|
}
|
|
187
|
-
listAll() {
|
|
220
|
+
listAll(activeName = this.currentName) {
|
|
188
221
|
return Array.from(this.instances.values()).map(e => ({
|
|
189
222
|
name: e.name,
|
|
190
223
|
url: e.url,
|
|
191
|
-
active: e.name ===
|
|
224
|
+
active: e.name === activeName,
|
|
192
225
|
group: e.group,
|
|
193
226
|
environment: e.environment,
|
|
194
227
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/servicenow/instances.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/servicenow/instances.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAU7C,+FAA+F;AAC/F,MAAM,OAAO,eAAe;IAGG;IAFrB,WAAW,CAAS;IAE5B,YAA6B,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;QACnD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,IAAa;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,cAAc,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACrD,aAAa,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACzE,SAAS,KAAe,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,eAAe;IACX,SAAS,GAA+B,IAAI,GAAG,EAAE,CAAC;IAClD,WAAW,GAAW,SAAS,CAAC;IAExC;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,oCAAoC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACnD,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;gBACzD,MAAM,WAAW,GAAW,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;gBAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,GAAG,GAAU,CAAC;oBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAClC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,EACvB,CAAC,CACF,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;oBAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBACpE,OAAO;YACT,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,uCAAuC,UAAU,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChH,2BAA2B;YAC7B,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,+EAA+E;QAC/E,iEAAiE;QACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACxF,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/D,MAAM,WAAW,GAAW,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;gBAC7D,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,GAAG,GAA8B,CAAC;oBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;wBAClB,WAAW,EAAE,CAAC,CAAC,aAAa,CAAW;wBACvC,KAAK,EAAE;4BACL,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAW;4BACjC,YAAY,EAAE,CAAC,CAAC,cAAc,CAAW;4BACzC,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAuB;4BAClD,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAuB;yBACnD;wBACD,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAiC;wBACvD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;qBACjE,EAAG,CAAC,CAAC,OAAO,CAAY,IAAI,SAAS,EAAG,CAAC,CAAC,aAAa,CAAY,IAAI,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;oBAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBACpE,OAAO;YACT,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,oCAAoC,gBAAgB,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnH,2BAA2B;YAC7B,CAAC;QACH,CAAC;QAED,kFAAkF;QAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAE/E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;YACrE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC7E,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAClB,WAAW,EAAE,GAAG;gBAChB,KAAK,EAAE;oBACL,QAAQ;oBACR,YAAY;oBACZ,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,WAAW,CAAC;oBACtD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,WAAW,CAAC;iBACvD;gBACD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoD;gBAC1E,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;aACjE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7E,IAAI,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;QACpC,CAAC;QAED,iFAAiF;QACjF,2EAA2E;QAC3E,wEAAwE;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACtD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;gBACvB,WAAW,EAAE,SAAS;gBACtB,KAAK,EAAE;oBACL,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;oBAC1F,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;oBACtG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;oBAClF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;iBACnF;gBACD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoD;gBAC1E,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;gBAChE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAAE,EAAE,CAAC;gBACxD,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,EAAE,EAAE,CAAC;gBAChE,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC;aAC1E,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC9D,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAW,EAAE,CAAM;QACrC,OAAO;YACL,WAAW,EAAE,GAAG;YAChB,KAAK,EAAE;gBACL,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;gBAC3B,YAAY,EAAE,CAAC,CAAC,aAAa,IAAI,EAAE;gBACnC,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB;YACD,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB;YACvE,kBAAkB,EAAE,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,gCAAgC;YACnH,UAAU,EAAE,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAAE,EAAE,CAAC;YACzE,YAAY,EAAE,CAAC,CAAC,cAAc,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,EAAE,EAAE,CAAC;YACpF,gBAAgB,EAAE,CAAC,CAAC,kBAAkB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC;SAClG,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,MAAwB,EAAE,KAAK,GAAG,SAAS,EAAE,WAAW,GAAG,EAAE;QAC1F,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE;YACvB,IAAI;YACJ,GAAG,EAAE,MAAM,CAAC,WAAW;YACvB,KAAK;YACL,WAAW;YACX,MAAM,EAAE,IAAI,gBAAgB,CAAC,MAAM,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,SAAS,CAAC,IAAa;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,kEAAkE;IAClE,aAAa;QACX,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,cAAc,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAErD,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAY,IAAY,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAE5E,yEAAyE;IACzE,MAAM;QACJ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,IAAY;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,SAAS;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,MAAM,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU;YAC7B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
|
package/dist/tools/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAehE,wBAAgB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuRrC;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAgbd"}
|
package/dist/tools/core.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ServiceNowError } from '../utils/errors.js';
|
|
2
|
-
import { requireWrite } from '../utils/permissions.js';
|
|
3
|
-
import { instanceManager } from '../servicenow/instances.js';
|
|
2
|
+
import { requireCmdbWrite, requireWrite } from '../utils/permissions.js';
|
|
4
3
|
export function getCoreToolDefinitions() {
|
|
5
4
|
return [
|
|
6
5
|
{
|
|
@@ -200,7 +199,7 @@ export function getCoreToolDefinitions() {
|
|
|
200
199
|
},
|
|
201
200
|
{
|
|
202
201
|
name: 'create_ci_relationship',
|
|
203
|
-
description: '[Write] Create a relationship between two CMDB Configuration Items',
|
|
202
|
+
description: '[CMDB Write] Create a relationship between two CMDB Configuration Items',
|
|
204
203
|
inputSchema: {
|
|
205
204
|
type: 'object',
|
|
206
205
|
properties: {
|
|
@@ -225,7 +224,7 @@ export function getCoreToolDefinitions() {
|
|
|
225
224
|
},
|
|
226
225
|
{
|
|
227
226
|
name: 'run_discovery_scan',
|
|
228
|
-
description: '[Write] Trigger a ServiceNow Discovery scan for network/infrastructure',
|
|
227
|
+
description: '[CMDB Write] Trigger a ServiceNow Discovery scan for network/infrastructure',
|
|
229
228
|
inputSchema: {
|
|
230
229
|
type: 'object',
|
|
231
230
|
properties: {
|
|
@@ -339,29 +338,8 @@ export async function executeCoreToolCall(client, name, args) {
|
|
|
339
338
|
case 'natural_language_update':
|
|
340
339
|
requireWrite();
|
|
341
340
|
return await client.naturalLanguageUpdate(args.instruction, args.table);
|
|
342
|
-
case 'list_instances':
|
|
343
|
-
return {
|
|
344
|
-
current: instanceManager.getCurrentName(),
|
|
345
|
-
instances: instanceManager.listAll(),
|
|
346
|
-
total: instanceManager.listNames().length,
|
|
347
|
-
};
|
|
348
|
-
case 'switch_instance':
|
|
349
|
-
if (!args.name)
|
|
350
|
-
throw new ServiceNowError('name is required', 'INVALID_REQUEST');
|
|
351
|
-
instanceManager.switch(args.name);
|
|
352
|
-
return {
|
|
353
|
-
action: 'switched',
|
|
354
|
-
active_instance: instanceManager.getCurrentName(),
|
|
355
|
-
url: instanceManager.getCurrentUrl(),
|
|
356
|
-
};
|
|
357
|
-
case 'get_current_instance':
|
|
358
|
-
return {
|
|
359
|
-
name: instanceManager.getCurrentName(),
|
|
360
|
-
url: instanceManager.getCurrentUrl(),
|
|
361
|
-
all_instances: instanceManager.listNames(),
|
|
362
|
-
};
|
|
363
341
|
case 'create_ci_relationship': {
|
|
364
|
-
|
|
342
|
+
requireCmdbWrite();
|
|
365
343
|
if (!args.parent || !args.child || !args.type)
|
|
366
344
|
throw new ServiceNowError('parent, child, and type are required', 'INVALID_REQUEST');
|
|
367
345
|
const result = await client.createRecord('cmdb_rel_ci', {
|
|
@@ -403,9 +381,9 @@ export async function executeCoreToolCall(client, name, args) {
|
|
|
403
381
|
return { impact_analysis: impactTree, total_impacted: visited.size - 1 };
|
|
404
382
|
}
|
|
405
383
|
case 'run_discovery_scan': {
|
|
406
|
-
requireWrite();
|
|
407
384
|
if (!args.schedule_id)
|
|
408
385
|
throw new ServiceNowError('schedule_id is required', 'INVALID_REQUEST');
|
|
386
|
+
requireCmdbWrite();
|
|
409
387
|
// Inserting a discovery_status record directly does NOT launch any probes
|
|
410
388
|
// (verified live: the record sits at state=Active with zero probes and the
|
|
411
389
|
// MID never receives a Shazzam job). The Discovery engine only starts runs
|