@1mcp/agent 0.15.0 → 0.16.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 +79 -13
- package/build/constants.d.ts +2 -1
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +2 -1
- package/build/constants.js.map +1 -1
- package/build/core/server/agentConfig.d.ts +9 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +15 -1
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/index.js +9 -0
- package/build/index.js.map +1 -1
- package/build/services/healthService.d.ts +107 -0
- package/build/services/healthService.d.ts.map +1 -0
- package/build/services/healthService.js +294 -0
- package/build/services/healthService.js.map +1 -0
- package/build/transport/http/routes/healthRoutes.d.ts +7 -0
- package/build/transport/http/routes/healthRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/healthRoutes.js +113 -0
- package/build/transport/http/routes/healthRoutes.js.map +1 -0
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +3 -0
- package/build/transport/http/server.js.map +1 -1
- package/package.json +17 -2
package/README.md
CHANGED
|
@@ -6,18 +6,39 @@ A unified Model Context Protocol server implementation that aggregates multiple
|
|
|
6
6
|
[](https://www.npmjs.com/package/@1mcp/agent)
|
|
7
7
|
[](https://smithery.ai/server/@1mcp-app/agent)
|
|
8
8
|
|
|
9
|
+
## Table of Contents
|
|
10
|
+
|
|
11
|
+
- [Overview](#overview)
|
|
12
|
+
- [Features](#features)
|
|
13
|
+
- [Quick Start](#quick-start)
|
|
14
|
+
- [Prerequisites](#prerequisites)
|
|
15
|
+
- [Usage](#usage)
|
|
16
|
+
- [Docker](#docker)
|
|
17
|
+
- [Trust Proxy Configuration](#trust-proxy-configuration)
|
|
18
|
+
- [Understanding Tags](#understanding-tags)
|
|
19
|
+
- [Configuration](#configuration)
|
|
20
|
+
- [Authentication](#authentication)
|
|
21
|
+
- [Health Monitoring](#health-monitoring)
|
|
22
|
+
- [How It Works](#how-it-works)
|
|
23
|
+
- [Development](#development)
|
|
24
|
+
- [Contributing](#contributing)
|
|
25
|
+
- [License](#license)
|
|
26
|
+
|
|
9
27
|
## Overview
|
|
10
28
|
|
|
11
|
-
1MCP (One MCP) is designed to simplify the way you work with AI assistants. Instead of configuring multiple MCP servers for different clients (Claude Desktop, Cherry Studio, Cursor, Roo Code, Claude, etc.), 1MCP provides a single, unified server
|
|
29
|
+
1MCP (One MCP) is designed to simplify the way you work with AI assistants. Instead of configuring multiple MCP servers for different clients (Claude Desktop, Cherry Studio, Cursor, Roo Code, Claude, etc.), 1MCP provides a single, unified server.
|
|
30
|
+
|
|
31
|
+
## Features
|
|
12
32
|
|
|
13
|
-
- Aggregates multiple MCP servers into one
|
|
14
|
-
- Reduces system resource usage by eliminating redundant server instances
|
|
15
|
-
- Simplifies configuration management across different AI assistants
|
|
16
|
-
- Provides a standardized way for AI models to interact with external tools and resources
|
|
17
|
-
- Supports dynamic configuration reloading without server restart
|
|
18
|
-
- Handles graceful shutdown and resource cleanup
|
|
19
|
-
- Includes comprehensive authentication and security features
|
|
20
|
-
- Supports advanced filtering, pagination, and request optimization
|
|
33
|
+
- **Unified Interface**: Aggregates multiple MCP servers into one.
|
|
34
|
+
- **Resource Friendly**: Reduces system resource usage by eliminating redundant server instances.
|
|
35
|
+
- **Simplified Configuration**: Simplifies configuration management across different AI assistants.
|
|
36
|
+
- **Standardized Interaction**: Provides a standardized way for AI models to interact with external tools and resources.
|
|
37
|
+
- **Dynamic Configuration**: Supports dynamic configuration reloading without server restart.
|
|
38
|
+
- **Graceful Shutdown**: Handles graceful shutdown and resource cleanup.
|
|
39
|
+
- **Secure**: Includes comprehensive authentication and security features.
|
|
40
|
+
- **Optimized**: Supports advanced filtering, pagination, and request optimization.
|
|
41
|
+
- **Health Monitoring**: Built-in health check endpoints for monitoring and observability.
|
|
21
42
|
|
|
22
43
|
## Quick Start
|
|
23
44
|
|
|
@@ -44,6 +65,11 @@ npx -y @1mcp/agent --config ~/Library/Application\ Support/Claude/claude_desktop
|
|
|
44
65
|
|
|
45
66
|
3. Enjoy it!
|
|
46
67
|
|
|
68
|
+
## Prerequisites
|
|
69
|
+
|
|
70
|
+
- [Node.js](https://nodejs.org/) (version 21 or higher)
|
|
71
|
+
- [pnpm](https://pnpm.io/)
|
|
72
|
+
|
|
47
73
|
## Usage
|
|
48
74
|
|
|
49
75
|
You can run the server directly using `npx`:
|
|
@@ -80,7 +106,6 @@ Available options:
|
|
|
80
106
|
| `--trust-proxy` | `ONE_MCP_TRUST_PROXY` | Trust proxy configuration for client IP detection (boolean, IP, CIDR, preset) | "loopback" |
|
|
81
107
|
| `--tags`, `-g` | `ONE_MCP_TAGS` | Filter servers by tags | |
|
|
82
108
|
| `--pagination`, `-p` | `ONE_MCP_PAGINATION` | Enable pagination for client/server lists (boolean) | false |
|
|
83
|
-
| `--auth` | `ONE_MCP_AUTH` | Enable authentication (OAuth 2.1) - **Deprecated** | false |
|
|
84
109
|
| `--enable-auth` | `ONE_MCP_ENABLE_AUTH` | Enable authentication (OAuth 2.1) | false |
|
|
85
110
|
| `--enable-scope-validation` | `ONE_MCP_ENABLE_SCOPE_VALIDATION` | Enable tag-based scope validation (boolean) | true |
|
|
86
111
|
| `--enable-enhanced-security` | `ONE_MCP_ENABLE_ENHANCED_SECURITY` | Enable enhanced security middleware (boolean) | false |
|
|
@@ -88,6 +113,7 @@ Available options:
|
|
|
88
113
|
| `--session-storage-path` | `ONE_MCP_SESSION_STORAGE_PATH` | Custom session storage directory path (string) | |
|
|
89
114
|
| `--rate-limit-window` | `ONE_MCP_RATE_LIMIT_WINDOW` | OAuth rate limit window in minutes (number) | 15 |
|
|
90
115
|
| `--rate-limit-max` | `ONE_MCP_RATE_LIMIT_MAX` | Maximum requests per OAuth rate limit window (number) | 100 |
|
|
116
|
+
| `--health-info-level` | `ONE_MCP_HEALTH_INFO_LEVEL` | Health endpoint information detail level ("full", "basic", "minimal") | "minimal" |
|
|
91
117
|
| `--help`, `-h` | | Show help | |
|
|
92
118
|
|
|
93
119
|
## Docker
|
|
@@ -147,11 +173,11 @@ npx -y @1mcp/agent --trust-proxy=true
|
|
|
147
173
|
|
|
148
174
|
See [docs/TRUST_PROXY.md](docs/TRUST_PROXY.md) for detailed configuration options, security considerations, and reverse proxy setup examples.
|
|
149
175
|
|
|
150
|
-
|
|
176
|
+
## Understanding Tags
|
|
151
177
|
|
|
152
178
|
Tags help you control which MCP servers are available to different clients. Think of tags as labels that describe what each server can do.
|
|
153
179
|
|
|
154
|
-
|
|
180
|
+
### How to Use Tags
|
|
155
181
|
|
|
156
182
|
1. **In your server config**: Add tags to each server to describe its capabilities
|
|
157
183
|
|
|
@@ -233,8 +259,40 @@ The server automatically manages configuration in a global location:
|
|
|
233
259
|
}
|
|
234
260
|
```
|
|
235
261
|
|
|
262
|
+
## Authentication
|
|
263
|
+
|
|
264
|
+
1MCP supports OAuth 2.1 for secure authentication. To enable it, use the `--enable-auth` flag. The `--auth` flag is deprecated and will be removed in a future version.
|
|
265
|
+
|
|
266
|
+
When authentication is enabled, 1MCP acts as an OAuth 2.1 provider, allowing client applications to securely connect. This ensures that only authorized clients can access the MCP servers.
|
|
267
|
+
|
|
268
|
+
## Health Monitoring
|
|
269
|
+
|
|
270
|
+
1MCP provides comprehensive health check endpoints for monitoring and observability:
|
|
271
|
+
|
|
272
|
+
### Health Check Endpoints
|
|
273
|
+
|
|
274
|
+
- **`GET /health`** - Complete health status including system metrics, server status, and configuration
|
|
275
|
+
- **`GET /health/live`** - Simple liveness probe (always returns 200 if server is running)
|
|
276
|
+
- **`GET /health/ready`** - Readiness probe (returns 200 if configuration is loaded and ready)
|
|
277
|
+
|
|
278
|
+
### Health Status Levels
|
|
279
|
+
|
|
280
|
+
- **`healthy`** - All systems operational (HTTP 200)
|
|
281
|
+
- **`degraded`** - Some issues but still functional (HTTP 200)
|
|
282
|
+
- **`unhealthy`** - Critical issues affecting functionality (HTTP 503)
|
|
283
|
+
|
|
284
|
+
### Monitoring Integration
|
|
285
|
+
|
|
286
|
+
Use these endpoints with:
|
|
287
|
+
|
|
288
|
+
- Load balancers (health checks)
|
|
289
|
+
- Container orchestration (Kubernetes health probes)
|
|
290
|
+
- CI/CD pipelines (deployment validation)
|
|
291
|
+
|
|
236
292
|
## How It Works
|
|
237
293
|
|
|
294
|
+
1MCP acts as a proxy, managing and aggregating multiple MCP servers. It starts and stops these servers as subprocesses and forwards requests from AI assistants to the appropriate server. This architecture allows for a single point of entry for all MCP traffic, simplifying management and reducing overhead.
|
|
295
|
+
|
|
238
296
|
### System Architecture
|
|
239
297
|
|
|
240
298
|
```mermaid
|
|
@@ -325,8 +383,16 @@ pnpm inspector
|
|
|
325
383
|
|
|
326
384
|
The Inspector will provide a URL to access debugging tools in your browser.
|
|
327
385
|
|
|
328
|
-
|
|
386
|
+
### Debugging & Source Maps
|
|
329
387
|
|
|
330
388
|
This project uses [source-map-support](https://www.npmjs.com/package/source-map-support) to enhance stack traces. When you run the server, stack traces will reference the original TypeScript source files instead of the compiled JavaScript. This makes debugging much easier, as error locations and line numbers will match your source code.
|
|
331
389
|
|
|
332
390
|
No extra setup is required—this is enabled by default. If you see a stack trace, it will point to `.ts` files and the correct line numbers. 🗺️
|
|
391
|
+
|
|
392
|
+
## Contributing
|
|
393
|
+
|
|
394
|
+
Contributions are welcome! Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
|
|
395
|
+
|
|
396
|
+
## License
|
|
397
|
+
|
|
398
|
+
This project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.
|
package/build/constants.d.ts
CHANGED
|
@@ -7,9 +7,10 @@ export declare const HOST = "localhost";
|
|
|
7
7
|
export declare const SSE_ENDPOINT = "/sse";
|
|
8
8
|
export declare const MESSAGES_ENDPOINT = "/messages";
|
|
9
9
|
export declare const STREAMABLE_HTTP_ENDPOINT = "/mcp";
|
|
10
|
+
export declare const HEALTH_ENDPOINT = "/health";
|
|
10
11
|
export declare const MCP_CONFIG_FILE = "mcp.json";
|
|
11
12
|
export declare const MCP_SERVER_NAME = "1mcp";
|
|
12
|
-
export declare const MCP_SERVER_VERSION = "0.
|
|
13
|
+
export declare const MCP_SERVER_VERSION = "0.16.0";
|
|
13
14
|
export declare const MCP_URI_SEPARATOR = "_1mcp_";
|
|
14
15
|
export declare const CONFIG_DIR_NAME = "1mcp";
|
|
15
16
|
export declare const DEFAULT_CONFIG: {
|
package/build/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG5F,eAAO,MAAM,IAAI,OAAO,CAAC;AACzB,eAAO,MAAM,IAAI,cAAc,CAAC;AAGhC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,wBAAwB,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG5F,eAAO,MAAM,IAAI,OAAO,CAAC;AACzB,eAAO,MAAM,IAAI,cAAc,CAAC;AAGhC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAC/C,eAAO,MAAM,eAAe,YAAY,CAAC;AAGzC,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAGD,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEvB,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;CAM7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAYrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAUrC,CAAC"}
|
package/build/constants.js
CHANGED
|
@@ -8,10 +8,11 @@ export const HOST = 'localhost';
|
|
|
8
8
|
export const SSE_ENDPOINT = '/sse';
|
|
9
9
|
export const MESSAGES_ENDPOINT = '/messages';
|
|
10
10
|
export const STREAMABLE_HTTP_ENDPOINT = '/mcp';
|
|
11
|
+
export const HEALTH_ENDPOINT = '/health';
|
|
11
12
|
// MCP constants
|
|
12
13
|
export const MCP_CONFIG_FILE = 'mcp.json';
|
|
13
14
|
export const MCP_SERVER_NAME = '1mcp';
|
|
14
|
-
export const MCP_SERVER_VERSION = '0.
|
|
15
|
+
export const MCP_SERVER_VERSION = '0.16.0';
|
|
15
16
|
export const MCP_URI_SEPARATOR = '_1mcp_';
|
|
16
17
|
// Global config paths
|
|
17
18
|
export const CONFIG_DIR_NAME = '1mcp';
|
package/build/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,uBAAuB;AACvB,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC;AACzB,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC;AAEhC,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,9 @@ export interface AgentConfig {
|
|
|
25
25
|
scopeValidation: boolean;
|
|
26
26
|
enhancedSecurity: boolean;
|
|
27
27
|
};
|
|
28
|
+
health: {
|
|
29
|
+
detailLevel: 'full' | 'basic' | 'minimal';
|
|
30
|
+
};
|
|
28
31
|
}
|
|
29
32
|
/**
|
|
30
33
|
* AgentConfigManager manages agent-specific configuration settings.
|
|
@@ -151,5 +154,11 @@ export declare class AgentConfigManager {
|
|
|
151
154
|
* @returns The server URL to use for OAuth callbacks and public URLs
|
|
152
155
|
*/
|
|
153
156
|
getUrl(): string;
|
|
157
|
+
/**
|
|
158
|
+
* Gets the health endpoint detail level configuration.
|
|
159
|
+
*
|
|
160
|
+
* @returns Health detail level ('full' | 'basic' | 'minimal')
|
|
161
|
+
*/
|
|
162
|
+
getHealthDetailLevel(): 'full' | 'basic' | 'minimal';
|
|
154
163
|
}
|
|
155
164
|
//# sourceMappingURL=agentConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;IACH,OAAO;
|
|
1
|
+
{"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;KAC3C,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;IACH,OAAO;IA0BP;;;;;;;OAOG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;;;;;OAOG;IACI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAoBxD;;;;;;;OAOG;IACI,SAAS,IAAI,WAAW;IAI/B;;;;OAIG;IACI,aAAa,IAAI,OAAO;IAI/B;;;;OAIG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAIlD;;;;OAIG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;;;OAIG;IACI,kBAAkB,IAAI,MAAM;IAInC;;;;OAIG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,wBAAwB,IAAI,OAAO;IAI1C;;;;OAIG;IACI,yBAAyB,IAAI,OAAO;IAI3C;;;;OAIG;IACI,cAAc,IAAI,MAAM,GAAG,SAAS;IAI3C;;;;OAIG;IACI,aAAa,IAAI,MAAM,GAAG,OAAO;IAIxC;;;;OAIG;IACI,MAAM,IAAI,MAAM;IAIvB;;;;OAIG;IACI,oBAAoB,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS;CAG5D"}
|
|
@@ -44,6 +44,9 @@ export class AgentConfigManager {
|
|
|
44
44
|
scopeValidation: AUTH_CONFIG.SERVER.DEFAULT_ENABLED,
|
|
45
45
|
enhancedSecurity: false,
|
|
46
46
|
},
|
|
47
|
+
health: {
|
|
48
|
+
detailLevel: 'minimal',
|
|
49
|
+
},
|
|
47
50
|
};
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
@@ -70,7 +73,7 @@ export class AgentConfigManager {
|
|
|
70
73
|
*/
|
|
71
74
|
updateConfig(updates) {
|
|
72
75
|
// Handle nested object merging properly
|
|
73
|
-
const { auth, rateLimit, features, ...otherUpdates } = updates;
|
|
76
|
+
const { auth, rateLimit, features, health, ...otherUpdates } = updates;
|
|
74
77
|
this.config = { ...this.config, ...otherUpdates };
|
|
75
78
|
if (auth) {
|
|
76
79
|
this.config.auth = { ...this.config.auth, ...auth };
|
|
@@ -81,6 +84,9 @@ export class AgentConfigManager {
|
|
|
81
84
|
if (features) {
|
|
82
85
|
this.config.features = { ...this.config.features, ...features };
|
|
83
86
|
}
|
|
87
|
+
if (health) {
|
|
88
|
+
this.config.health = { ...this.config.health, ...health };
|
|
89
|
+
}
|
|
84
90
|
}
|
|
85
91
|
/**
|
|
86
92
|
* Gets a copy of the current agent configuration.
|
|
@@ -189,5 +195,13 @@ export class AgentConfigManager {
|
|
|
189
195
|
getUrl() {
|
|
190
196
|
return this.config.externalUrl || `http://${this.config.host}:${this.config.port}`;
|
|
191
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Gets the health endpoint detail level configuration.
|
|
200
|
+
*
|
|
201
|
+
* @returns Health detail level ('full' | 'basic' | 'minimal')
|
|
202
|
+
*/
|
|
203
|
+
getHealthDetailLevel() {
|
|
204
|
+
return this.config.health.detailLevel;
|
|
205
|
+
}
|
|
192
206
|
}
|
|
193
207
|
//# sourceMappingURL=agentConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -104,6 +104,12 @@ const argv = yargs(hideBin(process.argv))
|
|
|
104
104
|
type: 'string',
|
|
105
105
|
default: 'loopback',
|
|
106
106
|
},
|
|
107
|
+
'health-info-level': {
|
|
108
|
+
describe: 'Health endpoint information detail level (full, basic, minimal)',
|
|
109
|
+
type: 'string',
|
|
110
|
+
choices: ['full', 'basic', 'minimal'],
|
|
111
|
+
default: 'minimal',
|
|
112
|
+
},
|
|
107
113
|
})
|
|
108
114
|
.help()
|
|
109
115
|
.alias('help', 'h')
|
|
@@ -184,6 +190,9 @@ async function main() {
|
|
|
184
190
|
scopeValidation: scopeValidationEnabled,
|
|
185
191
|
enhancedSecurity: enhancedSecurityEnabled,
|
|
186
192
|
},
|
|
193
|
+
health: {
|
|
194
|
+
detailLevel: argv['health-info-level'],
|
|
195
|
+
},
|
|
187
196
|
});
|
|
188
197
|
// Initialize server and get server manager with custom config path if provided
|
|
189
198
|
const serverManager = await setupServer();
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,gCAAgC,CAAC;AAExC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,MAAM,EAAE,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,mBAAmB,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,+BAA+B;AAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACtC,KAAK,CAAC,qBAAqB,CAAC;KAC5B,GAAG,CAAC,SAAS,CAAC,CAAC,0DAA0D;KACzE,OAAO,CAAC;IACP,SAAS,EAAE;QACT,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,0DAA0D;QACpE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;QACjC,OAAO,EAAE,MAAM;KAChB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,2DAA2D;QACrE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,2DAA2D;QACrE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;KACd;IACD,cAAc,EAAE;QACd,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,wEAAwE;QAClF,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,yBAAyB;QACnC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,0CAA0C;QACpD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,mEAAmE;QAC7E,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,mCAAmC;QAC7C,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf;IACD,yBAAyB,EAAE;QACzB,QAAQ,EAAE,mCAAmC;QAC7C,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;KACd;IACD,0BAA0B,EAAE;QAC1B,QAAQ,EAAE,qCAAqC;QAC/C,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,gCAAgC;QAC1C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,WAAW;KAC9B;IACD,sBAAsB,EAAE;QACtB,QAAQ,EAAE,uCAAuC;QACjD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,oCAAoC;QAC9C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;KACZ;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,8CAA8C;QACxD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG;KACb;IACD,aAAa,EAAE;QACb,QAAQ,EACN,qHAAqH;QACvH,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,UAAU;KACpB;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,iEAAiE;QAC3E,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;QACrC,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;KACD,IAAI,EAAE;KACN,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;KAClB,SAAS,EAAE,CAAC;AAEf;;GAEG;AACH,SAAS,qBAAqB,CAAC,aAA4B,EAAE,aAA6B;IACxF,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEvC,wCAAwC;QACxC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAE3B,sCAAsC;QACtC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7E,IAAI,CAAC;gBACH,SAAS,EAAE,KAAK,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,+CAA+C;IAC/C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAC/B,sBAAsB,EAAE,CAAC;YACzB,WAAW,EAAE,CAAC;QAChB,CAAC;QAED,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1C,+CAA+C;QAC/C,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC;QAE7D,8CAA8C;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;QACjE,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,WAAW,CAAC;QAC9E,MAAM,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,KAAK,CAAC;QAE1E,+EAA+E;QAC/E,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;QAE7G,mBAAmB,CAAC,YAAY,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;YACjC,UAAU;YACV,IAAI,EAAE;gBACJ,OAAO,EAAE,WAAW;gBACpB,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC;gBACtC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC;gBAChD,cAAc,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW;gBACtC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,kCAAkC;aACrF;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,kCAAkC;gBACnF,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC;aAC5B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,WAAW;gBACjB,eAAe,EAAE,sBAAsB;gBACvC,gBAAgB,EAAE,uBAAuB;aAC1C;YACD,MAAM,EAAE;gBACN,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAiC;aACvE;SACF,CAAC,CAAC;QAEH,+EAA+E;QAC/E,MAAM,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QAE1C,IAAI,aAAwC,CAAC;QAE7C,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,sBAAsB;gBACtB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC7C,+CAA+C;gBAC/C,IAAI,IAA0B,CAAC;gBAC/B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtB,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;wBAC/D,IAAI,GAAG,SAAS,CAAC;oBACnB,CAAC;gBACH,CAAC;gBACD,MAAM,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACtG,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACnD,MAAM;YACR,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;YAC/D,CAAC;YACD,0CAA0C;YAC1C,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,yBAAyB;gBACzB,aAAa,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;gBACjD,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM;YACR,CAAC;YACD;gBACE,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,oCAAoC;QACpC,qBAAqB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { ClientStatus } from '../core/types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Health status levels
|
|
4
|
+
*/
|
|
5
|
+
export declare enum HealthStatus {
|
|
6
|
+
HEALTHY = "healthy",
|
|
7
|
+
DEGRADED = "degraded",
|
|
8
|
+
UNHEALTHY = "unhealthy"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* MCP server health information
|
|
12
|
+
*/
|
|
13
|
+
export interface McpServerHealth {
|
|
14
|
+
name: string;
|
|
15
|
+
status: ClientStatus;
|
|
16
|
+
healthy: boolean;
|
|
17
|
+
lastConnected?: Date;
|
|
18
|
+
lastError?: string;
|
|
19
|
+
tags?: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* System health metrics
|
|
23
|
+
*/
|
|
24
|
+
export interface SystemHealth {
|
|
25
|
+
uptime: number;
|
|
26
|
+
memory: {
|
|
27
|
+
used: number;
|
|
28
|
+
total: number;
|
|
29
|
+
percentage: number;
|
|
30
|
+
};
|
|
31
|
+
process: {
|
|
32
|
+
pid: number;
|
|
33
|
+
nodeVersion: string;
|
|
34
|
+
platform: string;
|
|
35
|
+
arch: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Complete health check response
|
|
40
|
+
*/
|
|
41
|
+
export interface HealthCheckResponse {
|
|
42
|
+
status: HealthStatus;
|
|
43
|
+
timestamp: string;
|
|
44
|
+
version: string;
|
|
45
|
+
system: SystemHealth;
|
|
46
|
+
servers: {
|
|
47
|
+
total: number;
|
|
48
|
+
healthy: number;
|
|
49
|
+
unhealthy: number;
|
|
50
|
+
details: McpServerHealth[];
|
|
51
|
+
};
|
|
52
|
+
configuration: {
|
|
53
|
+
loaded: boolean;
|
|
54
|
+
serverCount: number;
|
|
55
|
+
enabledCount: number;
|
|
56
|
+
disabledCount: number;
|
|
57
|
+
authEnabled: boolean;
|
|
58
|
+
transport: string;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Health service for monitoring system and MCP server status
|
|
63
|
+
*/
|
|
64
|
+
export declare class HealthService {
|
|
65
|
+
private static instance;
|
|
66
|
+
private startTime;
|
|
67
|
+
private agentConfig;
|
|
68
|
+
private constructor();
|
|
69
|
+
/**
|
|
70
|
+
* Get singleton instance
|
|
71
|
+
*/
|
|
72
|
+
static getInstance(): HealthService;
|
|
73
|
+
/**
|
|
74
|
+
* Perform complete health check
|
|
75
|
+
*/
|
|
76
|
+
performHealthCheck(): Promise<HealthCheckResponse>;
|
|
77
|
+
/**
|
|
78
|
+
* Sanitize health response based on security configuration
|
|
79
|
+
*/
|
|
80
|
+
private sanitizeHealthResponse;
|
|
81
|
+
/**
|
|
82
|
+
* Sanitize error messages to prevent information leakage
|
|
83
|
+
*/
|
|
84
|
+
private sanitizeErrorMessage;
|
|
85
|
+
/**
|
|
86
|
+
* Get system health metrics
|
|
87
|
+
*/
|
|
88
|
+
private getSystemHealth;
|
|
89
|
+
/**
|
|
90
|
+
* Get MCP server health status
|
|
91
|
+
*/
|
|
92
|
+
private getServerHealth;
|
|
93
|
+
/**
|
|
94
|
+
* Get configuration health status
|
|
95
|
+
*/
|
|
96
|
+
private getConfigurationHealth;
|
|
97
|
+
/**
|
|
98
|
+
* Determine overall health status based on component status
|
|
99
|
+
*/
|
|
100
|
+
private determineOverallHealth;
|
|
101
|
+
/**
|
|
102
|
+
* Get HTTP status code based on health status
|
|
103
|
+
*/
|
|
104
|
+
getHttpStatusCode(healthStatus: HealthStatus): number;
|
|
105
|
+
}
|
|
106
|
+
export default HealthService;
|
|
107
|
+
//# sourceMappingURL=healthService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"healthService.d.ts","sourceRoot":"","sources":["../../src/services/healthService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAOtD;;GAEG;AACH,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;IACF,aAAa,EAAE;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAqB;IAExC,OAAO;IAKP;;OAEG;WACW,WAAW,IAAI,aAAa;IAO1C;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAyB/D;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0E9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;YACW,eAAe;IAqD7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;IACI,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM;CAY7D;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { ClientStatus } from '../core/types/index.js';
|
|
2
|
+
import { ServerManager } from '../core/server/serverManager.js';
|
|
3
|
+
import { McpConfigManager } from '../config/mcpConfigManager.js';
|
|
4
|
+
import { AgentConfigManager } from '../core/server/agentConfig.js';
|
|
5
|
+
import { MCP_SERVER_VERSION } from '../constants.js';
|
|
6
|
+
import logger from '../logger/logger.js';
|
|
7
|
+
/**
|
|
8
|
+
* Health status levels
|
|
9
|
+
*/
|
|
10
|
+
export var HealthStatus;
|
|
11
|
+
(function (HealthStatus) {
|
|
12
|
+
HealthStatus["HEALTHY"] = "healthy";
|
|
13
|
+
HealthStatus["DEGRADED"] = "degraded";
|
|
14
|
+
HealthStatus["UNHEALTHY"] = "unhealthy";
|
|
15
|
+
})(HealthStatus || (HealthStatus = {}));
|
|
16
|
+
/**
|
|
17
|
+
* Health service for monitoring system and MCP server status
|
|
18
|
+
*/
|
|
19
|
+
export class HealthService {
|
|
20
|
+
static instance;
|
|
21
|
+
startTime;
|
|
22
|
+
agentConfig;
|
|
23
|
+
constructor() {
|
|
24
|
+
this.startTime = Date.now();
|
|
25
|
+
this.agentConfig = AgentConfigManager.getInstance();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get singleton instance
|
|
29
|
+
*/
|
|
30
|
+
static getInstance() {
|
|
31
|
+
if (!HealthService.instance) {
|
|
32
|
+
HealthService.instance = new HealthService();
|
|
33
|
+
}
|
|
34
|
+
return HealthService.instance;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Perform complete health check
|
|
38
|
+
*/
|
|
39
|
+
async performHealthCheck() {
|
|
40
|
+
try {
|
|
41
|
+
const systemHealth = this.getSystemHealth();
|
|
42
|
+
const serverHealth = await this.getServerHealth();
|
|
43
|
+
const configHealth = this.getConfigurationHealth();
|
|
44
|
+
const overallStatus = this.determineOverallHealth(serverHealth, configHealth);
|
|
45
|
+
const fullResponse = {
|
|
46
|
+
status: overallStatus,
|
|
47
|
+
timestamp: new Date().toISOString(),
|
|
48
|
+
version: MCP_SERVER_VERSION,
|
|
49
|
+
system: systemHealth,
|
|
50
|
+
servers: serverHealth,
|
|
51
|
+
configuration: configHealth,
|
|
52
|
+
};
|
|
53
|
+
// Apply security configuration to sanitize response
|
|
54
|
+
return this.sanitizeHealthResponse(fullResponse);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
logger.error('Health check failed:', error);
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Sanitize health response based on security configuration
|
|
63
|
+
*/
|
|
64
|
+
sanitizeHealthResponse(response) {
|
|
65
|
+
const detailLevel = this.agentConfig.getHealthDetailLevel();
|
|
66
|
+
// Apply detail level restrictions
|
|
67
|
+
switch (detailLevel) {
|
|
68
|
+
case 'minimal':
|
|
69
|
+
// Minimal: Only basic status, no sensitive details
|
|
70
|
+
return {
|
|
71
|
+
status: response.status,
|
|
72
|
+
timestamp: response.timestamp,
|
|
73
|
+
version: response.version,
|
|
74
|
+
system: {
|
|
75
|
+
uptime: response.system.uptime,
|
|
76
|
+
memory: { used: 0, total: 0, percentage: 0 },
|
|
77
|
+
process: { pid: 0, nodeVersion: '', platform: '', arch: '' },
|
|
78
|
+
},
|
|
79
|
+
servers: {
|
|
80
|
+
total: response.servers.total,
|
|
81
|
+
healthy: response.servers.healthy,
|
|
82
|
+
unhealthy: response.servers.unhealthy,
|
|
83
|
+
details: [],
|
|
84
|
+
},
|
|
85
|
+
configuration: {
|
|
86
|
+
loaded: response.configuration.loaded,
|
|
87
|
+
serverCount: 0,
|
|
88
|
+
enabledCount: 0,
|
|
89
|
+
disabledCount: 0,
|
|
90
|
+
authEnabled: false,
|
|
91
|
+
transport: 'http',
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
case 'basic':
|
|
95
|
+
// Basic: Some server info but sanitized errors and no sensitive system details
|
|
96
|
+
return {
|
|
97
|
+
...response,
|
|
98
|
+
system: {
|
|
99
|
+
uptime: response.system.uptime,
|
|
100
|
+
memory: {
|
|
101
|
+
used: Math.round(response.system.memory.used),
|
|
102
|
+
total: Math.round(response.system.memory.total),
|
|
103
|
+
percentage: response.system.memory.percentage,
|
|
104
|
+
},
|
|
105
|
+
process: { pid: 0, nodeVersion: '', platform: '', arch: '' },
|
|
106
|
+
},
|
|
107
|
+
servers: {
|
|
108
|
+
...response.servers,
|
|
109
|
+
details: response.servers.details.map((server) => ({
|
|
110
|
+
name: server.name,
|
|
111
|
+
status: server.status,
|
|
112
|
+
healthy: server.healthy,
|
|
113
|
+
lastConnected: server.lastConnected,
|
|
114
|
+
lastError: this.sanitizeErrorMessage(server.lastError),
|
|
115
|
+
tags: server.tags,
|
|
116
|
+
})),
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
case 'full':
|
|
120
|
+
default:
|
|
121
|
+
// Full: All details but with basic error sanitization
|
|
122
|
+
return {
|
|
123
|
+
...response,
|
|
124
|
+
servers: {
|
|
125
|
+
...response.servers,
|
|
126
|
+
details: response.servers.details.map((server) => ({
|
|
127
|
+
...server,
|
|
128
|
+
lastError: this.sanitizeErrorMessage(server.lastError),
|
|
129
|
+
})),
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Sanitize error messages to prevent information leakage
|
|
136
|
+
*/
|
|
137
|
+
sanitizeErrorMessage(errorMessage) {
|
|
138
|
+
if (!errorMessage)
|
|
139
|
+
return undefined;
|
|
140
|
+
// Remove potentially sensitive information from error messages
|
|
141
|
+
return errorMessage
|
|
142
|
+
.replace(/\b(?:password|token|key|secret|auth)\s*[:=]\s*[^\s]+/gi, '[REDACTED_CREDENTIAL]') // Key-value credentials
|
|
143
|
+
.replace(/\b[\w.-]+:[\w.-]+@/gi, '[REDACTED_CREDENTIAL]') // User:password@ patterns
|
|
144
|
+
.replace(/\bhttps?:\/\/[\w.-]+(?::\d+)?(?:\/[^\s]*)?/gi, '[REDACTED_URL]') // Complete URLs
|
|
145
|
+
.replace(/(?:[A-Za-z]:)?[/\\][\w.-]+(?:[/\\][\w.-]+)*\.(?:json|js|ts|py|yml|yaml|conf|ini)\b/g, '[REDACTED_PATH]') // File paths
|
|
146
|
+
.replace(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g, '[REDACTED_IP]') // IP addresses
|
|
147
|
+
.replace(/\blocalhost(?::\d+)?\b/gi, '[REDACTED_HOST]') // Localhost references
|
|
148
|
+
.substring(0, 100); // Limit error message length
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get system health metrics
|
|
152
|
+
*/
|
|
153
|
+
getSystemHealth() {
|
|
154
|
+
const memUsage = process.memoryUsage();
|
|
155
|
+
return {
|
|
156
|
+
uptime: Math.floor((Date.now() - this.startTime) / 1000),
|
|
157
|
+
memory: {
|
|
158
|
+
used: Math.round((memUsage.heapUsed / 1024 / 1024) * 100) / 100, // MB
|
|
159
|
+
total: Math.round((memUsage.heapTotal / 1024 / 1024) * 100) / 100, // MB
|
|
160
|
+
percentage: Math.round((memUsage.heapUsed / memUsage.heapTotal) * 100 * 100) / 100,
|
|
161
|
+
},
|
|
162
|
+
process: {
|
|
163
|
+
pid: process.pid,
|
|
164
|
+
nodeVersion: process.version,
|
|
165
|
+
platform: process.platform,
|
|
166
|
+
arch: process.arch,
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get MCP server health status
|
|
172
|
+
*/
|
|
173
|
+
async getServerHealth() {
|
|
174
|
+
try {
|
|
175
|
+
const serverManager = ServerManager.current;
|
|
176
|
+
if (!serverManager) {
|
|
177
|
+
return {
|
|
178
|
+
total: 0,
|
|
179
|
+
healthy: 0,
|
|
180
|
+
unhealthy: 0,
|
|
181
|
+
details: [],
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
const clients = serverManager.getClients();
|
|
185
|
+
const serverDetails = [];
|
|
186
|
+
let healthyCount = 0;
|
|
187
|
+
let unhealthyCount = 0;
|
|
188
|
+
for (const [name, clientInfo] of clients.entries()) {
|
|
189
|
+
const isHealthy = clientInfo.status === ClientStatus.Connected;
|
|
190
|
+
if (isHealthy) {
|
|
191
|
+
healthyCount++;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
unhealthyCount++;
|
|
195
|
+
}
|
|
196
|
+
serverDetails.push({
|
|
197
|
+
name,
|
|
198
|
+
status: clientInfo.status,
|
|
199
|
+
healthy: isHealthy,
|
|
200
|
+
lastConnected: clientInfo.lastConnected,
|
|
201
|
+
lastError: clientInfo.lastError?.message,
|
|
202
|
+
tags: clientInfo.transport.tags,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
total: clients.size,
|
|
207
|
+
healthy: healthyCount,
|
|
208
|
+
unhealthy: unhealthyCount,
|
|
209
|
+
details: serverDetails,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
logger.error('Error getting server health:', error);
|
|
214
|
+
return {
|
|
215
|
+
total: 0,
|
|
216
|
+
healthy: 0,
|
|
217
|
+
unhealthy: 0,
|
|
218
|
+
details: [],
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get configuration health status
|
|
224
|
+
*/
|
|
225
|
+
getConfigurationHealth() {
|
|
226
|
+
try {
|
|
227
|
+
const mcpConfig = McpConfigManager.getInstance();
|
|
228
|
+
const agentConfig = AgentConfigManager.getInstance();
|
|
229
|
+
const config = mcpConfig.getTransportConfig();
|
|
230
|
+
const serverCount = Object.keys(config).length;
|
|
231
|
+
const enabledCount = Object.values(config).filter((server) => !server.disabled).length;
|
|
232
|
+
const disabledCount = serverCount - enabledCount;
|
|
233
|
+
return {
|
|
234
|
+
loaded: true,
|
|
235
|
+
serverCount,
|
|
236
|
+
enabledCount,
|
|
237
|
+
disabledCount,
|
|
238
|
+
authEnabled: agentConfig.isAuthEnabled(),
|
|
239
|
+
transport: 'http', // Since this is the HTTP transport layer
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
logger.error('Error getting configuration health:', error);
|
|
244
|
+
return {
|
|
245
|
+
loaded: false,
|
|
246
|
+
serverCount: 0,
|
|
247
|
+
enabledCount: 0,
|
|
248
|
+
disabledCount: 0,
|
|
249
|
+
authEnabled: false,
|
|
250
|
+
transport: 'unknown',
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Determine overall health status based on component status
|
|
256
|
+
*/
|
|
257
|
+
determineOverallHealth(serverHealth, configHealth) {
|
|
258
|
+
// Configuration must be loaded
|
|
259
|
+
if (!configHealth.loaded) {
|
|
260
|
+
return HealthStatus.UNHEALTHY;
|
|
261
|
+
}
|
|
262
|
+
// If no servers are configured, system is healthy but degraded
|
|
263
|
+
if (serverHealth.total === 0) {
|
|
264
|
+
return HealthStatus.DEGRADED;
|
|
265
|
+
}
|
|
266
|
+
// If all servers are healthy, system is healthy
|
|
267
|
+
if (serverHealth.healthy === serverHealth.total) {
|
|
268
|
+
return HealthStatus.HEALTHY;
|
|
269
|
+
}
|
|
270
|
+
// If more than half servers are healthy, system is degraded
|
|
271
|
+
if (serverHealth.healthy > serverHealth.total / 2) {
|
|
272
|
+
return HealthStatus.DEGRADED;
|
|
273
|
+
}
|
|
274
|
+
// If less than half servers are healthy, system is unhealthy
|
|
275
|
+
return HealthStatus.UNHEALTHY;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Get HTTP status code based on health status
|
|
279
|
+
*/
|
|
280
|
+
getHttpStatusCode(healthStatus) {
|
|
281
|
+
switch (healthStatus) {
|
|
282
|
+
case HealthStatus.HEALTHY:
|
|
283
|
+
return 200;
|
|
284
|
+
case HealthStatus.DEGRADED:
|
|
285
|
+
return 200; // Still operational, but with warnings
|
|
286
|
+
case HealthStatus.UNHEALTHY:
|
|
287
|
+
return 503; // Service unavailable
|
|
288
|
+
default:
|
|
289
|
+
return 500; // Internal server error
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
export default HealthService;
|
|
294
|
+
//# sourceMappingURL=healthService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"healthService.js","sourceRoot":"","sources":["../../src/services/healthService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"healthRoutes.d.ts","sourceRoot":"","sources":["../../../../src/transport/http/routes/healthRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqC,MAAM,SAAS,CAAC;AAKpE;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAwH3C;AAGD,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import rateLimit from 'express-rate-limit';
|
|
3
|
+
import logger from '../../../logger/logger.js';
|
|
4
|
+
import { HealthService, HealthStatus } from '../../../services/healthService.js';
|
|
5
|
+
/**
|
|
6
|
+
* Creates health check routes
|
|
7
|
+
*/
|
|
8
|
+
export function createHealthRoutes() {
|
|
9
|
+
const router = Router();
|
|
10
|
+
const healthService = HealthService.getInstance();
|
|
11
|
+
// Rate limiter for health endpoints - more permissive than OAuth endpoints
|
|
12
|
+
const createHealthLimiter = () => {
|
|
13
|
+
return rateLimit({
|
|
14
|
+
windowMs: 5 * 60 * 1000, // 5 minutes
|
|
15
|
+
max: 200, // max requests per window per IP (higher limit for monitoring)
|
|
16
|
+
standardHeaders: true,
|
|
17
|
+
legacyHeaders: false,
|
|
18
|
+
message: {
|
|
19
|
+
error: 'Too many health check requests, please try again later.',
|
|
20
|
+
status: 'rate_limited',
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
router.use(createHealthLimiter());
|
|
25
|
+
/**
|
|
26
|
+
* Health check endpoint
|
|
27
|
+
* GET /health
|
|
28
|
+
*
|
|
29
|
+
* Returns comprehensive health status including:
|
|
30
|
+
* - Overall system status
|
|
31
|
+
* - MCP server connectivity status
|
|
32
|
+
* - System metrics (uptime, memory)
|
|
33
|
+
* - Configuration status
|
|
34
|
+
*/
|
|
35
|
+
const healthHandler = async (req, res) => {
|
|
36
|
+
try {
|
|
37
|
+
logger.debug('Health check requested');
|
|
38
|
+
const healthData = await healthService.performHealthCheck();
|
|
39
|
+
const httpStatusCode = healthService.getHttpStatusCode(healthData.status);
|
|
40
|
+
// Set appropriate headers
|
|
41
|
+
res.setHeader('Content-Type', 'application/json');
|
|
42
|
+
res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
|
|
43
|
+
// Add custom headers for monitoring tools
|
|
44
|
+
res.setHeader('X-Health-Status', healthData.status);
|
|
45
|
+
res.setHeader('X-Service-Version', healthData.version);
|
|
46
|
+
res.setHeader('X-Uptime-Seconds', healthData.system.uptime.toString());
|
|
47
|
+
logger.debug(`Health check completed with status: ${healthData.status}`);
|
|
48
|
+
res.status(httpStatusCode).json(healthData);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
logger.error('Health check failed:', error);
|
|
52
|
+
// Return error response with 500 status
|
|
53
|
+
res.status(500).json({
|
|
54
|
+
status: HealthStatus.UNHEALTHY,
|
|
55
|
+
timestamp: new Date().toISOString(),
|
|
56
|
+
error: 'Health check failed',
|
|
57
|
+
message: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
router.get('/', healthHandler);
|
|
62
|
+
/**
|
|
63
|
+
* Simple liveness probe endpoint
|
|
64
|
+
* GET /health/live
|
|
65
|
+
*
|
|
66
|
+
* Returns minimal response for basic liveness checking
|
|
67
|
+
* Always returns 200 if the server is running
|
|
68
|
+
*/
|
|
69
|
+
const livenessHandler = (req, res) => {
|
|
70
|
+
res.setHeader('Content-Type', 'application/json');
|
|
71
|
+
res.setHeader('Cache-Control', 'no-cache');
|
|
72
|
+
res.status(200).json({
|
|
73
|
+
status: 'alive',
|
|
74
|
+
timestamp: new Date().toISOString(),
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
router.get('/live', livenessHandler);
|
|
78
|
+
/**
|
|
79
|
+
* Readiness probe endpoint
|
|
80
|
+
* GET /health/ready
|
|
81
|
+
*
|
|
82
|
+
* Returns 200 if service is ready to accept requests
|
|
83
|
+
* Returns 503 if service is not ready (e.g., configuration not loaded)
|
|
84
|
+
*/
|
|
85
|
+
const readinessHandler = async (req, res) => {
|
|
86
|
+
try {
|
|
87
|
+
const healthData = await healthService.performHealthCheck();
|
|
88
|
+
// Service is ready if configuration is loaded
|
|
89
|
+
const isReady = healthData.configuration.loaded;
|
|
90
|
+
const statusCode = isReady ? 200 : 503;
|
|
91
|
+
res.setHeader('Content-Type', 'application/json');
|
|
92
|
+
res.setHeader('Cache-Control', 'no-cache');
|
|
93
|
+
res.status(statusCode).json({
|
|
94
|
+
status: isReady ? 'ready' : 'not_ready',
|
|
95
|
+
timestamp: new Date().toISOString(),
|
|
96
|
+
configuration: healthData.configuration,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
logger.error('Readiness check failed:', error);
|
|
101
|
+
res.status(503).json({
|
|
102
|
+
status: 'not_ready',
|
|
103
|
+
timestamp: new Date().toISOString(),
|
|
104
|
+
error: 'Readiness check failed',
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
router.get('/ready', readinessHandler);
|
|
109
|
+
return router;
|
|
110
|
+
}
|
|
111
|
+
// Export the factory function as default
|
|
112
|
+
export default createHealthRoutes;
|
|
113
|
+
//# sourceMappingURL=healthRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"healthRoutes.js","sourceRoot":"","sources":["../../../../src/transport/http/routes/healthRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/transport/http/server.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/transport/http/server.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAWnE;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAqB;IAE1C;;;;;;;OAOG;gBACS,aAAa,EAAE,aAAa;IAiBxC;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IA+DnB;;;;;;;;OAQG;IACI,KAAK,IAAI,IAAI;IASpB;;;;;;;OAOG;IACI,QAAQ,IAAI,IAAI;CAGxB"}
|
|
@@ -10,6 +10,7 @@ import { SDKOAuthServerProvider } from '../../auth/sdkOAuthServerProvider.js';
|
|
|
10
10
|
import { setupStreamableHttpRoutes } from './routes/streamableHttpRoutes.js';
|
|
11
11
|
import { setupSseRoutes } from './routes/sseRoutes.js';
|
|
12
12
|
import createOAuthRoutes from './routes/oauthRoutes.js';
|
|
13
|
+
import createHealthRoutes from './routes/healthRoutes.js';
|
|
13
14
|
import { AgentConfigManager } from '../../core/server/agentConfig.js';
|
|
14
15
|
import { RATE_LIMIT_CONFIG } from '../../constants.js';
|
|
15
16
|
import { createScopeAuthMiddleware } from './middlewares/scopeAuthMiddleware.js';
|
|
@@ -122,6 +123,8 @@ export class ExpressServer {
|
|
|
122
123
|
this.app.use(authRouter);
|
|
123
124
|
// Setup OAuth management routes (no auth required)
|
|
124
125
|
this.app.use('/oauth', createOAuthRoutes(this.oauthProvider));
|
|
126
|
+
// Setup health check routes (no auth required for monitoring)
|
|
127
|
+
this.app.use('/health', createHealthRoutes());
|
|
125
128
|
// Setup MCP transport routes (auth is handled per-route via scopeAuthMiddleware)
|
|
126
129
|
const router = express.Router();
|
|
127
130
|
const scopeAuthMiddleware = createScopeAuthMiddleware(this.oauthProvider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/transport/http/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/transport/http/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1mcp/agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "One MCP server to aggregate them all - A unified Model Context Protocol server implementation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -68,18 +68,24 @@
|
|
|
68
68
|
"zod": "^3.24.2"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
+
"@braintree/sanitize-url": "^7.1.1",
|
|
71
72
|
"@eslint/js": "^9.22.0",
|
|
72
73
|
"@testing-library/jest-dom": "^6.6.3",
|
|
73
74
|
"@types/body-parser": "^1.19.5",
|
|
74
75
|
"@types/cors": "^2.8.19",
|
|
75
76
|
"@types/express": "^5.0.0",
|
|
76
77
|
"@types/node": "^24.0.0",
|
|
78
|
+
"@types/supertest": "^6.0.3",
|
|
77
79
|
"@types/uuid": "^10.0.0",
|
|
78
80
|
"@types/yargs": "^17.0.33",
|
|
79
81
|
"@typescript-eslint/eslint-plugin": "^8.27.0",
|
|
80
82
|
"@typescript-eslint/parser": "^8.27.0",
|
|
81
83
|
"@vitest/coverage-v8": "^1.4.0",
|
|
82
84
|
"axios": "^1.10.0",
|
|
85
|
+
"cytoscape": "^3.32.1",
|
|
86
|
+
"cytoscape-cose-bilkent": "^4.1.0",
|
|
87
|
+
"dayjs": "^1.11.13",
|
|
88
|
+
"debug": "^4.4.1",
|
|
83
89
|
"eslint": "^9.22.0",
|
|
84
90
|
"eslint-config-prettier": "^10.1.1",
|
|
85
91
|
"eslint-plugin-prettier": "^5.2.3",
|
|
@@ -87,21 +93,27 @@
|
|
|
87
93
|
"husky": "^9.1.7",
|
|
88
94
|
"jiti": "^2.4.2",
|
|
89
95
|
"lint-staged": "^16.1.2",
|
|
96
|
+
"mermaid": "^11.9.0",
|
|
90
97
|
"prettier": "^3.5.3",
|
|
98
|
+
"supertest": "^7.1.4",
|
|
91
99
|
"ts-node": "^10.9.2",
|
|
92
100
|
"tsc-watch": "^7.1.1",
|
|
93
101
|
"typescript": "^5.3.3",
|
|
94
102
|
"vite-tsconfig-paths": "^5.1.4",
|
|
103
|
+
"vitepress": "^1.6.3",
|
|
104
|
+
"vitepress-plugin-mermaid": "^2.0.17",
|
|
95
105
|
"vitest": "^1.4.0"
|
|
96
106
|
},
|
|
97
107
|
"scripts": {
|
|
98
108
|
"dev": "LOG_LEVEL=debug tsc-watch --project tsconfig.build.json --onSuccess \"node build/index.js --config ./mcp.json --port 3051 --enable-auth\"",
|
|
99
109
|
"build": "tsc --project tsconfig.build.json && node -e \"require('fs').chmodSync('build/index.js', '755')\"",
|
|
110
|
+
"clean": "rm -rf build",
|
|
100
111
|
"watch": "tsc --watch --project tsconfig.build.json",
|
|
101
112
|
"inspector": "npx -y @modelcontextprotocol/inspector",
|
|
102
113
|
"lint": "eslint . --ext .ts",
|
|
103
114
|
"lint:fix": "eslint . --ext .ts --fix",
|
|
104
115
|
"format": "prettier --write \"src/**/*.{js,ts}\" \"test/**/*.{js,ts}\"",
|
|
116
|
+
"format:check": "prettier --check \"src/**/*.{js,ts}\" \"test/**/*.{js,ts}\"",
|
|
105
117
|
"typecheck": "tsc --noEmit --project tsconfig.test.json",
|
|
106
118
|
"test": "pnpm test:unit && pnpm test:e2e",
|
|
107
119
|
"test:unit": "vitest run",
|
|
@@ -109,6 +121,9 @@
|
|
|
109
121
|
"test:unit:coverage": "vitest run --coverage",
|
|
110
122
|
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
111
123
|
"test:e2e:watch": "vitest --config vitest.e2e.config.ts",
|
|
112
|
-
"test:e2e:coverage": "vitest run --config vitest.e2e.config.ts --coverage"
|
|
124
|
+
"test:e2e:coverage": "vitest run --config vitest.e2e.config.ts --coverage",
|
|
125
|
+
"docs:dev": "vitepress dev docs",
|
|
126
|
+
"docs:build": "vitepress build docs",
|
|
127
|
+
"docs:preview": "vitepress preview docs"
|
|
113
128
|
}
|
|
114
129
|
}
|