@contextium/mcp-server 0.3.1 → 0.4.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmDD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2F5E"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAKA,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAiJD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuG5E"}
package/dist/cli/setup.js CHANGED
@@ -1,36 +1,68 @@
1
- import http from 'http';
2
1
  import open from 'open';
3
2
  import readline from 'readline';
4
3
  import { saveProfile } from './credentials.js';
5
4
  import { updateClaudeConfigForContextium, claudeConfigExists } from './config-manager.js';
6
5
  const DEFAULT_API_URL = 'https://api.contextium.io/api/v1';
7
- const AUTH_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
8
- const PORT_RANGE_START = 8000;
9
- const PORT_RANGE_END = 9000;
6
+ const AUTH_TIMEOUT_MS = 15 * 60 * 1000; // 15 minutes (matches device code expiry)
10
7
  /**
11
- * Find an available port in the range
8
+ * Generate device code from API
12
9
  */
13
- async function findAvailablePort() {
14
- for (let port = PORT_RANGE_START; port <= PORT_RANGE_END; port++) {
15
- if (await isPortAvailable(port)) {
16
- return port;
10
+ async function generateDeviceCode(apiUrl) {
11
+ const response = await fetch(`${apiUrl}/mcp/device`, {
12
+ method: 'POST',
13
+ headers: {
14
+ 'Content-Type': 'application/json',
15
+ },
16
+ });
17
+ if (!response.ok) {
18
+ const error = await response.text();
19
+ throw new Error(`Failed to generate device code: ${error}`);
20
+ }
21
+ const data = (await response.json());
22
+ return data.data;
23
+ }
24
+ /**
25
+ * Poll for device authorization
26
+ */
27
+ async function pollForToken(apiUrl, deviceCode, interval) {
28
+ const startTime = Date.now();
29
+ while (Date.now() - startTime < AUTH_TIMEOUT_MS) {
30
+ try {
31
+ const response = await fetch(`${apiUrl}/mcp/device/token`, {
32
+ method: 'POST',
33
+ headers: {
34
+ 'Content-Type': 'application/json',
35
+ },
36
+ body: JSON.stringify({ device_code: deviceCode }),
37
+ });
38
+ if (response.ok) {
39
+ const data = (await response.json());
40
+ return data.data;
41
+ }
42
+ const errorData = (await response.json());
43
+ if (errorData.error === 'authorization_pending') {
44
+ // Still waiting for user authorization, continue polling
45
+ await sleep(interval * 1000);
46
+ continue;
47
+ }
48
+ // Other error
49
+ throw new Error(errorData.error_description || errorData.error || 'Authorization failed');
50
+ }
51
+ catch (error) {
52
+ if (error instanceof Error && error.message.includes('authorization_pending')) {
53
+ await sleep(interval * 1000);
54
+ continue;
55
+ }
56
+ throw error;
17
57
  }
18
58
  }
19
- throw new Error(`No available ports in range ${PORT_RANGE_START}-${PORT_RANGE_END}`);
59
+ throw new Error('Authorization timeout - please try again');
20
60
  }
21
61
  /**
22
- * Check if a port is available
62
+ * Sleep for specified milliseconds
23
63
  */
24
- function isPortAvailable(port) {
25
- return new Promise((resolve) => {
26
- const server = http.createServer();
27
- server.once('error', () => resolve(false));
28
- server.once('listening', () => {
29
- server.close();
30
- resolve(true);
31
- });
32
- server.listen(port);
33
- });
64
+ function sleep(ms) {
65
+ return new Promise((resolve) => setTimeout(resolve, ms));
34
66
  }
35
67
  /**
36
68
  * Ask user a yes/no question
@@ -47,6 +79,33 @@ async function askYesNo(question) {
47
79
  });
48
80
  });
49
81
  }
82
+ /**
83
+ * Detect device information
84
+ */
85
+ function getDeviceInfo() {
86
+ const platform = process.platform;
87
+ const arch = process.arch;
88
+ let osName = 'Unknown';
89
+ let deviceName = 'CLI Device';
90
+ switch (platform) {
91
+ case 'darwin':
92
+ osName = 'macOS';
93
+ deviceName = 'Mac';
94
+ break;
95
+ case 'win32':
96
+ osName = 'Windows';
97
+ deviceName = 'Windows PC';
98
+ break;
99
+ case 'linux':
100
+ osName = 'Linux';
101
+ deviceName = 'Linux Machine';
102
+ break;
103
+ }
104
+ return {
105
+ name: deviceName,
106
+ os: `${osName} (${arch})`,
107
+ };
108
+ }
50
109
  /**
51
110
  * Main setup command
52
111
  */
@@ -56,20 +115,26 @@ export async function setupCommand(options = {}) {
56
115
  console.log('\nšŸš€ Contextium MCP Setup\n');
57
116
  console.log('This will authorize your MCP server to access Contextium.\n');
58
117
  try {
59
- // Step 1: Find available port
60
- const callbackPort = await findAvailablePort();
61
- console.log(`āœ“ Found available port: ${callbackPort}`);
62
- // Step 2: Start local HTTP server
63
- const tokenPromise = startCallbackServer(callbackPort);
64
- // Step 3: Construct authorization URL
65
- // Convert API URL to web app URL (api.contextium.io -> app.contextium.io)
66
- const webAppUrl = apiUrl
67
- .replace('/api/v1', '')
68
- .replace('api.contextium.io', 'app.contextium.io')
69
- .replace('api.contextium.io', 'app.contextium.io');
70
- const authUrl = `${webAppUrl}/mcp/authorize?port=${callbackPort}`;
71
- console.log('\nšŸ“ Opening browser for authorization...\n');
72
- // Step 4: Open browser
118
+ // Step 1: Generate device code
119
+ console.log('ā³ Generating device code...');
120
+ const deviceCodeResponse = await generateDeviceCode(apiUrl);
121
+ console.log('āœ“ Device code generated\n');
122
+ // Detect device info for URL (optional)
123
+ const detectedDevice = getDeviceInfo();
124
+ const deviceName = detectedDevice.name;
125
+ // Step 2: Display user code
126
+ console.log('═══════════════════════════════════════════════');
127
+ console.log('');
128
+ console.log(' šŸ“± Your device code:');
129
+ console.log('');
130
+ console.log(` ${deviceCodeResponse.userCode}`);
131
+ console.log('');
132
+ console.log('═══════════════════════════════════════════════\n');
133
+ console.log(`This code will expire in 15 minutes.`);
134
+ console.log(`Code expires at: ${new Date(deviceCodeResponse.expiresAt).toLocaleString()}\n`);
135
+ // Step 3: Open browser to authorization page
136
+ const authUrl = `${deviceCodeResponse.verificationUri}?code=${deviceCodeResponse.userCode}&deviceName=${encodeURIComponent(deviceName)}`;
137
+ console.log('šŸ“ Opening browser for authorization...\n');
73
138
  if (!options.skipBrowser) {
74
139
  try {
75
140
  await open(authUrl);
@@ -85,20 +150,21 @@ export async function setupCommand(options = {}) {
85
150
  console.log('Please open this URL in your browser:');
86
151
  console.log(authUrl);
87
152
  }
88
- console.log('\nā³ Waiting for authorization...\n');
89
- // Step 6: Wait for callback
90
- const result = await tokenPromise;
153
+ console.log('\nā³ Waiting for authorization...');
154
+ console.log('(This will continue automatically once you authorize in your browser)\n');
155
+ // Step 4: Poll for authorization
156
+ const result = await pollForToken(apiUrl, deviceCodeResponse.deviceCode, deviceCodeResponse.interval);
91
157
  console.log('āœ“ Authorization successful!');
92
- // Step 7: Save credentials
158
+ // Step 5: Save credentials
93
159
  saveProfile(profileName, {
94
160
  apiUrl,
95
- accessToken: result.token,
96
- workspaceId: result.workspaceId || null,
161
+ accessToken: result.access_token,
162
+ workspaceId: result.workspace_id || null,
97
163
  createdAt: new Date().toISOString(),
98
- expiresAt: result.expiresAt,
164
+ expiresAt: result.expires_at,
99
165
  }, true);
100
166
  console.log(`āœ“ Credentials saved to profile: ${profileName}`);
101
- // Step 8: Ask about Claude config
167
+ // Step 6: Ask about Claude config
102
168
  if (claudeConfigExists()) {
103
169
  console.log('\nšŸ”§ Claude Desktop detected');
104
170
  const shouldUpdate = await askYesNo('Would you like to update Claude Desktop config?');
@@ -128,172 +194,4 @@ export async function setupCommand(options = {}) {
128
194
  process.exit(1);
129
195
  }
130
196
  }
131
- /**
132
- * Start local HTTP server to receive callback
133
- */
134
- function startCallbackServer(port) {
135
- return new Promise((resolve, reject) => {
136
- const timeout = setTimeout(() => {
137
- server.close();
138
- reject(new Error('Authorization timeout - please try again'));
139
- }, AUTH_TIMEOUT_MS);
140
- const server = http.createServer(async (req, res) => {
141
- const url = new URL(req.url || '', `http://localhost:${port}`);
142
- if (url.pathname === '/callback') {
143
- const token = url.searchParams.get('token');
144
- const workspaceId = url.searchParams.get('workspaceId');
145
- const expiresAt = url.searchParams.get('expiresAt');
146
- const error = url.searchParams.get('error');
147
- if (error) {
148
- res.writeHead(400, { 'Content-Type': 'text/html' });
149
- res.end(`
150
- <html>
151
- <body style="font-family: sans-serif; padding: 40px; text-align: center;">
152
- <h1>āŒ Authorization Failed</h1>
153
- <p>${error}</p>
154
- <p>You can close this window and try again.</p>
155
- </body>
156
- </html>
157
- `);
158
- clearTimeout(timeout);
159
- server.close();
160
- reject(new Error(error));
161
- return;
162
- }
163
- if (!token || !expiresAt) {
164
- res.writeHead(400, { 'Content-Type': 'text/html' });
165
- res.end(`
166
- <html>
167
- <body style="font-family: sans-serif; padding: 40px; text-align: center;">
168
- <h1>āŒ Missing Data</h1>
169
- <p>Token or expiry date missing. Please try again.</p>
170
- </body>
171
- </html>
172
- `);
173
- clearTimeout(timeout);
174
- server.close();
175
- reject(new Error('Missing token or expiry data'));
176
- return;
177
- }
178
- // Success!
179
- res.writeHead(200, { 'Content-Type': 'text/html' });
180
- res.end(`
181
- <!DOCTYPE html>
182
- <html lang="en">
183
- <head>
184
- <meta charset="UTF-8">
185
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
186
- <title>Contextium - Setup Complete</title>
187
- <style>
188
- * { margin: 0; padding: 0; box-sizing: border-box; }
189
- body {
190
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
191
- background: #0a0a0b;
192
- color: #e5e5e7;
193
- display: flex;
194
- align-items: center;
195
- justify-content: center;
196
- min-height: 100vh;
197
- padding: 20px;
198
- }
199
- .container {
200
- text-align: center;
201
- max-width: 500px;
202
- }
203
- .icon {
204
- width: 80px;
205
- height: 80px;
206
- margin: 0 auto 32px;
207
- background: rgba(34, 197, 94, 0.1);
208
- border-radius: 50%;
209
- display: flex;
210
- align-items: center;
211
- justify-content: center;
212
- position: relative;
213
- }
214
- .icon::before {
215
- content: '';
216
- position: absolute;
217
- inset: 0;
218
- background: rgba(34, 197, 94, 0.2);
219
- border-radius: 50%;
220
- filter: blur(40px);
221
- }
222
- .icon svg {
223
- width: 40px;
224
- height: 40px;
225
- position: relative;
226
- z-index: 1;
227
- }
228
- h1 {
229
- font-size: 32px;
230
- font-weight: 700;
231
- margin-bottom: 16px;
232
- color: #fff;
233
- }
234
- p {
235
- font-size: 16px;
236
- color: #a1a1aa;
237
- line-height: 1.6;
238
- }
239
- .badge {
240
- display: inline-flex;
241
- align-items: center;
242
- gap: 8px;
243
- margin-top: 32px;
244
- padding: 12px 24px;
245
- background: rgba(34, 197, 94, 0.1);
246
- border: 1px solid rgba(34, 197, 94, 0.2);
247
- border-radius: 12px;
248
- color: #22c55e;
249
- font-size: 14px;
250
- font-weight: 500;
251
- }
252
- </style>
253
- </head>
254
- <body>
255
- <div class="container">
256
- <div class="icon">
257
- <svg fill="none" stroke="#22c55e" stroke-width="3" viewBox="0 0 24 24">
258
- <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" />
259
- </svg>
260
- </div>
261
- <h1>Setup Complete!</h1>
262
- <p>Your MCP server is now connected to Contextium.<br>Return to your terminal to continue.</p>
263
- <div class="badge">
264
- <svg width="16" height="16" fill="currentColor" viewBox="0 0 24 24">
265
- <path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"/>
266
- </svg>
267
- Credentials Saved
268
- </div>
269
- <p style="margin-top: 24px; padding: 16px; background: rgba(251, 191, 36, 0.1); border: 1px solid rgba(251, 191, 36, 0.2); border-radius: 8px; color: #fbbf24; font-size: 14px; line-height: 1.5;">
270
- <strong>āš ļø Important:</strong> If Claude Desktop is already open, please quit and restart it for changes to take effect.
271
- </p>
272
- </div>
273
- <script>setTimeout(() => window.close(), 5000);</script>
274
- </body>
275
- </html>
276
- `);
277
- clearTimeout(timeout);
278
- server.close();
279
- resolve({
280
- token,
281
- workspaceId: workspaceId || null,
282
- expiresAt,
283
- });
284
- }
285
- else {
286
- res.writeHead(404);
287
- res.end('Not Found');
288
- }
289
- });
290
- server.on('error', (err) => {
291
- clearTimeout(timeout);
292
- reject(err);
293
- });
294
- server.listen(port, '127.0.0.1', () => {
295
- console.log(`āœ“ Callback server listening on http://localhost:${port}`);
296
- });
297
- });
298
- }
299
197
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAuB1F,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAC3D,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,0CAA0C;AAElF;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAAc;IAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,aAAa,EAAE;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmD,CAAC;IACvF,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,MAAc,EACd,UAAkB,EAClB,QAAgB;IAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,mBAAmB,EAAE;gBACzD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;aAClD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA8C,CAAC;gBAClF,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAED,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGvC,CAAC;YAEF,IAAI,SAAS,CAAC,KAAK,KAAK,uBAAuB,EAAE,CAAC;gBAChD,yDAAyD;gBACzD,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,cAAc;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,KAAK,IAAI,sBAAsB,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC9E,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,IAAI,UAAU,GAAG,YAAY,CAAC;IAE9B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,MAAM,GAAG,OAAO,CAAC;YACjB,UAAU,GAAG,KAAK,CAAC;YACnB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,SAAS,CAAC;YACnB,UAAU,GAAG,YAAY,CAAC;YAC1B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,OAAO,CAAC;YACjB,UAAU,GAAG,eAAe,CAAC;YAC7B,MAAM;IACV,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,GAAG,MAAM,KAAK,IAAI,GAAG;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAwB,EAAE;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAE3E,IAAI,CAAC;QACH,+BAA+B;QAC/B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,kBAAkB,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAEzC,wCAAwC;QACxC,MAAM,cAAc,GAAG,aAAa,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;QAEvC,4BAA4B;QAC5B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,UAAU,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAE7F,6CAA6C;QAC7C,MAAM,OAAO,GAAG,GAAG,kBAAkB,CAAC,eAAe,SAAS,kBAAkB,CAAC,QAAQ,eAAe,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QAEzI,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;QAEvF,iCAAiC;QACjC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,MAAM,EACN,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,QAAQ,CAC5B,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,2BAA2B;QAC3B,WAAW,CACT,WAAW,EACX;YACE,MAAM;YACN,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,WAAW,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;YACxC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,MAAM,CAAC,UAAU;SAC7B,EACD,IAAI,CACL,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,mCAAmC,WAAW,EAAE,CAAC,CAAC;QAE9D,kCAAkC;QAClC,IAAI,kBAAkB,EAAE,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,iDAAiD,CAAC,CAAC;YAEvF,IAAI,YAAY,EAAE,CAAC;gBACjB,+BAA+B,CAAC,WAAW,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,CAAC,wBAAwB,CAAC;qBACjC;iBACF;aACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contextium/mcp-server",
3
- "version": "0.3.1",
3
+ "version": "0.4.1",
4
4
  "description": "Central file system for team SOPs, coding standards, and AI constraints. AI follows your guidelines automatically.",
5
5
  "keywords": [
6
6
  "mcp",