mcp-creatio 0.3.7 → 0.3.10
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 +21 -9
- 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 +16 -3
- package/src/cli.ts +22 -18
- package/src/log.ts +65 -23
- package/ecosystem.config.json +0 -17
package/README.md
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
# MCP Creatio Server
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
# MCP Creatio Server
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/mcp-creatio)
|
|
4
|
+
[](https://hub.docker.com/r/crackish/mcp-creatio)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
|
|
7
|
+
Model Context Protocol (MCP) server for Creatio (https://www.creatio.com/) to connect Claude Desktop, ChatGPT, GitHub Copilot, and other AI tools to Creatio data.
|
|
8
|
+
|
|
9
|
+
Also discoverable as:
|
|
10
|
+
- Creatio MCP server
|
|
11
|
+
- MCP server for Creatio CRM
|
|
12
|
+
- Model Context Protocol for Creatio
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
6
15
|
|
|
7
16
|
- Exposes Creatio data as MCP tools for MCP-compatible clients (Claude Desktop, ChatGPT Connectors, GitHub Copilot)
|
|
8
17
|
- Supports reading, creating, updating, deleting records and inspecting schema
|
|
@@ -42,6 +51,8 @@ npx -y mcp-creatio \
|
|
|
42
51
|
--password your_password
|
|
43
52
|
```
|
|
44
53
|
|
|
54
|
+
`stdio` logs are disabled by default. To enable them, set `MCP_CREATIO_LOG_LEVEL` or pass `--log-level info`.
|
|
55
|
+
|
|
45
56
|
VS Code MCP config (command-based):
|
|
46
57
|
|
|
47
58
|
```json
|
|
@@ -104,10 +115,11 @@ Then connect using URL:
|
|
|
104
115
|
| `CREATIO_CLIENT_SECRET` | OAuth2 client credentials secret |
|
|
105
116
|
| `CREATIO_ID_BASE_URL` | Identity Service URL (if separate from main Creatio instance) |
|
|
106
117
|
| `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 |
|
|
118
|
+
| `CREATIO_CODE_CLIENT_SECRET` | OAuth2 authorization code client secret |
|
|
119
|
+
| `CREATIO_CODE_REDIRECT_URI` | OAuth2 redirect URI (e.g. `http://localhost:3000/oauth/callback`) |
|
|
120
|
+
| `CREATIO_CODE_SCOPE` | OAuth2 scope (e.g. `offline_access ApplicationAccess_yourappguid`) |
|
|
121
|
+
| `READONLY_MODE` | Set `true` to disable create/update/delete operations |
|
|
122
|
+
| `MCP_CREATIO_LOG_LEVEL` | Log verbosity: `silent` (default), `error`, `warn`, `info` |
|
|
111
123
|
|
|
112
124
|
## Authentication Modes
|
|
113
125
|
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-creatio",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.10",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"bin": {
|
|
6
6
|
"mcp-creatio": "dist/cli.js"
|
|
@@ -23,14 +23,27 @@
|
|
|
23
23
|
"type": "git",
|
|
24
24
|
"url": "git+https://github.com/CRACKISH/mcp-creatio.git"
|
|
25
25
|
},
|
|
26
|
-
"keywords": [
|
|
26
|
+
"keywords": [
|
|
27
|
+
"mcp",
|
|
28
|
+
"model-context-protocol",
|
|
29
|
+
"creatio",
|
|
30
|
+
"creatio-crm",
|
|
31
|
+
"crm",
|
|
32
|
+
"odata",
|
|
33
|
+
"mcp-server",
|
|
34
|
+
"chatgpt",
|
|
35
|
+
"claude",
|
|
36
|
+
"github-copilot",
|
|
37
|
+
"typescript",
|
|
38
|
+
"ai-tools"
|
|
39
|
+
],
|
|
27
40
|
"author": "",
|
|
28
41
|
"license": "MIT",
|
|
29
42
|
"bugs": {
|
|
30
43
|
"url": "https://github.com/CRACKISH/mcp-creatio/issues"
|
|
31
44
|
},
|
|
32
45
|
"homepage": "https://github.com/CRACKISH/mcp-creatio#readme",
|
|
33
|
-
"description": "",
|
|
46
|
+
"description": "MCP server for Creatio CRM. Connect Claude Desktop, ChatGPT, and GitHub Copilot to Creatio via Model Context Protocol and OData v4.",
|
|
34
47
|
"devDependencies": {
|
|
35
48
|
"@types/express": "5.0.6",
|
|
36
49
|
"@types/node": "^25.3.0",
|
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,
|
package/ecosystem.config.json
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"apps": [
|
|
3
|
-
{
|
|
4
|
-
"name": "mcp-creatio",
|
|
5
|
-
"cwd": "C:/Projects/mcp-creatio",
|
|
6
|
-
"script": "dist/index.js",
|
|
7
|
-
"node_args": "",
|
|
8
|
-
"env": {
|
|
9
|
-
"CREATIO_BASE_URL": "http://tscore-dev-18:88/sae_m_seeenu_12458081_1106",
|
|
10
|
-
"CREATIO_LOGIN": "your_login",
|
|
11
|
-
"CREATIO_PASSWORD": "your_password",
|
|
12
|
-
"PORT": "7700",
|
|
13
|
-
"HOST": "0.0.0.0"
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
]
|
|
17
|
-
}
|