@apify/mcpc 0.1.0 → 0.1.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/.claude/settings.local.json +6 -2
- package/.idea/workspace.xml +283 -274
- package/README.md +190 -112
- package/TODOs.md +39 -48
- package/dist/bridge/index.js +131 -76
- package/dist/bridge/index.js.map +1 -1
- package/dist/cli/commands/auth.js +1 -1
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/clean.d.ts.map +1 -1
- package/dist/cli/commands/clean.js +31 -56
- package/dist/cli/commands/clean.js.map +1 -1
- package/dist/cli/commands/sessions.d.ts.map +1 -1
- package/dist/cli/commands/sessions.js +115 -40
- package/dist/cli/commands/sessions.js.map +1 -1
- package/dist/cli/helpers.d.ts +3 -0
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +91 -15
- package/dist/cli/helpers.js.map +1 -1
- package/dist/cli/index.js +13 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +26 -4
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/shell-parser.d.ts.map +1 -1
- package/dist/cli/shell-parser.js.map +1 -1
- package/dist/cli/shell.d.ts.map +1 -1
- package/dist/cli/shell.js +9 -8
- package/dist/cli/shell.js.map +1 -1
- package/dist/core/factory.d.ts +2 -0
- package/dist/core/factory.d.ts.map +1 -1
- package/dist/core/factory.js +3 -1
- package/dist/core/factory.js.map +1 -1
- package/dist/core/mcp-client.d.ts.map +1 -1
- package/dist/core/mcp-client.js +8 -12
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/core/transports.d.ts +5 -1
- package/dist/core/transports.d.ts.map +1 -1
- package/dist/core/transports.js +39 -9
- package/dist/core/transports.js.map +1 -1
- package/dist/lib/auth/keychain.d.ts.map +1 -1
- package/dist/lib/auth/keychain.js +5 -2
- package/dist/lib/auth/keychain.js.map +1 -1
- package/dist/lib/auth/oauth-flow.d.ts.map +1 -1
- package/dist/lib/auth/oauth-flow.js +11 -2
- package/dist/lib/auth/oauth-flow.js.map +1 -1
- package/dist/lib/auth/oauth-provider.d.ts +19 -8
- package/dist/lib/auth/oauth-provider.d.ts.map +1 -1
- package/dist/lib/auth/oauth-provider.js +95 -27
- package/dist/lib/auth/oauth-provider.js.map +1 -1
- package/dist/lib/auth/oauth-token-manager.d.ts +8 -0
- package/dist/lib/auth/oauth-token-manager.d.ts.map +1 -1
- package/dist/lib/auth/oauth-token-manager.js +43 -0
- package/dist/lib/auth/oauth-token-manager.js.map +1 -1
- package/dist/lib/auth/{auth-profiles.d.ts → profiles.d.ts} +2 -1
- package/dist/lib/auth/profiles.d.ts.map +1 -0
- package/dist/lib/auth/{auth-profiles.js → profiles.js} +26 -10
- package/dist/lib/auth/profiles.js.map +1 -0
- package/dist/lib/auth/token-refresh.js +1 -1
- package/dist/lib/auth/token-refresh.js.map +1 -1
- package/dist/lib/bridge-client.js.map +1 -1
- package/dist/lib/bridge-manager.d.ts +0 -1
- package/dist/lib/bridge-manager.d.ts.map +1 -1
- package/dist/lib/bridge-manager.js +32 -46
- package/dist/lib/bridge-manager.js.map +1 -1
- package/dist/lib/cleanup.d.ts +5 -0
- package/dist/lib/cleanup.d.ts.map +1 -0
- package/dist/lib/cleanup.js +48 -0
- package/dist/lib/cleanup.js.map +1 -0
- package/dist/lib/errors.d.ts +1 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +5 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/session-client.d.ts.map +1 -1
- package/dist/lib/session-client.js +7 -7
- package/dist/lib/session-client.js.map +1 -1
- package/dist/lib/sessions.d.ts +6 -1
- package/dist/lib/sessions.d.ts.map +1 -1
- package/dist/lib/sessions.js +71 -13
- package/dist/lib/sessions.js.map +1 -1
- package/dist/lib/types.d.ts +6 -3
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +2 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +16 -3
- package/dist/lib/utils.js.map +1 -1
- package/docs/claude-skill/README.md +38 -0
- package/docs/claude-skill/SKILL.md +159 -0
- package/package.json +8 -3
- package/PHASE1-SUMMARY.md +0 -269
- package/dist/lib/auth/auth-profiles.d.ts.map +0 -1
- package/dist/lib/auth/auth-profiles.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-client.d.ts","sourceRoot":"","sources":["../../src/lib/session-client.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EAEV,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYlD,qBAAa,aAAc,SAAQ,YAAa,YAAW,UAAU;IACnE,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IAU3D,OAAO,CAAC,2BAA2B;YAkBrB,SAAS;
|
|
1
|
+
{"version":3,"file":"session-client.d.ts","sourceRoot":"","sources":["../../src/lib/session-client.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EAEV,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYlD,qBAAa,aAAc,SAAQ,YAAa,YAAW,UAAU;IACnE,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IAU3D,OAAO,CAAC,2BAA2B;YAkBrB,SAAS;IAqCjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAQpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAOpD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAO/E,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO5D,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAO5E,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAOtD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7C,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAOxD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAOhF,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,YAAY,IAAI,KAAK;CAGtB;AAQD,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAUrF;AAMD,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,CAAC,CAAC,CAQZ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
2
|
import { BridgeClient } from './bridge-client.js';
|
|
3
3
|
import { ensureBridgeReady, restartBridge } from './bridge-manager.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { NetworkError } from './errors.js';
|
|
5
|
+
import { getSocketPath, getLogsDir } from './utils.js';
|
|
6
6
|
import { createLogger } from './logger.js';
|
|
7
7
|
const logger = createLogger('session-client');
|
|
8
8
|
export class SessionClient extends EventEmitter {
|
|
@@ -26,16 +26,16 @@ export class SessionClient extends EventEmitter {
|
|
|
26
26
|
}
|
|
27
27
|
catch (error) {
|
|
28
28
|
if (!(error instanceof NetworkError)) {
|
|
29
|
+
const err = error;
|
|
30
|
+
const logPath = `${getLogsDir()}/bridge-${this.sessionName}.log`;
|
|
31
|
+
err.message = `${err.message}. Check logs at ${logPath} for details.`;
|
|
29
32
|
throw error;
|
|
30
33
|
}
|
|
31
34
|
logger.warn(`Socket error during ${operationName}, will restart bridge...`);
|
|
32
35
|
await this.bridgeClient.close();
|
|
33
36
|
await restartBridge(this.sessionName);
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
throw new ClientError(`Session ${this.sessionName} not found after bridge restart`);
|
|
37
|
-
}
|
|
38
|
-
this.bridgeClient = new BridgeClient(session.socketPath);
|
|
37
|
+
const socketPath = getSocketPath(this.sessionName);
|
|
38
|
+
this.bridgeClient = new BridgeClient(socketPath);
|
|
39
39
|
this.setupNotificationForwarding();
|
|
40
40
|
await this.bridgeClient.connect();
|
|
41
41
|
logger.info(`Reconnected to bridge for ${this.sessionName}, retrying ${operationName}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-client.js","sourceRoot":"","sources":["../../src/lib/session-client.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AActC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"session-client.js","sourceRoot":"","sources":["../../src/lib/session-client.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AActC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAM9C,MAAM,OAAO,aAAc,SAAQ,YAAY;IACrC,YAAY,CAAe;IAC3B,WAAW,CAAS;IAE5B,YAAY,WAAmB,EAAE,YAA0B;QACzD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAKO,2BAA2B;QACjC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,YAA8B,EAAE,EAAE;YACtE,MAAM,CAAC,KAAK,CAAC,4BAA4B,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAaO,KAAK,CAAC,SAAS,CACrB,SAA2B,EAC3B,aAAqB;QAErB,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,EAAE,CAAC;gBAErC,MAAM,GAAG,GAAG,KAAc,CAAC;gBAC3B,MAAM,OAAO,GAAG,GAAG,UAAU,EAAE,WAAW,IAAI,CAAC,WAAW,MAAM,CAAC;gBACjE,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,mBAAmB,OAAO,eAAe,CAAC;gBACtE,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,uBAAuB,aAAa,0BAA0B,CAAC,CAAC;YAG5E,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAGhC,MAAM,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAGtC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAElC,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,WAAW,cAAc,aAAa,EAAE,CAAC,CAAC;YAGxF,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAGD,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAwB,EACvE,eAAe,CAChB,CAAC;IACJ,CAAC;IAGD,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAC7D,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAe;QAC7B,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAA6B,EAChF,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA8B;QACzD,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAA4B,EACjG,UAAU,CACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAe;QACjC,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAiC,EACxF,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAe;QACzC,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAyC,EACxG,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW;QAC5B,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAgC,EACvF,cAAc,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAW;QACjC,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EACnF,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAW;QACnC,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EACrF,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAe;QAC/B,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAA+B,EACpF,aAAa,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,IAA6B;QACzD,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAA6B,EACnG,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAmB;QACvC,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAC/E,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAGD,YAAY;QACV,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;CACF;AAQD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAE3D,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAGxD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;IAE7B,MAAM,CAAC,KAAK,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACtD,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,QAA4C;IAE5C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
|
package/dist/lib/sessions.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import type { SessionData, SessionsStorage } from './types.js';
|
|
2
2
|
export declare function loadSessions(): Promise<SessionsStorage>;
|
|
3
|
-
export declare function listSessions(): Promise<SessionData[]>;
|
|
4
3
|
export declare function getSession(sessionName: string): Promise<SessionData | undefined>;
|
|
5
4
|
export declare function saveSession(sessionName: string, sessionData: Omit<SessionData, 'name'>): Promise<void>;
|
|
6
5
|
export declare function updateSession(sessionName: string, updates: Partial<Omit<SessionData, 'name' | 'createdAt'>>): Promise<void>;
|
|
7
6
|
export declare function deleteSession(sessionName: string): Promise<void>;
|
|
8
7
|
export declare function sessionExists(sessionName: string): Promise<boolean>;
|
|
8
|
+
export interface ConsolidateSessionsResult {
|
|
9
|
+
deadBridges: number;
|
|
10
|
+
expiredSessions: number;
|
|
11
|
+
sessions: Record<string, SessionData>;
|
|
12
|
+
}
|
|
13
|
+
export declare function consolidateSessions(cleanExpired: boolean): Promise<ConsolidateSessionsResult>;
|
|
9
14
|
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAiF/D,wBAAsB,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,CAG7D;AAKD,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAGtF;AAOD,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAOD,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAqBf;AAMD,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtE;AAKD,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzE;AAMD,MAAM,WAAW,yBAAyB;IAExC,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe,EAAE,MAAM,CAAC;IAExB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACvC;AAQD,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA8EnG"}
|
package/dist/lib/sessions.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { readFile, writeFile, rename, unlink } from 'fs/promises';
|
|
2
2
|
import { tmpdir } from 'os';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
-
import { getSessionsFilePath, fileExists, ensureDir, getMcpcHome } from './utils.js';
|
|
4
|
+
import { getSessionsFilePath, getSocketPath, fileExists, ensureDir, getMcpcHome, isProcessAlive, } from './utils.js';
|
|
5
5
|
import { withFileLock } from './file-lock.js';
|
|
6
6
|
import { createLogger } from './logger.js';
|
|
7
7
|
import { ClientError } from './errors.js';
|
|
8
|
+
import { removeKeychainSessionHeaders } from './auth/keychain.js';
|
|
8
9
|
const logger = createLogger('sessions');
|
|
9
10
|
async function loadSessionsInternal() {
|
|
10
11
|
const filePath = getSessionsFilePath();
|
|
@@ -50,17 +51,6 @@ export async function loadSessions() {
|
|
|
50
51
|
const filePath = getSessionsFilePath();
|
|
51
52
|
return withFileLock(filePath, loadSessionsInternal, SESSIONS_DEFAULT_CONTENT);
|
|
52
53
|
}
|
|
53
|
-
export async function listSessions() {
|
|
54
|
-
const storage = await loadSessions();
|
|
55
|
-
const sessions = [];
|
|
56
|
-
for (const sessionName in storage.sessions) {
|
|
57
|
-
const session = storage.sessions[sessionName];
|
|
58
|
-
if (session) {
|
|
59
|
-
sessions.push(session);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return sessions;
|
|
63
|
-
}
|
|
64
54
|
export async function getSession(sessionName) {
|
|
65
55
|
const storage = await loadSessions();
|
|
66
56
|
return storage.sessions[sessionName];
|
|
@@ -106,11 +96,79 @@ export async function deleteSession(sessionName) {
|
|
|
106
96
|
}
|
|
107
97
|
delete storage.sessions[sessionName];
|
|
108
98
|
await saveSessionsInternal(storage);
|
|
109
|
-
|
|
99
|
+
try {
|
|
100
|
+
await removeKeychainSessionHeaders(sessionName);
|
|
101
|
+
logger.debug(`Deleted headers from keychain for session: ${sessionName}`);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
}
|
|
105
|
+
logger.debug(`Session ${sessionName} deleted`);
|
|
110
106
|
}, SESSIONS_DEFAULT_CONTENT);
|
|
111
107
|
}
|
|
112
108
|
export async function sessionExists(sessionName) {
|
|
113
109
|
const storage = await loadSessions();
|
|
114
110
|
return sessionName in storage.sessions;
|
|
115
111
|
}
|
|
112
|
+
export async function consolidateSessions(cleanExpired) {
|
|
113
|
+
const result = {
|
|
114
|
+
deadBridges: 0,
|
|
115
|
+
expiredSessions: 0,
|
|
116
|
+
sessions: {},
|
|
117
|
+
};
|
|
118
|
+
const filePath = getSessionsFilePath();
|
|
119
|
+
const defaultContent = JSON.stringify({ sessions: {} }, null, 2);
|
|
120
|
+
await withFileLock(filePath, async () => {
|
|
121
|
+
const storage = await loadSessionsInternal();
|
|
122
|
+
let hasChanges = false;
|
|
123
|
+
for (const [name, session] of Object.entries(storage.sessions)) {
|
|
124
|
+
if (!session) {
|
|
125
|
+
logger.debug(`Missing record for session: ${name}`);
|
|
126
|
+
hasChanges = true;
|
|
127
|
+
delete storage.sessions[name];
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (cleanExpired && session.status === 'expired') {
|
|
131
|
+
logger.debug(`Removing expired session: ${name}`);
|
|
132
|
+
delete storage.sessions[name];
|
|
133
|
+
result.expiredSessions++;
|
|
134
|
+
hasChanges = true;
|
|
135
|
+
try {
|
|
136
|
+
await removeKeychainSessionHeaders(name);
|
|
137
|
+
logger.debug(`Deleted headers from keychain for session: ${name}`);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
}
|
|
141
|
+
if (process.platform !== 'win32') {
|
|
142
|
+
const socketPath = getSocketPath(name);
|
|
143
|
+
try {
|
|
144
|
+
await unlink(socketPath);
|
|
145
|
+
logger.debug(`Removed stale socket: ${socketPath}`);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (session.pid && !isProcessAlive(session.pid)) {
|
|
153
|
+
logger.debug(`Clearing dead bridge PID for session: ${name} (PID: ${session.pid})`);
|
|
154
|
+
delete session.pid;
|
|
155
|
+
hasChanges = true;
|
|
156
|
+
if (session.status !== 'dead') {
|
|
157
|
+
session.status = 'dead';
|
|
158
|
+
result.deadBridges++;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else if (!session.pid && session.status !== 'dead') {
|
|
162
|
+
session.status = 'dead';
|
|
163
|
+
result.deadBridges++;
|
|
164
|
+
hasChanges = true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (hasChanges) {
|
|
168
|
+
await saveSessionsInternal(storage);
|
|
169
|
+
}
|
|
170
|
+
result.sessions = storage.sessions;
|
|
171
|
+
}, defaultContent);
|
|
172
|
+
return result;
|
|
173
|
+
}
|
|
116
174
|
//# sourceMappingURL=sessions.js.map
|
package/dist/lib/sessions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -11,15 +11,15 @@ export interface TransportConfig {
|
|
|
11
11
|
headers?: Record<string, string>;
|
|
12
12
|
timeoutMs?: number;
|
|
13
13
|
}
|
|
14
|
-
export type SessionStatus = 'active' | 'expired';
|
|
14
|
+
export type SessionStatus = 'active' | 'expired' | 'dead';
|
|
15
15
|
export interface SessionData {
|
|
16
16
|
name: string;
|
|
17
17
|
target: string;
|
|
18
18
|
transport: TransportType;
|
|
19
|
+
stdioArgs?: string[];
|
|
20
|
+
httpHeaderCount?: number;
|
|
19
21
|
profileName?: string;
|
|
20
|
-
headerCount?: number;
|
|
21
22
|
pid?: number;
|
|
22
|
-
socketPath?: string;
|
|
23
23
|
protocolVersion?: string;
|
|
24
24
|
serverInfo?: {
|
|
25
25
|
name: string;
|
|
@@ -38,6 +38,9 @@ export interface AuthProfile {
|
|
|
38
38
|
authType: 'oauth';
|
|
39
39
|
oauthIssuer: string;
|
|
40
40
|
scopes?: string[];
|
|
41
|
+
userEmail?: string;
|
|
42
|
+
userName?: string;
|
|
43
|
+
userSubject?: string;
|
|
41
44
|
createdAt: string;
|
|
42
45
|
authenticatedAt?: string;
|
|
43
46
|
refreshedAt?: string;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,2BAA2B,EAC5B,MAAM,oCAAoC,CAAC;AAG5C,YAAY,EACV,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACb,CAAC;AAGF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAK7E,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAK7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare function resolvePath(filepath: string, basePath?: string): string
|
|
|
3
3
|
export declare function getMcpcHome(): string;
|
|
4
4
|
export declare function getSessionsFilePath(): string;
|
|
5
5
|
export declare function getBridgesDir(): string;
|
|
6
|
+
export declare function getSocketPath(sessionName: string): string;
|
|
6
7
|
export declare function getLogsDir(): string;
|
|
7
8
|
export declare function getAuthProfilesFilePath(): string;
|
|
8
9
|
export declare function ensureDir(dirPath: string): Promise<void>;
|
|
@@ -11,7 +12,7 @@ export declare function isFile(filepath: string): Promise<boolean>;
|
|
|
11
12
|
export declare function isDirectory(filepath: string): Promise<boolean>;
|
|
12
13
|
export declare function isValidHttpUrl(str: string): boolean;
|
|
13
14
|
export declare function normalizeServerUrl(str: string): string;
|
|
14
|
-
export declare function
|
|
15
|
+
export declare function getServerHost(urlString: string): string;
|
|
15
16
|
export declare function isValidSessionName(name: string): boolean;
|
|
16
17
|
export declare function isValidProfileName(name: string): boolean;
|
|
17
18
|
export declare function validateProfileName(profileName: string): void;
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAcA,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKnD;AAKD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvE;AAMD,wBAAgB,WAAW,IAAI,MAAM,CAMpC;AAKD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAKD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAYD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAUzD;AAKD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAKD,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAKD,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9D;AAKD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAKD,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAKD,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpE;AAKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD;AAOD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA6BtD;AAgBD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAWvD;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAO7D;AAKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOvD;AAKD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAKD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,OAAO,CAAC,IAAI,CAAC,CAgBf;AAKD,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAMtD;AAKD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,UAAQ,GAAG,MAAM,CAElE;AAKD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK/D;AAKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQnD;AAMD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
package/dist/lib/utils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createHash } from 'crypto';
|
|
1
2
|
import { homedir } from 'os';
|
|
2
3
|
import { join, resolve, isAbsolute } from 'path';
|
|
3
4
|
import { mkdir, access, constants, stat } from 'fs/promises';
|
|
@@ -28,11 +29,18 @@ export function getSessionsFilePath() {
|
|
|
28
29
|
export function getBridgesDir() {
|
|
29
30
|
return join(getMcpcHome(), 'bridges');
|
|
30
31
|
}
|
|
32
|
+
export function getSocketPath(sessionName) {
|
|
33
|
+
if (process.platform === 'win32') {
|
|
34
|
+
const homeHash = createHash('sha256').update(getMcpcHome()).digest('hex').slice(0, 8);
|
|
35
|
+
return `\\\\.\\pipe\\mcpc-${homeHash}-${sessionName}`;
|
|
36
|
+
}
|
|
37
|
+
return join(getBridgesDir(), `${sessionName}.sock`);
|
|
38
|
+
}
|
|
31
39
|
export function getLogsDir() {
|
|
32
40
|
return join(getMcpcHome(), 'logs');
|
|
33
41
|
}
|
|
34
42
|
export function getAuthProfilesFilePath() {
|
|
35
|
-
return join(getMcpcHome(), '
|
|
43
|
+
return join(getMcpcHome(), 'profiles.json');
|
|
36
44
|
}
|
|
37
45
|
export async function ensureDir(dirPath) {
|
|
38
46
|
try {
|
|
@@ -99,9 +107,14 @@ export function normalizeServerUrl(str) {
|
|
|
99
107
|
}
|
|
100
108
|
return result;
|
|
101
109
|
}
|
|
102
|
-
export function
|
|
110
|
+
export function getServerHost(urlString) {
|
|
103
111
|
const url = new URL(normalizeServerUrl(urlString));
|
|
104
|
-
|
|
112
|
+
const hostname = url.hostname.toLowerCase();
|
|
113
|
+
const port = url.port;
|
|
114
|
+
if (port && port !== '443' && port !== '80') {
|
|
115
|
+
return `${hostname}:${port}`;
|
|
116
|
+
}
|
|
117
|
+
return hostname;
|
|
105
118
|
}
|
|
106
119
|
export function isValidSessionName(name) {
|
|
107
120
|
return /^@[a-zA-Z0-9_-]{1,64}$/.test(name);
|
package/dist/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,QAAiB;IAC7D,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAMD,MAAM,UAAU,WAAW;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAKD,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAKD,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAKD,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAKD,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,QAAiB;IAC7D,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAMD,MAAM,UAAU,WAAW;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAKD,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAKD,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAYD,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAGjC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,OAAO,qBAAqB,QAAQ,IAAI,WAAW,EAAE,CAAC;IACxD,CAAC;IAGD,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,WAAW,OAAO,CAAC,CAAC;AACtD,CAAC;AAKD,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAKD,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,IAAI,SAAS,GAAG,GAAG,CAAC;IAGpB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC;IAC/B,CAAC;IAGD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAG/B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IAClB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IAClB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAG5B,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBD,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAMD,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,WAAW,CACnB,yBAAyB,WAAW,IAAI;YACtC,qHAAqH,CACxH,CAAC;IACJ,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,UAAqD,EAAE;IAEvD,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAG7B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,SAAS,CAAc,IAAY;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iBAAkB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,aAAa,CAAC,GAAY,EAAE,MAAM,GAAG,KAAK;IACxD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAKD,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,SAAiB;IACrD,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC7C,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,IAAI,gBAAgB,GAAG,CAAC,CAAC;AACzB,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# mcpc Claude Code skill
|
|
2
|
+
|
|
3
|
+
This directory contains a [Claude Code skill](https://docs.anthropic.com/en/docs/claude-code/skills) that helps AI agents use mcpc effectively.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Copy or symlink the `SKILL.md` file to your Claude Code skills directory:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Create skills directory if it doesn't exist
|
|
11
|
+
mkdir -p ~/.claude/skills/mcpc
|
|
12
|
+
|
|
13
|
+
# Option 1: Copy the file
|
|
14
|
+
cp SKILL.md ~/.claude/skills/mcpc/
|
|
15
|
+
|
|
16
|
+
# Option 2: Symlink (auto-updates when mcpc is updated)
|
|
17
|
+
ln -s "$(pwd)/SKILL.md" ~/.claude/skills/mcpc/SKILL.md
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Then restart Claude Code to load the skill.
|
|
21
|
+
|
|
22
|
+
## What it does
|
|
23
|
+
|
|
24
|
+
The skill teaches Claude Code how to use mcpc for:
|
|
25
|
+
|
|
26
|
+
- Calling MCP tools efficiently via CLI instead of function calling
|
|
27
|
+
- Managing persistent sessions for better performance
|
|
28
|
+
- Parsing JSON output for scripting workflows
|
|
29
|
+
- Handling authentication (OAuth and bearer tokens)
|
|
30
|
+
- Debugging connection issues
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
Once installed, Claude Code will automatically use mcpc when you ask it to interact with MCP servers. For example:
|
|
35
|
+
|
|
36
|
+
- "List the tools available on mcp.apify.com"
|
|
37
|
+
- "Call the search tool with query 'web scraper'"
|
|
38
|
+
- "Create a session to the Apify MCP server"
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mcpc
|
|
3
|
+
description: Use mcpc CLI to interact with MCP servers - call tools, read resources, get prompts. Use this when working with Model Context Protocol servers, calling MCP tools, or accessing MCP resources programmatically.
|
|
4
|
+
allowed-tools: Bash(mcpc:*), Bash(node dist/cli/index.js:*), Read, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# mcpc: MCP command-line client
|
|
8
|
+
|
|
9
|
+
Use `mcpc` to interact with MCP (Model Context Protocol) servers from the command line.
|
|
10
|
+
This is more efficient than function calling - generate shell commands instead.
|
|
11
|
+
|
|
12
|
+
## Quick reference
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# List sessions and auth profiles
|
|
16
|
+
mcpc
|
|
17
|
+
|
|
18
|
+
# Show server info
|
|
19
|
+
mcpc <server>
|
|
20
|
+
mcpc @<session>
|
|
21
|
+
|
|
22
|
+
# Tools
|
|
23
|
+
mcpc <target> tools-list
|
|
24
|
+
mcpc <target> tools-schema <tool-name>
|
|
25
|
+
mcpc <target> tools-call <tool-name> --args '{"key":"value"}'
|
|
26
|
+
|
|
27
|
+
# Resources
|
|
28
|
+
mcpc <target> resources-list
|
|
29
|
+
mcpc <target> resources-read <uri>
|
|
30
|
+
|
|
31
|
+
# Prompts
|
|
32
|
+
mcpc <target> prompts-list
|
|
33
|
+
mcpc <target> prompts-get <prompt-name> --args key=value
|
|
34
|
+
|
|
35
|
+
# Sessions (persistent connections)
|
|
36
|
+
mcpc <server> session @<name>
|
|
37
|
+
mcpc @<name> <command>
|
|
38
|
+
mcpc @<name> close
|
|
39
|
+
|
|
40
|
+
# Authentication
|
|
41
|
+
mcpc <server> login
|
|
42
|
+
mcpc <server> logout
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Target types
|
|
46
|
+
|
|
47
|
+
- `mcp.example.com` - Direct HTTP connection to remote server
|
|
48
|
+
- `@session-name` - Named persistent session (faster, maintains state)
|
|
49
|
+
- `config-entry` - Entry from config file (with `--config`)
|
|
50
|
+
|
|
51
|
+
## Passing arguments
|
|
52
|
+
|
|
53
|
+
**Inline JSON** (recommended for complex data):
|
|
54
|
+
```bash
|
|
55
|
+
mcpc @s tools-call search --args '{"query":"hello","limit":10}'
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Key=value pairs** (strings):
|
|
59
|
+
```bash
|
|
60
|
+
mcpc @s tools-call search --args query="hello world" filter=active
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Key:=json pairs** (typed values):
|
|
64
|
+
```bash
|
|
65
|
+
mcpc @s tools-call search --args query="hello" limit:=10 enabled:=true
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**From file**:
|
|
69
|
+
```bash
|
|
70
|
+
mcpc @s tools-call search --args-file params.json
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**From stdin** (auto-detected when piped):
|
|
74
|
+
```bash
|
|
75
|
+
echo '{"query":"hello"}' | mcpc @s tools-call search
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## JSON output for scripting
|
|
79
|
+
|
|
80
|
+
Always use `--json` flag for machine-readable output:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Get tools as JSON
|
|
84
|
+
mcpc --json @apify tools-list
|
|
85
|
+
|
|
86
|
+
# Call tool and parse result with jq
|
|
87
|
+
mcpc --json @apify tools-call search --args query="test" | jq '.content[0].text'
|
|
88
|
+
|
|
89
|
+
# Chain commands
|
|
90
|
+
mcpc --json @server1 tools-call get-data | mcpc @server2 tools-call process
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Sessions for efficiency
|
|
94
|
+
|
|
95
|
+
Create sessions for repeated interactions:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Create session (or reconnect if exists)
|
|
99
|
+
mcpc mcp.apify.com session @apify
|
|
100
|
+
|
|
101
|
+
# Use session (faster - no reconnection overhead)
|
|
102
|
+
mcpc @apify tools-list
|
|
103
|
+
mcpc @apify tools-call search --args query="test"
|
|
104
|
+
|
|
105
|
+
# Close when done
|
|
106
|
+
mcpc @apify close
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Authentication
|
|
110
|
+
|
|
111
|
+
**OAuth (interactive login)**:
|
|
112
|
+
```bash
|
|
113
|
+
mcpc mcp.apify.com login
|
|
114
|
+
mcpc mcp.apify.com session @apify
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Bearer token**:
|
|
118
|
+
```bash
|
|
119
|
+
mcpc -H "Authorization: Bearer $TOKEN" mcp.apify.com tools-list
|
|
120
|
+
mcpc -H "Authorization: Bearer $TOKEN" mcp.apify.com session @myserver
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Common patterns
|
|
124
|
+
|
|
125
|
+
**List and inspect tools**:
|
|
126
|
+
```bash
|
|
127
|
+
mcpc @s tools-list
|
|
128
|
+
mcpc @s tools-schema tool-name
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Call tool and extract text result**:
|
|
132
|
+
```bash
|
|
133
|
+
mcpc --json @s tools-call my-tool --args '{}' | jq -r '.content[0].text'
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Read resource content**:
|
|
137
|
+
```bash
|
|
138
|
+
mcpc @s resources-read "file:///path/to/file"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Use config file for local servers**:
|
|
142
|
+
```bash
|
|
143
|
+
mcpc --config .vscode/mcp.json filesystem resources-list
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Exit codes
|
|
147
|
+
|
|
148
|
+
- `0` - Success
|
|
149
|
+
- `1` - Client error (invalid arguments)
|
|
150
|
+
- `2` - Server error (tool failed)
|
|
151
|
+
- `3` - Network error
|
|
152
|
+
- `4` - Authentication error
|
|
153
|
+
|
|
154
|
+
## Debugging
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Verbose output shows protocol details
|
|
158
|
+
mcpc --verbose @s tools-call my-tool --args '{}'
|
|
159
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apify/mcpc",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Universal command-line client for the Model Context Protocol (MCP).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"bugs": {
|
|
20
20
|
"url": "https://github.com/apify/mcpc/issues"
|
|
21
21
|
},
|
|
22
|
-
"homepage": "https://github.com/apify/mcpc
|
|
22
|
+
"homepage": "https://github.com/apify/mcpc",
|
|
23
23
|
"bin": {
|
|
24
24
|
"mcpc": "./bin/mcpc",
|
|
25
25
|
"mcpc-bridge": "./bin/mcpc-bridge"
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"scripts": {
|
|
31
31
|
"build": "tsc",
|
|
32
32
|
"build:watch": "tsc --watch",
|
|
33
|
+
"build:toc": "doctoc README.md --github --notitle && sed -i '' '/^- \\[mcpc:/d' README.md",
|
|
33
34
|
"test": "npm run test:unit && npm run test:e2e",
|
|
34
35
|
"test:unit": "jest --passWithNoTests",
|
|
35
36
|
"test:watch": "jest --watch",
|
|
@@ -41,7 +42,10 @@
|
|
|
41
42
|
"format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
42
43
|
"clean": "rm -rf dist",
|
|
43
44
|
"prebuild": "npm run clean",
|
|
44
|
-
"prepublishOnly": "npm run build && npm test",
|
|
45
|
+
"prepublishOnly": "npm run lint && npm run build && npm test",
|
|
46
|
+
"release": "bash scripts/publish.sh",
|
|
47
|
+
"release:minor": "bash scripts/publish.sh minor",
|
|
48
|
+
"release:major": "bash scripts/publish.sh major",
|
|
45
49
|
"publish:placeholder": "bash scripts/publish-placeholder.sh"
|
|
46
50
|
},
|
|
47
51
|
"dependencies": {
|
|
@@ -57,6 +61,7 @@
|
|
|
57
61
|
},
|
|
58
62
|
"devDependencies": {
|
|
59
63
|
"@types/jest": "^30.0.0",
|
|
64
|
+
"doctoc": "^2.2.1",
|
|
60
65
|
"@types/node": "^25.0.3",
|
|
61
66
|
"@types/proper-lockfile": "^4.1.4",
|
|
62
67
|
"@types/uuid": "^11.0.0",
|