@apify/mcpc 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +8 -1
- package/.idea/workspace.xml +161 -159
- package/README.md +81 -74
- package/dist/bridge/index.js +26 -3
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/proxy-server.d.ts +1 -0
- package/dist/bridge/proxy-server.d.ts.map +1 -1
- package/dist/bridge/proxy-server.js +3 -2
- package/dist/bridge/proxy-server.js.map +1 -1
- package/dist/cli/commands/sessions.d.ts.map +1 -1
- package/dist/cli/commands/sessions.js +27 -2
- package/dist/cli/commands/sessions.js.map +1 -1
- package/dist/cli/index.js +12 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +80 -2
- package/dist/cli/output.js.map +1 -1
- package/dist/lib/sessions.d.ts.map +1 -1
- package/dist/lib/sessions.js +10 -1
- package/dist/lib/sessions.js.map +1 -1
- package/dist/lib/types.d.ts +12 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/docs/TODOs.md +10 -13
- package/docs/claude-skill/SKILL.md +5 -0
- package/package.json +2 -2
|
@@ -86,7 +86,14 @@
|
|
|
86
86
|
"Bash(xargs:*)",
|
|
87
87
|
"Bash(TESTS=\"failover expired\" ./test/e2e/run.sh:*)",
|
|
88
88
|
"Bash(npm run build:readme:*)",
|
|
89
|
-
"Bash(npx markdown-link-check:*)"
|
|
89
|
+
"Bash(npx markdown-link-check:*)",
|
|
90
|
+
"Bash(markdown-link-check:*)",
|
|
91
|
+
"Bash(git -C /Users/jancurn/Projects/mcpc remote:*)",
|
|
92
|
+
"Bash(TESTS=sessions/notifications ./test/e2e/run.sh:*)",
|
|
93
|
+
"Bash(E2E_ISOLATED_ALL=1 TESTS=sessions/notifications ./test/e2e/run.sh:*)",
|
|
94
|
+
"Bash(TESTS=sessions/notifications E2E_ISOLATED_ALL=1 ./test/e2e/run.sh:*)",
|
|
95
|
+
"Bash(E2E_ISOLATED_ALL=1 ./test/e2e/run.sh:*)",
|
|
96
|
+
"Bash(E2E_ISOLATED_ALL=1 TESTS=proxy ./test/e2e/run.sh:*)"
|
|
90
97
|
]
|
|
91
98
|
}
|
|
92
99
|
}
|
package/.idea/workspace.xml
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
5
|
</component>
|
|
6
6
|
<component name="ChangeListManager">
|
|
7
|
-
<list default="true" id="84071bae-f051-424d-a0e4-1540170b1e94" name="Changes" comment="
|
|
7
|
+
<list default="true" id="84071bae-f051-424d-a0e4-1540170b1e94" name="Changes" comment="Cosmetic">
|
|
8
|
+
<change beforePath="$PROJECT_DIR$/scripts/publish.sh" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/publish.sh" afterDir="false" />
|
|
9
|
+
</list>
|
|
8
10
|
<option name="SHOW_DIALOG" value="false" />
|
|
9
11
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
10
12
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
@@ -79,8 +81,8 @@
|
|
|
79
81
|
<recent name="$PROJECT_DIR$/docs" />
|
|
80
82
|
</key>
|
|
81
83
|
<key name="MoveFile.RECENT_KEYS">
|
|
82
|
-
<recent name="$PROJECT_DIR$/docs/images" />
|
|
83
84
|
<recent name="$PROJECT_DIR$/docs/examples" />
|
|
85
|
+
<recent name="$PROJECT_DIR$/docs/images" />
|
|
84
86
|
<recent name="$PROJECT_DIR$/docs" />
|
|
85
87
|
<recent name="$PROJECT_DIR$/test/coverage" />
|
|
86
88
|
<recent name="$PROJECT_DIR$/test/playground" />
|
|
@@ -110,151 +112,7 @@
|
|
|
110
112
|
<workItem from="1765408613036" duration="57637000" />
|
|
111
113
|
<workItem from="1766127655477" duration="67632000" />
|
|
112
114
|
<workItem from="1766435124813" duration="175094000" />
|
|
113
|
-
<workItem from="1767121309931" duration="
|
|
114
|
-
</task>
|
|
115
|
-
<task id="LOCAL-00273" summary="Fixes and testing">
|
|
116
|
-
<option name="closed" value="true" />
|
|
117
|
-
<created>1767166696824</created>
|
|
118
|
-
<option name="number" value="00273" />
|
|
119
|
-
<option name="presentableId" value="LOCAL-00273" />
|
|
120
|
-
<option name="project" value="LOCAL" />
|
|
121
|
-
<updated>1767166696824</updated>
|
|
122
|
-
</task>
|
|
123
|
-
<task id="LOCAL-00274" summary="Fixes and testing">
|
|
124
|
-
<option name="closed" value="true" />
|
|
125
|
-
<created>1767167128899</created>
|
|
126
|
-
<option name="number" value="00274" />
|
|
127
|
-
<option name="presentableId" value="LOCAL-00274" />
|
|
128
|
-
<option name="project" value="LOCAL" />
|
|
129
|
-
<updated>1767167128899</updated>
|
|
130
|
-
</task>
|
|
131
|
-
<task id="LOCAL-00275" summary="Fixes and testing">
|
|
132
|
-
<option name="closed" value="true" />
|
|
133
|
-
<created>1767169384572</created>
|
|
134
|
-
<option name="number" value="00275" />
|
|
135
|
-
<option name="presentableId" value="LOCAL-00275" />
|
|
136
|
-
<option name="project" value="LOCAL" />
|
|
137
|
-
<updated>1767169384572</updated>
|
|
138
|
-
</task>
|
|
139
|
-
<task id="LOCAL-00276" summary="Texts">
|
|
140
|
-
<option name="closed" value="true" />
|
|
141
|
-
<created>1767171334540</created>
|
|
142
|
-
<option name="number" value="00276" />
|
|
143
|
-
<option name="presentableId" value="LOCAL-00276" />
|
|
144
|
-
<option name="project" value="LOCAL" />
|
|
145
|
-
<updated>1767171334540</updated>
|
|
146
|
-
</task>
|
|
147
|
-
<task id="LOCAL-00277" summary="Lint">
|
|
148
|
-
<option name="closed" value="true" />
|
|
149
|
-
<created>1767171513765</created>
|
|
150
|
-
<option name="number" value="00277" />
|
|
151
|
-
<option name="presentableId" value="LOCAL-00277" />
|
|
152
|
-
<option name="project" value="LOCAL" />
|
|
153
|
-
<updated>1767171513765</updated>
|
|
154
|
-
</task>
|
|
155
|
-
<task id="LOCAL-00278" summary="Improvements">
|
|
156
|
-
<option name="closed" value="true" />
|
|
157
|
-
<created>1767172393111</created>
|
|
158
|
-
<option name="number" value="00278" />
|
|
159
|
-
<option name="presentableId" value="LOCAL-00278" />
|
|
160
|
-
<option name="project" value="LOCAL" />
|
|
161
|
-
<updated>1767172393111</updated>
|
|
162
|
-
</task>
|
|
163
|
-
<task id="LOCAL-00279" summary="Fix">
|
|
164
|
-
<option name="closed" value="true" />
|
|
165
|
-
<created>1767209992232</created>
|
|
166
|
-
<option name="number" value="00279" />
|
|
167
|
-
<option name="presentableId" value="LOCAL-00279" />
|
|
168
|
-
<option name="project" value="LOCAL" />
|
|
169
|
-
<updated>1767209992232</updated>
|
|
170
|
-
</task>
|
|
171
|
-
<task id="LOCAL-00280" summary="Improved server details output">
|
|
172
|
-
<option name="closed" value="true" />
|
|
173
|
-
<created>1767213239200</created>
|
|
174
|
-
<option name="number" value="00280" />
|
|
175
|
-
<option name="presentableId" value="LOCAL-00280" />
|
|
176
|
-
<option name="project" value="LOCAL" />
|
|
177
|
-
<updated>1767213239200</updated>
|
|
178
|
-
</task>
|
|
179
|
-
<task id="LOCAL-00281" summary="Fixes">
|
|
180
|
-
<option name="closed" value="true" />
|
|
181
|
-
<created>1767215424308</created>
|
|
182
|
-
<option name="number" value="00281" />
|
|
183
|
-
<option name="presentableId" value="LOCAL-00281" />
|
|
184
|
-
<option name="project" value="LOCAL" />
|
|
185
|
-
<updated>1767215424308</updated>
|
|
186
|
-
</task>
|
|
187
|
-
<task id="LOCAL-00282" summary="Fixes">
|
|
188
|
-
<option name="closed" value="true" />
|
|
189
|
-
<created>1767215859466</created>
|
|
190
|
-
<option name="number" value="00282" />
|
|
191
|
-
<option name="presentableId" value="LOCAL-00282" />
|
|
192
|
-
<option name="project" value="LOCAL" />
|
|
193
|
-
<updated>1767215859466</updated>
|
|
194
|
-
</task>
|
|
195
|
-
<task id="LOCAL-00283" summary="Fixes of tests">
|
|
196
|
-
<option name="closed" value="true" />
|
|
197
|
-
<created>1767216626423</created>
|
|
198
|
-
<option name="number" value="00283" />
|
|
199
|
-
<option name="presentableId" value="LOCAL-00283" />
|
|
200
|
-
<option name="project" value="LOCAL" />
|
|
201
|
-
<updated>1767216626423</updated>
|
|
202
|
-
</task>
|
|
203
|
-
<task id="LOCAL-00284" summary="Fixes from tests">
|
|
204
|
-
<option name="closed" value="true" />
|
|
205
|
-
<created>1767220006202</created>
|
|
206
|
-
<option name="number" value="00284" />
|
|
207
|
-
<option name="presentableId" value="LOCAL-00284" />
|
|
208
|
-
<option name="project" value="LOCAL" />
|
|
209
|
-
<updated>1767220006203</updated>
|
|
210
|
-
</task>
|
|
211
|
-
<task id="LOCAL-00285" summary="Fixes from/of tests">
|
|
212
|
-
<option name="closed" value="true" />
|
|
213
|
-
<created>1767227252479</created>
|
|
214
|
-
<option name="number" value="00285" />
|
|
215
|
-
<option name="presentableId" value="LOCAL-00285" />
|
|
216
|
-
<option name="project" value="LOCAL" />
|
|
217
|
-
<updated>1767227252479</updated>
|
|
218
|
-
</task>
|
|
219
|
-
<task id="LOCAL-00286" summary="Writing">
|
|
220
|
-
<option name="closed" value="true" />
|
|
221
|
-
<created>1767229207094</created>
|
|
222
|
-
<option name="number" value="00286" />
|
|
223
|
-
<option name="presentableId" value="LOCAL-00286" />
|
|
224
|
-
<option name="project" value="LOCAL" />
|
|
225
|
-
<updated>1767229207094</updated>
|
|
226
|
-
</task>
|
|
227
|
-
<task id="LOCAL-00287" summary="Writing">
|
|
228
|
-
<option name="closed" value="true" />
|
|
229
|
-
<created>1767229385596</created>
|
|
230
|
-
<option name="number" value="00287" />
|
|
231
|
-
<option name="presentableId" value="LOCAL-00287" />
|
|
232
|
-
<option name="project" value="LOCAL" />
|
|
233
|
-
<updated>1767229385596</updated>
|
|
234
|
-
</task>
|
|
235
|
-
<task id="LOCAL-00288" summary="Writing">
|
|
236
|
-
<option name="closed" value="true" />
|
|
237
|
-
<created>1767232209658</created>
|
|
238
|
-
<option name="number" value="00288" />
|
|
239
|
-
<option name="presentableId" value="LOCAL-00288" />
|
|
240
|
-
<option name="project" value="LOCAL" />
|
|
241
|
-
<updated>1767232209658</updated>
|
|
242
|
-
</task>
|
|
243
|
-
<task id="LOCAL-00289" summary="Writing">
|
|
244
|
-
<option name="closed" value="true" />
|
|
245
|
-
<created>1767233383364</created>
|
|
246
|
-
<option name="number" value="00289" />
|
|
247
|
-
<option name="presentableId" value="LOCAL-00289" />
|
|
248
|
-
<option name="project" value="LOCAL" />
|
|
249
|
-
<updated>1767233383364</updated>
|
|
250
|
-
</task>
|
|
251
|
-
<task id="LOCAL-00290" summary="Writing">
|
|
252
|
-
<option name="closed" value="true" />
|
|
253
|
-
<created>1767236572704</created>
|
|
254
|
-
<option name="number" value="00290" />
|
|
255
|
-
<option name="presentableId" value="LOCAL-00290" />
|
|
256
|
-
<option name="project" value="LOCAL" />
|
|
257
|
-
<updated>1767236572704</updated>
|
|
115
|
+
<workItem from="1767121309931" duration="134235000" />
|
|
258
116
|
</task>
|
|
259
117
|
<task id="LOCAL-00291" summary="Writing">
|
|
260
118
|
<option name="closed" value="true" />
|
|
@@ -504,7 +362,151 @@
|
|
|
504
362
|
<option name="project" value="LOCAL" />
|
|
505
363
|
<updated>1767308550740</updated>
|
|
506
364
|
</task>
|
|
507
|
-
<
|
|
365
|
+
<task id="LOCAL-00322" summary="Writing">
|
|
366
|
+
<option name="closed" value="true" />
|
|
367
|
+
<created>1767309101418</created>
|
|
368
|
+
<option name="number" value="00322" />
|
|
369
|
+
<option name="presentableId" value="LOCAL-00322" />
|
|
370
|
+
<option name="project" value="LOCAL" />
|
|
371
|
+
<updated>1767309101418</updated>
|
|
372
|
+
</task>
|
|
373
|
+
<task id="LOCAL-00323" summary="Even more final touches">
|
|
374
|
+
<option name="closed" value="true" />
|
|
375
|
+
<created>1767310688463</created>
|
|
376
|
+
<option name="number" value="00323" />
|
|
377
|
+
<option name="presentableId" value="LOCAL-00323" />
|
|
378
|
+
<option name="project" value="LOCAL" />
|
|
379
|
+
<updated>1767310688463</updated>
|
|
380
|
+
</task>
|
|
381
|
+
<task id="LOCAL-00324" summary="Even more final touches">
|
|
382
|
+
<option name="closed" value="true" />
|
|
383
|
+
<created>1767310736155</created>
|
|
384
|
+
<option name="number" value="00324" />
|
|
385
|
+
<option name="presentableId" value="LOCAL-00324" />
|
|
386
|
+
<option name="project" value="LOCAL" />
|
|
387
|
+
<updated>1767310736155</updated>
|
|
388
|
+
</task>
|
|
389
|
+
<task id="LOCAL-00325" summary="Fixed screenshot URL">
|
|
390
|
+
<option name="closed" value="true" />
|
|
391
|
+
<created>1767311229429</created>
|
|
392
|
+
<option name="number" value="00325" />
|
|
393
|
+
<option name="presentableId" value="LOCAL-00325" />
|
|
394
|
+
<option name="project" value="LOCAL" />
|
|
395
|
+
<updated>1767311229430</updated>
|
|
396
|
+
</task>
|
|
397
|
+
<task id="LOCAL-00326" summary="Writing">
|
|
398
|
+
<option name="closed" value="true" />
|
|
399
|
+
<created>1767313279766</created>
|
|
400
|
+
<option name="number" value="00326" />
|
|
401
|
+
<option name="presentableId" value="LOCAL-00326" />
|
|
402
|
+
<option name="project" value="LOCAL" />
|
|
403
|
+
<updated>1767313279766</updated>
|
|
404
|
+
</task>
|
|
405
|
+
<task id="LOCAL-00327" summary="Better formatting of prompts, cosmetic improvements">
|
|
406
|
+
<option name="closed" value="true" />
|
|
407
|
+
<created>1767316851694</created>
|
|
408
|
+
<option name="number" value="00327" />
|
|
409
|
+
<option name="presentableId" value="LOCAL-00327" />
|
|
410
|
+
<option name="project" value="LOCAL" />
|
|
411
|
+
<updated>1767316851695</updated>
|
|
412
|
+
</task>
|
|
413
|
+
<task id="LOCAL-00328" summary="Added Session.notifications with timestamps for list changes tracking">
|
|
414
|
+
<option name="closed" value="true" />
|
|
415
|
+
<created>1767327019221</created>
|
|
416
|
+
<option name="number" value="00328" />
|
|
417
|
+
<option name="presentableId" value="LOCAL-00328" />
|
|
418
|
+
<option name="project" value="LOCAL" />
|
|
419
|
+
<updated>1767327019221</updated>
|
|
420
|
+
</task>
|
|
421
|
+
<task id="LOCAL-00329" summary="Renamed _meta to _mcpc, it conforms the MCP specs and is clearer">
|
|
422
|
+
<option name="closed" value="true" />
|
|
423
|
+
<created>1767337283710</created>
|
|
424
|
+
<option name="number" value="00329" />
|
|
425
|
+
<option name="presentableId" value="LOCAL-00329" />
|
|
426
|
+
<option name="project" value="LOCAL" />
|
|
427
|
+
<updated>1767337283710</updated>
|
|
428
|
+
</task>
|
|
429
|
+
<task id="LOCAL-00330" summary="Writing">
|
|
430
|
+
<option name="closed" value="true" />
|
|
431
|
+
<created>1767338278243</created>
|
|
432
|
+
<option name="number" value="00330" />
|
|
433
|
+
<option name="presentableId" value="LOCAL-00330" />
|
|
434
|
+
<option name="project" value="LOCAL" />
|
|
435
|
+
<updated>1767338278243</updated>
|
|
436
|
+
</task>
|
|
437
|
+
<task id="LOCAL-00331" summary="Writing">
|
|
438
|
+
<option name="closed" value="true" />
|
|
439
|
+
<created>1767339807556</created>
|
|
440
|
+
<option name="number" value="00331" />
|
|
441
|
+
<option name="presentableId" value="LOCAL-00331" />
|
|
442
|
+
<option name="project" value="LOCAL" />
|
|
443
|
+
<updated>1767339807556</updated>
|
|
444
|
+
</task>
|
|
445
|
+
<task id="LOCAL-00332" summary="Writing">
|
|
446
|
+
<option name="closed" value="true" />
|
|
447
|
+
<created>1767339937034</created>
|
|
448
|
+
<option name="number" value="00332" />
|
|
449
|
+
<option name="presentableId" value="LOCAL-00332" />
|
|
450
|
+
<option name="project" value="LOCAL" />
|
|
451
|
+
<updated>1767339937034</updated>
|
|
452
|
+
</task>
|
|
453
|
+
<task id="LOCAL-00333" summary="Writing">
|
|
454
|
+
<option name="closed" value="true" />
|
|
455
|
+
<created>1767342339122</created>
|
|
456
|
+
<option name="number" value="00333" />
|
|
457
|
+
<option name="presentableId" value="LOCAL-00333" />
|
|
458
|
+
<option name="project" value="LOCAL" />
|
|
459
|
+
<updated>1767342339122</updated>
|
|
460
|
+
</task>
|
|
461
|
+
<task id="LOCAL-00334" summary="Writing">
|
|
462
|
+
<option name="closed" value="true" />
|
|
463
|
+
<created>1767342626072</created>
|
|
464
|
+
<option name="number" value="00334" />
|
|
465
|
+
<option name="presentableId" value="LOCAL-00334" />
|
|
466
|
+
<option name="project" value="LOCAL" />
|
|
467
|
+
<updated>1767342626072</updated>
|
|
468
|
+
</task>
|
|
469
|
+
<task id="LOCAL-00335" summary="Fixes">
|
|
470
|
+
<option name="closed" value="true" />
|
|
471
|
+
<created>1767348069509</created>
|
|
472
|
+
<option name="number" value="00335" />
|
|
473
|
+
<option name="presentableId" value="LOCAL-00335" />
|
|
474
|
+
<option name="project" value="LOCAL" />
|
|
475
|
+
<updated>1767348069509</updated>
|
|
476
|
+
</task>
|
|
477
|
+
<task id="LOCAL-00336" summary="Fixes">
|
|
478
|
+
<option name="closed" value="true" />
|
|
479
|
+
<created>1767348531654</created>
|
|
480
|
+
<option name="number" value="00336" />
|
|
481
|
+
<option name="presentableId" value="LOCAL-00336" />
|
|
482
|
+
<option name="project" value="LOCAL" />
|
|
483
|
+
<updated>1767348531655</updated>
|
|
484
|
+
</task>
|
|
485
|
+
<task id="LOCAL-00337" summary="Fixes of proxy">
|
|
486
|
+
<option name="closed" value="true" />
|
|
487
|
+
<created>1767349281892</created>
|
|
488
|
+
<option name="number" value="00337" />
|
|
489
|
+
<option name="presentableId" value="LOCAL-00337" />
|
|
490
|
+
<option name="project" value="LOCAL" />
|
|
491
|
+
<updated>1767349281892</updated>
|
|
492
|
+
</task>
|
|
493
|
+
<task id="LOCAL-00338" summary="Cosmetic">
|
|
494
|
+
<option name="closed" value="true" />
|
|
495
|
+
<created>1767373372770</created>
|
|
496
|
+
<option name="number" value="00338" />
|
|
497
|
+
<option name="presentableId" value="LOCAL-00338" />
|
|
498
|
+
<option name="project" value="LOCAL" />
|
|
499
|
+
<updated>1767373372770</updated>
|
|
500
|
+
</task>
|
|
501
|
+
<task id="LOCAL-00339" summary="Cosmetic">
|
|
502
|
+
<option name="closed" value="true" />
|
|
503
|
+
<created>1767373712185</created>
|
|
504
|
+
<option name="number" value="00339" />
|
|
505
|
+
<option name="presentableId" value="LOCAL-00339" />
|
|
506
|
+
<option name="project" value="LOCAL" />
|
|
507
|
+
<updated>1767373712185</updated>
|
|
508
|
+
</task>
|
|
509
|
+
<option name="localTasksCounter" value="340" />
|
|
508
510
|
<servers />
|
|
509
511
|
</component>
|
|
510
512
|
<component name="TypeScriptGeneratedFilesManager">
|
|
@@ -585,13 +587,6 @@
|
|
|
585
587
|
</option>
|
|
586
588
|
</component>
|
|
587
589
|
<component name="VcsManagerConfiguration">
|
|
588
|
-
<MESSAGE value="Lint" />
|
|
589
|
-
<MESSAGE value="Improvements" />
|
|
590
|
-
<MESSAGE value="Fix" />
|
|
591
|
-
<MESSAGE value="Improved server details output" />
|
|
592
|
-
<MESSAGE value="Fixes of tests" />
|
|
593
|
-
<MESSAGE value="Fixes from tests" />
|
|
594
|
-
<MESSAGE value="Fixes from/of tests" />
|
|
595
590
|
<MESSAGE value="Small fixes" />
|
|
596
591
|
<MESSAGE value="Fixes from testing" />
|
|
597
592
|
<MESSAGE value="Got rid of --args-files and --args, added stdin for tool/prompt args" />
|
|
@@ -600,16 +595,23 @@
|
|
|
600
595
|
<MESSAGE value="Tests" />
|
|
601
596
|
<MESSAGE value="Renamed "session" to "connect", it's feels better" />
|
|
602
597
|
<MESSAGE value="Fixed --timeout" />
|
|
603
|
-
<MESSAGE value="Fixes" />
|
|
604
|
-
<MESSAGE value="Cosmetic" />
|
|
605
598
|
<MESSAGE value="Implemented --proxy command" />
|
|
606
599
|
<MESSAGE value="Writing and tests" />
|
|
607
600
|
<MESSAGE value="Tests and nits" />
|
|
608
601
|
<MESSAGE value="More tests" />
|
|
609
|
-
<MESSAGE value="Writing" />
|
|
610
602
|
<MESSAGE value="Renamed "dead" to "crashed" session, final touches" />
|
|
611
603
|
<MESSAGE value="Final touches" />
|
|
612
604
|
<MESSAGE value="More final touches" />
|
|
613
|
-
<
|
|
605
|
+
<MESSAGE value="Even more final touches" />
|
|
606
|
+
<MESSAGE value="Fixed screenshot URL" />
|
|
607
|
+
<MESSAGE value="Better formatting of prompts, cosmetic improvements" />
|
|
608
|
+
<MESSAGE value="Added Session.notifications with timestamps for list changes tracking" />
|
|
609
|
+
<MESSAGE value="Renamed _meta to _mcpc, it conforms the MCP specs and is more clear" />
|
|
610
|
+
<MESSAGE value="Renamed _meta to _mcpc, it conforms the MCP specs and is clearer" />
|
|
611
|
+
<MESSAGE value="Writing" />
|
|
612
|
+
<MESSAGE value="Fixes" />
|
|
613
|
+
<MESSAGE value="Fixes of proxy" />
|
|
614
|
+
<MESSAGE value="Cosmetic" />
|
|
615
|
+
<option name="LAST_COMMIT_MESSAGE" value="Cosmetic" />
|
|
614
616
|
</component>
|
|
615
617
|
</project>
|
package/README.md
CHANGED
|
@@ -3,19 +3,11 @@
|
|
|
3
3
|
`mcpc` is a CLI for the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)
|
|
4
4
|
that maps MCP operations to intuitive commands for interactive shell use, scripts, and AI coding agents.
|
|
5
5
|
|
|
6
|
-
`mcpc`
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
It supports all major MCP features, including tools, resources, prompts, asynchronous tasks, and notifications.
|
|
6
|
+
`mcpc` is useful for inspecting MCP servers, scripting,
|
|
7
|
+
and enabling AI coding agents to use MCP ["code mode"](#ai-agents) in shell.
|
|
8
|
+
After all, UNIX-compatible shell script is THE most universal coding language.
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
and enabling AI coding agents to use MCP in ["code mode"](https://www.anthropic.com/engineering/code-execution-with-mcp)
|
|
13
|
-
for better accuracy and lower token usage compared to traditional tool function calling.
|
|
14
|
-
After all, UNIX-compatible shell script is THE most universal coding language, for people and LLMs alike.
|
|
15
|
-
|
|
16
|
-
Note that `mcpc` does not invoke LLMs itself; that's the job of the higher layer.
|
|
17
|
-
|
|
18
|
-

|
|
10
|
+

|
|
19
11
|
|
|
20
12
|
**Key features:**
|
|
21
13
|
- 🌎 **Highly compatible** - Works with any MCP server over Streamable HTTP or stdio.
|
|
@@ -38,7 +30,7 @@ Note that `mcpc` does not invoke LLMs itself; that's the job of the higher layer
|
|
|
38
30
|
- [Sessions](#sessions)
|
|
39
31
|
- [Authentication](#authentication)
|
|
40
32
|
- [MCP proxy](#mcp-proxy)
|
|
41
|
-
- [
|
|
33
|
+
- [AI agents](#ai-agents)
|
|
42
34
|
- [MCP support](#mcp-support)
|
|
43
35
|
- [Configuration](#configuration)
|
|
44
36
|
- [Security](#security)
|
|
@@ -104,20 +96,19 @@ Usage: mcpc [options] <target> [command]
|
|
|
104
96
|
Universal command-line client for the Model Context Protocol (MCP).
|
|
105
97
|
|
|
106
98
|
Options:
|
|
107
|
-
-j, --json
|
|
108
|
-
-c, --config <file>
|
|
109
|
-
-H, --header <header>
|
|
110
|
-
-v, --version
|
|
111
|
-
--verbose
|
|
112
|
-
--profile <name>
|
|
113
|
-
|
|
114
|
-
--schema <
|
|
115
|
-
--
|
|
116
|
-
|
|
117
|
-
--
|
|
118
|
-
--clean[=types]
|
|
119
|
-
|
|
120
|
-
-h, --help Display general help
|
|
99
|
+
-j, --json Output in JSON format for scripting
|
|
100
|
+
-c, --config <file> Path to MCP config JSON file (e.g. ".vscode/mcp.json")
|
|
101
|
+
-H, --header <header> HTTP header for remote MCP server (can be repeated)
|
|
102
|
+
-v, --version Output the version number
|
|
103
|
+
--verbose Enable debug logging
|
|
104
|
+
--profile <name> OAuth profile for the server (default: "default")
|
|
105
|
+
--schema <file> Validate tool/prompt schema against expected schema
|
|
106
|
+
--schema-mode <mode> Schema validation mode: strict, compatible (default), ignore
|
|
107
|
+
--timeout <seconds> Request timeout in seconds (default: 300)
|
|
108
|
+
--proxy <[host:]port> Start proxy MCP server (with "connect" command)
|
|
109
|
+
--proxy-bearer-token <token> Require bearer token for proxy server
|
|
110
|
+
--clean[=types] Clean up mcpc data (types: sessions, logs, profiles, all)
|
|
111
|
+
-h, --help Display general help
|
|
121
112
|
|
|
122
113
|
Targets:
|
|
123
114
|
@<session> Named persistent session (e.g. "@apify")
|
|
@@ -503,10 +494,10 @@ mcpc mcp.apify.com\?tools=docs tools-list
|
|
|
503
494
|
|
|
504
495
|
## MCP proxy
|
|
505
496
|
|
|
506
|
-
For stronger isolation, `mcpc` can expose an MCP session under new local proxy MCP server using the `--proxy` option.
|
|
497
|
+
For stronger isolation, `mcpc` can expose an MCP session under a new local proxy MCP server using the `--proxy` option.
|
|
507
498
|
The proxy forwards all MCP requests to the upstream server but **never exposes the original authentication tokens** to the client.
|
|
508
499
|
This is useful when you want to give someone or something MCP access without revealing your credentials.
|
|
509
|
-
See also [AI
|
|
500
|
+
See also [AI sandboxes](#ai-sandboxes).
|
|
510
501
|
|
|
511
502
|
```bash
|
|
512
503
|
# Human authenticates to a remote server
|
|
@@ -566,9 +557,42 @@ mcpc
|
|
|
566
557
|
```
|
|
567
558
|
|
|
568
559
|
|
|
569
|
-
##
|
|
560
|
+
## AI agents
|
|
561
|
+
|
|
562
|
+
`mcpc` is designed for CLI-enabled AI agents like Claude Code or Codex CLI, supporting both
|
|
563
|
+
interactive **tool calling** and **[code mode](https://www.anthropic.com/engineering/code-execution-with-mcp)**.
|
|
564
|
+
|
|
565
|
+
**Tool calling mode** - Agents call `mcpc` commands to dynamically explore and interact with MCP servers,
|
|
566
|
+
using the default text output. This is similar to how MCP connectors in ChatGPT or Claude work,
|
|
567
|
+
but CLI gives you more flexibility and longer operation timeouts.
|
|
568
|
+
|
|
569
|
+
```bash
|
|
570
|
+
# Discover available tools
|
|
571
|
+
mcpc @server tools-list
|
|
572
|
+
|
|
573
|
+
# Get tool schema
|
|
574
|
+
mcpc @server tools-get search
|
|
575
|
+
|
|
576
|
+
# Call a tool
|
|
577
|
+
mcpc @server tools-call search query:="hello world"
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
**Code mode** - Once agents understand the server's capabilities, they can write shell scripts
|
|
581
|
+
that compose multiple `mcpc` commands with `--json` output. This can be
|
|
582
|
+
[more accurate](https://www.anthropic.com/engineering/code-execution-with-mcp)
|
|
583
|
+
and use fewer tokens than tool calling for complex workflows.
|
|
584
|
+
|
|
585
|
+
```bash
|
|
586
|
+
# AI-generated script using --json for structured data
|
|
587
|
+
mcpc --json @apify tools-call search-actors keywords:="scraper" \
|
|
588
|
+
| jq '.content[0].text | fromjson | .items[0].id' \
|
|
589
|
+
| xargs -I {} mcpc @apify tools-call get-actor actorId:="{}"
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
With [schema validation](#schema-validation), agents can ensure stability of integrations and faster failure recovery.
|
|
593
|
+
Agents, make no harm!
|
|
570
594
|
|
|
571
|
-
|
|
595
|
+
See an [example](./docs/examples/company-lookup.sh) of an AI-generated shell script.
|
|
572
596
|
|
|
573
597
|
### Scripting
|
|
574
598
|
|
|
@@ -587,9 +611,11 @@ for tool in $(mcpc --json @server tools-list | jq -r '.[].name'); do
|
|
|
587
611
|
done
|
|
588
612
|
```
|
|
589
613
|
|
|
614
|
+
For a complete example script, see [`docs/examples/company-lookup.sh`](./docs/examples/company-lookup.sh).
|
|
615
|
+
|
|
590
616
|
### Schema validation
|
|
591
617
|
|
|
592
|
-
Validate tool/prompt schemas to detect breaking changes early:
|
|
618
|
+
Validate tool/prompt schemas using the `--schema` option to detect breaking changes early:
|
|
593
619
|
|
|
594
620
|
```bash
|
|
595
621
|
# Save expected schema
|
|
@@ -599,41 +625,17 @@ mcpc --json @apify tools-get search-actors > expected.json
|
|
|
599
625
|
mcpc @apify tools-call search-actors --schema expected.json keywords:="test"
|
|
600
626
|
```
|
|
601
627
|
|
|
602
|
-
|
|
603
|
-
- `compatible` (default)
|
|
604
|
-
-
|
|
605
|
-
-
|
|
606
|
-
|
|
628
|
+
Available schema validation modes (`--schema-mode`):
|
|
629
|
+
- `compatible` (default)
|
|
630
|
+
- Input schema: new optional fields OK, required fields must have the same type.
|
|
631
|
+
- Output schema: new fields OK, removed required fields cause error.
|
|
632
|
+
- `strict` - Both input and output schemas must match exactly, including all fields, types, and descriptions
|
|
633
|
+
- `ignore` - Skip validation completely (YOLO)
|
|
607
634
|
|
|
608
|
-
### AI
|
|
609
|
-
|
|
610
|
-
`mcpc` is designed for use by AI agents, in both interactive MCP tool calling mode
|
|
611
|
-
and "[code mode](https://blog.cloudflare.com/code-mode/)".
|
|
612
|
-
|
|
613
|
-
- **Tool calling mode** - CLI-based AI agents can dynamically explore and interact with the MCP server, thanks to the default Markdown-ish output.
|
|
614
|
-
Similar to MCP connectors in ChatGPT or Claude, but via CLI and with much longer command timeouts.
|
|
615
|
-
- **Code mode** - AI coding agents can write and execute shell [scripts](#scripting) composing multiple MCP server operations,
|
|
616
|
-
thanks to the `--json` output mode and access to MCP server schemas.
|
|
617
|
-
For well-defined workflow scenarios, this approach can be [more accurate](https://www.anthropic.com/engineering/code-execution-with-mcp)
|
|
618
|
-
and use fewer tokens.
|
|
619
|
-
|
|
620
|
-
AI agents can discover and use tools via shell commands:
|
|
621
|
-
|
|
622
|
-
```bash
|
|
623
|
-
mcpc @server tools-list
|
|
624
|
-
mcpc --json @server tools-get search | jq '.inputSchema'
|
|
625
|
-
mcpc @server tools-call search query:="hello world"
|
|
626
|
-
```
|
|
627
|
-
|
|
628
|
-
and then generate shell scripts to execute sequences of actions,
|
|
629
|
-
with `--schema` checks to ensure stability of integrations and faster failure recovery.
|
|
630
|
-
Agents, make no harm!
|
|
631
|
-
|
|
632
|
-
#### AI sandbox access
|
|
635
|
+
### AI sandboxes
|
|
633
636
|
|
|
634
637
|
To ensure AI coding agents don't perform destructive actions or leak credentials,
|
|
635
|
-
it's always a good idea to run them in a code sandbox
|
|
636
|
-
with limited access to your resources.
|
|
638
|
+
it's always a good idea to run them in a code sandbox with limited access to your resources.
|
|
637
639
|
|
|
638
640
|
The [proxy MCP server](#mcp-proxy) feature provides a security boundary for AI agents:
|
|
639
641
|
|
|
@@ -651,7 +653,7 @@ Local stdio servers will still have access to your local system, and HTTP server
|
|
|
651
653
|
and both can easily perform destructive actions or leak credentials on their own, or let MCP clients do such actions.
|
|
652
654
|
**Always use only trusted local and remote MCP servers and limit their access to the necessary minimum.**
|
|
653
655
|
|
|
654
|
-
|
|
656
|
+
### Agent skills
|
|
655
657
|
|
|
656
658
|
To help Claude Code use `mcpc`, you can install this [Claude skill](./docs/claude-skill/README.md):
|
|
657
659
|
|
|
@@ -678,7 +680,7 @@ To help Claude Code use `mcpc`, you can install this [Claude skill](./docs/claud
|
|
|
678
680
|
|
|
679
681
|
The bridge process manages the full MCP session lifecycle:
|
|
680
682
|
- Performs initialization handshake (`initialize` → `initialized`)
|
|
681
|
-
- Negotiates protocol version
|
|
683
|
+
- Negotiates protocol version and capabilities
|
|
682
684
|
- Fetches server-provided `instructions`
|
|
683
685
|
- Maintains persistent HTTP connections with bidirectional streaming, or stdio bidirectional pipe to subprocess
|
|
684
686
|
- Handles `MCP-Protocol-Version` and `MCP-Session-Id` headers automatically
|
|
@@ -718,15 +720,18 @@ mcpc @apify --json
|
|
|
718
720
|
|
|
719
721
|
In [JSON mode](#json-mode), the resulting object adheres
|
|
720
722
|
to [`InitializeResult`](https://modelcontextprotocol.io/specification/latest/schema#initializeresult) object schema,
|
|
721
|
-
and
|
|
723
|
+
and includes the `_mcpc` field with relevant server/session metadata.
|
|
722
724
|
|
|
723
725
|
```json
|
|
724
726
|
{
|
|
725
|
-
"
|
|
727
|
+
"_mcpc": {
|
|
726
728
|
"sessionName": "@apify",
|
|
727
729
|
"profileName": "default",
|
|
728
730
|
"server": {
|
|
729
731
|
"url": "https://mcp.apify.com"
|
|
732
|
+
},
|
|
733
|
+
"notifications": {
|
|
734
|
+
"tools": { "listChangedAt": "2026-01-01T00:42:58.049Z" }
|
|
730
735
|
}
|
|
731
736
|
},
|
|
732
737
|
"protocolVersion": "2025-06-18",
|
|
@@ -801,8 +806,10 @@ mcpc @apify resources-templates-list
|
|
|
801
806
|
|
|
802
807
|
When connected via a [session](#sessions), `mcpc` automatically handles `list_changed`
|
|
803
808
|
notifications for tools, resources, and prompts.
|
|
804
|
-
The bridge process
|
|
809
|
+
The bridge process tracks when each notification type was last received.
|
|
805
810
|
In [shell mode](#interactive-shell), notifications are displayed in real-time.
|
|
811
|
+
The timestamps are available in JSON output of `mcpc <target> --json` under the `_mcpc.notifications`
|
|
812
|
+
field - see [Server instructions](#server-instructions).
|
|
806
813
|
|
|
807
814
|
#### Server logs
|
|
808
815
|
|
|
@@ -969,7 +976,7 @@ mcpc --clean=all # Delete all sessions, profiles, logs, and sockets
|
|
|
969
976
|
|
|
970
977
|
## Security
|
|
971
978
|
|
|
972
|
-
`mcpc` follows [MCP security best practices](https://modelcontextprotocol.io/specification/
|
|
979
|
+
`mcpc` follows [MCP security best practices](https://modelcontextprotocol.io/specification/latest/basic/security_best_practices).
|
|
973
980
|
MCP enables arbitrary tool execution and data access - treat servers like you treat shells:
|
|
974
981
|
|
|
975
982
|
- Use least-privilege tokens/headers
|
|
@@ -995,7 +1002,7 @@ MCP enables arbitrary tool execution and data access - treat servers like you tr
|
|
|
995
1002
|
|
|
996
1003
|
### AI security
|
|
997
1004
|
|
|
998
|
-
See [AI
|
|
1005
|
+
See [AI sandboxes](#ai-sandboxes) for details.
|
|
999
1006
|
|
|
1000
1007
|
## Errors
|
|
1001
1008
|
|
|
@@ -1050,10 +1057,10 @@ The main `mcpc` process doesn't save log files, but supports [verbose mode](#ver
|
|
|
1050
1057
|
|
|
1051
1058
|
## Development
|
|
1052
1059
|
|
|
1053
|
-
`mcpc` was
|
|
1054
|
-
2025 in North Beach, San Francisco.
|
|
1060
|
+
The initial version of `mcpc` was developed by [Jan Curn](https://x.com/jancurn) of [Apify](https://apify.com)
|
|
1061
|
+
with the help of Claude Code, during late nights over Christmas 2025 in North Beach, San Francisco.
|
|
1055
1062
|
|
|
1056
|
-
See [CONTRIBUTING
|
|
1063
|
+
See [CONTRIBUTING](./CONTRIBUTING.md) for development setup, architecture overview, and contribution guidelines.
|
|
1057
1064
|
|
|
1058
1065
|
## License
|
|
1059
1066
|
|