@eui/mcp 1.0.3
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 +846 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +27 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +224 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +171 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +100 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/loader/cache-manager.d.ts +74 -0
- package/dist/loader/cache-manager.d.ts.map +1 -0
- package/dist/loader/cache-manager.js +107 -0
- package/dist/loader/cache-manager.js.map +1 -0
- package/dist/loader/documentation-loader.d.ts +57 -0
- package/dist/loader/documentation-loader.d.ts.map +1 -0
- package/dist/loader/documentation-loader.js +81 -0
- package/dist/loader/documentation-loader.js.map +1 -0
- package/dist/loader/documentation-source.d.ts +37 -0
- package/dist/loader/documentation-source.d.ts.map +1 -0
- package/dist/loader/documentation-source.js +2 -0
- package/dist/loader/documentation-source.js.map +1 -0
- package/dist/loader/errors.d.ts +34 -0
- package/dist/loader/errors.d.ts.map +1 -0
- package/dist/loader/errors.js +65 -0
- package/dist/loader/errors.js.map +1 -0
- package/dist/loader/http-client.d.ts +43 -0
- package/dist/loader/http-client.d.ts.map +1 -0
- package/dist/loader/http-client.js +144 -0
- package/dist/loader/http-client.js.map +1 -0
- package/dist/loader/index.d.ts +6 -0
- package/dist/loader/index.d.ts.map +1 -0
- package/dist/loader/index.js +5 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/loader/local-documentation-source.d.ts +62 -0
- package/dist/loader/local-documentation-source.d.ts.map +1 -0
- package/dist/loader/local-documentation-source.js +190 -0
- package/dist/loader/local-documentation-source.js.map +1 -0
- package/dist/loader/path-type-detector.d.ts +34 -0
- package/dist/loader/path-type-detector.d.ts.map +1 -0
- package/dist/loader/path-type-detector.js +78 -0
- package/dist/loader/path-type-detector.js.map +1 -0
- package/dist/loader/remote-documentation-source.d.ts +112 -0
- package/dist/loader/remote-documentation-source.d.ts.map +1 -0
- package/dist/loader/remote-documentation-source.js +252 -0
- package/dist/loader/remote-documentation-source.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +211 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +5 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +65 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +224 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/publish/index.d.ts +8 -0
- package/dist/publish/index.d.ts.map +1 -0
- package/dist/publish/index.js +8 -0
- package/dist/publish/index.js.map +1 -0
- package/dist/publish/publish-utils.d.ts +74 -0
- package/dist/publish/publish-utils.d.ts.map +1 -0
- package/dist/publish/publish-utils.js +170 -0
- package/dist/publish/publish-utils.js.map +1 -0
- package/dist/query/component-query.d.ts +33 -0
- package/dist/query/component-query.d.ts.map +1 -0
- package/dist/query/component-query.js +63 -0
- package/dist/query/component-query.js.map +1 -0
- package/dist/query/index-builder.d.ts +79 -0
- package/dist/query/index-builder.d.ts.map +1 -0
- package/dist/query/index-builder.js +217 -0
- package/dist/query/index-builder.js.map +1 -0
- package/dist/query/index.d.ts +5 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +6 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/result-formatter.d.ts +108 -0
- package/dist/query/result-formatter.d.ts.map +1 -0
- package/dist/query/result-formatter.js +165 -0
- package/dist/query/result-formatter.js.map +1 -0
- package/dist/query/search-engine.d.ts +54 -0
- package/dist/query/search-engine.d.ts.map +1 -0
- package/dist/query/search-engine.js +178 -0
- package/dist/query/search-engine.js.map +1 -0
- package/dist/test-error.ts +1 -0
- package/dist/tools/get-component-docs.d.ts +43 -0
- package/dist/tools/get-component-docs.d.ts.map +1 -0
- package/dist/tools/get-component-docs.js +55 -0
- package/dist/tools/get-component-docs.js.map +1 -0
- package/dist/tools/get-component-examples.d.ts +45 -0
- package/dist/tools/get-component-examples.d.ts.map +1 -0
- package/dist/tools/get-component-examples.js +56 -0
- package/dist/tools/get-component-examples.js.map +1 -0
- package/dist/tools/get-component-inputs.d.ts +44 -0
- package/dist/tools/get-component-inputs.d.ts.map +1 -0
- package/dist/tools/get-component-inputs.js +55 -0
- package/dist/tools/get-component-inputs.js.map +1 -0
- package/dist/tools/get-component-outputs.d.ts +44 -0
- package/dist/tools/get-component-outputs.d.ts.map +1 -0
- package/dist/tools/get-component-outputs.js +55 -0
- package/dist/tools/get-component-outputs.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-components.d.ts +69 -0
- package/dist/tools/list-components.d.ts.map +1 -0
- package/dist/tools/list-components.js +84 -0
- package/dist/tools/list-components.js.map +1 -0
- package/dist/tools/search-components.d.ts +69 -0
- package/dist/tools/search-components.d.ts.map +1 -0
- package/dist/tools/search-components.js +98 -0
- package/dist/tools/search-components.js.map +1 -0
- package/dist/types/compodoc.d.ts +261 -0
- package/dist/types/compodoc.d.ts.map +1 -0
- package/dist/types/compodoc.js +5 -0
- package/dist/types/compodoc.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +91 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +186 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/credential-masking.d.ts +90 -0
- package/dist/utils/credential-masking.d.ts.map +1 -0
- package/dist/utils/credential-masking.js +202 -0
- package/dist/utils/credential-masking.js.map +1 -0
- package/dist/utils/error-handler.d.ts +68 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +184 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/errors.d.ts +156 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +242 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +16 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +76 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +150 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/retry.d.ts +19 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +81 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/version/changelog-file-utils.d.ts +69 -0
- package/dist/version/changelog-file-utils.d.ts.map +1 -0
- package/dist/version/changelog-file-utils.js +161 -0
- package/dist/version/changelog-file-utils.js.map +1 -0
- package/dist/version/changelog-utils.d.ts +98 -0
- package/dist/version/changelog-utils.d.ts.map +1 -0
- package/dist/version/changelog-utils.js +198 -0
- package/dist/version/changelog-utils.js.map +1 -0
- package/dist/version/dry-run-utils.d.ts +108 -0
- package/dist/version/dry-run-utils.d.ts.map +1 -0
- package/dist/version/dry-run-utils.js +126 -0
- package/dist/version/dry-run-utils.js.map +1 -0
- package/dist/version/git-tag-utils.d.ts +50 -0
- package/dist/version/git-tag-utils.d.ts.map +1 -0
- package/dist/version/git-tag-utils.js +66 -0
- package/dist/version/git-tag-utils.js.map +1 -0
- package/dist/version/index.d.ts +11 -0
- package/dist/version/index.d.ts.map +1 -0
- package/dist/version/index.js +11 -0
- package/dist/version/index.js.map +1 -0
- package/dist/version/release-utils.d.ts +94 -0
- package/dist/version/release-utils.d.ts.map +1 -0
- package/dist/version/release-utils.js +170 -0
- package/dist/version/release-utils.js.map +1 -0
- package/dist/version/rollback-utils.d.ts +47 -0
- package/dist/version/rollback-utils.d.ts.map +1 -0
- package/dist/version/rollback-utils.js +73 -0
- package/dist/version/rollback-utils.js.map +1 -0
- package/dist/version/version-manager.d.ts +98 -0
- package/dist/version/version-manager.d.ts.map +1 -0
- package/dist/version/version-manager.js +158 -0
- package/dist/version/version-manager.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration module exports
|
|
3
|
+
*/
|
|
4
|
+
export { Config, ConfigInput, ConfigSchema, DEFAULT_CONFIG, validateConfig, safeValidateConfig, } from './schema.js';
|
|
5
|
+
export { ConfigLoadResult, loadConfig, loadFromEnv, loadFromArgs, loadFromFile, } from './loader.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,MAAM,EACN,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAGL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Config, ConfigInput } from './schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration loading result
|
|
4
|
+
*/
|
|
5
|
+
export interface ConfigLoadResult {
|
|
6
|
+
success: boolean;
|
|
7
|
+
config?: Config;
|
|
8
|
+
errors?: string[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Load configuration from environment variables
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadFromEnv(): Partial<ConfigInput>;
|
|
14
|
+
/**
|
|
15
|
+
* Load configuration from CLI arguments
|
|
16
|
+
*/
|
|
17
|
+
export declare function loadFromArgs(args: string[]): Partial<ConfigInput>;
|
|
18
|
+
/**
|
|
19
|
+
* Load configuration from a JSON file
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadFromFile(filePath: string): Partial<ConfigInput>;
|
|
22
|
+
/**
|
|
23
|
+
* Load and merge configuration from all sources
|
|
24
|
+
* Priority: CLI args > Environment variables > Config file > Defaults
|
|
25
|
+
*/
|
|
26
|
+
export declare function loadConfig(args?: string[]): ConfigLoadResult;
|
|
27
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAsC,MAAM,aAAa,CAAC;AAGtF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAuBlD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA6CjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoBnE;AA+BD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,gBAAgB,CAsCnF"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration loader
|
|
3
|
+
* Supports loading configuration from CLI args, environment variables, and config files
|
|
4
|
+
*/
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import { safeValidateConfig, DEFAULT_CONFIG } from './schema.js';
|
|
8
|
+
/**
|
|
9
|
+
* Load configuration from environment variables
|
|
10
|
+
*/
|
|
11
|
+
export function loadFromEnv() {
|
|
12
|
+
const config = {};
|
|
13
|
+
if (process.env.COMPODOC_MCP_DOC_PATH) {
|
|
14
|
+
config.documentation = {
|
|
15
|
+
path: process.env.COMPODOC_MCP_DOC_PATH,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (process.env.COMPODOC_MCP_LOG_LEVEL) {
|
|
19
|
+
config.logging = {
|
|
20
|
+
level: process.env.COMPODOC_MCP_LOG_LEVEL,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (process.env.COMPODOC_MCP_WATCH !== undefined) {
|
|
24
|
+
if (!config.documentation) {
|
|
25
|
+
config.documentation = {};
|
|
26
|
+
}
|
|
27
|
+
config.documentation.watchForChanges = process.env.COMPODOC_MCP_WATCH === 'true';
|
|
28
|
+
}
|
|
29
|
+
return config;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Load configuration from CLI arguments
|
|
33
|
+
*/
|
|
34
|
+
export function loadFromArgs(args) {
|
|
35
|
+
const config = {};
|
|
36
|
+
for (let i = 0; i < args.length; i++) {
|
|
37
|
+
const arg = args[i];
|
|
38
|
+
switch (arg) {
|
|
39
|
+
case '--doc-path':
|
|
40
|
+
case '--documentation-path':
|
|
41
|
+
if (!config.documentation) {
|
|
42
|
+
config.documentation = {};
|
|
43
|
+
}
|
|
44
|
+
config.documentation.path = args[++i];
|
|
45
|
+
break;
|
|
46
|
+
case '--watch':
|
|
47
|
+
if (!config.documentation) {
|
|
48
|
+
config.documentation = {};
|
|
49
|
+
}
|
|
50
|
+
config.documentation.watchForChanges = true;
|
|
51
|
+
break;
|
|
52
|
+
case '--no-watch':
|
|
53
|
+
if (!config.documentation) {
|
|
54
|
+
config.documentation = {};
|
|
55
|
+
}
|
|
56
|
+
config.documentation.watchForChanges = false;
|
|
57
|
+
break;
|
|
58
|
+
case '--log-level':
|
|
59
|
+
config.logging = {
|
|
60
|
+
level: args[++i],
|
|
61
|
+
};
|
|
62
|
+
break;
|
|
63
|
+
case '--max-results':
|
|
64
|
+
config.search = {
|
|
65
|
+
maxResults: parseInt(args[++i], 10),
|
|
66
|
+
};
|
|
67
|
+
break;
|
|
68
|
+
case '--help':
|
|
69
|
+
case '-h':
|
|
70
|
+
printHelp();
|
|
71
|
+
process.exit(0);
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return config;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Load configuration from a JSON file
|
|
79
|
+
*/
|
|
80
|
+
export function loadFromFile(filePath) {
|
|
81
|
+
try {
|
|
82
|
+
if (!fs.existsSync(filePath)) {
|
|
83
|
+
console.warn(`Configuration file not found: ${filePath}`);
|
|
84
|
+
return {};
|
|
85
|
+
}
|
|
86
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
87
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
88
|
+
if (ext === '.json') {
|
|
89
|
+
return JSON.parse(content);
|
|
90
|
+
}
|
|
91
|
+
console.warn(`Unsupported configuration file format: ${ext}`);
|
|
92
|
+
return {};
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
console.error(`Failed to load config file ${filePath}:`, error);
|
|
96
|
+
return {};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Deep merge two objects
|
|
101
|
+
*/
|
|
102
|
+
function deepMerge(target, source) {
|
|
103
|
+
const result = { ...target };
|
|
104
|
+
for (const key in source) {
|
|
105
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
106
|
+
const sourceValue = source[key];
|
|
107
|
+
const targetValue = result[key];
|
|
108
|
+
if (sourceValue &&
|
|
109
|
+
typeof sourceValue === 'object' &&
|
|
110
|
+
!Array.isArray(sourceValue) &&
|
|
111
|
+
targetValue &&
|
|
112
|
+
typeof targetValue === 'object' &&
|
|
113
|
+
!Array.isArray(targetValue)) {
|
|
114
|
+
result[key] = deepMerge(targetValue, sourceValue);
|
|
115
|
+
}
|
|
116
|
+
else if (sourceValue !== undefined) {
|
|
117
|
+
result[key] = sourceValue;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Load and merge configuration from all sources
|
|
125
|
+
* Priority: CLI args > Environment variables > Config file > Defaults
|
|
126
|
+
*/
|
|
127
|
+
export function loadConfig(args = process.argv.slice(2)) {
|
|
128
|
+
try {
|
|
129
|
+
// Try to load from config file (if specified)
|
|
130
|
+
const configFileIndex = args.indexOf('--config');
|
|
131
|
+
const configFile = configFileIndex >= 0 ? args[configFileIndex + 1] : undefined;
|
|
132
|
+
const fileConfig = configFile ? loadFromFile(configFile) : {};
|
|
133
|
+
// Load from environment variables
|
|
134
|
+
const envConfig = loadFromEnv();
|
|
135
|
+
// Load from CLI arguments
|
|
136
|
+
const argsConfig = loadFromArgs(args);
|
|
137
|
+
// Start with defaults and merge in order of priority
|
|
138
|
+
let mergedConfig = { ...DEFAULT_CONFIG };
|
|
139
|
+
mergedConfig = deepMerge(mergedConfig, fileConfig);
|
|
140
|
+
mergedConfig = deepMerge(mergedConfig, envConfig);
|
|
141
|
+
mergedConfig = deepMerge(mergedConfig, argsConfig);
|
|
142
|
+
// Validate the merged configuration
|
|
143
|
+
const result = safeValidateConfig(mergedConfig);
|
|
144
|
+
if (!result.success) {
|
|
145
|
+
const errors = formatZodErrors(result.error);
|
|
146
|
+
console.error('Configuration validation failed:');
|
|
147
|
+
errors.forEach((error) => console.error(` - ${error}`));
|
|
148
|
+
return { success: false, errors };
|
|
149
|
+
}
|
|
150
|
+
console.log('Configuration loaded successfully');
|
|
151
|
+
return { success: true, config: result.data };
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
155
|
+
return {
|
|
156
|
+
success: false,
|
|
157
|
+
errors: [`Failed to load configuration: ${errorMessage}`],
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Format Zod validation errors into readable messages
|
|
163
|
+
*/
|
|
164
|
+
function formatZodErrors(error) {
|
|
165
|
+
return error.errors.map((err) => {
|
|
166
|
+
const path = err.path.join('.');
|
|
167
|
+
return `${path}: ${err.message}`;
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Print help message
|
|
172
|
+
*/
|
|
173
|
+
function printHelp() {
|
|
174
|
+
console.log(`
|
|
175
|
+
EUI Compodoc MCP Server - Model Context Protocol server for Angular component documentation
|
|
176
|
+
|
|
177
|
+
Usage:
|
|
178
|
+
eui-compodoc-mcp [options]
|
|
179
|
+
|
|
180
|
+
Options:
|
|
181
|
+
--doc-path <path> Path to documentation.json file (required)
|
|
182
|
+
--watch Watch for changes to documentation.json (default: true)
|
|
183
|
+
--no-watch Disable file watching
|
|
184
|
+
--log-level <level> Logging level: debug, info, warn, error (default: info)
|
|
185
|
+
--max-results <number> Maximum search results (default: 50)
|
|
186
|
+
--config <file> Load configuration from JSON file
|
|
187
|
+
--help, -h Show this help message
|
|
188
|
+
|
|
189
|
+
Environment Variables:
|
|
190
|
+
COMPODOC_MCP_DOC_PATH Path to documentation.json file
|
|
191
|
+
COMPODOC_MCP_LOG_LEVEL Logging level
|
|
192
|
+
COMPODOC_MCP_WATCH Enable/disable file watching (true/false)
|
|
193
|
+
|
|
194
|
+
Configuration File Format (JSON):
|
|
195
|
+
{
|
|
196
|
+
"server": {
|
|
197
|
+
"name": "eui-compodoc-mcp",
|
|
198
|
+
"version": "1.0.0"
|
|
199
|
+
},
|
|
200
|
+
"documentation": {
|
|
201
|
+
"path": "./documentation.json",
|
|
202
|
+
"watchForChanges": true,
|
|
203
|
+
"reloadDebounce": 1000
|
|
204
|
+
},
|
|
205
|
+
"search": {
|
|
206
|
+
"maxResults": 50,
|
|
207
|
+
"minQueryLength": 2
|
|
208
|
+
},
|
|
209
|
+
"logging": {
|
|
210
|
+
"level": "info",
|
|
211
|
+
"format": "text"
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
Examples:
|
|
216
|
+
eui-compodoc-mcp --doc-path ./documentation.json
|
|
217
|
+
eui-compodoc-mcp --doc-path ./docs/documentation.json --log-level debug
|
|
218
|
+
eui-compodoc-mcp --config ./config.json
|
|
219
|
+
COMPODOC_MCP_DOC_PATH=./documentation.json eui-compodoc-mcp
|
|
220
|
+
|
|
221
|
+
For more information, visit: https://github.com/your-org/eui-compodoc-mcp
|
|
222
|
+
`);
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration schema and validation using Zod
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
/**
|
|
6
|
+
* Complete configuration schema
|
|
7
|
+
*/
|
|
8
|
+
export declare const ConfigSchema: z.ZodObject<{
|
|
9
|
+
server: z.ZodDefault<z.ZodObject<{
|
|
10
|
+
name: z.ZodDefault<z.ZodString>;
|
|
11
|
+
version: z.ZodDefault<z.ZodString>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
version: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}, {
|
|
16
|
+
version?: string | undefined;
|
|
17
|
+
name?: string | undefined;
|
|
18
|
+
}>>;
|
|
19
|
+
documentation: z.ZodObject<{
|
|
20
|
+
path: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
21
|
+
watchForChanges: z.ZodDefault<z.ZodBoolean>;
|
|
22
|
+
reloadDebounce: z.ZodDefault<z.ZodNumber>;
|
|
23
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
24
|
+
maxRetries: z.ZodDefault<z.ZodNumber>;
|
|
25
|
+
pollingInterval: z.ZodDefault<z.ZodNumber>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
path: string;
|
|
28
|
+
watchForChanges: boolean;
|
|
29
|
+
reloadDebounce: number;
|
|
30
|
+
timeout: number;
|
|
31
|
+
maxRetries: number;
|
|
32
|
+
pollingInterval: number;
|
|
33
|
+
}, {
|
|
34
|
+
path: string;
|
|
35
|
+
watchForChanges?: boolean | undefined;
|
|
36
|
+
reloadDebounce?: number | undefined;
|
|
37
|
+
timeout?: number | undefined;
|
|
38
|
+
maxRetries?: number | undefined;
|
|
39
|
+
pollingInterval?: number | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
search: z.ZodDefault<z.ZodObject<{
|
|
42
|
+
maxResults: z.ZodDefault<z.ZodNumber>;
|
|
43
|
+
minQueryLength: z.ZodDefault<z.ZodNumber>;
|
|
44
|
+
}, "strip", z.ZodTypeAny, {
|
|
45
|
+
maxResults: number;
|
|
46
|
+
minQueryLength: number;
|
|
47
|
+
}, {
|
|
48
|
+
maxResults?: number | undefined;
|
|
49
|
+
minQueryLength?: number | undefined;
|
|
50
|
+
}>>;
|
|
51
|
+
logging: z.ZodDefault<z.ZodObject<{
|
|
52
|
+
level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
|
|
53
|
+
format: z.ZodDefault<z.ZodEnum<["json", "text"]>>;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
level: "error" | "debug" | "info" | "warn";
|
|
56
|
+
format: "text" | "json";
|
|
57
|
+
}, {
|
|
58
|
+
level?: "error" | "debug" | "info" | "warn" | undefined;
|
|
59
|
+
format?: "text" | "json" | undefined;
|
|
60
|
+
}>>;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
logging: {
|
|
63
|
+
level: "error" | "debug" | "info" | "warn";
|
|
64
|
+
format: "text" | "json";
|
|
65
|
+
};
|
|
66
|
+
server: {
|
|
67
|
+
version: string;
|
|
68
|
+
name: string;
|
|
69
|
+
};
|
|
70
|
+
documentation: {
|
|
71
|
+
path: string;
|
|
72
|
+
watchForChanges: boolean;
|
|
73
|
+
reloadDebounce: number;
|
|
74
|
+
timeout: number;
|
|
75
|
+
maxRetries: number;
|
|
76
|
+
pollingInterval: number;
|
|
77
|
+
};
|
|
78
|
+
search: {
|
|
79
|
+
maxResults: number;
|
|
80
|
+
minQueryLength: number;
|
|
81
|
+
};
|
|
82
|
+
}, {
|
|
83
|
+
documentation: {
|
|
84
|
+
path: string;
|
|
85
|
+
watchForChanges?: boolean | undefined;
|
|
86
|
+
reloadDebounce?: number | undefined;
|
|
87
|
+
timeout?: number | undefined;
|
|
88
|
+
maxRetries?: number | undefined;
|
|
89
|
+
pollingInterval?: number | undefined;
|
|
90
|
+
};
|
|
91
|
+
logging?: {
|
|
92
|
+
level?: "error" | "debug" | "info" | "warn" | undefined;
|
|
93
|
+
format?: "text" | "json" | undefined;
|
|
94
|
+
} | undefined;
|
|
95
|
+
server?: {
|
|
96
|
+
version?: string | undefined;
|
|
97
|
+
name?: string | undefined;
|
|
98
|
+
} | undefined;
|
|
99
|
+
search?: {
|
|
100
|
+
maxResults?: number | undefined;
|
|
101
|
+
minQueryLength?: number | undefined;
|
|
102
|
+
} | undefined;
|
|
103
|
+
}>;
|
|
104
|
+
/**
|
|
105
|
+
* Inferred TypeScript type from schema
|
|
106
|
+
*/
|
|
107
|
+
export type Config = z.infer<typeof ConfigSchema>;
|
|
108
|
+
/**
|
|
109
|
+
* Partial configuration input (before defaults are applied)
|
|
110
|
+
*/
|
|
111
|
+
export type ConfigInput = z.input<typeof ConfigSchema>;
|
|
112
|
+
/**
|
|
113
|
+
* Default configuration values
|
|
114
|
+
*/
|
|
115
|
+
export declare const DEFAULT_CONFIG: Partial<Config>;
|
|
116
|
+
/**
|
|
117
|
+
* Validates and parses configuration input
|
|
118
|
+
* @param input - Raw configuration input
|
|
119
|
+
* @returns Validated configuration with defaults applied
|
|
120
|
+
* @throws ZodError if validation fails
|
|
121
|
+
*/
|
|
122
|
+
export declare function validateConfig(input: unknown): Config;
|
|
123
|
+
/**
|
|
124
|
+
* Safely validates configuration and returns result with error details
|
|
125
|
+
* @param input - Raw configuration input
|
|
126
|
+
* @returns Validation result with success flag and data or errors
|
|
127
|
+
*/
|
|
128
|
+
export declare function safeValidateConfig(input: unknown): z.SafeParseReturnType<{
|
|
129
|
+
documentation: {
|
|
130
|
+
path: string;
|
|
131
|
+
watchForChanges?: boolean | undefined;
|
|
132
|
+
reloadDebounce?: number | undefined;
|
|
133
|
+
timeout?: number | undefined;
|
|
134
|
+
maxRetries?: number | undefined;
|
|
135
|
+
pollingInterval?: number | undefined;
|
|
136
|
+
};
|
|
137
|
+
logging?: {
|
|
138
|
+
level?: "error" | "debug" | "info" | "warn" | undefined;
|
|
139
|
+
format?: "text" | "json" | undefined;
|
|
140
|
+
} | undefined;
|
|
141
|
+
server?: {
|
|
142
|
+
version?: string | undefined;
|
|
143
|
+
name?: string | undefined;
|
|
144
|
+
} | undefined;
|
|
145
|
+
search?: {
|
|
146
|
+
maxResults?: number | undefined;
|
|
147
|
+
minQueryLength?: number | undefined;
|
|
148
|
+
} | undefined;
|
|
149
|
+
}, {
|
|
150
|
+
logging: {
|
|
151
|
+
level: "error" | "debug" | "info" | "warn";
|
|
152
|
+
format: "text" | "json";
|
|
153
|
+
};
|
|
154
|
+
server: {
|
|
155
|
+
version: string;
|
|
156
|
+
name: string;
|
|
157
|
+
};
|
|
158
|
+
documentation: {
|
|
159
|
+
path: string;
|
|
160
|
+
watchForChanges: boolean;
|
|
161
|
+
reloadDebounce: number;
|
|
162
|
+
timeout: number;
|
|
163
|
+
maxRetries: number;
|
|
164
|
+
pollingInterval: number;
|
|
165
|
+
};
|
|
166
|
+
search: {
|
|
167
|
+
maxResults: number;
|
|
168
|
+
minQueryLength: number;
|
|
169
|
+
};
|
|
170
|
+
}>;
|
|
171
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwDxB;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKvB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,MAAM,CAqB1C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEhD"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration schema and validation using Zod
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { PathTypeDetector } from '../loader/path-type-detector.js';
|
|
6
|
+
/**
|
|
7
|
+
* Server configuration schema
|
|
8
|
+
*/
|
|
9
|
+
const ServerConfigSchema = z.object({
|
|
10
|
+
name: z.string().default('eui-compodoc-mcp'),
|
|
11
|
+
version: z.string().default('1.0.0'),
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* Documentation configuration schema
|
|
15
|
+
*/
|
|
16
|
+
const DocumentationConfigSchema = z.object({
|
|
17
|
+
path: z.string()
|
|
18
|
+
.min(1, 'Documentation path cannot be empty')
|
|
19
|
+
.refine((path) => path.trim().length > 0, { message: 'Documentation path cannot be only whitespace' })
|
|
20
|
+
.refine((path) => {
|
|
21
|
+
const trimmedPath = path.trim();
|
|
22
|
+
// If it looks like a URL (starts with http:// or https://), validate as URL
|
|
23
|
+
if (trimmedPath.startsWith('http://') || trimmedPath.startsWith('https://')) {
|
|
24
|
+
return PathTypeDetector.isRemoteUrl(trimmedPath);
|
|
25
|
+
}
|
|
26
|
+
// Otherwise, accept as local path
|
|
27
|
+
return true;
|
|
28
|
+
}, { message: 'Path must be a valid local file path or HTTP/HTTPS URL' }),
|
|
29
|
+
watchForChanges: z.boolean().default(true),
|
|
30
|
+
reloadDebounce: z.number().min(0).default(1000),
|
|
31
|
+
timeout: z.number().min(1000).default(10000),
|
|
32
|
+
maxRetries: z.number().min(0).max(10).default(3),
|
|
33
|
+
pollingInterval: z.number().min(5000).default(60000),
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Search configuration schema
|
|
37
|
+
*/
|
|
38
|
+
const SearchConfigSchema = z.object({
|
|
39
|
+
maxResults: z.number().min(1).max(1000).default(50),
|
|
40
|
+
minQueryLength: z.number().min(1).default(2),
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Logging configuration schema
|
|
44
|
+
*/
|
|
45
|
+
const LoggingConfigSchema = z.object({
|
|
46
|
+
level: z.enum(['debug', 'info', 'warn', 'error']).default('info'),
|
|
47
|
+
format: z.enum(['json', 'text']).default('text'),
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Complete configuration schema
|
|
51
|
+
*/
|
|
52
|
+
export const ConfigSchema = z.object({
|
|
53
|
+
server: ServerConfigSchema.default({}),
|
|
54
|
+
documentation: DocumentationConfigSchema,
|
|
55
|
+
search: SearchConfigSchema.default({}),
|
|
56
|
+
logging: LoggingConfigSchema.default({}),
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Default configuration values
|
|
60
|
+
*/
|
|
61
|
+
export const DEFAULT_CONFIG = {
|
|
62
|
+
server: {
|
|
63
|
+
name: 'eui-compodoc-mcp',
|
|
64
|
+
version: '1.0.0',
|
|
65
|
+
},
|
|
66
|
+
documentation: {
|
|
67
|
+
path: './documentation.json',
|
|
68
|
+
watchForChanges: true,
|
|
69
|
+
reloadDebounce: 1000,
|
|
70
|
+
timeout: 10000,
|
|
71
|
+
maxRetries: 3,
|
|
72
|
+
pollingInterval: 60000,
|
|
73
|
+
},
|
|
74
|
+
search: {
|
|
75
|
+
maxResults: 50,
|
|
76
|
+
minQueryLength: 2,
|
|
77
|
+
},
|
|
78
|
+
logging: {
|
|
79
|
+
level: 'info',
|
|
80
|
+
format: 'text',
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Validates and parses configuration input
|
|
85
|
+
* @param input - Raw configuration input
|
|
86
|
+
* @returns Validated configuration with defaults applied
|
|
87
|
+
* @throws ZodError if validation fails
|
|
88
|
+
*/
|
|
89
|
+
export function validateConfig(input) {
|
|
90
|
+
return ConfigSchema.parse(input);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Safely validates configuration and returns result with error details
|
|
94
|
+
* @param input - Raw configuration input
|
|
95
|
+
* @returns Validation result with success flag and data or errors
|
|
96
|
+
*/
|
|
97
|
+
export function safeValidateConfig(input) {
|
|
98
|
+
return ConfigSchema.safeParse(input);
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
5
|
+
const server = new Server({
|
|
6
|
+
name: "simple-mcp-server",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
}, {
|
|
9
|
+
capabilities: {
|
|
10
|
+
tools: {},
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
14
|
+
tools: [
|
|
15
|
+
{
|
|
16
|
+
name: "echo",
|
|
17
|
+
description: "Echoes back the provided message",
|
|
18
|
+
inputSchema: {
|
|
19
|
+
type: "object",
|
|
20
|
+
properties: {
|
|
21
|
+
message: {
|
|
22
|
+
type: "string",
|
|
23
|
+
description: "Message to echo",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
required: ["message"],
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
}));
|
|
31
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
32
|
+
if (request.params.name === "echo") {
|
|
33
|
+
const message = request.params.arguments?.message;
|
|
34
|
+
return {
|
|
35
|
+
content: [{ type: "text", text: `Echo: ${message}` }],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
throw new Error(`Unknown tool: ${request.params.name}`);
|
|
39
|
+
});
|
|
40
|
+
async function main() {
|
|
41
|
+
const transport = new StdioServerTransport();
|
|
42
|
+
await server.connect(transport);
|
|
43
|
+
}
|
|
44
|
+
main().catch(console.error);
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE;QACL;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iBAAiB;qBAC/B;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAiB,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|