mcp-creatio 0.3.6
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/.dockerignore +12 -0
- package/.editorconfig +14 -0
- package/.eslintrc.cjs +18 -0
- package/.gitattributes +8 -0
- package/.github/workflows/docker-publish.yml +50 -0
- package/.prettierignore +3 -0
- package/.prettierrc +9 -0
- package/.vscode/launch.json +23 -0
- package/.vscode/mcp.json +13 -0
- package/.vscode/settings.json +16 -0
- package/Agent.md +187 -0
- package/Debug.md +32 -0
- package/Dockerfile +23 -0
- package/LICENSE +21 -0
- package/README.md +162 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +135 -0
- package/dist/cli.js.map +1 -0
- package/dist/config-builder.d.ts +3 -0
- package/dist/config-builder.d.ts.map +1 -0
- package/dist/config-builder.js +66 -0
- package/dist/config-builder.js.map +1 -0
- package/dist/consts.d.ts +2 -0
- package/dist/consts.d.ts.map +1 -0
- package/dist/consts.js +6 -0
- package/dist/consts.js.map +1 -0
- package/dist/creatio/auth/auth-manager.d.ts +9 -0
- package/dist/creatio/auth/auth-manager.d.ts.map +1 -0
- package/dist/creatio/auth/auth-manager.js +29 -0
- package/dist/creatio/auth/auth-manager.js.map +1 -0
- package/dist/creatio/auth/auth.d.ts +16 -0
- package/dist/creatio/auth/auth.d.ts.map +1 -0
- package/dist/creatio/auth/auth.js +20 -0
- package/dist/creatio/auth/auth.js.map +1 -0
- package/dist/creatio/auth/index.d.ts +4 -0
- package/dist/creatio/auth/index.d.ts.map +1 -0
- package/dist/creatio/auth/index.js +21 -0
- package/dist/creatio/auth/index.js.map +1 -0
- package/dist/creatio/auth/providers/base-oauth2-provider.d.ts +17 -0
- package/dist/creatio/auth/providers/base-oauth2-provider.d.ts.map +1 -0
- package/dist/creatio/auth/providers/base-oauth2-provider.js +49 -0
- package/dist/creatio/auth/providers/base-oauth2-provider.js.map +1 -0
- package/dist/creatio/auth/providers/base-provider.d.ts +15 -0
- package/dist/creatio/auth/providers/base-provider.d.ts.map +1 -0
- package/dist/creatio/auth/providers/base-provider.js +32 -0
- package/dist/creatio/auth/providers/base-provider.js.map +1 -0
- package/dist/creatio/auth/providers/index.d.ts +5 -0
- package/dist/creatio/auth/providers/index.d.ts.map +1 -0
- package/dist/creatio/auth/providers/index.js +21 -0
- package/dist/creatio/auth/providers/index.js.map +1 -0
- package/dist/creatio/auth/providers/legacy-provider.d.ts +10 -0
- package/dist/creatio/auth/providers/legacy-provider.d.ts.map +1 -0
- package/dist/creatio/auth/providers/legacy-provider.js +73 -0
- package/dist/creatio/auth/providers/legacy-provider.js.map +1 -0
- package/dist/creatio/auth/providers/oauth2-code-provider.d.ts +18 -0
- package/dist/creatio/auth/providers/oauth2-code-provider.d.ts.map +1 -0
- package/dist/creatio/auth/providers/oauth2-code-provider.js +245 -0
- package/dist/creatio/auth/providers/oauth2-code-provider.js.map +1 -0
- package/dist/creatio/auth/providers/oauth2-provider.d.ts +9 -0
- package/dist/creatio/auth/providers/oauth2-provider.d.ts.map +1 -0
- package/dist/creatio/auth/providers/oauth2-provider.js +86 -0
- package/dist/creatio/auth/providers/oauth2-provider.js.map +1 -0
- package/dist/creatio/auth/providers/type.d.ts +6 -0
- package/dist/creatio/auth/providers/type.d.ts.map +1 -0
- package/dist/creatio/auth/providers/type.js +10 -0
- package/dist/creatio/auth/providers/type.js.map +1 -0
- package/dist/creatio/client-config.d.ts +29 -0
- package/dist/creatio/client-config.d.ts.map +1 -0
- package/dist/creatio/client-config.js +3 -0
- package/dist/creatio/client-config.js.map +1 -0
- package/dist/creatio/engines/crud/crud-engine.d.ts +15 -0
- package/dist/creatio/engines/crud/crud-engine.d.ts.map +1 -0
- package/dist/creatio/engines/crud/crud-engine.js +33 -0
- package/dist/creatio/engines/crud/crud-engine.js.map +1 -0
- package/dist/creatio/engines/engine-manager.d.ts +33 -0
- package/dist/creatio/engines/engine-manager.d.ts.map +1 -0
- package/dist/creatio/engines/engine-manager.js +54 -0
- package/dist/creatio/engines/engine-manager.js.map +1 -0
- package/dist/creatio/engines/engine-registry.d.ts +15 -0
- package/dist/creatio/engines/engine-registry.d.ts.map +1 -0
- package/dist/creatio/engines/engine-registry.js +35 -0
- package/dist/creatio/engines/engine-registry.js.map +1 -0
- package/dist/creatio/engines/engine.d.ts +4 -0
- package/dist/creatio/engines/engine.d.ts.map +1 -0
- package/dist/creatio/engines/engine.js +3 -0
- package/dist/creatio/engines/engine.js.map +1 -0
- package/dist/creatio/engines/index.d.ts +8 -0
- package/dist/creatio/engines/index.d.ts.map +1 -0
- package/dist/creatio/engines/index.js +24 -0
- package/dist/creatio/engines/index.js.map +1 -0
- package/dist/creatio/engines/process/process-engine.d.ts +10 -0
- package/dist/creatio/engines/process/process-engine.d.ts.map +1 -0
- package/dist/creatio/engines/process/process-engine.js +18 -0
- package/dist/creatio/engines/process/process-engine.js.map +1 -0
- package/dist/creatio/engines/sys-settings/sys-settings-engine.d.ts +13 -0
- package/dist/creatio/engines/sys-settings/sys-settings-engine.d.ts.map +1 -0
- package/dist/creatio/engines/sys-settings/sys-settings-engine.js +27 -0
- package/dist/creatio/engines/sys-settings/sys-settings-engine.js.map +1 -0
- package/dist/creatio/engines/user/user-engine.d.ts +10 -0
- package/dist/creatio/engines/user/user-engine.d.ts.map +1 -0
- package/dist/creatio/engines/user/user-engine.js +18 -0
- package/dist/creatio/engines/user/user-engine.js.map +1 -0
- package/dist/creatio/index.d.ts +7 -0
- package/dist/creatio/index.d.ts.map +1 -0
- package/dist/creatio/index.js +23 -0
- package/dist/creatio/index.js.map +1 -0
- package/dist/creatio/provider-context.d.ts +10 -0
- package/dist/creatio/provider-context.d.ts.map +1 -0
- package/dist/creatio/provider-context.js +3 -0
- package/dist/creatio/provider-context.js.map +1 -0
- package/dist/creatio/providers/crud-provider.d.ts +40 -0
- package/dist/creatio/providers/crud-provider.d.ts.map +1 -0
- package/dist/creatio/providers/crud-provider.js +3 -0
- package/dist/creatio/providers/crud-provider.js.map +1 -0
- package/dist/creatio/providers/index.d.ts +5 -0
- package/dist/creatio/providers/index.d.ts.map +1 -0
- package/dist/creatio/providers/index.js +21 -0
- package/dist/creatio/providers/index.js.map +1 -0
- package/dist/creatio/providers/process-provider.d.ts +14 -0
- package/dist/creatio/providers/process-provider.d.ts.map +1 -0
- package/dist/creatio/providers/process-provider.js +3 -0
- package/dist/creatio/providers/process-provider.js.map +1 -0
- package/dist/creatio/providers/sys-settings-provider.d.ts +58 -0
- package/dist/creatio/providers/sys-settings-provider.d.ts.map +1 -0
- package/dist/creatio/providers/sys-settings-provider.js +3 -0
- package/dist/creatio/providers/sys-settings-provider.js.map +1 -0
- package/dist/creatio/providers/user-provider.d.ts +12 -0
- package/dist/creatio/providers/user-provider.d.ts.map +1 -0
- package/dist/creatio/providers/user-provider.js +3 -0
- package/dist/creatio/providers/user-provider.js.map +1 -0
- package/dist/creatio/services/creatio-service-context.d.ts +17 -0
- package/dist/creatio/services/creatio-service-context.d.ts.map +1 -0
- package/dist/creatio/services/creatio-service-context.js +35 -0
- package/dist/creatio/services/creatio-service-context.js.map +1 -0
- package/dist/creatio/services/http-client.d.ts +29 -0
- package/dist/creatio/services/http-client.d.ts.map +1 -0
- package/dist/creatio/services/http-client.js +136 -0
- package/dist/creatio/services/http-client.js.map +1 -0
- package/dist/creatio/services/index.d.ts +8 -0
- package/dist/creatio/services/index.d.ts.map +1 -0
- package/dist/creatio/services/index.js +24 -0
- package/dist/creatio/services/index.js.map +1 -0
- package/dist/creatio/services/metadata-store.d.ts +20 -0
- package/dist/creatio/services/metadata-store.d.ts.map +1 -0
- package/dist/creatio/services/metadata-store.js +162 -0
- package/dist/creatio/services/metadata-store.js.map +1 -0
- package/dist/creatio/services/odata-crud-provider.d.ts +21 -0
- package/dist/creatio/services/odata-crud-provider.d.ts.map +1 -0
- package/dist/creatio/services/odata-crud-provider.js +145 -0
- package/dist/creatio/services/odata-crud-provider.js.map +1 -0
- package/dist/creatio/services/process-service-provider.d.ts +11 -0
- package/dist/creatio/services/process-service-provider.d.ts.map +1 -0
- package/dist/creatio/services/process-service-provider.js +52 -0
- package/dist/creatio/services/process-service-provider.js.map +1 -0
- package/dist/creatio/services/sys-settings-service-provider.d.ts +19 -0
- package/dist/creatio/services/sys-settings-service-provider.d.ts.map +1 -0
- package/dist/creatio/services/sys-settings-service-provider.js +107 -0
- package/dist/creatio/services/sys-settings-service-provider.js.map +1 -0
- package/dist/creatio/services/user-info-provider.d.ts +10 -0
- package/dist/creatio/services/user-info-provider.d.ts.map +1 -0
- package/dist/creatio/services/user-info-provider.js +26 -0
- package/dist/creatio/services/user-info-provider.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +51 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +137 -0
- package/dist/log.js.map +1 -0
- package/dist/server/http/creatio-oauth-handlers.d.ts +14 -0
- package/dist/server/http/creatio-oauth-handlers.d.ts.map +1 -0
- package/dist/server/http/creatio-oauth-handlers.js +137 -0
- package/dist/server/http/creatio-oauth-handlers.js.map +1 -0
- package/dist/server/http/httpServer.d.ts +23 -0
- package/dist/server/http/httpServer.d.ts.map +1 -0
- package/dist/server/http/httpServer.js +131 -0
- package/dist/server/http/httpServer.js.map +1 -0
- package/dist/server/http/index.d.ts +6 -0
- package/dist/server/http/index.d.ts.map +1 -0
- package/dist/server/http/index.js +22 -0
- package/dist/server/http/index.js.map +1 -0
- package/dist/server/http/mcp-handlers.d.ts +10 -0
- package/dist/server/http/mcp-handlers.d.ts.map +1 -0
- package/dist/server/http/mcp-handlers.js +82 -0
- package/dist/server/http/mcp-handlers.js.map +1 -0
- package/dist/server/http/mcp-oauth-handlers.d.ts +11 -0
- package/dist/server/http/mcp-oauth-handlers.d.ts.map +1 -0
- package/dist/server/http/mcp-oauth-handlers.js +106 -0
- package/dist/server/http/mcp-oauth-handlers.js.map +1 -0
- package/dist/server/http/middleware.d.ts +11 -0
- package/dist/server/http/middleware.d.ts.map +1 -0
- package/dist/server/http/middleware.js +88 -0
- package/dist/server/http/middleware.js.map +1 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +19 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/mcp/filters.d.ts +2 -0
- package/dist/server/mcp/filters.d.ts.map +1 -0
- package/dist/server/mcp/filters.js +94 -0
- package/dist/server/mcp/filters.js.map +1 -0
- package/dist/server/mcp/index.d.ts +2 -0
- package/dist/server/mcp/index.d.ts.map +1 -0
- package/dist/server/mcp/index.js +18 -0
- package/dist/server/mcp/index.js.map +1 -0
- package/dist/server/mcp/prompts-data.d.ts +147 -0
- package/dist/server/mcp/prompts-data.d.ts.map +1 -0
- package/dist/server/mcp/prompts-data.js +884 -0
- package/dist/server/mcp/prompts-data.js.map +1 -0
- package/dist/server/mcp/server.d.ts +25 -0
- package/dist/server/mcp/server.d.ts.map +1 -0
- package/dist/server/mcp/server.js +233 -0
- package/dist/server/mcp/server.js.map +1 -0
- package/dist/server/mcp/tools-data.d.ts +165 -0
- package/dist/server/mcp/tools-data.d.ts.map +1 -0
- package/dist/server/mcp/tools-data.js +466 -0
- package/dist/server/mcp/tools-data.js.map +1 -0
- package/dist/server/oauth/client-manager.d.ts +6 -0
- package/dist/server/oauth/client-manager.d.ts.map +1 -0
- package/dist/server/oauth/client-manager.js +52 -0
- package/dist/server/oauth/client-manager.js.map +1 -0
- package/dist/server/oauth/index.d.ts +7 -0
- package/dist/server/oauth/index.d.ts.map +1 -0
- package/dist/server/oauth/index.js +23 -0
- package/dist/server/oauth/index.js.map +1 -0
- package/dist/server/oauth/oauth-server.d.ts +21 -0
- package/dist/server/oauth/oauth-server.d.ts.map +1 -0
- package/dist/server/oauth/oauth-server.js +146 -0
- package/dist/server/oauth/oauth-server.js.map +1 -0
- package/dist/server/oauth/storage.d.ts +31 -0
- package/dist/server/oauth/storage.d.ts.map +1 -0
- package/dist/server/oauth/storage.js +73 -0
- package/dist/server/oauth/storage.js.map +1 -0
- package/dist/server/oauth/token-manager.d.ts +13 -0
- package/dist/server/oauth/token-manager.d.ts.map +1 -0
- package/dist/server/oauth/token-manager.js +69 -0
- package/dist/server/oauth/token-manager.js.map +1 -0
- package/dist/server/oauth/types.d.ts +51 -0
- package/dist/server/oauth/types.d.ts.map +1 -0
- package/dist/server/oauth/types.js +3 -0
- package/dist/server/oauth/types.js.map +1 -0
- package/dist/server/oauth/validators.d.ts +7 -0
- package/dist/server/oauth/validators.d.ts.map +1 -0
- package/dist/server/oauth/validators.js +51 -0
- package/dist/server/oauth/validators.js.map +1 -0
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +19 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/session-context.d.ts +57 -0
- package/dist/services/session-context.d.ts.map +1 -0
- package/dist/services/session-context.js +182 -0
- package/dist/services/session-context.js.map +1 -0
- package/dist/services/token-refresh-scheduler.d.ts +16 -0
- package/dist/services/token-refresh-scheduler.d.ts.map +1 -0
- package/dist/services/token-refresh-scheduler.js +66 -0
- package/dist/services/token-refresh-scheduler.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/network.d.ts +7 -0
- package/dist/types/network.d.ts.map +1 -0
- package/dist/types/network.js +6 -0
- package/dist/types/network.js.map +1 -0
- package/dist/utils/context.d.ts +10 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +44 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/env.d.ts +3 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +16 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +22 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/mcp.d.ts +3 -0
- package/dist/utils/mcp.d.ts.map +1 -0
- package/dist/utils/mcp.js +7 -0
- package/dist/utils/mcp.js.map +1 -0
- package/dist/utils/network.d.ts +7 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +63 -0
- package/dist/utils/network.js.map +1 -0
- package/dist/utils/pkce.d.ts +7 -0
- package/dist/utils/pkce.d.ts.map +1 -0
- package/dist/utils/pkce.js +43 -0
- package/dist/utils/pkce.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/docs/coding-style.md +30 -0
- package/ecosystem.config.json +17 -0
- package/eslint.config.cjs +95 -0
- package/package.json +54 -0
- package/src/cli.ts +158 -0
- package/src/config-builder.ts +76 -0
- package/src/consts.ts +3 -0
- package/src/creatio/auth/auth-manager.ts +27 -0
- package/src/creatio/auth/auth.ts +31 -0
- package/src/creatio/auth/index.ts +3 -0
- package/src/creatio/auth/providers/base-oauth2-provider.ts +62 -0
- package/src/creatio/auth/providers/base-provider.ts +42 -0
- package/src/creatio/auth/providers/index.ts +4 -0
- package/src/creatio/auth/providers/legacy-provider.ts +70 -0
- package/src/creatio/auth/providers/oauth2-code-provider.ts +252 -0
- package/src/creatio/auth/providers/oauth2-provider.ts +91 -0
- package/src/creatio/auth/providers/type.ts +5 -0
- package/src/creatio/client-config.ts +34 -0
- package/src/creatio/engines/crud/crud-engine.ts +47 -0
- package/src/creatio/engines/engine-manager.ts +102 -0
- package/src/creatio/engines/engine-registry.ts +36 -0
- package/src/creatio/engines/engine.ts +3 -0
- package/src/creatio/engines/index.ts +7 -0
- package/src/creatio/engines/process/process-engine.ts +20 -0
- package/src/creatio/engines/sys-settings/sys-settings-engine.ts +41 -0
- package/src/creatio/engines/user/user-engine.ts +20 -0
- package/src/creatio/index.ts +6 -0
- package/src/creatio/provider-context.ts +10 -0
- package/src/creatio/providers/crud-provider.ts +45 -0
- package/src/creatio/providers/index.ts +4 -0
- package/src/creatio/providers/process-provider.ts +15 -0
- package/src/creatio/providers/sys-settings-provider.ts +63 -0
- package/src/creatio/providers/user-provider.ts +12 -0
- package/src/creatio/services/creatio-service-context.ts +38 -0
- package/src/creatio/services/http-client.ts +174 -0
- package/src/creatio/services/index.ts +7 -0
- package/src/creatio/services/metadata-store.ts +181 -0
- package/src/creatio/services/odata-crud-provider.ts +210 -0
- package/src/creatio/services/process-service-provider.ts +76 -0
- package/src/creatio/services/sys-settings-service-provider.ts +192 -0
- package/src/creatio/services/user-info-provider.ts +41 -0
- package/src/index.ts +44 -0
- package/src/log.ts +141 -0
- package/src/server/http/creatio-oauth-handlers.ts +146 -0
- package/src/server/http/httpServer.ts +150 -0
- package/src/server/http/index.ts +5 -0
- package/src/server/http/mcp-handlers.ts +92 -0
- package/src/server/http/mcp-oauth-handlers.ts +108 -0
- package/src/server/http/middleware.ts +91 -0
- package/src/server/index.ts +2 -0
- package/src/server/mcp/filters.ts +97 -0
- package/src/server/mcp/index.ts +1 -0
- package/src/server/mcp/prompts-data.ts +896 -0
- package/src/server/mcp/server.ts +331 -0
- package/src/server/mcp/tools-data.ts +592 -0
- package/src/server/oauth/client-manager.ts +47 -0
- package/src/server/oauth/index.ts +6 -0
- package/src/server/oauth/oauth-server.ts +185 -0
- package/src/server/oauth/storage.ts +106 -0
- package/src/server/oauth/token-manager.ts +80 -0
- package/src/server/oauth/types.ts +55 -0
- package/src/server/oauth/validators.ts +56 -0
- package/src/services/index.ts +2 -0
- package/src/services/session-context.ts +232 -0
- package/src/services/token-refresh-scheduler.ts +68 -0
- package/src/types/index.ts +1 -0
- package/src/types/network.ts +7 -0
- package/src/utils/context.ts +49 -0
- package/src/utils/env.ts +12 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/mcp.ts +8 -0
- package/src/utils/network.ts +65 -0
- package/src/utils/pkce.ts +39 -0
- package/src/version.ts +15 -0
- package/tsconfig.json +28 -0
package/.dockerignore
ADDED
package/.editorconfig
ADDED
package/.eslintrc.cjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
root: true,
|
|
3
|
+
parser: '@typescript-eslint/parser',
|
|
4
|
+
parserOptions: {
|
|
5
|
+
project: ['./tsconfig.json'],
|
|
6
|
+
tsconfigRootDir: __dirname,
|
|
7
|
+
sourceType: 'module',
|
|
8
|
+
},
|
|
9
|
+
plugins: ['@typescript-eslint', 'prettier'],
|
|
10
|
+
extends: [
|
|
11
|
+
'eslint:recommended',
|
|
12
|
+
'plugin:@typescript-eslint/recommended',
|
|
13
|
+
'plugin:prettier/recommended',
|
|
14
|
+
],
|
|
15
|
+
rules: {
|
|
16
|
+
'prettier/prettier': 'error',
|
|
17
|
+
},
|
|
18
|
+
};
|
package/.gitattributes
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: Docker Build and Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ['main']
|
|
6
|
+
tags: ['v*.*.*']
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
docker:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
packages: write
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
|
|
21
|
+
- name: Set up QEMU
|
|
22
|
+
uses: docker/setup-qemu-action@v3
|
|
23
|
+
|
|
24
|
+
- name: Set up Docker Buildx
|
|
25
|
+
uses: docker/setup-buildx-action@v3
|
|
26
|
+
|
|
27
|
+
- name: Docker Hub login
|
|
28
|
+
uses: docker/login-action@v3
|
|
29
|
+
with:
|
|
30
|
+
username: ${{ secrets.DOCKER_USERNAME }}
|
|
31
|
+
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
32
|
+
|
|
33
|
+
- name: Compute Docker tags from package.json
|
|
34
|
+
id: vars
|
|
35
|
+
shell: bash
|
|
36
|
+
run: |
|
|
37
|
+
VERSION=$(jq -r .version package.json)
|
|
38
|
+
if [[ -z "$VERSION" || "$VERSION" == "null" ]]; then
|
|
39
|
+
echo "Package version is empty" >&2
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
echo "tags=crackish/mcp-creatio:latest,crackish/mcp-creatio:v${VERSION}" >> $GITHUB_OUTPUT
|
|
43
|
+
|
|
44
|
+
- name: Build and push
|
|
45
|
+
uses: docker/build-push-action@v6
|
|
46
|
+
with:
|
|
47
|
+
context: .
|
|
48
|
+
push: true
|
|
49
|
+
platforms: linux/amd64,linux/arm64
|
|
50
|
+
tags: ${{ steps.vars.outputs.tags }}
|
package/.prettierignore
ADDED
package/.prettierrc
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.2.0",
|
|
3
|
+
"configurations": [
|
|
4
|
+
{
|
|
5
|
+
"name": "Debug MCP Creatio",
|
|
6
|
+
"type": "node",
|
|
7
|
+
"request": "launch",
|
|
8
|
+
"cwd": "${workspaceFolder}",
|
|
9
|
+
"runtimeExecutable": "npm",
|
|
10
|
+
"runtimeArgs": [
|
|
11
|
+
"run",
|
|
12
|
+
"start"
|
|
13
|
+
],
|
|
14
|
+
"console": "integratedTerminal",
|
|
15
|
+
"internalConsoleOptions": "neverOpen",
|
|
16
|
+
"env": {
|
|
17
|
+
"CREATIO_BASE_URL": "https://your-creatio.com",
|
|
18
|
+
"CREATIO_LOGIN": "Supervisor",
|
|
19
|
+
"CREATIO_PASSWORD": "Supervisor"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
package/.vscode/mcp.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"editor.formatOnSave": true,
|
|
3
|
+
"editor.insertSpaces": false,
|
|
4
|
+
"editor.tabSize": 4,
|
|
5
|
+
"files.eol": "\r\n",
|
|
6
|
+
"files.encoding": "utf8",
|
|
7
|
+
"editor.detectIndentation": false,
|
|
8
|
+
"[typescript]": {
|
|
9
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
10
|
+
},
|
|
11
|
+
"eslint.validate": ["typescript", "typescriptreact"],
|
|
12
|
+
"editor.codeActionsOnSave": {
|
|
13
|
+
"source.fixAll": "explicit",
|
|
14
|
+
"source.fixAll.eslint": "explicit"
|
|
15
|
+
}
|
|
16
|
+
}
|
package/Agent.md
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# Agent Guide: MCP Creatio Server
|
|
2
|
+
|
|
3
|
+
This document is for AI coding agents contributing to this repository. It explains project purpose, architecture, invariants, and safe extension patterns.
|
|
4
|
+
|
|
5
|
+
## 1. Purpose
|
|
6
|
+
|
|
7
|
+
An implementation of a Model Context Protocol (MCP) server that exposes Creatio CRM to MCP-compatible AI clients (Claude Desktop, ChatGPT Connectors, GitHub Copilot, etc.).
|
|
8
|
+
|
|
9
|
+
Primary goals:
|
|
10
|
+
|
|
11
|
+
- Provide stable tool surface for CRUD, schema discovery, business process execution.
|
|
12
|
+
- Enforce safe data operations (especially Activities ownership rules, date/time UTC handling).
|
|
13
|
+
- Offer prompts that guide LLMs to use Creatio correctly.
|
|
14
|
+
|
|
15
|
+
## 2. High-Level Architecture
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
src/
|
|
19
|
+
creatio/ ← Low-level Creatio API client & auth providers
|
|
20
|
+
server/ ← MCP server + HTTP layer (OAuth server, handlers)
|
|
21
|
+
mcp/ ← MCP tool descriptors, prompts, filters builder
|
|
22
|
+
oauth/ ← Local OAuth 2.1 authorization server for clients
|
|
23
|
+
services/ ← Session/token refresh orchestration
|
|
24
|
+
utils/ ← Reusable helpers (env, network, pkce, context)
|
|
25
|
+
types/ ← Shared TypeScript interfaces & DTO shapes
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Key flows:
|
|
29
|
+
|
|
30
|
+
1. Client authenticates (legacy credentials OR OAuth2 variants).
|
|
31
|
+
2. MCP server registers tools using descriptors from `server/mcp/tools-data.ts`.
|
|
32
|
+
3. Tool handlers call into `CreatioEngineManager`, which resolves a `CreatioServiceContext` (built from `src/creatio/services/*`) and delegates work to the appropriate provider (CRUD, process, sys-settings, user).
|
|
33
|
+
4. Responses are normalized into MCP content blocks.
|
|
34
|
+
|
|
35
|
+
### Creatio Service Stack (LLM Cheat Sheet)
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
CreatioServiceContext
|
|
39
|
+
├─ CreatioAuthManager → selects concrete auth provider (legacy / OAuth2 / OAuth2 code)
|
|
40
|
+
├─ CreatioHttpClient → transport + logging + retry + header helpers
|
|
41
|
+
├─ ODataMetadataStore → caches entity schemas per environment
|
|
42
|
+
├─ ODataCrudProvider → implements CrudProvider using http + metadata
|
|
43
|
+
├─ ProcessServiceProvider → POSTs to ProcessEngineService
|
|
44
|
+
├─ SysSettingsServiceProvider → DataService JSON endpoint
|
|
45
|
+
└─ UserInfoProvider → UserInfoService for current user data
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Usage pattern:
|
|
49
|
+
|
|
50
|
+
- Handlers never craft raw fetch calls. They work through provider interfaces exposed by the context (`provider.crud`, `provider.process`, etc.).
|
|
51
|
+
- If you need a new Creatio capability, add a dedicated provider (or extend an existing one) and wire it up inside `CreatioServiceContext`.
|
|
52
|
+
- `CreatioHttpClient` should stay transport-focused (auth headers, retries, timing). Keep endpoint-specific logic inside providers or a dedicated endpoint helper.
|
|
53
|
+
|
|
54
|
+
## 3. Core Modules You Will Touch
|
|
55
|
+
|
|
56
|
+
| Area | File(s) | Notes |
|
|
57
|
+
| ---------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
58
|
+
| Tool registration | `src/server/mcp/server.ts` | Add/remove tool handlers; keep descriptors in separate file. |
|
|
59
|
+
| Tool schemas & text guidance | `src/server/mcp/tools-data.ts` | Use `zod` schemas; detailed descriptions help AI reasoning. |
|
|
60
|
+
| Filters logic | `src/server/mcp/filters.ts` | Converts structured JSON filters into OData `$filter` strings. |
|
|
61
|
+
| Prompts | `src/server/mcp/prompts-data.ts` | Pre-baked instructional prompts consumed by clients. |
|
|
62
|
+
| Creatio API | `src/creatio/services/*` | `CreatioServiceContext` composes auth + http client + providers; extend providers instead of bypassing them. |
|
|
63
|
+
| OAuth for clients | `src/server/oauth/*` | Maintains tokens for MCP clients; ephemeral memory by default. |
|
|
64
|
+
|
|
65
|
+
## 4. Invariants & Rules (Do NOT Break)
|
|
66
|
+
|
|
67
|
+
1. All date/time fields passed to Creatio MUST be UTC ISO8601 with `Z` suffix.
|
|
68
|
+
2. Activity creation: Always set `OwnerId` and `AuthorId` to current user's ContactId obtained via `get-current-user-info` unless user explicitly specifies another owner.
|
|
69
|
+
3. Avoid adding blocking network calls in tool descriptors—descriptors must be static; logic belongs in handlers.
|
|
70
|
+
4. Never silently swallow errors coming from Creatio—log via `log.error` then rethrow.
|
|
71
|
+
5. Keep tool names stable: lowercase kebab-case (e.g. `execute-process`).
|
|
72
|
+
6. Keep authentication precedence: Authorization Code > Client Credentials > Legacy.
|
|
73
|
+
7. Do not leak secrets or access tokens in tool responses.
|
|
74
|
+
8. `READONLY_MODE=true` must guarantee no mutation tools (`create`, `update`, `delete`, `execute-process`) are registered.
|
|
75
|
+
|
|
76
|
+
## 5. Adding a New Tool (Checklist)
|
|
77
|
+
|
|
78
|
+
1. Define input shape in `tools-data.ts` using `zod`.
|
|
79
|
+
2. Provide rich description (include examples, edge cases, warnings).
|
|
80
|
+
3. Export descriptor & input schema.
|
|
81
|
+
4. Register in `server.ts` via `_registerHandlerWithDescriptor` (respect readonly mode if mutating).
|
|
82
|
+
5. Implement the handler by calling the appropriate provider on the `CreatioServiceContext` (via `CreatioEngineManager`); if functionality is missing, extend or add a provider under `src/creatio/services` rather than issuing raw fetch calls.
|
|
83
|
+
6. Ensure responses are formatted as `{ content: [{ type: 'text', text: JSON.stringify(result) }] }` when not already MCP native.
|
|
84
|
+
7. Add edge-case validation (empty arrays, invalid GUID, missing required filter fields).
|
|
85
|
+
8. Update documentation (README if public feature; otherwise just Agent.md).
|
|
86
|
+
|
|
87
|
+
## 6. Error Handling Pattern
|
|
88
|
+
|
|
89
|
+
- Use `try/catch` in handlers ONLY if you need to wrap/transform the error.
|
|
90
|
+
- Log with contextual tag: `log.error('mcp.tool.handler', err)`.
|
|
91
|
+
- Throw the original error afterward (MCP layer will relay).
|
|
92
|
+
- For validation failures rely on `withValidation(...)` wrapper.
|
|
93
|
+
|
|
94
|
+
## 7. Logging Guidelines
|
|
95
|
+
|
|
96
|
+
- Use `log.info('mcp.tool.register', { tool })` when registering tools.
|
|
97
|
+
- Use `log.warn` for non-fatal recoverable issues (e.g., partial data fetch).
|
|
98
|
+
- Use `log.error` strictly for failures that abort the operation.
|
|
99
|
+
|
|
100
|
+
## 8. Performance Considerations
|
|
101
|
+
|
|
102
|
+
- Prefer `select` + `expand` to limit payload size; educate users via descriptor text.
|
|
103
|
+
- Batch calls carefully—avoid sequential redundant reads if data already provided.
|
|
104
|
+
- Avoid adding expensive synchronous CPU logic inside handlers.
|
|
105
|
+
|
|
106
|
+
## 9. Security & Safety
|
|
107
|
+
|
|
108
|
+
- Never echo passwords or client secrets back to clients.
|
|
109
|
+
- Strip or mask token-like values if accidentally included in objects.
|
|
110
|
+
- Validate GUID format (8-4-4-4-12 hex) when exposing user input into queries.
|
|
111
|
+
|
|
112
|
+
## 10. Testing (Minimal Approach)
|
|
113
|
+
|
|
114
|
+
Currently no formal test suite. For quick validation:
|
|
115
|
+
|
|
116
|
+
- Start server locally (`npm start`) and manually invoke tools from an MCP client.
|
|
117
|
+
- Consider adding lightweight Jest tests for filter builder and client methods (future enhancement).
|
|
118
|
+
|
|
119
|
+
## 11. Versioning & Release
|
|
120
|
+
|
|
121
|
+
- Increment `package.json` version; code reads dynamically via `src/version.ts`.
|
|
122
|
+
- Use semantic prefixes in commits: `feat:`, `fix:`, `docs:`, `chore:`.
|
|
123
|
+
- Tag releases: `git tag vX.Y.Z && git push --tags` (manual unless automated later).
|
|
124
|
+
|
|
125
|
+
## 12. Common Edge Cases
|
|
126
|
+
|
|
127
|
+
| Case | Mitigation |
|
|
128
|
+
| ----------------------------------------- | -------------------------------------------------------------- |
|
|
129
|
+
| Empty `select` array supplied | Preprocess to `undefined` (already handled) |
|
|
130
|
+
| Mixed raw `filter` + structured `filters` | Combine with `and` parenthesized in handler |
|
|
131
|
+
| Invalid GUID quoting | Provide guidance text + possible pre-validation before sending |
|
|
132
|
+
| Large result sets | Encourage `top` param (<200 recommended) |
|
|
133
|
+
| Readonly mode attempt to mutate | Ensure mutation tools not registered |
|
|
134
|
+
|
|
135
|
+
## 13. Extending Authentication
|
|
136
|
+
|
|
137
|
+
If adding new auth provider:
|
|
138
|
+
|
|
139
|
+
1. Create provider under `src/creatio/auth/providers/` implementing shared interface.
|
|
140
|
+
2. Add selection logic in `auth-manager.ts` maintaining precedence ordering.
|
|
141
|
+
3. Document environment variables clearly in README + Agent.md.
|
|
142
|
+
|
|
143
|
+
## 14. Prompts Extension
|
|
144
|
+
|
|
145
|
+
- Add new prompt object in `prompts-data.ts` (`name`, `title`, `description`, `argsSchema`, `callback`).
|
|
146
|
+
- Keep names unique and descriptive.
|
|
147
|
+
- Avoid external network calls inside prompt callbacks.
|
|
148
|
+
|
|
149
|
+
## 15. Code Style
|
|
150
|
+
|
|
151
|
+
Baseline rules live in `docs/coding-style.md`. Highlights:
|
|
152
|
+
|
|
153
|
+
- Keep TypeScript strict (avoid `any`, prefer explicit interfaces).
|
|
154
|
+
- Follow the class-member ordering guide (readonly fields → fields → getters → setters → constructor → methods, each ordered `private → protected → public`).
|
|
155
|
+
- Prefix private fields/methods with `_`.
|
|
156
|
+
- Use existing utility wrappers (e.g., `withValidation`).
|
|
157
|
+
- Keep functions small; single responsibility.
|
|
158
|
+
- Reuse logging tags already established.
|
|
159
|
+
|
|
160
|
+
## 16. What NOT To Do
|
|
161
|
+
|
|
162
|
+
- Do not reintroduce removed tools (`search`, `fetch`) unless strong justification & design review.
|
|
163
|
+
- Do not bypass `CreatioServiceContext`/providers with raw fetch calls scattered in handlers.
|
|
164
|
+
- Do not embed long multi-megabyte payloads in commit history (limit sample data).
|
|
165
|
+
|
|
166
|
+
## 17. Quick Start for Agent Changes
|
|
167
|
+
|
|
168
|
+
1. Make code edits.
|
|
169
|
+
2. Run `npm run build` to ensure TypeScript passes.
|
|
170
|
+
3. Optionally lint: `npm run lint`.
|
|
171
|
+
4. Commit using conventional message.
|
|
172
|
+
5. Push; consider tag if version bump.
|
|
173
|
+
|
|
174
|
+
## 18. Future Enhancements (Suggestions)
|
|
175
|
+
|
|
176
|
+
- Add Jest test suite for filter builder + auth flows.
|
|
177
|
+
- Implement persistent token storage (e.g., file/Redis) for OAuth tokens.
|
|
178
|
+
- Add rate limiting to prevent excessive query load.
|
|
179
|
+
- Provide structured error codes instead of raw messages.
|
|
180
|
+
|
|
181
|
+
## 19. Contact Points
|
|
182
|
+
|
|
183
|
+
If you need business logic clarification, check existing descriptor guidance first. Many patterns (date handling, ownership) are documented inline in `tools-data.ts`.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
**Summary:** Focus on safe MCP tool extension around Creatio CRM. Preserve invariants, keep descriptors rich, centralize API interactions, and avoid leaking credentials.
|
package/Debug.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Debug Guide
|
|
2
|
+
|
|
3
|
+
## PowerShell ISE Quick Start
|
|
4
|
+
|
|
5
|
+
1. Open **Windows PowerShell ISE (x64)** with the working directory set to the project root.
|
|
6
|
+
2. Copy the snippet below into a new script tab (for example, save it as `debug-creatio.ps1`).
|
|
7
|
+
3. Update the placeholder values to match your Creatio instance.
|
|
8
|
+
4. Press `F5` (or click **Run Script**) to launch the server with the desired environment.
|
|
9
|
+
|
|
10
|
+
```powershell
|
|
11
|
+
# debug-creatio.ps1
|
|
12
|
+
# Sets temporary environment variables for the current ISE session
|
|
13
|
+
# and starts the MCP Creatio server in development mode.
|
|
14
|
+
|
|
15
|
+
$env:CREATIO_BASE_URL = "https://your-creatio.com"
|
|
16
|
+
$env:CREATIO_LOGIN = "your_login"
|
|
17
|
+
$env:CREATIO_PASSWORD = "your_password"
|
|
18
|
+
|
|
19
|
+
# Optional: adjust logging verbosity or other flags here
|
|
20
|
+
# $env:LOG_LEVEL = "debug"
|
|
21
|
+
|
|
22
|
+
# Start the server with the configured environment
|
|
23
|
+
npm start
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Notes
|
|
27
|
+
|
|
28
|
+
- Environment variables assigned with `$env:` live only for the current ISE session; close the session to clear them.
|
|
29
|
+
- If you prefer reusable configuration, convert the snippet into a standalone `.ps1` file and commit the real credentials to a secure secrets manager instead of the repository.
|
|
30
|
+
- When debugging authentication, consider leveraging the existing logging utilities in `src/log.ts` to inspect token exchange flows.
|
|
31
|
+
- For deeper tracing (e.g., OAuth callback handling), set breakpoints in `src/server/http/creatio-oauth-handlers.ts` and `src/server/mcp/server.ts` before running the script.
|
|
32
|
+
- The `Debug MCP Creatio` configuration in `.vscode/launch.json` mirrors these environment variables; adjust the placeholder values there to attach VS Code's debugger directly to `npm start`.
|
package/Dockerfile
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Minimal Dockerfile for MCP Creatio Server
|
|
2
|
+
# Builds and runs with ts-node (no separate build step)
|
|
3
|
+
|
|
4
|
+
FROM node:20-alpine AS base
|
|
5
|
+
|
|
6
|
+
# App directory
|
|
7
|
+
WORKDIR /app
|
|
8
|
+
|
|
9
|
+
# Install production and dev deps (ts-node, types)
|
|
10
|
+
COPY package.json package-lock.json* ./
|
|
11
|
+
RUN npm ci || npm install
|
|
12
|
+
|
|
13
|
+
# Copy source
|
|
14
|
+
COPY . .
|
|
15
|
+
|
|
16
|
+
# Environment (override at runtime)
|
|
17
|
+
ENV PORT=3000
|
|
18
|
+
|
|
19
|
+
# Expose MCP HTTP port
|
|
20
|
+
EXPOSE 3000
|
|
21
|
+
|
|
22
|
+
# Start the server (ts-node)
|
|
23
|
+
CMD ["npm", "run", "start"]
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Andrii Vanikhin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# MCP Creatio Server
|
|
2
|
+
|
|
3
|
+
Model Context Protocol (MCP) server for Creatio (https://www.creatio.com/) - connect Claude Desktop, ChatGPT, and other AI tools to your Creatio data.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
- Exposes Creatio data as MCP tools for MCP-compatible clients (Claude Desktop, ChatGPT Connectors, GitHub Copilot)
|
|
8
|
+
- Supports reading, creating, updating, deleting records and inspecting schema
|
|
9
|
+
- Execute Creatio business processes with parameters
|
|
10
|
+
- Uses Creatio OData v4 API under the hood
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
- **CRUD operations**: `read`, `create`, `update`, `delete` Creatio records
|
|
15
|
+
- **Schema discovery**: `list-entities`, `describe-entity`
|
|
16
|
+
- **Business processes**: `execute-process` to run Creatio workflows
|
|
17
|
+
- **System settings**: `create-sys-setting`, `update-sys-setting-definition`, `query-sys-settings`, and `set-sys-settings-value` to create, adjust metadata, inspect, or assign values
|
|
18
|
+
- **AI assistant compatibility**: Claude Desktop, ChatGPT Connectors, GitHub Copilot
|
|
19
|
+
- **Three authentication modes**: Legacy login/password, OAuth2 client credentials, OAuth2 authorization code
|
|
20
|
+
- **Built-in OAuth server**: Automatic MCP client authentication
|
|
21
|
+
- **Docker ready**: Multi-arch images available
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
1. Set environment variables (see below)
|
|
26
|
+
2. Run: `npm start` or use Docker
|
|
27
|
+
|
|
28
|
+
## Command (stdio) mode
|
|
29
|
+
|
|
30
|
+
You can run the server as a command (no separate HTTP `/mcp` endpoint) so MCP clients can connect over stdio directly.
|
|
31
|
+
|
|
32
|
+
### Direct command
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx -y mcp-creatio \
|
|
36
|
+
--base-url https://your-creatio.com \
|
|
37
|
+
--login YourLogin \
|
|
38
|
+
--password YourPassword
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Default transport for CLI is `stdio`.
|
|
42
|
+
|
|
43
|
+
### MCP client config example (command-based)
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"creatio": {
|
|
48
|
+
"command": "npx",
|
|
49
|
+
"args": [
|
|
50
|
+
"-y",
|
|
51
|
+
"mcp-creatio",
|
|
52
|
+
"--base-url",
|
|
53
|
+
"https://your-creatio.com",
|
|
54
|
+
"--login",
|
|
55
|
+
"YourLogin",
|
|
56
|
+
"--password",
|
|
57
|
+
"YourPassword"
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Local repo (analogue without publishing)
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm run start:stdio -- --base-url https://your-creatio.com --login YourLogin --password YourPassword
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Configuration
|
|
70
|
+
|
|
71
|
+
| Variable | Description |
|
|
72
|
+
| ---------------------------- | -------------------------------------------------------------------- |
|
|
73
|
+
| `CREATIO_BASE_URL` | **Required**. Creatio instance URL (e.g. `https://your-creatio.com`) |
|
|
74
|
+
| `CREATIO_LOGIN` | Username for legacy auth |
|
|
75
|
+
| `CREATIO_PASSWORD` | Password for legacy auth |
|
|
76
|
+
| `CREATIO_CLIENT_ID` | OAuth2 client credentials ID |
|
|
77
|
+
| `CREATIO_CLIENT_SECRET` | OAuth2 client credentials secret |
|
|
78
|
+
| `CREATIO_ID_BASE_URL` | Identity Service URL (if separate from main Creatio instance) |
|
|
79
|
+
| `CREATIO_CODE_CLIENT_ID` | OAuth2 authorization code client ID |
|
|
80
|
+
| `CREATIO_CODE_CLIENT_SECRET` | OAuth2 authorization code client secret |
|
|
81
|
+
| `CREATIO_CODE_REDIRECT_URI` | OAuth2 redirect URI (e.g. `http://localhost:3000/oauth/callback`) |
|
|
82
|
+
| `CREATIO_CODE_SCOPE` | OAuth2 scope (e.g. `offline_access ApplicationAccess_yourappguid`) |
|
|
83
|
+
| `READONLY_MODE` | Set `true` to disable create/update/delete operations |
|
|
84
|
+
|
|
85
|
+
## Authentication Modes
|
|
86
|
+
|
|
87
|
+
Choose one of three ways to authenticate with Creatio:
|
|
88
|
+
|
|
89
|
+
### 1. Legacy (Username/Password)
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
CREATIO_LOGIN=YourLogin
|
|
93
|
+
CREATIO_PASSWORD=YourPassword
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 2. OAuth2 Client Credentials
|
|
97
|
+
|
|
98
|
+
For server-to-server authentication. [Setup guide →](https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/integrations-and-api/authentication/oauth-2-0-authorization/identity-service-overview)
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
CREATIO_CLIENT_ID=your_client_id
|
|
102
|
+
CREATIO_CLIENT_SECRET=your_client_secret
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 3. OAuth2 Authorization Code
|
|
106
|
+
|
|
107
|
+
For user-delegated access with web authorization. [Setup guide →](https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/integrations-and-api/authentication/oauth-2-0-authorization/authorization-code-grant)
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
CREATIO_CODE_CLIENT_ID=your_client_id
|
|
111
|
+
CREATIO_CODE_CLIENT_SECRET=your_client_secret
|
|
112
|
+
CREATIO_CODE_REDIRECT_URI=http://localhost:3000/oauth/callback
|
|
113
|
+
CREATIO_CODE_SCOPE="offline_access ApplicationAccess_yourappguid"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Note**: Currently uses in-memory storage for OAuth tokens. Tokens will be lost on server restart.
|
|
117
|
+
|
|
118
|
+
**Priority**: Authorization Code > Client Credentials > Legacy
|
|
119
|
+
|
|
120
|
+
## MCP Client Authentication
|
|
121
|
+
|
|
122
|
+
The server includes OAuth 2.1 Authorization Server for MCP clients (Claude Desktop, etc.). No additional setup required - clients authenticate automatically through standard OAuth flow.
|
|
123
|
+
|
|
124
|
+
## Examples
|
|
125
|
+
|
|
126
|
+
### Node.js (Legacy Auth)
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
export CREATIO_BASE_URL="https://your-creatio.com"
|
|
130
|
+
export CREATIO_LOGIN="YourLogin"
|
|
131
|
+
export CREATIO_PASSWORD="YourPassword"
|
|
132
|
+
npm start
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Docker (Legacy Auth)
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
docker run --rm -p 3000:3000 \
|
|
139
|
+
-e CREATIO_BASE_URL="https://your-creatio.com" \
|
|
140
|
+
-e CREATIO_LOGIN="YourLogin" \
|
|
141
|
+
-e CREATIO_PASSWORD="YourPassword" \
|
|
142
|
+
crackish/mcp-creatio
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Available Tools
|
|
146
|
+
|
|
147
|
+
| Tool | Description |
|
|
148
|
+
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
149
|
+
| `get-current-user-info` | Fetches the Creatio contact details for the authenticated MCP user |
|
|
150
|
+
| `list-entities` | List all available entity sets |
|
|
151
|
+
| `describe-entity` | Get schema for entity (fields, types, keys) |
|
|
152
|
+
| `read` | Query records with optional filters |
|
|
153
|
+
| `create` | Create new record |
|
|
154
|
+
| `update` | Update existing record |
|
|
155
|
+
| `delete` | Delete record |
|
|
156
|
+
| `execute-process` | Run Creatio business processes |
|
|
157
|
+
| `query-sys-settings` | Retrieve the current values and metadata for one or more sys settings |
|
|
158
|
+
| `set-sys-settings-value` | Update one or more sys settings via PostSysSettingsValues |
|
|
159
|
+
| `create-sys-setting` | Create a new sys setting record and optional initial value assignment |
|
|
160
|
+
| `update-sys-setting-definition` | Modify sys setting metadata (name, value type, cache flags, lookup reference) via UpdateSysSettingRequest. Creatio requires Code, Name, and valueTypeName to be included on every update, even if the values are unchanged. |
|
|
161
|
+
|
|
162
|
+
> **Note**: Previously documented `search`/`fetch` helper tools (for a specific connector workflow) have been removed as they are no longer required.
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|