@structured-world/gitlab-mcp 7.0.2 → 7.2.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 +4 -2
- package/README.md.in +3 -1
- package/dist/src/config.d.ts +2 -0
- package/dist/src/config.js +4 -2
- package/dist/src/config.js.map +1 -1
- package/dist/src/dashboard/metrics.js +6 -4
- package/dist/src/dashboard/metrics.js.map +1 -1
- package/dist/src/handlers.js +154 -113
- package/dist/src/handlers.js.map +1 -1
- package/dist/src/registry-manager.d.ts +1 -0
- package/dist/src/registry-manager.js +18 -0
- package/dist/src/registry-manager.js.map +1 -1
- package/dist/src/services/ConnectionManager.d.ts +7 -0
- package/dist/src/services/ConnectionManager.js +72 -2
- package/dist/src/services/ConnectionManager.js.map +1 -1
- package/dist/src/services/HealthMonitor.js +63 -8
- package/dist/src/services/HealthMonitor.js.map +1 -1
- package/dist/src/session-manager.d.ts +5 -2
- package/dist/src/session-manager.js +40 -3
- package/dist/src/session-manager.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Advanced GitLab MCP server — 44 tools across 18 entity types with CQRS architecture, OAuth 2.1, and multiple transport modes.
|
|
6
6
|
|
|
7
|
-
[](https://gitlab-mcp.sw.foundation/downloads/gitlab-mcp-7.0.
|
|
7
|
+
[](https://gitlab-mcp.sw.foundation/downloads/gitlab-mcp-7.2.0.mcpb)
|
|
8
8
|
[](vscode:mcp/install?%7B%22name%22%3A%22gitlab-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40structured-world%2Fgitlab-mcp%22%5D%7D)
|
|
9
9
|
[](vscode-insiders:mcp/install?%7B%22name%22%3A%22gitlab-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40structured-world%2Fgitlab-mcp%22%5D%7D)
|
|
10
10
|
|
|
@@ -88,7 +88,7 @@ The server handles GitLab connectivity issues gracefully:
|
|
|
88
88
|
- **Bounded startup** — Server starts within `GITLAB_INIT_TIMEOUT_MS` (default 5s) regardless of GitLab availability
|
|
89
89
|
- **Disconnected mode** — When GitLab is unreachable (`disconnected`/`failed` state), only the `manage_context` tool is exposed, with local actions such as `whoami`, `switch_profile`, and `set_scope` for diagnostics. During active reconnect (`connecting` state), the full tool list remains available so MCP clients don't lose their tool catalog during brief outages. MCP clients are notified of tool availability changes via `tools/list_changed`
|
|
90
90
|
- **Auto-reconnect** — Exponential backoff reconnection (5s → 60s) with ±10% jitter
|
|
91
|
-
- **Error classification** — Transient errors (network, 5xx, timeouts) trigger auto-reconnect. Auth/config errors at startup transition to `failed` state (no auto-reconnect).
|
|
91
|
+
- **Error classification** — Transient errors (network, 5xx, timeouts) trigger auto-reconnect. Auth/config errors at startup transition to `failed` state (no auto-reconnect). Mid-session token revocation is detected via an authenticated `HEAD /api/v4/user` check that runs alongside each periodic health check (static token mode only; skipped in OAuth mode). A 401 or 403 on this check transitions the instance to `failed` state immediately.
|
|
92
92
|
- **Instance health monitor** — Each monitored instance URL has its own XState state machine. Untracked OAuth URLs currently pass through as reachable.
|
|
93
93
|
|
|
94
94
|
| Variable | Default | Description |
|
|
@@ -100,6 +100,8 @@ The server handles GitLab connectivity issues gracefully:
|
|
|
100
100
|
| `GITLAB_FAILURE_THRESHOLD` | `3` | Consecutive transient failures before disconnecting |
|
|
101
101
|
| `GITLAB_TOOL_TIMEOUT_MS` | `120000` | Max time for tool/bootstrap execution before timeout |
|
|
102
102
|
| `GITLAB_RESPONSE_WRITE_TIMEOUT_MS` | `10000` | Max time to flush a non-SSE response before destroying zombie connection (`0` to disable; SSE uses heartbeat) |
|
|
103
|
+
| `GITLAB_INSTANCE_CACHE_MAX` | `100` | Max number of per-URL instance states kept in memory (OAuth multi-tenant; LRU eviction when exceeded) |
|
|
104
|
+
| `GITLAB_INSTANCE_TTL_MS` | `3600000` | TTL for idle per-URL instance states in ms; evicted on next insert (OAuth multi-tenant) |
|
|
103
105
|
|
|
104
106
|
## Feature Flags
|
|
105
107
|
|
package/README.md.in
CHANGED
|
@@ -88,7 +88,7 @@ The server handles GitLab connectivity issues gracefully:
|
|
|
88
88
|
- **Bounded startup** — Server starts within `GITLAB_INIT_TIMEOUT_MS` (default 5s) regardless of GitLab availability
|
|
89
89
|
- **Disconnected mode** — When GitLab is unreachable (`disconnected`/`failed` state), only the `manage_context` tool is exposed, with local actions such as `whoami`, `switch_profile`, and `set_scope` for diagnostics. During active reconnect (`connecting` state), the full tool list remains available so MCP clients don't lose their tool catalog during brief outages. MCP clients are notified of tool availability changes via `tools/list_changed`
|
|
90
90
|
- **Auto-reconnect** — Exponential backoff reconnection (5s → 60s) with ±10% jitter
|
|
91
|
-
- **Error classification** — Transient errors (network, 5xx, timeouts) trigger auto-reconnect. Auth/config errors at startup transition to `failed` state (no auto-reconnect).
|
|
91
|
+
- **Error classification** — Transient errors (network, 5xx, timeouts) trigger auto-reconnect. Auth/config errors at startup transition to `failed` state (no auto-reconnect). Mid-session token revocation is detected via an authenticated `HEAD /api/v4/user` check that runs alongside each periodic health check (static token mode only; skipped in OAuth mode). A 401 or 403 on this check transitions the instance to `failed` state immediately.
|
|
92
92
|
- **Instance health monitor** — Each monitored instance URL has its own XState state machine. Untracked OAuth URLs currently pass through as reachable.
|
|
93
93
|
|
|
94
94
|
| Variable | Default | Description |
|
|
@@ -100,6 +100,8 @@ The server handles GitLab connectivity issues gracefully:
|
|
|
100
100
|
| `GITLAB_FAILURE_THRESHOLD` | `3` | Consecutive transient failures before disconnecting |
|
|
101
101
|
| `GITLAB_TOOL_TIMEOUT_MS` | `120000` | Max time for tool/bootstrap execution before timeout |
|
|
102
102
|
| `GITLAB_RESPONSE_WRITE_TIMEOUT_MS` | `10000` | Max time to flush a non-SSE response before destroying zombie connection (`0` to disable; SSE uses heartbeat) |
|
|
103
|
+
| `GITLAB_INSTANCE_CACHE_MAX` | `100` | Max number of per-URL instance states kept in memory (OAuth multi-tenant; LRU eviction when exceeded) |
|
|
104
|
+
| `GITLAB_INSTANCE_TTL_MS` | `3600000` | TTL for idle per-URL instance states in ms; evicted on next insert (OAuth multi-tenant) |
|
|
103
105
|
|
|
104
106
|
## Feature Flags
|
|
105
107
|
|
package/dist/src/config.d.ts
CHANGED
|
@@ -56,6 +56,8 @@ export declare const RECONNECT_BASE_DELAY_MS: number;
|
|
|
56
56
|
export declare const RECONNECT_MAX_DELAY_MS: number;
|
|
57
57
|
export declare const HEALTH_CHECK_INTERVAL_MS: number;
|
|
58
58
|
export declare const FAILURE_THRESHOLD: number;
|
|
59
|
+
export declare const GITLAB_INSTANCE_CACHE_MAX: number;
|
|
60
|
+
export declare const GITLAB_INSTANCE_TTL_MS: number;
|
|
59
61
|
export declare const POOL_MAX_CONNECTIONS: number;
|
|
60
62
|
export declare const API_RETRY_ENABLED: boolean;
|
|
61
63
|
export declare const API_RETRY_MAX_ATTEMPTS: number;
|
package/dist/src/config.js
CHANGED
|
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
37
|
-
exports.packageVersion = exports.packageName = exports.GITLAB_ALLOWED_PROJECT_IDS = exports.GITLAB_PROJECT_ID = exports.GITLAB_API_URL = exports.GITLAB_BASE_URL = exports.GITLAB_CA_CERT_PATH = exports.NODE_TLS_REJECT_UNAUTHORIZED = exports.HTTPS_PROXY = exports.HTTP_PROXY = exports.DASHBOARD_ENABLED = exports.SKIP_TLS_VERIFY = exports.RATE_LIMIT_SESSION_MAX_REQUESTS = exports.RATE_LIMIT_SESSION_WINDOW_MS = exports.RATE_LIMIT_SESSION_ENABLED = exports.RATE_LIMIT_IP_MAX_REQUESTS = exports.RATE_LIMIT_IP_WINDOW_MS = exports.RATE_LIMIT_IP_ENABLED = exports.RESPONSE_WRITE_TIMEOUT_MS = void 0;
|
|
36
|
+
exports.API_RETRY_MAX_ATTEMPTS = exports.API_RETRY_ENABLED = exports.POOL_MAX_CONNECTIONS = exports.GITLAB_INSTANCE_TTL_MS = exports.GITLAB_INSTANCE_CACHE_MAX = exports.FAILURE_THRESHOLD = exports.HEALTH_CHECK_INTERVAL_MS = exports.RECONNECT_MAX_DELAY_MS = exports.RECONNECT_BASE_DELAY_MS = exports.INIT_TIMEOUT_MS = exports.HANDLER_TIMEOUT_MS = exports.BODY_TIMEOUT_MS = exports.HEADERS_TIMEOUT_MS = exports.CONNECT_TIMEOUT_MS = exports.HTTP_KEEPALIVE_TIMEOUT_MS = exports.SSE_HEARTBEAT_MS = exports.MAX_SAFE_TIMEOUT_MS = exports.TRUST_PROXY = exports.SSL_PASSPHRASE = exports.SSL_CA_PATH = exports.SSL_KEY_PATH = exports.SSL_CERT_PATH = exports.PORT = exports.HOST = exports.USE_ITERATIONS = exports.USE_SEARCH = exports.USE_MEMBERS = exports.USE_REFS = exports.USE_RELEASES = exports.USE_INTEGRATIONS = exports.USE_WEBHOOKS = exports.USE_SNIPPETS = exports.USE_VARIABLES = exports.USE_FILES = exports.USE_MRS = exports.USE_LABELS = exports.USE_WORKITEMS = exports.USE_PIPELINE = exports.USE_MILESTONE = exports.USE_GITLAB_WIKI = exports.GITLAB_SCHEMA_MODE = exports.LOG_FILTER = exports.LOG_FORMAT = exports.GITLAB_DENIED_ACTIONS = exports.GITLAB_DENIED_TOOLS_REGEX = exports.GITLAB_CROSS_REFS = exports.GITLAB_READ_ONLY_MODE = exports.IS_OLD = exports.GITLAB_AUTH_COOKIE_PATH = exports.GITLAB_TOKEN = void 0;
|
|
37
|
+
exports.packageVersion = exports.packageName = exports.GITLAB_ALLOWED_PROJECT_IDS = exports.GITLAB_PROJECT_ID = exports.GITLAB_API_URL = exports.GITLAB_BASE_URL = exports.GITLAB_CA_CERT_PATH = exports.NODE_TLS_REJECT_UNAUTHORIZED = exports.HTTPS_PROXY = exports.HTTP_PROXY = exports.DASHBOARD_ENABLED = exports.SKIP_TLS_VERIFY = exports.RATE_LIMIT_SESSION_MAX_REQUESTS = exports.RATE_LIMIT_SESSION_WINDOW_MS = exports.RATE_LIMIT_SESSION_ENABLED = exports.RATE_LIMIT_IP_MAX_REQUESTS = exports.RATE_LIMIT_IP_WINDOW_MS = exports.RATE_LIMIT_IP_ENABLED = exports.RESPONSE_WRITE_TIMEOUT_MS = exports.API_RETRY_MAX_DELAY_MS = exports.API_RETRY_BASE_DELAY_MS = void 0;
|
|
38
38
|
exports.shouldSkipAccessLog = shouldSkipAccessLog;
|
|
39
39
|
exports.shouldSkipAccessLogRequest = shouldSkipAccessLogRequest;
|
|
40
40
|
exports.detectSchemaMode = detectSchemaMode;
|
|
@@ -256,6 +256,8 @@ exports.RECONNECT_BASE_DELAY_MS = parseTimerMs(process.env.GITLAB_RECONNECT_BASE
|
|
|
256
256
|
exports.RECONNECT_MAX_DELAY_MS = parseTimerMs(process.env.GITLAB_RECONNECT_MAX_DELAY_MS, 60000);
|
|
257
257
|
exports.HEALTH_CHECK_INTERVAL_MS = parseTimerMs(process.env.GITLAB_HEALTH_CHECK_INTERVAL_MS, 60000);
|
|
258
258
|
exports.FAILURE_THRESHOLD = parseStrictInt(process.env.GITLAB_FAILURE_THRESHOLD, 3);
|
|
259
|
+
exports.GITLAB_INSTANCE_CACHE_MAX = parseStrictInt(process.env.GITLAB_INSTANCE_CACHE_MAX, 100);
|
|
260
|
+
exports.GITLAB_INSTANCE_TTL_MS = parseTimerMs(process.env.GITLAB_INSTANCE_TTL_MS, 60 * 60 * 1000);
|
|
259
261
|
exports.POOL_MAX_CONNECTIONS = parseStrictInt(process.env.GITLAB_POOL_MAX_CONNECTIONS, 25);
|
|
260
262
|
exports.API_RETRY_ENABLED = process.env.GITLAB_API_RETRY_ENABLED !== 'false';
|
|
261
263
|
exports.API_RETRY_MAX_ATTEMPTS = parseStrictInt(process.env.GITLAB_API_RETRY_MAX_ATTEMPTS, 3, true);
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,10 +118,11 @@ function getAuthMode() {
|
|
|
118
118
|
function getToolCounts() {
|
|
119
119
|
try {
|
|
120
120
|
const registry = registry_manager_js_1.RegistryManager.getInstance();
|
|
121
|
-
const
|
|
121
|
+
const catalogTools = registry.getToolCatalog();
|
|
122
|
+
const discoveryTools = registry.getAllToolDefinitions();
|
|
122
123
|
return {
|
|
123
|
-
enabled:
|
|
124
|
-
total:
|
|
124
|
+
enabled: discoveryTools.length,
|
|
125
|
+
total: catalogTools.length,
|
|
125
126
|
};
|
|
126
127
|
}
|
|
127
128
|
catch {
|
|
@@ -156,7 +157,8 @@ function collectMetrics() {
|
|
|
156
157
|
const configSource = instanceRegistry.getConfigSource();
|
|
157
158
|
const toolCounts = getToolCounts();
|
|
158
159
|
const uptimeSeconds = Math.floor((Date.now() - serverStartTime) / 1000);
|
|
159
|
-
const
|
|
160
|
+
const sessionsByInstanceMap = sessionManager.getSessionsByInstance();
|
|
161
|
+
const sessionsByInstance = Object.fromEntries(sessionsByInstanceMap);
|
|
160
162
|
return {
|
|
161
163
|
server: {
|
|
162
164
|
version: config_js_1.packageVersion,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/dashboard/metrics.ts"],"names":[],"mappings":";;;AA4FA,0DAkCC;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/dashboard/metrics.ts"],"names":[],"mappings":"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"}
|
package/dist/src/handlers.js
CHANGED
|
@@ -116,6 +116,117 @@ function toStructuredError(error, toolName, toolArgs) {
|
|
|
116
116
|
return null;
|
|
117
117
|
return (0, error_handler_1.handleGitLabError)({ status: parsed.status, message: parsed.message }, toolName, action, toolArgs);
|
|
118
118
|
}
|
|
119
|
+
function checkUnreachableInstance(toolName, toolArguments, effectiveInstanceUrl, healthMonitor) {
|
|
120
|
+
if (healthMonitor.isInstanceReachable(effectiveInstanceUrl) || toolName === 'manage_context') {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
const action = toolArguments && typeof toolArguments.action === 'string' ? toolArguments.action : 'unknown';
|
|
124
|
+
const rawState = healthMonitor.getState(effectiveInstanceUrl);
|
|
125
|
+
let connectionState;
|
|
126
|
+
if (rawState === 'failed') {
|
|
127
|
+
connectionState = 'failed';
|
|
128
|
+
}
|
|
129
|
+
else if (rawState === 'connecting') {
|
|
130
|
+
connectionState = 'connecting';
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
connectionState = 'disconnected';
|
|
134
|
+
}
|
|
135
|
+
const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, connectionState);
|
|
136
|
+
recordEarlyReturnError(toolName, action, connError.message);
|
|
137
|
+
return { content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }], isError: true };
|
|
138
|
+
}
|
|
139
|
+
async function tryManageContextFastPath(toolName, toolArguments, effectiveInstanceUrl, healthMonitor) {
|
|
140
|
+
if (toolName !== 'manage_context' || healthMonitor.isInstanceReachable(effectiveInstanceUrl)) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
if (config_1.LOG_FORMAT === 'condensed') {
|
|
144
|
+
const action = toolArguments && typeof toolArguments.action === 'string' ? toolArguments.action : undefined;
|
|
145
|
+
const requestTracker = (0, index_1.getRequestTracker)();
|
|
146
|
+
requestTracker.setToolForCurrentRequest(toolName, action);
|
|
147
|
+
}
|
|
148
|
+
const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
|
|
149
|
+
const registryManager = RegistryManager.getInstance();
|
|
150
|
+
if (registryManager.hasToolHandler(toolName, effectiveInstanceUrl)) {
|
|
151
|
+
const result = await registryManager.executeTool(toolName, toolArguments, effectiveInstanceUrl);
|
|
152
|
+
if (result === undefined) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
156
|
+
}
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
async function ensureBootstrapped(ctx) {
|
|
160
|
+
const { toolName, toolArguments, effectiveInstanceUrl, oauthMode, connectionManager, healthMonitor, isTimedOut, bootstrapState, } = ctx;
|
|
161
|
+
bootstrapState.started = true;
|
|
162
|
+
try {
|
|
163
|
+
if (!connectionManager.isConnected(effectiveInstanceUrl)) {
|
|
164
|
+
if (config_1.LOG_FORMAT === 'verbose') {
|
|
165
|
+
(0, logger_1.logInfo)('Connection not initialized, attempting to initialize...');
|
|
166
|
+
}
|
|
167
|
+
await connectionManager.initialize(effectiveInstanceUrl);
|
|
168
|
+
}
|
|
169
|
+
connectionManager.getClient(effectiveInstanceUrl);
|
|
170
|
+
if (oauthMode) {
|
|
171
|
+
await connectionManager.ensureIntrospected(effectiveInstanceUrl);
|
|
172
|
+
}
|
|
173
|
+
bootstrapState.complete = true;
|
|
174
|
+
try {
|
|
175
|
+
const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
|
|
176
|
+
RegistryManager.getInstance().refreshCache(effectiveInstanceUrl);
|
|
177
|
+
}
|
|
178
|
+
catch (cacheError) {
|
|
179
|
+
(0, logger_1.logWarn)('Failed to refresh registry cache after bootstrap', {
|
|
180
|
+
instanceUrl: effectiveInstanceUrl,
|
|
181
|
+
err: cacheError,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
if (config_1.LOG_FORMAT === 'verbose') {
|
|
185
|
+
try {
|
|
186
|
+
const instanceInfo = connectionManager.getInstanceInfo(effectiveInstanceUrl);
|
|
187
|
+
(0, logger_1.logInfo)(`Connection verified: ${instanceInfo.version} ${instanceInfo.tier}`);
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
(0, logger_1.logDebug)('Connection verified but instance info not yet available', {
|
|
191
|
+
instanceUrl: effectiveInstanceUrl,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
catch (initError) {
|
|
198
|
+
const errorCategory = initError instanceof Error ? (0, error_handler_1.classifyError)(initError) : 'permanent';
|
|
199
|
+
if (initError instanceof Error) {
|
|
200
|
+
if (!isTimedOut() || errorCategory === 'auth' || errorCategory === 'permanent') {
|
|
201
|
+
healthMonitor.reportError(effectiveInstanceUrl, initError);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
(0, logger_1.logError)(`Connection initialization failed: ${initError instanceof Error ? initError.message : String(initError)}`, {
|
|
205
|
+
instanceUrl: effectiveInstanceUrl,
|
|
206
|
+
err: initError instanceof Error ? initError : new Error(String(initError)),
|
|
207
|
+
});
|
|
208
|
+
const action = toolArguments && typeof toolArguments.action === 'string' ? toolArguments.action : 'unknown';
|
|
209
|
+
const monitorState = healthMonitor.getState(effectiveInstanceUrl);
|
|
210
|
+
let derivedState;
|
|
211
|
+
if (monitorState === 'connecting' || monitorState === 'failed') {
|
|
212
|
+
derivedState = monitorState;
|
|
213
|
+
}
|
|
214
|
+
else if (errorCategory === 'auth' || errorCategory === 'permanent') {
|
|
215
|
+
derivedState = 'failed';
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
derivedState = 'disconnected';
|
|
219
|
+
}
|
|
220
|
+
const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, derivedState);
|
|
221
|
+
if (!isTimedOut()) {
|
|
222
|
+
recordEarlyReturnError(toolName, action, connError.message);
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }],
|
|
226
|
+
isError: true,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
119
230
|
let healthMonitorStartup = null;
|
|
120
231
|
let stateChangeRegistered = false;
|
|
121
232
|
function resetHandlersState() {
|
|
@@ -134,7 +245,7 @@ async function setupHandlers(server) {
|
|
|
134
245
|
const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
|
|
135
246
|
RegistryManager.getInstance().refreshCache(instanceUrl);
|
|
136
247
|
const { getSessionManager } = await Promise.resolve().then(() => __importStar(require('./session-manager')));
|
|
137
|
-
await getSessionManager().broadcastToolsListChanged();
|
|
248
|
+
await getSessionManager().broadcastToolsListChanged(instanceUrl);
|
|
138
249
|
(0, logger_1.logInfo)('Tool list updated after connection state change', {
|
|
139
250
|
instanceUrl,
|
|
140
251
|
from,
|
|
@@ -175,11 +286,17 @@ async function setupHandlers(server) {
|
|
|
175
286
|
else {
|
|
176
287
|
(0, logger_1.logInfo)('Skipping connection initialization - no authentication configured');
|
|
177
288
|
}
|
|
178
|
-
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
289
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async (_request, extra) => {
|
|
179
290
|
(0, logger_1.logInfo)('ListToolsRequest received');
|
|
291
|
+
const { getSessionManager: getSessionMgr } = await Promise.resolve().then(() => __importStar(require('./session-manager')));
|
|
292
|
+
const sessionMgr = getSessionMgr();
|
|
293
|
+
const listToolsSessionId = extra?.sessionId;
|
|
294
|
+
const sessionInstanceUrl = listToolsSessionId !== undefined
|
|
295
|
+
? sessionMgr.getSessionInstanceUrl(listToolsSessionId)
|
|
296
|
+
: undefined;
|
|
180
297
|
const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
|
|
181
298
|
const registryManager = RegistryManager.getInstance();
|
|
182
|
-
const tools = registryManager.getAllToolDefinitions();
|
|
299
|
+
const tools = registryManager.getAllToolDefinitions(sessionInstanceUrl);
|
|
183
300
|
(0, logger_1.logInfo)('Returning tools list', { toolCount: tools.length });
|
|
184
301
|
function resolveRefs(schema, rootSchema) {
|
|
185
302
|
if (!schema || typeof schema !== 'object')
|
|
@@ -241,15 +358,21 @@ async function setupHandlers(server) {
|
|
|
241
358
|
tools: modifiedTools,
|
|
242
359
|
};
|
|
243
360
|
});
|
|
244
|
-
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
361
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request, extra) => {
|
|
245
362
|
const { getGitLabApiUrlFromContext: getUrlFromCtx, isOAuthEnabled } = await Promise.resolve().then(() => __importStar(require('./oauth/index')));
|
|
246
|
-
const
|
|
247
|
-
|
|
363
|
+
const oauthEnabled = isOAuthEnabled();
|
|
364
|
+
const oauthContextUrl = oauthEnabled ? getUrlFromCtx() : undefined;
|
|
365
|
+
const rawInstanceUrl = oauthEnabled
|
|
366
|
+
? (oauthContextUrl ?? config_1.GITLAB_BASE_URL)
|
|
248
367
|
: (ConnectionManager_1.ConnectionManager.getInstance().getCurrentInstanceUrl() ?? config_1.GITLAB_BASE_URL);
|
|
249
368
|
const requestInstanceUrl = (0, url_1.normalizeInstanceUrl)(rawInstanceUrl);
|
|
369
|
+
const callSessionId = extra?.sessionId;
|
|
370
|
+
if (callSessionId && (!oauthEnabled || oauthContextUrl !== undefined)) {
|
|
371
|
+
const { getSessionManager: getSessionMgrForCall } = await Promise.resolve().then(() => __importStar(require('./session-manager')));
|
|
372
|
+
getSessionMgrForCall().setSessionInstanceUrl(callSessionId, requestInstanceUrl);
|
|
373
|
+
}
|
|
250
374
|
let timedOut = false;
|
|
251
|
-
|
|
252
|
-
let bootstrapComplete = false;
|
|
375
|
+
const bootstrapState = { started: false, complete: false };
|
|
253
376
|
const HANDLER_TIMEOUT_SYMBOL = Symbol('handler_timeout');
|
|
254
377
|
let handlerTimeoutId;
|
|
255
378
|
const timeoutPromise = new Promise((resolve) => {
|
|
@@ -276,111 +399,26 @@ async function setupHandlers(server) {
|
|
|
276
399
|
const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
|
|
277
400
|
const healthMonitor = HealthMonitor_1.HealthMonitor.getInstance();
|
|
278
401
|
const toolName = request.params.name;
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
if (rawState === 'failed') {
|
|
287
|
-
connectionState = 'failed';
|
|
288
|
-
}
|
|
289
|
-
else if (rawState === 'connecting') {
|
|
290
|
-
connectionState = 'connecting';
|
|
291
|
-
}
|
|
292
|
-
else {
|
|
293
|
-
connectionState = 'disconnected';
|
|
294
|
-
}
|
|
295
|
-
const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, connectionState);
|
|
296
|
-
recordEarlyReturnError(toolName, action, connError.message);
|
|
297
|
-
return {
|
|
298
|
-
content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }],
|
|
299
|
-
isError: true,
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
if (toolName === 'manage_context' &&
|
|
303
|
-
!healthMonitor.isInstanceReachable(effectiveInstanceUrl)) {
|
|
304
|
-
if (config_1.LOG_FORMAT === 'condensed') {
|
|
305
|
-
const action = request.params.arguments && typeof request.params.arguments.action === 'string'
|
|
306
|
-
? request.params.arguments.action
|
|
307
|
-
: undefined;
|
|
308
|
-
const requestTracker = (0, index_1.getRequestTracker)();
|
|
309
|
-
requestTracker.setToolForCurrentRequest(toolName, action);
|
|
310
|
-
}
|
|
311
|
-
const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
|
|
312
|
-
const registryManager = RegistryManager.getInstance();
|
|
313
|
-
if (registryManager.hasToolHandler(toolName, effectiveInstanceUrl)) {
|
|
314
|
-
const result = await registryManager.executeTool(toolName, request.params.arguments, effectiveInstanceUrl);
|
|
315
|
-
return {
|
|
316
|
-
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
bootstrapStarted = true;
|
|
402
|
+
const toolArguments = request.params.arguments;
|
|
403
|
+
const unreachableResult = checkUnreachableInstance(toolName, toolArguments, effectiveInstanceUrl, healthMonitor);
|
|
404
|
+
if (unreachableResult)
|
|
405
|
+
return unreachableResult;
|
|
406
|
+
const fastPathResult = await tryManageContextFastPath(toolName, toolArguments, effectiveInstanceUrl, healthMonitor);
|
|
407
|
+
if (fastPathResult)
|
|
408
|
+
return fastPathResult;
|
|
321
409
|
const oauthMode = isOAuthEnabled();
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
{
|
|
335
|
-
const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
|
|
336
|
-
RegistryManager.getInstance().refreshCache(effectiveInstanceUrl);
|
|
337
|
-
}
|
|
338
|
-
if (config_1.LOG_FORMAT === 'verbose') {
|
|
339
|
-
try {
|
|
340
|
-
const instanceInfo = connectionManager.getInstanceInfo(effectiveInstanceUrl);
|
|
341
|
-
(0, logger_1.logInfo)(`Connection verified: ${instanceInfo.version} ${instanceInfo.tier}`);
|
|
342
|
-
}
|
|
343
|
-
catch {
|
|
344
|
-
(0, logger_1.logDebug)('Connection verified but instance info not yet available', {
|
|
345
|
-
instanceUrl: effectiveInstanceUrl,
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
catch (initError) {
|
|
351
|
-
if (!bootstrapComplete) {
|
|
352
|
-
const errorCategory = initError instanceof Error ? (0, error_handler_1.classifyError)(initError) : 'permanent';
|
|
353
|
-
if (initError instanceof Error) {
|
|
354
|
-
if (!timedOut || errorCategory === 'auth' || errorCategory === 'permanent') {
|
|
355
|
-
healthMonitor.reportError(effectiveInstanceUrl, initError);
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
(0, logger_1.logError)(`Connection initialization failed: ${initError instanceof Error ? initError.message : String(initError)}`, { instanceUrl: effectiveInstanceUrl });
|
|
359
|
-
const action = request.params.arguments && typeof request.params.arguments.action === 'string'
|
|
360
|
-
? request.params.arguments.action
|
|
361
|
-
: 'unknown';
|
|
362
|
-
const monitorState = healthMonitor.getState(effectiveInstanceUrl);
|
|
363
|
-
let derivedState;
|
|
364
|
-
if (monitorState === 'connecting' || monitorState === 'failed') {
|
|
365
|
-
derivedState = monitorState;
|
|
366
|
-
}
|
|
367
|
-
else if (errorCategory === 'auth' || errorCategory === 'permanent') {
|
|
368
|
-
derivedState = 'failed';
|
|
369
|
-
}
|
|
370
|
-
else {
|
|
371
|
-
derivedState = 'disconnected';
|
|
372
|
-
}
|
|
373
|
-
const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, derivedState);
|
|
374
|
-
if (!timedOut) {
|
|
375
|
-
recordEarlyReturnError(toolName, action, connError.message);
|
|
376
|
-
}
|
|
377
|
-
return {
|
|
378
|
-
content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }],
|
|
379
|
-
isError: true,
|
|
380
|
-
};
|
|
381
|
-
}
|
|
382
|
-
throw initError;
|
|
383
|
-
}
|
|
410
|
+
const bootstrapFailure = await ensureBootstrapped({
|
|
411
|
+
toolName,
|
|
412
|
+
toolArguments,
|
|
413
|
+
effectiveInstanceUrl,
|
|
414
|
+
oauthMode,
|
|
415
|
+
connectionManager,
|
|
416
|
+
healthMonitor,
|
|
417
|
+
isTimedOut: () => timedOut,
|
|
418
|
+
bootstrapState,
|
|
419
|
+
});
|
|
420
|
+
if (bootstrapFailure)
|
|
421
|
+
return bootstrapFailure;
|
|
384
422
|
const toolArgs = request.params.arguments;
|
|
385
423
|
const action = toolArgs && typeof toolArgs.action === 'string' ? toolArgs.action : undefined;
|
|
386
424
|
if (config_1.LOG_FORMAT === 'condensed') {
|
|
@@ -421,6 +459,9 @@ async function setupHandlers(server) {
|
|
|
421
459
|
});
|
|
422
460
|
}
|
|
423
461
|
const result = await registryManager.executeTool(toolName, request.params.arguments, effectiveInstanceUrl);
|
|
462
|
+
if (result === undefined) {
|
|
463
|
+
throw new Error(`Tool '${toolName}' is not available or has been filtered out`);
|
|
464
|
+
}
|
|
424
465
|
if (!timedOut) {
|
|
425
466
|
healthMonitor.reportSuccess(effectiveInstanceUrl);
|
|
426
467
|
}
|
|
@@ -454,7 +495,7 @@ async function setupHandlers(server) {
|
|
|
454
495
|
const retryable = isIdempotentOperation(toolName);
|
|
455
496
|
const timeoutError = (0, error_handler_1.createTimeoutError)(toolName, action, config_1.HANDLER_TIMEOUT_MS, retryable);
|
|
456
497
|
(0, logger_1.logError)(`Handler timeout: tool '${toolName}' timed out after ${config_1.HANDLER_TIMEOUT_MS}ms`);
|
|
457
|
-
if (
|
|
498
|
+
if (bootstrapState.started && !bootstrapState.complete) {
|
|
458
499
|
HealthMonitor_1.HealthMonitor.getInstance().reportError(requestInstanceUrl, new Error(`Handler timed out after ${config_1.HANDLER_TIMEOUT_MS}ms — bootstrap did not complete`));
|
|
459
500
|
ConnectionManager_1.ConnectionManager.getInstance().clearInflight(requestInstanceUrl);
|
|
460
501
|
}
|