mcp-creatio 0.3.7 → 0.3.8
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 +7 -4
- package/dist/cli.js +9 -5
- package/dist/cli.js.map +1 -1
- package/dist/log.d.ts +3 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +39 -0
- package/dist/log.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +22 -18
- package/src/log.ts +65 -23
package/README.md
CHANGED
|
@@ -42,6 +42,8 @@ npx -y mcp-creatio \
|
|
|
42
42
|
--password your_password
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
`stdio` logs are disabled by default. To enable them, set `MCP_CREATIO_LOG_LEVEL` or pass `--log-level info`.
|
|
46
|
+
|
|
45
47
|
VS Code MCP config (command-based):
|
|
46
48
|
|
|
47
49
|
```json
|
|
@@ -104,10 +106,11 @@ Then connect using URL:
|
|
|
104
106
|
| `CREATIO_CLIENT_SECRET` | OAuth2 client credentials secret |
|
|
105
107
|
| `CREATIO_ID_BASE_URL` | Identity Service URL (if separate from main Creatio instance) |
|
|
106
108
|
| `CREATIO_CODE_CLIENT_ID` | OAuth2 authorization code client ID |
|
|
107
|
-
| `CREATIO_CODE_CLIENT_SECRET` | OAuth2 authorization code client secret |
|
|
108
|
-
| `CREATIO_CODE_REDIRECT_URI` | OAuth2 redirect URI (e.g. `http://localhost:3000/oauth/callback`) |
|
|
109
|
-
| `CREATIO_CODE_SCOPE` | OAuth2 scope (e.g. `offline_access ApplicationAccess_yourappguid`) |
|
|
110
|
-
| `READONLY_MODE` | Set `true` to disable create/update/delete operations |
|
|
109
|
+
| `CREATIO_CODE_CLIENT_SECRET` | OAuth2 authorization code client secret |
|
|
110
|
+
| `CREATIO_CODE_REDIRECT_URI` | OAuth2 redirect URI (e.g. `http://localhost:3000/oauth/callback`) |
|
|
111
|
+
| `CREATIO_CODE_SCOPE` | OAuth2 scope (e.g. `offline_access ApplicationAccess_yourappguid`) |
|
|
112
|
+
| `READONLY_MODE` | Set `true` to disable create/update/delete operations |
|
|
113
|
+
| `MCP_CREATIO_LOG_LEVEL` | Log verbosity: `silent` (default), `error`, `warn`, `info` |
|
|
111
114
|
|
|
112
115
|
## Authentication Modes
|
|
113
116
|
|
package/dist/cli.js
CHANGED
|
@@ -22,11 +22,13 @@ Options:
|
|
|
22
22
|
--url <url> Alias for --base-url
|
|
23
23
|
--login <value> Creatio login (legacy auth)
|
|
24
24
|
--password <value> Creatio password (legacy auth)
|
|
25
|
-
--client-id <value> OAuth2 client credentials client_id
|
|
26
|
-
--client-secret <value> OAuth2 client credentials client_secret
|
|
27
|
-
--id-base-url <url> Creatio Identity base URL
|
|
28
|
-
--readonly <true|false> Enable readonly mode
|
|
29
|
-
-
|
|
25
|
+
--client-id <value> OAuth2 client credentials client_id
|
|
26
|
+
--client-secret <value> OAuth2 client credentials client_secret
|
|
27
|
+
--id-base-url <url> Creatio Identity base URL
|
|
28
|
+
--readonly <true|false> Enable readonly mode
|
|
29
|
+
--log-level <silent|error|warn|info>
|
|
30
|
+
Log verbosity (default: silent)
|
|
31
|
+
-h, --help Show this help
|
|
30
32
|
|
|
31
33
|
Examples:
|
|
32
34
|
mcp-creatio --base-url https://tenant.creatio.com --login your_login --password your_password
|
|
@@ -78,6 +80,7 @@ function applyCliEnv(opts) {
|
|
|
78
80
|
setEnvIfDefined('CREATIO_CLIENT_SECRET', opts['client-secret']);
|
|
79
81
|
setEnvIfDefined('CREATIO_ID_BASE_URL', opts['id-base-url']);
|
|
80
82
|
setEnvIfDefined('READONLY_MODE', opts.readonly);
|
|
83
|
+
setEnvIfDefined('MCP_CREATIO_LOG_LEVEL', opts['log-level']);
|
|
81
84
|
}
|
|
82
85
|
async function startStdio(server) {
|
|
83
86
|
const mcp = await server.startMcp();
|
|
@@ -105,6 +108,7 @@ async function main() {
|
|
|
105
108
|
printHelp();
|
|
106
109
|
return;
|
|
107
110
|
}
|
|
111
|
+
log_1.default.useStderrOnlyLogs();
|
|
108
112
|
applyCliEnv(opts);
|
|
109
113
|
const cfg = (0, config_builder_1.getCreatioClientConfig)();
|
|
110
114
|
if (cfg.auth.kind === creatio_1.AuthProviderType.OAuth2Code) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,wEAAiF;AAEjF,qDAA0D;AAC1D,uCAA0F;AAC1F,gDAAwB;AACxB,qCAAkC;AAClC,mCAAkC;AAQlC,SAAS,SAAS;IACjB,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/log.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type LogLevel = 'info' | 'warn' | 'error';
|
|
2
|
+
export type LogVerbosity = LogLevel | 'silent';
|
|
2
3
|
export type CreatioAuthKind = 'legacy' | 'oauth2' | 'oauth2_code';
|
|
3
4
|
export interface LogConfig {
|
|
4
5
|
level?: LogLevel;
|
|
@@ -6,6 +7,7 @@ export interface LogConfig {
|
|
|
6
7
|
export declare function setCorrelationId(correlationId: string): void;
|
|
7
8
|
export declare function getCorrelationId(): string | undefined;
|
|
8
9
|
export declare function clearCorrelationId(): void;
|
|
10
|
+
export declare function useStderrOnlyLogs(): void;
|
|
9
11
|
export declare function info(msg: string, meta?: Record<string, any>): void;
|
|
10
12
|
export declare function warn(msg: string, meta?: Record<string, any>): void;
|
|
11
13
|
export declare function error(msg: string, meta?: Record<string, any>): void;
|
|
@@ -28,6 +30,7 @@ declare const _default: {
|
|
|
28
30
|
info: typeof info;
|
|
29
31
|
warn: typeof warn;
|
|
30
32
|
error: typeof error;
|
|
33
|
+
useStderrOnlyLogs: typeof useStderrOnlyLogs;
|
|
31
34
|
appStart: typeof appStart;
|
|
32
35
|
appStop: typeof appStop;
|
|
33
36
|
serverStart: typeof serverStart;
|
package/dist/log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAElE,MAAM,WAAW,SAAS;IACzB,KAAK,CAAC,EAAE,QAAQ,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
|
package/dist/log.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.setCorrelationId = setCorrelationId;
|
|
4
4
|
exports.getCorrelationId = getCorrelationId;
|
|
5
5
|
exports.clearCorrelationId = clearCorrelationId;
|
|
6
|
+
exports.useStderrOnlyLogs = useStderrOnlyLogs;
|
|
6
7
|
exports.info = info;
|
|
7
8
|
exports.warn = warn;
|
|
8
9
|
exports.error = error;
|
|
@@ -22,6 +23,33 @@ exports.httpResponse = httpResponse;
|
|
|
22
23
|
exports.httpError = httpError;
|
|
23
24
|
exports.logOperation = logOperation;
|
|
24
25
|
let _correlationId;
|
|
26
|
+
let _stderrOnly = false;
|
|
27
|
+
function resolveLogVerbosity() {
|
|
28
|
+
const raw = (process.env.MCP_CREATIO_LOG_LEVEL || 'silent').toLowerCase();
|
|
29
|
+
if (raw === 'info') {
|
|
30
|
+
return 'info';
|
|
31
|
+
}
|
|
32
|
+
if (raw === 'warn' || raw === 'warning') {
|
|
33
|
+
return 'warn';
|
|
34
|
+
}
|
|
35
|
+
if (raw === 'error') {
|
|
36
|
+
return 'error';
|
|
37
|
+
}
|
|
38
|
+
return 'silent';
|
|
39
|
+
}
|
|
40
|
+
function shouldLog(level) {
|
|
41
|
+
const verbosity = resolveLogVerbosity();
|
|
42
|
+
if (verbosity === 'silent') {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (verbosity === 'error') {
|
|
46
|
+
return level === 'error';
|
|
47
|
+
}
|
|
48
|
+
if (verbosity === 'warn') {
|
|
49
|
+
return level === 'warn' || level === 'error';
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
25
53
|
function setCorrelationId(correlationId) {
|
|
26
54
|
_correlationId = correlationId;
|
|
27
55
|
}
|
|
@@ -35,6 +63,9 @@ function timestamp() {
|
|
|
35
63
|
return new Date().toISOString();
|
|
36
64
|
}
|
|
37
65
|
function output(level, msg, meta) {
|
|
66
|
+
if (!shouldLog(level)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
38
69
|
const entry = { ts: timestamp(), level, msg };
|
|
39
70
|
if (_correlationId) {
|
|
40
71
|
entry.correlationId = _correlationId;
|
|
@@ -43,6 +74,10 @@ function output(level, msg, meta) {
|
|
|
43
74
|
entry.meta = meta;
|
|
44
75
|
}
|
|
45
76
|
const line = JSON.stringify(entry);
|
|
77
|
+
if (_stderrOnly) {
|
|
78
|
+
process.stderr.write(line + '\n');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
46
81
|
if (level === 'error') {
|
|
47
82
|
console.error(line);
|
|
48
83
|
}
|
|
@@ -53,6 +88,9 @@ function output(level, msg, meta) {
|
|
|
53
88
|
console.log(line);
|
|
54
89
|
}
|
|
55
90
|
}
|
|
91
|
+
function useStderrOnlyLogs() {
|
|
92
|
+
_stderrOnly = true;
|
|
93
|
+
}
|
|
56
94
|
function info(msg, meta) {
|
|
57
95
|
output('info', msg, meta);
|
|
58
96
|
}
|
|
@@ -115,6 +153,7 @@ exports.default = {
|
|
|
115
153
|
info,
|
|
116
154
|
warn,
|
|
117
155
|
error,
|
|
156
|
+
useStderrOnlyLogs,
|
|
118
157
|
appStart,
|
|
119
158
|
appStop,
|
|
120
159
|
serverStart,
|
package/dist/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -26,11 +26,13 @@ Options:
|
|
|
26
26
|
--url <url> Alias for --base-url
|
|
27
27
|
--login <value> Creatio login (legacy auth)
|
|
28
28
|
--password <value> Creatio password (legacy auth)
|
|
29
|
-
--client-id <value> OAuth2 client credentials client_id
|
|
30
|
-
--client-secret <value> OAuth2 client credentials client_secret
|
|
31
|
-
--id-base-url <url> Creatio Identity base URL
|
|
32
|
-
--readonly <true|false> Enable readonly mode
|
|
33
|
-
-
|
|
29
|
+
--client-id <value> OAuth2 client credentials client_id
|
|
30
|
+
--client-secret <value> OAuth2 client credentials client_secret
|
|
31
|
+
--id-base-url <url> Creatio Identity base URL
|
|
32
|
+
--readonly <true|false> Enable readonly mode
|
|
33
|
+
--log-level <silent|error|warn|info>
|
|
34
|
+
Log verbosity (default: silent)
|
|
35
|
+
-h, --help Show this help
|
|
34
36
|
|
|
35
37
|
Examples:
|
|
36
38
|
mcp-creatio --base-url https://tenant.creatio.com --login your_login --password your_password
|
|
@@ -87,10 +89,11 @@ function applyCliEnv(opts: CliOptions): void {
|
|
|
87
89
|
setEnvIfDefined('CREATIO_LOGIN', opts.login);
|
|
88
90
|
setEnvIfDefined('CREATIO_PASSWORD', opts.password);
|
|
89
91
|
setEnvIfDefined('CREATIO_CLIENT_ID', opts['client-id']);
|
|
90
|
-
setEnvIfDefined('CREATIO_CLIENT_SECRET', opts['client-secret']);
|
|
91
|
-
setEnvIfDefined('CREATIO_ID_BASE_URL', opts['id-base-url']);
|
|
92
|
-
setEnvIfDefined('READONLY_MODE', opts.readonly);
|
|
93
|
-
|
|
92
|
+
setEnvIfDefined('CREATIO_CLIENT_SECRET', opts['client-secret']);
|
|
93
|
+
setEnvIfDefined('CREATIO_ID_BASE_URL', opts['id-base-url']);
|
|
94
|
+
setEnvIfDefined('READONLY_MODE', opts.readonly);
|
|
95
|
+
setEnvIfDefined('MCP_CREATIO_LOG_LEVEL', opts['log-level']);
|
|
96
|
+
}
|
|
94
97
|
|
|
95
98
|
async function startStdio(server: Server): Promise<void> {
|
|
96
99
|
const mcp = await server.startMcp();
|
|
@@ -114,15 +117,16 @@ async function shutdown(signal: string, state: RuntimeState): Promise<void> {
|
|
|
114
117
|
}
|
|
115
118
|
}
|
|
116
119
|
|
|
117
|
-
async function main(): Promise<void> {
|
|
118
|
-
const opts = parseArgs(process.argv.slice(2));
|
|
119
|
-
if (opts.help === 'true') {
|
|
120
|
-
printHelp();
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
120
|
+
async function main(): Promise<void> {
|
|
121
|
+
const opts = parseArgs(process.argv.slice(2));
|
|
122
|
+
if (opts.help === 'true') {
|
|
123
|
+
printHelp();
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
log.useStderrOnlyLogs();
|
|
128
|
+
applyCliEnv(opts);
|
|
129
|
+
const cfg = getCreatioClientConfig();
|
|
126
130
|
|
|
127
131
|
if (cfg.auth.kind === AuthProviderType.OAuth2Code) {
|
|
128
132
|
throw new Error(
|
package/src/log.ts
CHANGED
|
@@ -1,11 +1,41 @@
|
|
|
1
|
-
export type LogLevel = 'info' | 'warn' | 'error';
|
|
2
|
-
export type
|
|
1
|
+
export type LogLevel = 'info' | 'warn' | 'error';
|
|
2
|
+
export type LogVerbosity = LogLevel | 'silent';
|
|
3
|
+
export type CreatioAuthKind = 'legacy' | 'oauth2' | 'oauth2_code';
|
|
3
4
|
|
|
4
|
-
export interface LogConfig {
|
|
5
|
-
level?: LogLevel;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
let _correlationId: string | undefined;
|
|
5
|
+
export interface LogConfig {
|
|
6
|
+
level?: LogLevel;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
let _correlationId: string | undefined;
|
|
10
|
+
let _stderrOnly = false;
|
|
11
|
+
|
|
12
|
+
function resolveLogVerbosity(): LogVerbosity {
|
|
13
|
+
const raw = (process.env.MCP_CREATIO_LOG_LEVEL || 'silent').toLowerCase();
|
|
14
|
+
if (raw === 'info') {
|
|
15
|
+
return 'info';
|
|
16
|
+
}
|
|
17
|
+
if (raw === 'warn' || raw === 'warning') {
|
|
18
|
+
return 'warn';
|
|
19
|
+
}
|
|
20
|
+
if (raw === 'error') {
|
|
21
|
+
return 'error';
|
|
22
|
+
}
|
|
23
|
+
return 'silent';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function shouldLog(level: LogLevel): boolean {
|
|
27
|
+
const verbosity = resolveLogVerbosity();
|
|
28
|
+
if (verbosity === 'silent') {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (verbosity === 'error') {
|
|
32
|
+
return level === 'error';
|
|
33
|
+
}
|
|
34
|
+
if (verbosity === 'warn') {
|
|
35
|
+
return level === 'warn' || level === 'error';
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
9
39
|
|
|
10
40
|
export function setCorrelationId(correlationId: string) {
|
|
11
41
|
_correlationId = correlationId;
|
|
@@ -23,23 +53,34 @@ function timestamp() {
|
|
|
23
53
|
return new Date().toISOString();
|
|
24
54
|
}
|
|
25
55
|
|
|
26
|
-
function output(level: LogLevel, msg: string, meta?: Record<string, any>) {
|
|
27
|
-
|
|
56
|
+
function output(level: LogLevel, msg: string, meta?: Record<string, any>) {
|
|
57
|
+
if (!shouldLog(level)) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const entry: any = { ts: timestamp(), level, msg };
|
|
28
61
|
if (_correlationId) {
|
|
29
62
|
entry.correlationId = _correlationId;
|
|
30
63
|
}
|
|
31
64
|
if (meta && Object.keys(meta).length) {
|
|
32
65
|
entry.meta = meta;
|
|
33
66
|
}
|
|
34
|
-
const line = JSON.stringify(entry);
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
console.
|
|
41
|
-
}
|
|
42
|
-
|
|
67
|
+
const line = JSON.stringify(entry);
|
|
68
|
+
if (_stderrOnly) {
|
|
69
|
+
process.stderr.write(line + '\n');
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (level === 'error') {
|
|
73
|
+
console.error(line);
|
|
74
|
+
} else if (level === 'warn') {
|
|
75
|
+
console.warn(line);
|
|
76
|
+
} else {
|
|
77
|
+
console.log(line);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function useStderrOnlyLogs() {
|
|
82
|
+
_stderrOnly = true;
|
|
83
|
+
}
|
|
43
84
|
|
|
44
85
|
export function info(msg: string, meta?: Record<string, any>) {
|
|
45
86
|
output('info', msg, meta);
|
|
@@ -116,11 +157,12 @@ export function logOperation(
|
|
|
116
157
|
});
|
|
117
158
|
}
|
|
118
159
|
|
|
119
|
-
export default {
|
|
120
|
-
info,
|
|
121
|
-
warn,
|
|
122
|
-
error,
|
|
123
|
-
|
|
160
|
+
export default {
|
|
161
|
+
info,
|
|
162
|
+
warn,
|
|
163
|
+
error,
|
|
164
|
+
useStderrOnlyLogs,
|
|
165
|
+
appStart,
|
|
124
166
|
appStop,
|
|
125
167
|
serverStart,
|
|
126
168
|
serverStop,
|