@apify/mcpc 0.3.0 → 0.3.1-beta.0
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/CHANGELOG.md +24 -1
- package/README.md +171 -48
- package/dist/bridge/index.js +32 -40
- package/dist/bridge/index.js.map +1 -1
- package/dist/cli/commands/clean.d.ts.map +1 -1
- package/dist/cli/commands/clean.js +3 -2
- package/dist/cli/commands/clean.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +8 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +143 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/sessions.d.ts +6 -4
- package/dist/cli/commands/sessions.d.ts.map +1 -1
- package/dist/cli/commands/sessions.js +141 -85
- package/dist/cli/commands/sessions.js.map +1 -1
- package/dist/cli/commands/skills.d.ts +20 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +160 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/x402.d.ts.map +1 -1
- package/dist/cli/commands/x402.js +14 -4
- package/dist/cli/commands/x402.js.map +1 -1
- package/dist/cli/index.js +113 -24
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +13 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +114 -20
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/parser.d.ts +1 -1
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +25 -2
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/shell.js.map +1 -1
- package/dist/core/capabilities.d.ts +3 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/capabilities.js +14 -0
- package/dist/core/capabilities.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/mcp-client.d.ts +4 -0
- package/dist/core/mcp-client.d.ts.map +1 -1
- package/dist/core/mcp-client.js +34 -12
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/lib/bridge-client.d.ts +4 -1
- package/dist/lib/bridge-client.d.ts.map +1 -1
- package/dist/lib/bridge-client.js +29 -3
- package/dist/lib/bridge-client.js.map +1 -1
- package/dist/lib/bridge-manager.d.ts +2 -2
- package/dist/lib/bridge-manager.d.ts.map +1 -1
- package/dist/lib/bridge-manager.js +31 -15
- package/dist/lib/bridge-manager.js.map +1 -1
- package/dist/lib/cleanup.d.ts.map +1 -1
- package/dist/lib/cleanup.js +20 -19
- package/dist/lib/cleanup.js.map +1 -1
- package/dist/lib/config.d.ts +14 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +41 -27
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +0 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +2 -4
- 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/log-reader.d.ts +28 -0
- package/dist/lib/log-reader.d.ts.map +1 -0
- package/dist/lib/log-reader.js +278 -0
- package/dist/lib/log-reader.js.map +1 -0
- package/dist/lib/session-client.d.ts.map +1 -1
- package/dist/lib/session-client.js +3 -5
- package/dist/lib/session-client.js.map +1 -1
- package/dist/lib/stderr-tail.d.ts +10 -0
- package/dist/lib/stderr-tail.d.ts.map +1 -0
- package/dist/lib/stderr-tail.js +28 -0
- package/dist/lib/stderr-tail.js.map +1 -0
- package/dist/lib/types.d.ts +6 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +1 -0
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +12 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/x402/fetch-middleware.d.ts +3 -2
- package/dist/lib/x402/fetch-middleware.d.ts.map +1 -1
- package/dist/lib/x402/fetch-middleware.js +37 -24
- package/dist/lib/x402/fetch-middleware.js.map +1 -1
- package/dist/lib/x402/signer.d.ts +7 -1
- package/dist/lib/x402/signer.d.ts.map +1 -1
- package/dist/lib/x402/signer.js +249 -5
- package/dist/lib/x402/signer.js.map +1 -1
- package/docs/README.md +1 -0
- package/docs/claude-skill/SKILL.md +151 -117
- package/docs/examples/company-lookup.sh +6 -6
- package/docs/vhs/README.md +79 -0
- package/docs/vhs/grep.tape +56 -0
- package/docs/vhs/mcpc-demo.tape +179 -0
- package/docs/vhs/proxy.tape +69 -0
- package/docs/vhs/quickstart.tape +59 -0
- package/docs/vhs/scripting.tape +69 -0
- package/docs/vhs/tools.tape +66 -0
- package/package.json +20 -20
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { ServerError, ClientError } from '../../lib/errors.js';
|
|
2
|
+
import { withMcpClient } from '../helpers.js';
|
|
3
|
+
import { formatOutput, formatSkills, formatSkillDetail } from '../output.js';
|
|
4
|
+
export const SKILLS_INDEX_URI = 'skill://index.json';
|
|
5
|
+
export const SKILLS_EXTENSION_KEY = 'io.modelcontextprotocol/skills';
|
|
6
|
+
export function extractTextContent(result) {
|
|
7
|
+
for (const item of result.contents) {
|
|
8
|
+
if ('text' in item && typeof item.text === 'string') {
|
|
9
|
+
return item.text;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
export function parseIndex(text) {
|
|
15
|
+
let parsed;
|
|
16
|
+
try {
|
|
17
|
+
parsed = JSON.parse(text);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
throw new ServerError(`Skills index at ${SKILLS_INDEX_URI} is not valid JSON: ${err.message}`);
|
|
21
|
+
}
|
|
22
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
23
|
+
throw new ServerError(`Skills index at ${SKILLS_INDEX_URI} is not a JSON object (got ${typeof parsed})`);
|
|
24
|
+
}
|
|
25
|
+
const raw = parsed.skills;
|
|
26
|
+
if (!Array.isArray(raw)) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
const skills = [];
|
|
30
|
+
for (const entry of raw) {
|
|
31
|
+
if (!entry || typeof entry !== 'object')
|
|
32
|
+
continue;
|
|
33
|
+
const e = entry;
|
|
34
|
+
if (typeof e.url !== 'string')
|
|
35
|
+
continue;
|
|
36
|
+
const type = typeof e.type === 'string' ? e.type : 'skill-md';
|
|
37
|
+
if (type !== 'skill-md' && type !== 'archive' && type !== 'mcp-resource-template') {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const isTemplate = type === 'mcp-resource-template';
|
|
41
|
+
let name;
|
|
42
|
+
if (typeof e.name === 'string' && e.name.length > 0) {
|
|
43
|
+
name = e.name;
|
|
44
|
+
}
|
|
45
|
+
else if (isTemplate) {
|
|
46
|
+
name = displayNameFromUrl(e.url);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
skills.push({
|
|
52
|
+
name,
|
|
53
|
+
description: typeof e.description === 'string' ? e.description : '',
|
|
54
|
+
...(type !== undefined && { type }),
|
|
55
|
+
url: e.url,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return skills;
|
|
59
|
+
}
|
|
60
|
+
function displayNameFromUrl(url) {
|
|
61
|
+
const schemeEnd = url.indexOf('://');
|
|
62
|
+
const path = schemeEnd >= 0 ? url.slice(schemeEnd + 3) : url;
|
|
63
|
+
const parts = path.split('/').filter(Boolean);
|
|
64
|
+
if (parts.length === 0)
|
|
65
|
+
return url;
|
|
66
|
+
if (parts[parts.length - 1] === 'SKILL.md' && parts.length >= 2) {
|
|
67
|
+
return parts[parts.length - 2];
|
|
68
|
+
}
|
|
69
|
+
return parts[parts.length - 1];
|
|
70
|
+
}
|
|
71
|
+
export function skillsFromResources(resources) {
|
|
72
|
+
const pattern = /^skill:\/\/((?:[^/]+\/)*[^/]+)\/SKILL\.md$/;
|
|
73
|
+
const skills = [];
|
|
74
|
+
for (const resource of resources) {
|
|
75
|
+
const m = pattern.exec(resource.uri);
|
|
76
|
+
if (!m || !m[1])
|
|
77
|
+
continue;
|
|
78
|
+
const path = m[1];
|
|
79
|
+
const lastSlash = path.lastIndexOf('/');
|
|
80
|
+
const name = lastSlash >= 0 ? path.slice(lastSlash + 1) : path;
|
|
81
|
+
skills.push({
|
|
82
|
+
name: resource.name || name,
|
|
83
|
+
description: resource.description || '',
|
|
84
|
+
type: 'skill-md',
|
|
85
|
+
url: resource.uri,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return skills;
|
|
89
|
+
}
|
|
90
|
+
export async function discoverSkills(client) {
|
|
91
|
+
try {
|
|
92
|
+
const indexResult = await client.readResource(SKILLS_INDEX_URI);
|
|
93
|
+
const text = extractTextContent(indexResult);
|
|
94
|
+
if (text !== undefined) {
|
|
95
|
+
return parseIndex(text);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
}
|
|
100
|
+
const all = [];
|
|
101
|
+
let cursor;
|
|
102
|
+
do {
|
|
103
|
+
const page = await client.listResources(cursor);
|
|
104
|
+
all.push(...page.resources);
|
|
105
|
+
cursor = page.nextCursor;
|
|
106
|
+
} while (cursor);
|
|
107
|
+
return skillsFromResources(all);
|
|
108
|
+
}
|
|
109
|
+
export function resolveSkillUri(input) {
|
|
110
|
+
const trimmed = input.trim();
|
|
111
|
+
if (!trimmed) {
|
|
112
|
+
throw new ClientError('Skill name is required');
|
|
113
|
+
}
|
|
114
|
+
if (trimmed.startsWith('skill://')) {
|
|
115
|
+
const rest = trimmed.slice('skill://'.length);
|
|
116
|
+
const lastSegment = rest.slice(rest.lastIndexOf('/') + 1);
|
|
117
|
+
if (lastSegment.includes('.')) {
|
|
118
|
+
return trimmed;
|
|
119
|
+
}
|
|
120
|
+
return trimmed.endsWith('/') ? `${trimmed}SKILL.md` : `${trimmed}/SKILL.md`;
|
|
121
|
+
}
|
|
122
|
+
const path = trimmed.replace(/^\/+/, '').replace(/\/+$/, '');
|
|
123
|
+
if (!path) {
|
|
124
|
+
throw new ClientError(`Invalid skill name: ${input}`);
|
|
125
|
+
}
|
|
126
|
+
return `skill://${path}/SKILL.md`;
|
|
127
|
+
}
|
|
128
|
+
export async function listSkills(target, options) {
|
|
129
|
+
await withMcpClient(target, options, async (client) => {
|
|
130
|
+
const skills = await discoverSkills(client);
|
|
131
|
+
if (options.outputMode === 'json') {
|
|
132
|
+
console.log(formatOutput(skills, 'json'));
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
console.log(formatSkills(skills, target, {
|
|
136
|
+
...(options.maxChars && { maxChars: options.maxChars }),
|
|
137
|
+
}));
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
export async function getSkill(target, name, options) {
|
|
141
|
+
const uri = resolveSkillUri(name);
|
|
142
|
+
await withMcpClient(target, options, async (client) => {
|
|
143
|
+
const result = await client.readResource(uri);
|
|
144
|
+
if (options.outputMode === 'json') {
|
|
145
|
+
console.log(formatOutput(result, 'json'));
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (options.raw) {
|
|
149
|
+
const text = extractTextContent(result);
|
|
150
|
+
if (text !== undefined) {
|
|
151
|
+
console.log(text);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
console.log(formatSkillDetail(uri, result, {
|
|
156
|
+
...(options.maxChars && { maxChars: options.maxChars }),
|
|
157
|
+
}));
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/x402.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/x402.ts"],"names":[],"mappings":"AAgVA,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2GrE"}
|
|
@@ -157,7 +157,10 @@ async function signPaymentCommand(options) {
|
|
|
157
157
|
if (!wallet) {
|
|
158
158
|
throw new ClientError('No wallet configured. Create one with: mcpc x402 init');
|
|
159
159
|
}
|
|
160
|
-
const
|
|
160
|
+
const schemePreference = options.scheme === 'upto' || options.scheme === 'exact' || options.scheme === 'auto'
|
|
161
|
+
? options.scheme
|
|
162
|
+
: 'auto';
|
|
163
|
+
const { header, accept } = parsePaymentRequired(options.paymentRequired, schemePreference);
|
|
161
164
|
let amountOverride;
|
|
162
165
|
if (options.amount) {
|
|
163
166
|
const amountUsd = parseFloat(options.amount);
|
|
@@ -172,6 +175,7 @@ async function signPaymentCommand(options) {
|
|
|
172
175
|
resource: header.resource,
|
|
173
176
|
...(amountOverride !== undefined && { amountOverride }),
|
|
174
177
|
...(expiryOverride !== undefined && { expiryOverride }),
|
|
178
|
+
...(options.noApprove === true && { skipPermit2Approval: true }),
|
|
175
179
|
});
|
|
176
180
|
if (options.outputMode === 'json') {
|
|
177
181
|
console.log(formatJson({
|
|
@@ -227,8 +231,10 @@ export async function handleX402Command(args) {
|
|
|
227
231
|
.helpCommand('help [command]', 'Display help for command')
|
|
228
232
|
.addHelpText('after', `
|
|
229
233
|
${chalk.bold('sign options:')}
|
|
230
|
-
--amount <usd>
|
|
231
|
-
--expiry <seconds>
|
|
234
|
+
--amount <usd> Override amount in USD (for upto: max authorization cap)
|
|
235
|
+
--expiry <seconds> Override expiry in seconds
|
|
236
|
+
--scheme <preference> Payment scheme: auto (default), upto, or exact
|
|
237
|
+
--no-approve Skip the upto Permit2 allowance check & auto-approval`);
|
|
232
238
|
const resolveOutputMode = (cmd) => {
|
|
233
239
|
const opts = cmd.optsWithGlobals();
|
|
234
240
|
return opts.json ? 'json' : 'human';
|
|
@@ -261,13 +267,17 @@ ${chalk.bold('sign options:')}
|
|
|
261
267
|
.command('sign <payment-required>')
|
|
262
268
|
.description('Sign a payment using the wallet')
|
|
263
269
|
.helpOption('-h, --help', 'Display help')
|
|
264
|
-
.option('--amount <usd>', 'Override amount in USD')
|
|
270
|
+
.option('--amount <usd>', 'Override amount in USD (for upto this sets the max authorization cap)')
|
|
265
271
|
.option('--expiry <seconds>', 'Override expiry in seconds')
|
|
272
|
+
.option('--scheme <auto|upto|exact>', 'Payment scheme preference (default: auto)', 'auto')
|
|
273
|
+
.option('--no-approve', 'For the upto scheme: skip the on-chain Permit2 allowance check & auto-approval')
|
|
266
274
|
.action(async (paymentRequired, opts, cmd) => {
|
|
267
275
|
await signPaymentCommand({
|
|
268
276
|
paymentRequired,
|
|
269
277
|
amount: opts.amount,
|
|
270
278
|
expiry: opts.expiry,
|
|
279
|
+
scheme: opts.scheme,
|
|
280
|
+
noApprove: opts.approve === false,
|
|
271
281
|
outputMode: resolveOutputMode(cmd),
|
|
272
282
|
});
|
|
273
283
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../../../src/cli/commands/x402.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../../../src/cli/commands/x402.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAY,MAAM,MAAM,CAAC;AAC9F,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAM7E,MAAM,aAAa,GAAG,CAAC,CAAC;AAKxB,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAKD,KAAK,UAAU,kBAAkB,CAAC,OAAe;IAC/C,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CACT,EAAE;SACC,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC;AAMD,KAAK,UAAU,UAAU,CAAC,OAAmC;IAC3D,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,CAAC;IACnC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CACnB,mCAAmC,QAAQ,CAAC,OAAO,kCAAkC,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,UAAU,CAAC;QACf,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU;QACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,aAAa,CACX,6FAA6F,CAC9F,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACrF,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAMD,KAAK,UAAU,YAAY,CAAC,OAG3B;IACC,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,CAAC;IACnC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CACnB,mCAAmC,QAAQ,CAAC,OAAO,kCAAkC,CACtF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,mBAAmB,CAAC,GAAU,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CACnB,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,CAAC;QACf,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,aAAa,CACX,6FAA6F,CAC9F,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACrF,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAMD,MAAM,YAAY,GAAG,4CAA4C,CAAC;AAElE,KAAK,UAAU,UAAU,CAAC,OAAmC;IAC3D,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI,CAAC,0BAA0B,CAAC;KAC5C,CAAC,CAAC;IAEH,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,IAAI,WAAW,GAAG,GAAG,CAAC;IACtB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpC,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAc,EAAE,CAAC;YAC3D,YAAY,CAAC,YAAY,CAAC;gBACxB,OAAO,EAAE,YAAY;gBACrB,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,MAAM,CAAC,OAAc,CAAC;aAC9B,CAAC;SACH,CAAC,CAAC;QAEH,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACT,UAAU,CAAC;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,YAAY;gBACpB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC;oBACE,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,WAAW;iBAClB;SACN,CAAC,CACH,CAAC;QACF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAMD,KAAK,UAAU,eAAe,CAAC,OAAmC;IAChE,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAeD,KAAK,UAAU,kBAAkB,CAAC,OAAoB;IACpD,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,WAAW,CAAC,uDAAuD,CAAC,CAAC;IACjF,CAAC;IAGD,MAAM,gBAAgB,GACpB,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QAClF,CAAC,CAAC,OAAO,CAAC,MAAM;QAChB,CAAC,CAAC,MAAM,CAAC;IAGb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAG3F,IAAI,cAAkC,CAAC;IACvC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;YACpC,MAAM,IAAI,WAAW,CAAC,qCAAqC,CAAC,CAAC;QAC/D,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAGjF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;QAC/B,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;QAClE,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,CAAC;QACvD,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,CAAC;QACvD,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;KACjE,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACT,UAAU,CAAC;YACT,gBAAgB,EAAE,MAAM,CAAC,sBAAsB;YAC/C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,SAAS;YACxB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YACtD,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;SAC1C,CAAC,CACH,CAAC;QACF,OAAO;IACT,CAAC;IAGD,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,2BAA2B,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE/F,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CACT,UAAU,CACR,gBAAgB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CACpG,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;QACE,GAAG,EAAE;YACH,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,GAAG,WAAW,eAAe;gBAClC,OAAO,EAAE,EAAE,mBAAmB,EAAE,MAAM,CAAC,sBAAsB,EAAE;aAChE;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF;SACE,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;SACpB,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc;IACpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,2DAA2D,CAAC,CAAC;IAE5E,OAAO,CAAC,aAAa,CAAC;QACpB,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACpC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;KAC9C,CAAC,CAAC;IAGH,OAAO;SACJ,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC;SAC3C,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC;SACxC,WAAW,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;SACzD,WAAW,CACV,OAAO,EACP;EACJ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;;;;+EAIkD,CAC1E,CAAC;IAEJ,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAc,EAAE;QACrD,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACtC,CAAC,CAAC;IAEF,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,yBAAyB,CAAC;SAClC,WAAW,CAAC,iCAAiC,CAAC;SAC9C,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC;SACxC,MAAM,CACL,gBAAgB,EAChB,uEAAuE,CACxE;SACA,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;SAC1D,MAAM,CAAC,4BAA4B,EAAE,2CAA2C,EAAE,MAAM,CAAC;SACzF,MAAM,CACL,cAAc,EACd,gFAAgF,CACjF;SACA,MAAM,CACL,KAAK,EACH,eAAe,EACf,IAA8E,EAC9E,GAAG,EACH,EAAE;QAEF,MAAM,kBAAkB,CAAC;YACvB,eAAe;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK;YACjC,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC;SACnC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAGJ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -7,16 +7,19 @@ import chalk from 'chalk';
|
|
|
7
7
|
import { formatJson, formatJsonError, rainbow, theme } from './output.js';
|
|
8
8
|
import * as tools from './commands/tools.js';
|
|
9
9
|
import * as resources from './commands/resources.js';
|
|
10
|
+
import * as skills from './commands/skills.js';
|
|
10
11
|
import * as prompts from './commands/prompts.js';
|
|
11
12
|
import * as sessions from './commands/sessions.js';
|
|
12
13
|
import * as logging from './commands/logging.js';
|
|
13
14
|
import * as utilities from './commands/utilities.js';
|
|
15
|
+
import * as logs from './commands/logs.js';
|
|
14
16
|
import * as auth from './commands/auth.js';
|
|
15
17
|
import * as tasks from './commands/tasks.js';
|
|
16
18
|
import * as grepCmd from './commands/grep.js';
|
|
17
19
|
import { handleX402Command } from './commands/x402.js';
|
|
18
20
|
import { clean } from './commands/clean.js';
|
|
19
|
-
import {
|
|
21
|
+
import { X402_SCHEME_PREFERENCES } from '../lib/index.js';
|
|
22
|
+
import { extractOptions, preProcessX402Argv, getVerboseFromEnv, getJsonFromEnv, validateOptions, validateArgValues, parseServerArg, hasSubcommand, optionTakesValue, suggestCommand, KNOWN_COMMANDS, KNOWN_SESSION_COMMANDS, } from './parser.js';
|
|
20
23
|
import { createRequire } from 'module';
|
|
21
24
|
const { version: mcpcVersion } = createRequire(import.meta.url)('../../package.json');
|
|
22
25
|
{
|
|
@@ -32,12 +35,12 @@ function getOptionsFromCommand(command) {
|
|
|
32
35
|
if (json)
|
|
33
36
|
setJsonMode(true);
|
|
34
37
|
const options = {
|
|
35
|
-
outputMode:
|
|
38
|
+
outputMode: json ? 'json' : 'human',
|
|
36
39
|
};
|
|
37
40
|
if (opts.timeout) {
|
|
38
41
|
const timeout = parseInt(opts.timeout, 10);
|
|
39
42
|
if (isNaN(timeout) || timeout <= 0) {
|
|
40
|
-
throw new
|
|
43
|
+
throw new ClientError(`Invalid --timeout value: "${opts.timeout}". Must be a positive number (seconds).`);
|
|
41
44
|
}
|
|
42
45
|
options.timeout = timeout;
|
|
43
46
|
}
|
|
@@ -49,8 +52,15 @@ function getOptionsFromCommand(command) {
|
|
|
49
52
|
}
|
|
50
53
|
if (verbose)
|
|
51
54
|
options.verbose = verbose;
|
|
52
|
-
if (opts.x402)
|
|
53
|
-
options.x402 =
|
|
55
|
+
if (opts.x402 === true) {
|
|
56
|
+
options.x402 = 'auto';
|
|
57
|
+
}
|
|
58
|
+
else if (typeof opts.x402 === 'string') {
|
|
59
|
+
if (!X402_SCHEME_PREFERENCES.includes(opts.x402)) {
|
|
60
|
+
throw new ClientError(`Invalid --x402 value: "${opts.x402}". Expected one of ${X402_SCHEME_PREFERENCES.join(', ')}, or pass --x402 with no value for the default.`);
|
|
61
|
+
}
|
|
62
|
+
options.x402 = opts.x402;
|
|
63
|
+
}
|
|
54
64
|
if (opts.insecure)
|
|
55
65
|
options.insecure = true;
|
|
56
66
|
if (opts.schema)
|
|
@@ -58,7 +68,7 @@ function getOptionsFromCommand(command) {
|
|
|
58
68
|
if (opts.schemaMode) {
|
|
59
69
|
const mode = opts.schemaMode;
|
|
60
70
|
if (mode !== 'strict' && mode !== 'compatible' && mode !== 'ignore') {
|
|
61
|
-
throw new
|
|
71
|
+
throw new ClientError(`Invalid --schema-mode value: "${mode}". Valid modes are: strict, compatible, ignore`);
|
|
62
72
|
}
|
|
63
73
|
options.schemaMode = mode;
|
|
64
74
|
}
|
|
@@ -67,7 +77,7 @@ function getOptionsFromCommand(command) {
|
|
|
67
77
|
if (opts.maxChars) {
|
|
68
78
|
const maxChars = parseInt(opts.maxChars, 10);
|
|
69
79
|
if (isNaN(maxChars) || maxChars <= 0) {
|
|
70
|
-
throw new
|
|
80
|
+
throw new ClientError(`Invalid --max-chars value: "${opts.maxChars}". Must be a positive number (characters).`);
|
|
71
81
|
}
|
|
72
82
|
options.maxChars = maxChars;
|
|
73
83
|
}
|
|
@@ -80,6 +90,7 @@ function jsonHelp(description, shape, schemaUrl) {
|
|
|
80
90
|
}
|
|
81
91
|
const SCHEMA_BASE = 'https://modelcontextprotocol.io/specification/2025-11-25/schema';
|
|
82
92
|
async function main() {
|
|
93
|
+
process.argv = preProcessX402Argv(process.argv);
|
|
83
94
|
const args = process.argv.slice(2);
|
|
84
95
|
const handleExit = () => {
|
|
85
96
|
void closeFileLogger().then(() => {
|
|
@@ -152,9 +163,16 @@ async function main() {
|
|
|
152
163
|
const { json } = extractOptions(args);
|
|
153
164
|
if (json)
|
|
154
165
|
setJsonMode(true);
|
|
155
|
-
await sessions.listSessionsAndAuthProfiles({
|
|
166
|
+
const { hasSessions } = await sessions.listSessionsAndAuthProfiles({
|
|
167
|
+
outputMode: json ? 'json' : 'human',
|
|
168
|
+
});
|
|
156
169
|
if (!json) {
|
|
157
|
-
console.log('
|
|
170
|
+
console.log('');
|
|
171
|
+
if (hasSessions) {
|
|
172
|
+
console.log('To view server capabilities and tools, run: mcpc @session');
|
|
173
|
+
}
|
|
174
|
+
console.log('For usage information, run: mcpc --help');
|
|
175
|
+
console.log('');
|
|
158
176
|
}
|
|
159
177
|
await closeFileLogger();
|
|
160
178
|
return;
|
|
@@ -307,12 +325,15 @@ ${chalk.bold('MCP session commands (after connecting):')}
|
|
|
307
325
|
<@session> ${theme.cyan('resources-subscribe')} <uri>
|
|
308
326
|
<@session> ${theme.cyan('resources-unsubscribe')} <uri>
|
|
309
327
|
<@session> ${theme.cyan('resources-templates-list')}
|
|
328
|
+
<@session> ${theme.cyan('skills-list')}
|
|
329
|
+
<@session> ${theme.cyan('skills-get')} <name> [--raw]
|
|
310
330
|
<@session> ${theme.cyan('tasks-list')}
|
|
311
331
|
<@session> ${theme.cyan('tasks-get')} <taskId>
|
|
312
332
|
<@session> ${theme.cyan('tasks-result')} <taskId>
|
|
313
333
|
<@session> ${theme.cyan('tasks-cancel')} <taskId>
|
|
314
334
|
<@session> ${theme.cyan('logging-set-level')} <level>
|
|
315
335
|
<@session> ${theme.cyan('ping')}
|
|
336
|
+
<@session> ${theme.cyan('logs')} [-n N] [--follow] [--since 1h]
|
|
316
337
|
|
|
317
338
|
Run "mcpc" without arguments to show active sessions and OAuth profiles.
|
|
318
339
|
Run "mcpc --json" to get the same data as \`{ sessions: [...], profiles: [...] }\`.
|
|
@@ -320,7 +341,7 @@ Run "mcpc --json" to get the same data as \`{ sessions: [...], profiles: [...] }
|
|
|
320
341
|
Full docs: ${docsUrl}`);
|
|
321
342
|
program
|
|
322
343
|
.command('connect [server] [@session]')
|
|
323
|
-
.usage('<server> [@session]')
|
|
344
|
+
.usage('[<server>] [@session]')
|
|
324
345
|
.description('Connect to an MCP server and start a new named @session')
|
|
325
346
|
.option('-H, --header <header>', 'HTTP header (can be repeated)')
|
|
326
347
|
.option('--profile <name>', 'OAuth profile to use ("default" if skipped)')
|
|
@@ -328,19 +349,21 @@ Full docs: ${docsUrl}`);
|
|
|
328
349
|
.option('--proxy <[host:]port>', 'Start proxy MCP server for session')
|
|
329
350
|
.option('--proxy-bearer-token <token>', 'Require authentication for access to proxy server')
|
|
330
351
|
.option('--stdio', 'Launch all local stdio servers from selected config files')
|
|
331
|
-
.option('--x402', 'Enable x402 auto-payment using the configured wallet')
|
|
352
|
+
.option('--x402 [scheme]', 'Enable x402 auto-payment using the configured wallet; optional scheme: auto (default, prefer upto), upto, or exact.')
|
|
332
353
|
.addHelpText('after', `
|
|
333
354
|
${chalk.bold('Server formats:')}
|
|
334
355
|
mcp.apify.com Remote HTTP server (https:// auto-added)
|
|
335
356
|
~/.vscode/mcp.json:puppeteer Config file entry (file:entry)
|
|
336
357
|
~/.vscode/mcp.json Config file — connect every entry
|
|
337
|
-
${chalk.dim('(no server)')}
|
|
358
|
+
${chalk.dim('(no server)'.padEnd(28))} Auto-discover configs and connect everything
|
|
338
359
|
|
|
339
360
|
${chalk.bold('Auto-discovery (no server arg):')}
|
|
340
361
|
Scans ./ and ~ for .mcp.json, mcp.json, mcp_config.json, .cursor/mcp.json,
|
|
341
362
|
.vscode/mcp.json, .kiro/settings/mcp.json, ~/.claude.json,
|
|
342
363
|
~/.codeium/windsurf/mcp_config.json, plus VS Code & Claude Desktop configs.
|
|
343
364
|
Set APIFY_API_TOKEN to auto-connect mcp.apify.com as @apify.
|
|
365
|
+
Without --json, returns right away without waiting for connections to
|
|
366
|
+
finish; --json waits and reports each server's details.
|
|
344
367
|
|
|
345
368
|
${chalk.bold('Session name:')}
|
|
346
369
|
Omit @session to auto-generate from the server (mcp.apify.com → @apify)
|
|
@@ -349,8 +372,8 @@ ${chalk.bold('Session name:')}
|
|
|
349
372
|
|
|
350
373
|
${chalk.bold('Stdio servers (command-based, run locally):')}
|
|
351
374
|
Config entries spawn the command on connect, even if the handshake
|
|
352
|
-
later fails — only connect to configs you trust.
|
|
353
|
-
|
|
375
|
+
later fails — only connect to configs you trust. View the bridge log
|
|
376
|
+
with: mcpc <@session> logs. Bulk connects skip stdio by default;
|
|
354
377
|
pass --stdio to include them.
|
|
355
378
|
${jsonHelp('Array of `InitializeResult` objects (one per session), extended with `toolNames` and `_mcpc` metadata', '`[{ protocolVersion?, capabilities?, serverInfo?, instructions?, toolNames?, _mcpc: { sessionName, server?, ... }]`', `${SCHEMA_BASE}#initializeresult`)}`)
|
|
356
379
|
.action(async (server, sessionName, opts, command) => {
|
|
@@ -371,9 +394,11 @@ ${jsonHelp('Array of `InitializeResult` objects (one per session), extended with
|
|
|
371
394
|
...(opts.proxy && { proxy: opts.proxy }),
|
|
372
395
|
...(opts.proxyBearerToken && { proxyBearerToken: opts.proxyBearerToken }),
|
|
373
396
|
...(opts.stdio && { stdio: true }),
|
|
374
|
-
...(
|
|
397
|
+
...(globalOpts.x402 && { x402: globalOpts.x402 }),
|
|
375
398
|
...(globalOpts.insecure && { insecure: true }),
|
|
376
399
|
});
|
|
400
|
+
if (globalOpts.outputMode === 'human')
|
|
401
|
+
console.log('');
|
|
377
402
|
return;
|
|
378
403
|
}
|
|
379
404
|
const parsed = parseServerArg(server);
|
|
@@ -392,7 +417,7 @@ ${jsonHelp('Array of `InitializeResult` objects (one per session), extended with
|
|
|
392
417
|
...(opts.proxy && { proxy: opts.proxy }),
|
|
393
418
|
...(opts.proxyBearerToken && { proxyBearerToken: opts.proxyBearerToken }),
|
|
394
419
|
...(opts.stdio && { stdio: true }),
|
|
395
|
-
...(
|
|
420
|
+
...(globalOpts.x402 && { x402: globalOpts.x402 }),
|
|
396
421
|
...(globalOpts.insecure && { insecure: true }),
|
|
397
422
|
});
|
|
398
423
|
return;
|
|
@@ -412,7 +437,7 @@ ${jsonHelp('Array of `InitializeResult` objects (one per session), extended with
|
|
|
412
437
|
config: parsed.file,
|
|
413
438
|
proxy: opts.proxy,
|
|
414
439
|
proxyBearerToken: opts.proxyBearerToken,
|
|
415
|
-
x402:
|
|
440
|
+
...(globalOpts.x402 && { x402: globalOpts.x402 }),
|
|
416
441
|
...(globalOpts.insecure && { insecure: true }),
|
|
417
442
|
});
|
|
418
443
|
}
|
|
@@ -422,7 +447,7 @@ ${jsonHelp('Array of `InitializeResult` objects (one per session), extended with
|
|
|
422
447
|
...(headers && { headers }),
|
|
423
448
|
proxy: opts.proxy,
|
|
424
449
|
proxyBearerToken: opts.proxyBearerToken,
|
|
425
|
-
x402:
|
|
450
|
+
...(globalOpts.x402 && { x402: globalOpts.x402 }),
|
|
426
451
|
...(globalOpts.insecure && { insecure: true }),
|
|
427
452
|
});
|
|
428
453
|
}
|
|
@@ -449,9 +474,9 @@ ${jsonHelp('Array of `InitializeResult` objects (one per session), extended with
|
|
|
449
474
|
await sessions.restartSession(sessionName, getOptionsFromCommand(command));
|
|
450
475
|
});
|
|
451
476
|
program
|
|
452
|
-
.command('shell [@session]')
|
|
477
|
+
.command('shell [@session]', { hidden: true })
|
|
453
478
|
.usage('<@session>')
|
|
454
|
-
.description('Open interactive shell for a session')
|
|
479
|
+
.description('Open interactive shell for a session (deprecated)')
|
|
455
480
|
.action(async (sessionName) => {
|
|
456
481
|
if (!sessionName) {
|
|
457
482
|
throw new ClientError('Missing required argument: @session\n\nExample: mcpc shell @myapp');
|
|
@@ -632,9 +657,16 @@ ${jsonHelp('`[{ sessionName, tools?: Tool[], resources?: Resource[], prompts?: P
|
|
|
632
657
|
const json = opts.json || getJsonFromEnv();
|
|
633
658
|
if (json)
|
|
634
659
|
setJsonMode(true);
|
|
635
|
-
await sessions.listSessionsAndAuthProfiles({
|
|
660
|
+
const { hasSessions } = await sessions.listSessionsAndAuthProfiles({
|
|
661
|
+
outputMode: json ? 'json' : 'human',
|
|
662
|
+
});
|
|
636
663
|
if (!json) {
|
|
637
|
-
console.log('
|
|
664
|
+
console.log('');
|
|
665
|
+
if (hasSessions) {
|
|
666
|
+
console.log('To view server capabilities and tools, run: mcpc @session');
|
|
667
|
+
}
|
|
668
|
+
console.log('For usage information, run: mcpc --help');
|
|
669
|
+
console.log('');
|
|
638
670
|
}
|
|
639
671
|
});
|
|
640
672
|
return program;
|
|
@@ -670,8 +702,8 @@ function registerSessionCommands(program, session) {
|
|
|
670
702
|
command.parent.outputHelp();
|
|
671
703
|
});
|
|
672
704
|
program
|
|
673
|
-
.command('shell')
|
|
674
|
-
.description('Launch interactive MCP shell.')
|
|
705
|
+
.command('shell', { hidden: true })
|
|
706
|
+
.description('Launch interactive MCP shell (deprecated).')
|
|
675
707
|
.action(async () => {
|
|
676
708
|
await sessions.openShell(session);
|
|
677
709
|
});
|
|
@@ -867,6 +899,32 @@ ${toolsCallCombinedJsonHelp}`)
|
|
|
867
899
|
.action(async (_options, command) => {
|
|
868
900
|
await resources.listResourceTemplates(session, getOptionsFromCommand(command));
|
|
869
901
|
});
|
|
902
|
+
program
|
|
903
|
+
.command('skills-list')
|
|
904
|
+
.description('[EXPERIMENTAL] List agent skills from the server (SEP-2640).')
|
|
905
|
+
.addHelpText('after', `
|
|
906
|
+
${chalk.bold('Discovery:')}
|
|
907
|
+
Tries \`skill://index.json\`, else scans \`skill://*/SKILL.md\`. Types:
|
|
908
|
+
\`skill-md\`, \`mcp-resource-template\`, \`archive\` (use \`resources-read <url>\`).
|
|
909
|
+
${jsonHelp('`[{ name, description, type, url }, ...]`', undefined, 'https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2640')}`)
|
|
910
|
+
.action(async (_options, command) => {
|
|
911
|
+
await skills.listSkills(session, getOptionsFromCommand(command));
|
|
912
|
+
});
|
|
913
|
+
program
|
|
914
|
+
.command('skills-get <name>')
|
|
915
|
+
.description("[EXPERIMENTAL] Read a skill's SKILL.md by name (SEP-2640).")
|
|
916
|
+
.option('--raw', 'Print only the SKILL.md text (Markdown), suitable for piping')
|
|
917
|
+
.addHelpText('after', `
|
|
918
|
+
${chalk.bold('Names:')}
|
|
919
|
+
\`name\`, \`nested/path\`, or \`skill://...\` URI. For \`archive\` skills, use
|
|
920
|
+
\`resources-read <url>\`. With --json, --raw is ignored.
|
|
921
|
+
${jsonHelp('`ReadResourceResult`: `{ contents: [{ uri, mimeType?, text? | blob? }] }`', undefined, `${SCHEMA_BASE}#readresourceresult`)}`)
|
|
922
|
+
.action(async (name, options, command) => {
|
|
923
|
+
await skills.getSkill(session, name, {
|
|
924
|
+
...(options.raw && { raw: true }),
|
|
925
|
+
...getOptionsFromCommand(command),
|
|
926
|
+
});
|
|
927
|
+
});
|
|
870
928
|
program
|
|
871
929
|
.command('prompts-list')
|
|
872
930
|
.description('List all MCP prompts.')
|
|
@@ -906,6 +964,37 @@ ${jsonHelp('`GetPromptResult` object', '`{ description?, messages: [{ role, cont
|
|
|
906
964
|
.action(async (_options, command) => {
|
|
907
965
|
await utilities.ping(session, getOptionsFromCommand(command));
|
|
908
966
|
});
|
|
967
|
+
program
|
|
968
|
+
.command('logs')
|
|
969
|
+
.description('Show or follow the bridge log file for this session.')
|
|
970
|
+
.option('-n, --tail <n>', 'Number of recent lines to show (default: 50)')
|
|
971
|
+
.option('--follow', 'Stream new log lines as they are written')
|
|
972
|
+
.option('--since <value>', 'Only show entries newer than a duration (30s, 5m, 2h, 1d) or ISO timestamp')
|
|
973
|
+
.addHelpText('after', `
|
|
974
|
+
${chalk.bold('Examples:')}
|
|
975
|
+
mcpc ${session} logs Last 50 lines
|
|
976
|
+
mcpc ${session} logs -n 200 Last 200 lines
|
|
977
|
+
mcpc ${session} logs --follow Stream new lines (ESC/Ctrl+C/q to stop)
|
|
978
|
+
mcpc ${session} logs --since 1h Lines from the last hour
|
|
979
|
+
mcpc ${session} logs --since 30m -n 50
|
|
980
|
+
|
|
981
|
+
${chalk.bold('Notes:')}
|
|
982
|
+
Reads ~/.mcpc/logs/bridge-${session}.log and transparently spans
|
|
983
|
+
rotated files (.log.1 … .log.5) when -n or --since needs older lines.
|
|
984
|
+
Continuation lines (e.g. stack traces) fold into the preceding entry's msg.
|
|
985
|
+
${jsonHelp('Array of log records (JSONL when streaming with --follow)', '`[{ time, level, context?, msg } | { raw }, ...]`')}`)
|
|
986
|
+
.action(async (opts, command) => {
|
|
987
|
+
const tail = opts.tail !== undefined ? parseInt(opts.tail, 10) : undefined;
|
|
988
|
+
if (tail !== undefined && (isNaN(tail) || tail < 0)) {
|
|
989
|
+
throw new ClientError(`Invalid --tail value: "${opts.tail}". Must be a non-negative integer.`);
|
|
990
|
+
}
|
|
991
|
+
await logs.showLogs(session, {
|
|
992
|
+
...getOptionsFromCommand(command),
|
|
993
|
+
...(tail !== undefined && { tail }),
|
|
994
|
+
...(opts.follow && { follow: true }),
|
|
995
|
+
...(opts.since && { since: opts.since }),
|
|
996
|
+
});
|
|
997
|
+
});
|
|
909
998
|
}
|
|
910
999
|
function createSessionProgram() {
|
|
911
1000
|
const program = new Command();
|