@mcp-use/inspector 11.0.0 → 12.0.0-canary.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/dist/cdn/inspector.js +417 -411
- package/dist/cli.js +2 -2
- package/dist/server/chunk-3FL7XPEK.js +164 -0
- package/dist/server/chunk-6GW6OAU3.js +322 -0
- package/dist/server/chunk-FB46XEZP.js +71 -0
- package/dist/server/cli.js +2 -2
- package/dist/server/index.js +3 -3
- package/dist/server/middleware.js +3 -3
- package/dist/server/server.js +2 -2
- package/dist/server/shared-static.js +2 -2
- package/dist/server/version.js +1 -1
- package/dist/web/assets/{1c-V6dKK06p.js → 1c-WWqZDUi0.js} +1 -1
- package/dist/web/assets/{abnf-DiECLBuq.js → abnf-809Skn4Z.js} +1 -1
- package/dist/web/assets/{accesslog-DsG_-rEl.js → accesslog-BQZ9CYA0.js} +1 -1
- package/dist/web/assets/{actionscript-sO4lDx1i.js → actionscript-C4IHFxfr.js} +1 -1
- package/dist/web/assets/{ada-B-zvTXhn.js → ada-CpTHgtRn.js} +1 -1
- package/dist/web/assets/{angelscript-lXQgeBTa.js → angelscript-BPyrgr7F.js} +1 -1
- package/dist/web/assets/{apache-B1OzB3hp.js → apache-Bjmqo8ea.js} +1 -1
- package/dist/web/assets/{applescript-DQtCnERW.js → applescript-_IMtUQAx.js} +1 -1
- package/dist/web/assets/{arcade-BQ-MoAgJ.js → arcade-BEfAuJ-n.js} +1 -1
- package/dist/web/assets/{arduino-Dn7qhi9r.js → arduino-BTj1AC_h.js} +1 -1
- package/dist/web/assets/{armasm-DWs-XJT7.js → armasm-tWowMYjo.js} +1 -1
- package/dist/web/assets/{asciidoc-CfsNwaVC.js → asciidoc-Cu1VLIKu.js} +1 -1
- package/dist/web/assets/{aspectj-BHkLsRBH.js → aspectj-BS1sByBm.js} +1 -1
- package/dist/web/assets/{autohotkey-BTNnUYIq.js → autohotkey-D8SRCkGW.js} +1 -1
- package/dist/web/assets/{autoit-Bl9IObpI.js → autoit-Bnu_gieE.js} +1 -1
- package/dist/web/assets/{avrasm-DPb2Vw8d.js → avrasm-VQoSW_mm.js} +1 -1
- package/dist/web/assets/{awk-pHhyq8y5.js → awk-BnA2skyb.js} +1 -1
- package/dist/web/assets/{axapta-DzFD8b1T.js → axapta-DnbMcDoo.js} +1 -1
- package/dist/web/assets/{bash-Bz7PPHtm.js → bash-DWHSg_XE.js} +1 -1
- package/dist/web/assets/{basic-COtnj1QN.js → basic-BxzXlD7c.js} +1 -1
- package/dist/web/assets/{bnf-BgmJ8Hxc.js → bnf-BjLUjADO.js} +1 -1
- package/dist/web/assets/{brainfuck-Dqej0J1y.js → brainfuck-aSjxWjYT.js} +1 -1
- package/dist/web/assets/{c-n_HseCb3.js → c-CIN1gy1n.js} +1 -1
- package/dist/web/assets/{c-like-11FNsa8z.js → c-like-CLb0bWcw.js} +1 -1
- package/dist/web/assets/{cal-DDiqQGbk.js → cal-BR3_s_cL.js} +1 -1
- package/dist/web/assets/{capnproto-rudSB4XC.js → capnproto-C2DcjtLF.js} +1 -1
- package/dist/web/assets/{ceylon-BTTpwXfR.js → ceylon-9PyS7NFY.js} +1 -1
- package/dist/web/assets/{clean-fmHhBXKl.js → clean-DXiS1A9O.js} +1 -1
- package/dist/web/assets/{clojure-hoqOuyud.js → clojure-BQJRVnxh.js} +1 -1
- package/dist/web/assets/{clojure-repl-WdwXp7Ks.js → clojure-repl-D1rdpwza.js} +1 -1
- package/dist/web/assets/{cmake-By6WRXQs.js → cmake-b7BcTZlb.js} +1 -1
- package/dist/web/assets/{coffeescript-7FmKXUAn.js → coffeescript-BkT5lJ2x.js} +1 -1
- package/dist/web/assets/{coq-CGfdqi9A.js → coq-DBVS8_9O.js} +1 -1
- package/dist/web/assets/{core-BrZxtzfN.js → core-BkSmqDdR.js} +1 -1
- package/dist/web/assets/{cos-D9ZKmCnQ.js → cos-48B3Zgz0.js} +1 -1
- package/dist/web/assets/{cpp-Bo6Edxkt.js → cpp-D3reVCcg.js} +1 -1
- package/dist/web/assets/{crmsh-CtyJWaXd.js → crmsh-BCBx1wWk.js} +1 -1
- package/dist/web/assets/{crystal-DjUgPVAf.js → crystal-HzOA6UYV.js} +1 -1
- package/dist/web/assets/{csharp-DK8a9_Z8.js → csharp-DqNDwmVo.js} +1 -1
- package/dist/web/assets/{csp-FQ6T1zue.js → csp-BBSwiHSV.js} +1 -1
- package/dist/web/assets/{css-C-iQPVQx.js → css-EbXfNXoY.js} +1 -1
- package/dist/web/assets/{d-OG-W_D0P.js → d-Ci7qF9Nv.js} +1 -1
- package/dist/web/assets/{dart-CIfW6oZE.js → dart-CuNd6OMU.js} +1 -1
- package/dist/web/assets/{delphi-CtBGKLrg.js → delphi-BhDQaGkR.js} +1 -1
- package/dist/web/assets/{diff-fBgd28XW.js → diff-C12QI4ui.js} +1 -1
- package/dist/web/assets/{django-5XITyBzL.js → django-DKU-xRnz.js} +1 -1
- package/dist/web/assets/{dns-D4mulml2.js → dns-wPLbNiwh.js} +1 -1
- package/dist/web/assets/{dockerfile-FqbOoTjP.js → dockerfile-R-GkzY9u.js} +1 -1
- package/dist/web/assets/{dos-DC-zkX6n.js → dos-B3YxxXZl.js} +1 -1
- package/dist/web/assets/{dsconfig-BtmpCDAg.js → dsconfig-CNiIfBEr.js} +1 -1
- package/dist/web/assets/{dts-ObnZ30Ti.js → dts-DarQhWJa.js} +1 -1
- package/dist/web/assets/{dust-CK4_dVwa.js → dust-BGmWYuSv.js} +1 -1
- package/dist/web/assets/{ebnf-DqrkUlJk.js → ebnf-Fv-VKqhe.js} +1 -1
- package/dist/web/assets/{elixir-DJu6-TgZ.js → elixir-KzsyQkS3.js} +1 -1
- package/dist/web/assets/{elm-DDS7eYrJ.js → elm-CzUGLWl9.js} +1 -1
- package/dist/web/assets/{erb-CqXKsKFB.js → erb-DQGg71ha.js} +1 -1
- package/dist/web/assets/{erlang-6ziaGXna.js → erlang-E9foRaaY.js} +1 -1
- package/dist/web/assets/{erlang-repl-DRX3Vh_x.js → erlang-repl-D2enlquO.js} +1 -1
- package/dist/web/assets/{excel-CVIW0aVy.js → excel-cPBgyWE9.js} +1 -1
- package/dist/web/assets/{fix-lXlx5leo.js → fix-CHOpApZe.js} +1 -1
- package/dist/web/assets/{flix-BsA3-UeT.js → flix-BMZsX6rB.js} +1 -1
- package/dist/web/assets/{fortran-B5qPSbaz.js → fortran-Ce_7iP3N.js} +1 -1
- package/dist/web/assets/{fsharp-CFcpjWDW.js → fsharp-JgNu4nIZ.js} +1 -1
- package/dist/web/assets/{gams-BHb6nHTk.js → gams-DQuEJ5ws.js} +1 -1
- package/dist/web/assets/{gauss-DFqc9loS.js → gauss-DuwjeVGF.js} +1 -1
- package/dist/web/assets/{gcode-CEaWhDhx.js → gcode-CSrGdfgf.js} +1 -1
- package/dist/web/assets/{gherkin-Ze7DfpOY.js → gherkin-BaQ5-RDU.js} +1 -1
- package/dist/web/assets/{glsl-C6cKE1Dw.js → glsl-BRH4M0HB.js} +1 -1
- package/dist/web/assets/{gml-CQz__1WM.js → gml-DIqNvV12.js} +1 -1
- package/dist/web/assets/{go-DP_WGdZb.js → go-DSGP9cn8.js} +1 -1
- package/dist/web/assets/{golo-BZ84Aac9.js → golo-YE7YFKwq.js} +1 -1
- package/dist/web/assets/{gradle-WocHUll-.js → gradle-DILlAgbW.js} +1 -1
- package/dist/web/assets/{groovy-BCwQ-Q60.js → groovy-B-wi6wLs.js} +1 -1
- package/dist/web/assets/{haml-qc-e67YW.js → haml-CflEixL4.js} +1 -1
- package/dist/web/assets/{handlebars-9LjKsesX.js → handlebars-CNVjACR9.js} +1 -1
- package/dist/web/assets/{haskell-B8XD4N5m.js → haskell-BGD_MPKw.js} +1 -1
- package/dist/web/assets/{haxe-DjYuidXM.js → haxe-D_RrW1xe.js} +1 -1
- package/dist/web/assets/{hsp-CTU-7FqB.js → hsp-DcNMZAG0.js} +1 -1
- package/dist/web/assets/{htmlbars-DbnX2qWo.js → htmlbars-MUHb7g0P.js} +1 -1
- package/dist/web/assets/{http-BDhkmFHg.js → http-DomPZqhu.js} +1 -1
- package/dist/web/assets/{hy-H1Co6lHc.js → hy-BcpD06jC.js} +1 -1
- package/dist/web/assets/{index-ByBmc9gx.js → index-Laxc9ocj.js} +108 -108
- package/dist/web/assets/{inform7-Bm7EbxuB.js → inform7-ByhgjV2v.js} +1 -1
- package/dist/web/assets/{ini-CknAzwSN.js → ini-DDpMiBxw.js} +1 -1
- package/dist/web/assets/{irpf90-D629MPJ6.js → irpf90-CV7ZBXkc.js} +1 -1
- package/dist/web/assets/{isbl-DsXTaiU6.js → isbl-BUh_4hGk.js} +1 -1
- package/dist/web/assets/{java-CDVjTytT.js → java-Bt416jFE.js} +1 -1
- package/dist/web/assets/{javascript-BTme1kdi.js → javascript-CbB3A0uW.js} +1 -1
- package/dist/web/assets/{jboss-cli-BW0BHb99.js → jboss-cli-B74CgF5_.js} +1 -1
- package/dist/web/assets/{json-CA9MD97k.js → json-DFtfTfmJ.js} +1 -1
- package/dist/web/assets/{julia-D5EpTWzz.js → julia-A4xwFJzD.js} +1 -1
- package/dist/web/assets/{julia-repl-Dh5j0Q1S.js → julia-repl-CkI08dbl.js} +1 -1
- package/dist/web/assets/{kotlin-DOCVK6Up.js → kotlin-Dd-TCFi_.js} +1 -1
- package/dist/web/assets/{lasso-BwgJl-gg.js → lasso-BvI_9mzs.js} +1 -1
- package/dist/web/assets/{latex-Bupo0K3S.js → latex-DOntcmTT.js} +1 -1
- package/dist/web/assets/{ldif-D0UF_Wq8.js → ldif-CrfhdHfr.js} +1 -1
- package/dist/web/assets/{leaf-DjMM95Xe.js → leaf-Ed6PAmv6.js} +1 -1
- package/dist/web/assets/{less-CiqUDSnX.js → less-H3DIra-4.js} +1 -1
- package/dist/web/assets/{lisp-DKdCu5MD.js → lisp-6vq1Iylg.js} +1 -1
- package/dist/web/assets/{livecodeserver-83fvEH34.js → livecodeserver-DsUdPrv2.js} +1 -1
- package/dist/web/assets/{livescript-CI1NCtj5.js → livescript-CaFYYk1c.js} +1 -1
- package/dist/web/assets/{llvm-DPi_UJY1.js → llvm-DXuNLIAr.js} +1 -1
- package/dist/web/assets/{lsl-BjUxmx2W.js → lsl-DyvIyNV2.js} +1 -1
- package/dist/web/assets/{lua-C9KReo5a.js → lua-DG9tIfa6.js} +1 -1
- package/dist/web/assets/{makefile-CKPyw5IQ.js → makefile-DuQRKBpX.js} +1 -1
- package/dist/web/assets/{markdown-D1kuyXda.js → markdown-C1icNzgT.js} +1 -1
- package/dist/web/assets/{mathematica-BANHxPi6.js → mathematica-xVKtHuAR.js} +1 -1
- package/dist/web/assets/{matlab-C-YBD8zQ.js → matlab-DCNsZt4-.js} +1 -1
- package/dist/web/assets/{maxima-DyOZEN67.js → maxima-Bd0WBHJW.js} +1 -1
- package/dist/web/assets/{mel-7G61viju.js → mel-CYBNMQYY.js} +1 -1
- package/dist/web/assets/{mercury-Cn32vjcW.js → mercury-RXKSSf5V.js} +1 -1
- package/dist/web/assets/{mipsasm-CuSTrgga.js → mipsasm-NlEJdTGE.js} +1 -1
- package/dist/web/assets/{mizar-BQRj3c25.js → mizar-DFLhjAqr.js} +1 -1
- package/dist/web/assets/{mojolicious-C7IGl5mo.js → mojolicious-BVkeO2he.js} +1 -1
- package/dist/web/assets/{monkey-SjGLZfGB.js → monkey-ruWJPl1D.js} +1 -1
- package/dist/web/assets/{moonscript-CsdIvtlr.js → moonscript-5ulG0vM-.js} +1 -1
- package/dist/web/assets/{n1ql-MDb2SQga.js → n1ql-CKvuuc4t.js} +1 -1
- package/dist/web/assets/{nginx--vtn9nay.js → nginx-CPFDEN4T.js} +1 -1
- package/dist/web/assets/{nim-B6-QGnhP.js → nim-utQqbuyE.js} +1 -1
- package/dist/web/assets/{nix-D2y8iETS.js → nix-C2arovtw.js} +1 -1
- package/dist/web/assets/{node-repl-CfrIElvj.js → node-repl-ZEy0cSvt.js} +1 -1
- package/dist/web/assets/{nsis-DCVo0_ix.js → nsis-Dyu-c7Mk.js} +1 -1
- package/dist/web/assets/{objectivec-DQJzdeNW.js → objectivec-DLirtxvG.js} +1 -1
- package/dist/web/assets/{ocaml-Bkc6qeiw.js → ocaml-BxASNzW0.js} +1 -1
- package/dist/web/assets/{openscad-D1rFBEE6.js → openscad-Dx1W0VZN.js} +1 -1
- package/dist/web/assets/{oxygene-DWaFbMj8.js → oxygene-jC4e00Yo.js} +1 -1
- package/dist/web/assets/{parser3-KwhQEgrf.js → parser3-DplkAawo.js} +1 -1
- package/dist/web/assets/{perl-BWw2XyK3.js → perl-Dlyjlw2Q.js} +1 -1
- package/dist/web/assets/{pf-uT6QGDsv.js → pf-X5G22_NV.js} +1 -1
- package/dist/web/assets/{pgsql-DwdDSrwo.js → pgsql-xwWV4D3R.js} +1 -1
- package/dist/web/assets/{php-DoK7JPEq.js → php-BPmACXye.js} +1 -1
- package/dist/web/assets/{php-template-BvLmYtNo.js → php-template-D3xLyFyD.js} +1 -1
- package/dist/web/assets/plaintext-DspTtZbe.js +1 -0
- package/dist/web/assets/{pony-Da4wRw8T.js → pony-DM6hWqMB.js} +1 -1
- package/dist/web/assets/{powershell-BMKNTfKD.js → powershell-D11nXE09.js} +1 -1
- package/dist/web/assets/{processing-UpbofOA1.js → processing-cP_naG6F.js} +1 -1
- package/dist/web/assets/{profile-CRJnD0Wf.js → profile-BAuTMcTF.js} +1 -1
- package/dist/web/assets/{prolog-DaPU9hwZ.js → prolog-B0v-lYgA.js} +1 -1
- package/dist/web/assets/{properties-DziTuUvb.js → properties-Dep8G-Jn.js} +1 -1
- package/dist/web/assets/{protobuf-CfVuF4s-.js → protobuf-A8zCcVw9.js} +1 -1
- package/dist/web/assets/{puppet-DeG7yU_A.js → puppet-BbFQGM6c.js} +1 -1
- package/dist/web/assets/{purebasic-Di5opO31.js → purebasic-DZtX7nbm.js} +1 -1
- package/dist/web/assets/{python-B6cnkfVG.js → python-Kfcp6k1d.js} +1 -1
- package/dist/web/assets/{python-repl-CswsLfvI.js → python-repl-fJUgCylz.js} +1 -1
- package/dist/web/assets/{q-Sdfypmuy.js → q-10RwJS-X.js} +1 -1
- package/dist/web/assets/{qml-BJswObgS.js → qml-BBiWYcO6.js} +1 -1
- package/dist/web/assets/{r-DUF1ex-x.js → r-CibvCRbc.js} +1 -1
- package/dist/web/assets/{reasonml-BPXjcrRH.js → reasonml-BqvP3NWm.js} +1 -1
- package/dist/web/assets/{rib-Bb8epcYr.js → rib-DoThcfz0.js} +1 -1
- package/dist/web/assets/{roboconf-DPW3m5IK.js → roboconf-CGsi757U.js} +1 -1
- package/dist/web/assets/{routeros-D0y0YtuP.js → routeros-BL2S59PO.js} +1 -1
- package/dist/web/assets/rpc-logger-TPNV75J4-CyQPBUZm.js +1 -0
- package/dist/web/assets/{rsl-Cp0imbs8.js → rsl-BkRulYW5.js} +1 -1
- package/dist/web/assets/{ruby-DDppAVXC.js → ruby--iVrrb8b.js} +1 -1
- package/dist/web/assets/{ruleslanguage-B27wQn4n.js → ruleslanguage-CBpDXrYc.js} +1 -1
- package/dist/web/assets/{rust-CB0MsBAL.js → rust-BGpeHwa9.js} +1 -1
- package/dist/web/assets/{sas-Dvme5Rnv.js → sas-DICpnhcr.js} +1 -1
- package/dist/web/assets/{scala-XYFdR0OQ.js → scala-USjDcrLf.js} +1 -1
- package/dist/web/assets/{scheme-4PpXGQxX.js → scheme-BNRyLGyi.js} +1 -1
- package/dist/web/assets/{scilab-DZ_gY0N3.js → scilab-DHJHoFKR.js} +1 -1
- package/dist/web/assets/{scss-2YiPUv9j.js → scss-CqdW3oDZ.js} +1 -1
- package/dist/web/assets/{shell-DNvTPCw3.js → shell-DPEOoRC5.js} +1 -1
- package/dist/web/assets/{smali-CSWkZ6ir.js → smali-BfNOpnsd.js} +1 -1
- package/dist/web/assets/{smalltalk-Dfdn6idV.js → smalltalk-DmOmWplt.js} +1 -1
- package/dist/web/assets/{sml-DxhmPKFB.js → sml-D0_-Xlf_.js} +1 -1
- package/dist/web/assets/{sqf-Dcb_rWPJ.js → sqf-CKksFc2b.js} +1 -1
- package/dist/web/assets/{sql-MHTZgM8W.js → sql-9gRVSFml.js} +1 -1
- package/dist/web/assets/{sql_more-BdwVRL7c.js → sql_more-DMNAkN31.js} +1 -1
- package/dist/web/assets/{stan-DLwrIeDn.js → stan-BfwtQRpy.js} +1 -1
- package/dist/web/assets/{stata-Cqb9osjd.js → stata-MMt8yYTM.js} +1 -1
- package/dist/web/assets/{step21-B3c4_EbS.js → step21-DPwMwcNf.js} +1 -1
- package/dist/web/assets/{stylus-D56xFHiU.js → stylus-BkcKjfzU.js} +1 -1
- package/dist/web/assets/{subunit-CdyIqnP0.js → subunit-BDB6dyts.js} +1 -1
- package/dist/web/assets/{swift-MjoMflYh.js → swift-BaAV0tI6.js} +1 -1
- package/dist/web/assets/{taggerscript-CjaeDZg_.js → taggerscript-3Bsf4iOq.js} +1 -1
- package/dist/web/assets/{tap-DdELBHex.js → tap-IWB5p3hi.js} +1 -1
- package/dist/web/assets/{tcl-BpZwSOMS.js → tcl-DnyCLM3S.js} +1 -1
- package/dist/web/assets/{thrift-Di7yN0MD.js → thrift-GFLEn4na.js} +1 -1
- package/dist/web/assets/{tp-BgMl817r.js → tp-mT9twYMd.js} +1 -1
- package/dist/web/assets/{twig-N1h50Na4.js → twig-KXM2Ir7s.js} +1 -1
- package/dist/web/assets/{typescript-VJ0iKKOt.js → typescript-DLsMyDVr.js} +1 -1
- package/dist/web/assets/{vala-CnhO-CJB.js → vala-DC18dV87.js} +1 -1
- package/dist/web/assets/{vbnet-DQw7sttK.js → vbnet-BTKoRTOY.js} +1 -1
- package/dist/web/assets/{vbscript-BtJtOCz_.js → vbscript-CfyNPUKB.js} +1 -1
- package/dist/web/assets/{vbscript-html-DDLv6USX.js → vbscript-html-C1UQEg3Y.js} +1 -1
- package/dist/web/assets/{verilog-CprJXXMB.js → verilog-BYvTR18N.js} +1 -1
- package/dist/web/assets/{vhdl-Du74I4Mk.js → vhdl-BzEGp3In.js} +1 -1
- package/dist/web/assets/{vim-tDC61dJj.js → vim-BAgmvZxe.js} +1 -1
- package/dist/web/assets/{x86asm-BJOjKOyX.js → x86asm-D8zXFi0O.js} +1 -1
- package/dist/web/assets/{xl-BYcNbBXV.js → xl-B5pdzb_1.js} +1 -1
- package/dist/web/assets/{xml-D3dAF1Qb.js → xml-CevZSAlP.js} +1 -1
- package/dist/web/assets/{xquery-18wB4H3g.js → xquery-ogVEcT2_.js} +1 -1
- package/dist/web/assets/{yaml-8iNDRNdT.js → yaml--bFUsTFO.js} +1 -1
- package/dist/web/assets/{zephir-CnbrmwIj.js → zephir-C3iEI5I_.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +3 -3
- package/dist/web/assets/plaintext-CSApwtHq.js +0 -1
- package/dist/web/assets/rpc-logger-TPNV75J4-C2Hzk9gi.js +0 -1
package/dist/cli.js
CHANGED
|
@@ -3333,7 +3333,7 @@ function getClientDistPath() {
|
|
|
3333
3333
|
var package_default = {
|
|
3334
3334
|
name: "@mcp-use/inspector",
|
|
3335
3335
|
type: "module",
|
|
3336
|
-
version: "
|
|
3336
|
+
version: "12.0.0-canary.0",
|
|
3337
3337
|
description: "MCP Inspector - A tool for inspecting and debugging MCP servers",
|
|
3338
3338
|
author: "",
|
|
3339
3339
|
license: "MIT",
|
|
@@ -3412,7 +3412,7 @@ var package_default = {
|
|
|
3412
3412
|
},
|
|
3413
3413
|
peerDependencies: {
|
|
3414
3414
|
express: "^4.21.2 || ^5.0.0",
|
|
3415
|
-
"mcp-use": ">=1.
|
|
3415
|
+
"mcp-use": ">=1.34.0-canary.0",
|
|
3416
3416
|
react: "^18.0.0 || ^19.0.0",
|
|
3417
3417
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
3418
3418
|
"react-router": "^7.12.0"
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
// package.json
|
|
2
|
+
var package_default = {
|
|
3
|
+
name: "@mcp-use/inspector",
|
|
4
|
+
type: "module",
|
|
5
|
+
version: "12.0.0-canary.0",
|
|
6
|
+
description: "MCP Inspector - A tool for inspecting and debugging MCP servers",
|
|
7
|
+
author: "",
|
|
8
|
+
license: "MIT",
|
|
9
|
+
homepage: "https://github.com/mcp-use/mcp-use#readme",
|
|
10
|
+
repository: {
|
|
11
|
+
type: "git",
|
|
12
|
+
url: "git+https://github.com/mcp-use/mcp-use.git",
|
|
13
|
+
directory: "libraries/typescript/packages/inspector"
|
|
14
|
+
},
|
|
15
|
+
bugs: {
|
|
16
|
+
url: "https://github.com/mcp-use/mcp-use/issues"
|
|
17
|
+
},
|
|
18
|
+
keywords: [
|
|
19
|
+
"mcp",
|
|
20
|
+
"inspector",
|
|
21
|
+
"debug",
|
|
22
|
+
"tools"
|
|
23
|
+
],
|
|
24
|
+
exports: {
|
|
25
|
+
".": {
|
|
26
|
+
types: "./dist/server/index.d.ts",
|
|
27
|
+
import: "./dist/server/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./client": {
|
|
30
|
+
types: "./dist/client/index.d.ts",
|
|
31
|
+
import: "./dist/client/index.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
main: "./dist/server/index.js",
|
|
35
|
+
types: "./dist/server/index.d.ts",
|
|
36
|
+
bin: {
|
|
37
|
+
"mcp-inspect": "./dist/cli.js"
|
|
38
|
+
},
|
|
39
|
+
files: [
|
|
40
|
+
"dist"
|
|
41
|
+
],
|
|
42
|
+
scripts: {
|
|
43
|
+
dev: 'concurrently "npm run dev:client" "npm run dev:server"',
|
|
44
|
+
"dev:client": "rimraf node_modules/.vite && vite --port 3000",
|
|
45
|
+
"dev:server": "VITE_DEV=true tsx watch src/server/server.ts",
|
|
46
|
+
"dev:standalone": "tsx watch src/server/server.ts",
|
|
47
|
+
build: "npm run build:client && npm run build:client-exports && npm run build:server && npm run build:cli && npm run build:cdn",
|
|
48
|
+
"build:cdn": "vite build --config vite.cdn.config.ts",
|
|
49
|
+
"build:client": "vite build",
|
|
50
|
+
"build:client-exports": "tsup --config tsup.client.ts && tsc -p tsconfig.client.json --emitDeclarationOnly --declaration",
|
|
51
|
+
"build:server": "tsup src/server/*.ts --format esm --out-dir dist/server && tsc -p tsconfig.server.json --emitDeclarationOnly --declaration",
|
|
52
|
+
"build:cli": "tsup src/server/cli.ts --format esm --out-dir dist/",
|
|
53
|
+
prepublishOnly: "pnpm --filter mcp-use build && pnpm build",
|
|
54
|
+
start: "node dist/server/server.js",
|
|
55
|
+
preview: "vite preview",
|
|
56
|
+
"type-check": "tsc --noEmit",
|
|
57
|
+
lint: "eslint .",
|
|
58
|
+
"lint:fix": "eslint . --fix",
|
|
59
|
+
"test:e2e": "playwright test",
|
|
60
|
+
"test:e2e:ui": "playwright test --ui",
|
|
61
|
+
"test:e2e:debug": "playwright test --debug",
|
|
62
|
+
"test:e2e:builtin": "node tests/e2e/scripts/run-test-matrix.mjs builtin",
|
|
63
|
+
"test:e2e:prod": "node tests/e2e/scripts/run-test-matrix.mjs prod",
|
|
64
|
+
"test:e2e:mix": "node tests/e2e/scripts/run-test-matrix.mjs mix",
|
|
65
|
+
"test:e2e:prod:ui": "TEST_MODE=production playwright test --ui",
|
|
66
|
+
"test:e2e:codegen": "playwright codegen http://localhost:3000/inspector",
|
|
67
|
+
"test:e2e:report": "playwright show-report",
|
|
68
|
+
"test:e2e:python": "node tests/e2e/scripts/run-python-e2e.mjs",
|
|
69
|
+
"test:unit": "vitest run",
|
|
70
|
+
"test:unit:watch": "vitest",
|
|
71
|
+
"test:e2e:tunnel": "node tests/e2e/scripts/run-tunnel-test.mjs",
|
|
72
|
+
"install:yarn": "yarn install",
|
|
73
|
+
"install:pnpm": "pnpm install",
|
|
74
|
+
"install:npm": "npm install",
|
|
75
|
+
"lint:yarn": "yarn eslint . --fix",
|
|
76
|
+
"lint:npm": "npm run lint:fix",
|
|
77
|
+
"lint:pnpm": "pnpm lint:fix"
|
|
78
|
+
},
|
|
79
|
+
engines: {
|
|
80
|
+
node: "^20.19.0 || >=22.12.0"
|
|
81
|
+
},
|
|
82
|
+
peerDependencies: {
|
|
83
|
+
express: "^4.21.2 || ^5.0.0",
|
|
84
|
+
"mcp-use": ">=1.34.0-canary.0",
|
|
85
|
+
react: "^18.0.0 || ^19.0.0",
|
|
86
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
87
|
+
"react-router": "^7.12.0"
|
|
88
|
+
},
|
|
89
|
+
peerDependenciesMeta: {
|
|
90
|
+
express: {
|
|
91
|
+
optional: true
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
dependencies: {
|
|
95
|
+
"@hono/node-server": "^1.19.13",
|
|
96
|
+
"@modelcontextprotocol/ext-apps": "^1.0.1",
|
|
97
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
98
|
+
"@paper-design/shaders-react": "^0.0.72",
|
|
99
|
+
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
100
|
+
"@radix-ui/react-avatar": "^1.1.11",
|
|
101
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
102
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
103
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
104
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
105
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
106
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
107
|
+
"@radix-ui/react-switch": "^1.2.6",
|
|
108
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
109
|
+
"@scarf/scarf": "^1.4.0",
|
|
110
|
+
"@tailwindcss/vite": "^4.2.0",
|
|
111
|
+
"@types/react-syntax-highlighter": "^15.5.13",
|
|
112
|
+
"class-variance-authority": "^0.7.1",
|
|
113
|
+
clsx: "^2.1.1",
|
|
114
|
+
cmdk: "^1.1.1",
|
|
115
|
+
hono: "^4.12.12",
|
|
116
|
+
"lucide-react": "^0.562.0",
|
|
117
|
+
"markdown-to-jsx": "^9.7.4",
|
|
118
|
+
"mcp-use": "workspace:*",
|
|
119
|
+
motion: "^12.34.2",
|
|
120
|
+
"next-themes": "^0.4.6",
|
|
121
|
+
open: "^11.0.0",
|
|
122
|
+
"posthog-node": "^5.24.17",
|
|
123
|
+
"react-resizable-panels": "^4.6.4",
|
|
124
|
+
"react-syntax-highlighter": "^16.1.0",
|
|
125
|
+
sonner: "^2.0.7",
|
|
126
|
+
"tailwind-merge": "^3.5.0",
|
|
127
|
+
zod: "4.3.5"
|
|
128
|
+
},
|
|
129
|
+
publishConfig: {
|
|
130
|
+
access: "public"
|
|
131
|
+
},
|
|
132
|
+
devDependencies: {
|
|
133
|
+
"@playwright/test": "^1.58.2",
|
|
134
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
135
|
+
"@types/express": "^5.0.6",
|
|
136
|
+
"@vitejs/plugin-react": "^6.0.0",
|
|
137
|
+
concurrently: "^9.2.1",
|
|
138
|
+
emulate: "0.5.0",
|
|
139
|
+
eslint: "^9.39.2",
|
|
140
|
+
express: "^5.2.1",
|
|
141
|
+
"oauth2-mock-server": "^8.2.2",
|
|
142
|
+
react: "^19.2.3",
|
|
143
|
+
"react-dom": "^19.2.3",
|
|
144
|
+
"react-router": "^7.12.0",
|
|
145
|
+
tailwindcss: "^4.2.0",
|
|
146
|
+
tsup: "^8.5.1",
|
|
147
|
+
tsx: "^4.21.0",
|
|
148
|
+
"tw-animate-css": "^1.4.0",
|
|
149
|
+
vite: "^8.0.16",
|
|
150
|
+
vitest: "^4.1.0",
|
|
151
|
+
"wait-on": "^9.0.4"
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
// src/server/version.ts
|
|
156
|
+
var VERSION = package_default.version;
|
|
157
|
+
function getInspectorVersion() {
|
|
158
|
+
return VERSION;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export {
|
|
162
|
+
VERSION,
|
|
163
|
+
getInspectorVersion
|
|
164
|
+
};
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getInspectorVersion
|
|
3
|
+
} from "./chunk-3FL7XPEK.js";
|
|
4
|
+
import {
|
|
5
|
+
checkClientFiles,
|
|
6
|
+
getClientDistPath,
|
|
7
|
+
getContentType
|
|
8
|
+
} from "./chunk-IDMHJUEM.js";
|
|
9
|
+
|
|
10
|
+
// src/server/shared-static.ts
|
|
11
|
+
import { existsSync, readFileSync } from "fs";
|
|
12
|
+
import { join } from "path";
|
|
13
|
+
var USE_CDN = process.env.INSPECTOR_USE_CDN === "true";
|
|
14
|
+
var INSPECTOR_VERSION = getInspectorVersion();
|
|
15
|
+
var CDN_BASE = process.env.INSPECTOR_CDN_BASE ?? "https://inspector-cdn.mcp-use.com";
|
|
16
|
+
var CDN_JS_URL = `${CDN_BASE}/inspector@${INSPECTOR_VERSION}.js`;
|
|
17
|
+
var CDN_CSS_URL = `${CDN_BASE}/inspector@${INSPECTOR_VERSION}.css`;
|
|
18
|
+
function injectRuntimeConfig(html, config) {
|
|
19
|
+
if (!config) return html;
|
|
20
|
+
const scripts = [];
|
|
21
|
+
if (config.devMode) {
|
|
22
|
+
scripts.push(`<script>window.__MCP_DEV_MODE__ = true;</script>`);
|
|
23
|
+
}
|
|
24
|
+
if (config.sandboxOrigin) {
|
|
25
|
+
scripts.push(
|
|
26
|
+
`<script>window.__MCP_SANDBOX_ORIGIN__ = ${JSON.stringify(config.sandboxOrigin)};</script>`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
if (config.proxyUrl !== void 0) {
|
|
30
|
+
scripts.push(
|
|
31
|
+
`<script>window.__MCP_PROXY_URL__ = ${JSON.stringify(config.proxyUrl)};</script>`
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
if (config.inspectorMode) {
|
|
35
|
+
scripts.push(
|
|
36
|
+
`<script>window.__MCP_INSPECTOR_MODE__ = ${JSON.stringify(config.inspectorMode)};</script>`
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
if (config.manufactChatUrl) {
|
|
40
|
+
scripts.push(
|
|
41
|
+
`<script>window.__MANUFACT_CHAT_URL__ = ${JSON.stringify(config.manufactChatUrl)};</script>`
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
if (config.disableTelemetry) {
|
|
45
|
+
scripts.push(
|
|
46
|
+
`<script>window.__MCP_USE_ANONYMIZED_TELEMETRY__ = false;</script>`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
if (scripts.length === 0) return html;
|
|
50
|
+
const injection = scripts.join("\n ");
|
|
51
|
+
return html.replace("</head>", ` ${injection}
|
|
52
|
+
</head>`);
|
|
53
|
+
}
|
|
54
|
+
function generateCdnShellHtml(config) {
|
|
55
|
+
const runtimeScripts = (() => {
|
|
56
|
+
if (!config) return "";
|
|
57
|
+
const scripts = [];
|
|
58
|
+
if (config.devMode) {
|
|
59
|
+
scripts.push(`<script>window.__MCP_DEV_MODE__ = true;</script>`);
|
|
60
|
+
}
|
|
61
|
+
if (config.sandboxOrigin) {
|
|
62
|
+
scripts.push(
|
|
63
|
+
`<script>window.__MCP_SANDBOX_ORIGIN__ = ${JSON.stringify(config.sandboxOrigin)};</script>`
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
if (config.proxyUrl !== void 0) {
|
|
67
|
+
scripts.push(
|
|
68
|
+
`<script>window.__MCP_PROXY_URL__ = ${JSON.stringify(config.proxyUrl)};</script>`
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
if (config.inspectorMode) {
|
|
72
|
+
scripts.push(
|
|
73
|
+
`<script>window.__MCP_INSPECTOR_MODE__ = ${JSON.stringify(config.inspectorMode)};</script>`
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
if (config.manufactChatUrl) {
|
|
77
|
+
scripts.push(
|
|
78
|
+
`<script>window.__MANUFACT_CHAT_URL__ = ${JSON.stringify(config.manufactChatUrl)};</script>`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
if (config.disableTelemetry) {
|
|
82
|
+
scripts.push(
|
|
83
|
+
`<script>window.__MCP_USE_ANONYMIZED_TELEMETRY__ = false;try{localStorage.setItem("MCP_USE_ANONYMIZED_TELEMETRY","false");}catch(e){}</script>`
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
return scripts.join("\n ");
|
|
87
|
+
})();
|
|
88
|
+
return `<!doctype html>
|
|
89
|
+
<html lang="en">
|
|
90
|
+
<head>
|
|
91
|
+
<meta charset="UTF-8" />
|
|
92
|
+
<link
|
|
93
|
+
rel="icon"
|
|
94
|
+
type="image/svg+xml"
|
|
95
|
+
href="${CDN_BASE}/favicon-black.svg"
|
|
96
|
+
/>
|
|
97
|
+
<link
|
|
98
|
+
rel="icon"
|
|
99
|
+
type="image/svg+xml"
|
|
100
|
+
href="${CDN_BASE}/favicon-white.svg"
|
|
101
|
+
media="(prefers-color-scheme: dark)"
|
|
102
|
+
/>
|
|
103
|
+
<link
|
|
104
|
+
rel="icon"
|
|
105
|
+
type="image/svg+xml"
|
|
106
|
+
href="${CDN_BASE}/favicon-black.svg"
|
|
107
|
+
media="(prefers-color-scheme: light)"
|
|
108
|
+
/>
|
|
109
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
110
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
111
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
112
|
+
<link
|
|
113
|
+
href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap"
|
|
114
|
+
rel="stylesheet"
|
|
115
|
+
/>
|
|
116
|
+
<link rel="stylesheet" href="${CDN_CSS_URL}" />
|
|
117
|
+
<title>Inspector | mcp-use</title>
|
|
118
|
+
<meta
|
|
119
|
+
name="description"
|
|
120
|
+
content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser."
|
|
121
|
+
/>
|
|
122
|
+
<meta property="og:type" content="website" />
|
|
123
|
+
<meta property="og:site_name" content="mcp-use" />
|
|
124
|
+
<meta property="og:url" content="https://inspector.mcp-use.com" />
|
|
125
|
+
<meta property="og:title" content="MCP Inspector \u2014 Test & Debug MCP Servers | mcp-use" />
|
|
126
|
+
<meta
|
|
127
|
+
property="og:description"
|
|
128
|
+
content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser."
|
|
129
|
+
/>
|
|
130
|
+
<meta
|
|
131
|
+
property="og:image"
|
|
132
|
+
content="https://inspector-cdn.mcp-use.com/inspector-cover.png"
|
|
133
|
+
/>
|
|
134
|
+
<meta property="og:image:alt" content="mcp-use MCP Inspector \u2014 test and debug MCP servers" />
|
|
135
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
136
|
+
<meta name="twitter:site" content="@mcpuse" />
|
|
137
|
+
<meta name="twitter:creator" content="@mcpuse" />
|
|
138
|
+
<meta name="twitter:title" content="MCP Inspector \u2014 Test & Debug MCP Servers | mcp-use" />
|
|
139
|
+
<meta
|
|
140
|
+
name="twitter:description"
|
|
141
|
+
content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser."
|
|
142
|
+
/>
|
|
143
|
+
<meta
|
|
144
|
+
name="twitter:image"
|
|
145
|
+
content="https://inspector-cdn.mcp-use.com/inspector-cover.png"
|
|
146
|
+
/>
|
|
147
|
+
<meta name="twitter:image:alt" content="mcp-use MCP Inspector \u2014 test and debug MCP servers" />
|
|
148
|
+
<script>window.__INSPECTOR_VERSION__ = ${JSON.stringify(INSPECTOR_VERSION)};</script>
|
|
149
|
+
${runtimeScripts}
|
|
150
|
+
</head>
|
|
151
|
+
<body>
|
|
152
|
+
<script>
|
|
153
|
+
if (typeof window !== "undefined" && typeof window.process === "undefined") {
|
|
154
|
+
window.process = {
|
|
155
|
+
env: {},
|
|
156
|
+
platform: "browser",
|
|
157
|
+
browser: true,
|
|
158
|
+
version: "v18.0.0",
|
|
159
|
+
versions: { node: "18.0.0" },
|
|
160
|
+
cwd: () => "/",
|
|
161
|
+
nextTick: (fn, ...args) => queueMicrotask(() => fn(...args)),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
</script>
|
|
165
|
+
<div id="root"></div>
|
|
166
|
+
<script type="module" src="${CDN_JS_URL}"></script>
|
|
167
|
+
</body>
|
|
168
|
+
</html>`;
|
|
169
|
+
}
|
|
170
|
+
function registerStaticRoutes(app, clientDistPath, runtimeConfig) {
|
|
171
|
+
const effectiveConfig = {
|
|
172
|
+
...runtimeConfig,
|
|
173
|
+
proxyUrl: runtimeConfig?.proxyUrl !== void 0 ? runtimeConfig.proxyUrl : "/inspector/api/proxy",
|
|
174
|
+
disableTelemetry: runtimeConfig?.disableTelemetry ?? process.env.MCP_USE_ANONYMIZED_TELEMETRY === "false"
|
|
175
|
+
};
|
|
176
|
+
if (USE_CDN) {
|
|
177
|
+
const serveShell = (c) => c.html(generateCdnShellHtml(effectiveConfig));
|
|
178
|
+
app.get("/", (c) => {
|
|
179
|
+
const url = new URL(c.req.url);
|
|
180
|
+
return c.redirect(`/inspector${url.search}`);
|
|
181
|
+
});
|
|
182
|
+
app.get("/inspector", serveShell);
|
|
183
|
+
app.get("/inspector/*", serveShell);
|
|
184
|
+
app.post("/inspector/*", serveShell);
|
|
185
|
+
app.get("*", serveShell);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
const distPath = clientDistPath || getClientDistPath();
|
|
189
|
+
if (!checkClientFiles(distPath)) {
|
|
190
|
+
console.warn(`\u26A0\uFE0F MCP Inspector client files not found at ${distPath}`);
|
|
191
|
+
console.warn(
|
|
192
|
+
` Run 'yarn build' in the inspector package to build the UI`
|
|
193
|
+
);
|
|
194
|
+
app.get("*", (c) => {
|
|
195
|
+
return c.html(`
|
|
196
|
+
<!DOCTYPE html>
|
|
197
|
+
<html>
|
|
198
|
+
<head>
|
|
199
|
+
<title>MCP Inspector</title>
|
|
200
|
+
</head>
|
|
201
|
+
<body>
|
|
202
|
+
<h1>MCP Inspector</h1>
|
|
203
|
+
<p>Client files not found. Please run 'yarn build' to build the UI.</p>
|
|
204
|
+
</body>
|
|
205
|
+
</html>
|
|
206
|
+
`);
|
|
207
|
+
});
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
app.get("/inspector/assets/*", (c) => {
|
|
211
|
+
const path = c.req.path.replace("/inspector/assets/", "assets/");
|
|
212
|
+
const fullPath = join(distPath, path);
|
|
213
|
+
if (existsSync(fullPath)) {
|
|
214
|
+
const content = readFileSync(fullPath);
|
|
215
|
+
const contentType = getContentType(fullPath);
|
|
216
|
+
c.header("Content-Type", contentType);
|
|
217
|
+
return c.body(content);
|
|
218
|
+
}
|
|
219
|
+
return c.notFound();
|
|
220
|
+
});
|
|
221
|
+
app.get("/", (c) => {
|
|
222
|
+
const url = new URL(c.req.url);
|
|
223
|
+
const queryString = url.search;
|
|
224
|
+
return c.redirect(`/inspector${queryString}`);
|
|
225
|
+
});
|
|
226
|
+
const serveIndex = (c) => {
|
|
227
|
+
const indexPath = join(distPath, "index.html");
|
|
228
|
+
if (existsSync(indexPath)) {
|
|
229
|
+
const content = injectRuntimeConfig(
|
|
230
|
+
readFileSync(indexPath, "utf-8"),
|
|
231
|
+
effectiveConfig
|
|
232
|
+
);
|
|
233
|
+
return c.html(content);
|
|
234
|
+
}
|
|
235
|
+
return c.html(`
|
|
236
|
+
<!DOCTYPE html>
|
|
237
|
+
<html>
|
|
238
|
+
<head>
|
|
239
|
+
<title>MCP Inspector</title>
|
|
240
|
+
</head>
|
|
241
|
+
<body>
|
|
242
|
+
<h1>MCP Inspector</h1>
|
|
243
|
+
<p>Client files not found. Please run 'yarn build' to build the UI.</p>
|
|
244
|
+
</body>
|
|
245
|
+
</html>
|
|
246
|
+
`);
|
|
247
|
+
};
|
|
248
|
+
app.get("/inspector", serveIndex);
|
|
249
|
+
app.get("/inspector/*", serveIndex);
|
|
250
|
+
app.post("/inspector/*", serveIndex);
|
|
251
|
+
app.get("*", (c) => {
|
|
252
|
+
const indexPath = join(distPath, "index.html");
|
|
253
|
+
if (existsSync(indexPath)) {
|
|
254
|
+
const content = injectRuntimeConfig(
|
|
255
|
+
readFileSync(indexPath, "utf-8"),
|
|
256
|
+
effectiveConfig
|
|
257
|
+
);
|
|
258
|
+
return c.html(content);
|
|
259
|
+
}
|
|
260
|
+
return c.html(`
|
|
261
|
+
<!DOCTYPE html>
|
|
262
|
+
<html>
|
|
263
|
+
<head>
|
|
264
|
+
<title>MCP Inspector</title>
|
|
265
|
+
</head>
|
|
266
|
+
<body>
|
|
267
|
+
<h1>MCP Inspector</h1>
|
|
268
|
+
<p>Client files not found. Please run 'yarn build' to build the UI.</p>
|
|
269
|
+
</body>
|
|
270
|
+
</html>
|
|
271
|
+
`);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
function registerStaticRoutesWithDevProxy(app, clientDistPath, runtimeConfig) {
|
|
275
|
+
const distPath = clientDistPath || getClientDistPath();
|
|
276
|
+
const isDev = process.env.NODE_ENV === "development" || process.env.VITE_DEV === "true";
|
|
277
|
+
if (isDev) {
|
|
278
|
+
console.warn(
|
|
279
|
+
"\u{1F527} Development mode: Proxying client requests to Vite dev server"
|
|
280
|
+
);
|
|
281
|
+
app.get("*", async (c) => {
|
|
282
|
+
const path = c.req.path;
|
|
283
|
+
if (path.startsWith("/api/") || path.startsWith("/inspector/api/") || path === "/inspector/config.json") {
|
|
284
|
+
return c.notFound();
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
const viteUrl = `http://localhost:3000${path}`;
|
|
288
|
+
const response = await fetch(viteUrl, {
|
|
289
|
+
signal: AbortSignal.timeout(1e3)
|
|
290
|
+
});
|
|
291
|
+
if (response.ok) {
|
|
292
|
+
const content = await response.text();
|
|
293
|
+
const contentType = response.headers.get("content-type") || "text/html";
|
|
294
|
+
c.header("Content-Type", contentType);
|
|
295
|
+
return c.html(content);
|
|
296
|
+
}
|
|
297
|
+
} catch (error) {
|
|
298
|
+
console.warn(`Failed to proxy to Vite dev server: ${error}`);
|
|
299
|
+
}
|
|
300
|
+
return c.html(`
|
|
301
|
+
<!DOCTYPE html>
|
|
302
|
+
<html>
|
|
303
|
+
<head>
|
|
304
|
+
<title>MCP Inspector - Development</title>
|
|
305
|
+
</head>
|
|
306
|
+
<body>
|
|
307
|
+
<h1>MCP Inspector - Development Mode</h1>
|
|
308
|
+
<p>Vite dev server is not running. Please start it with:</p>
|
|
309
|
+
<pre>yarn dev:client</pre>
|
|
310
|
+
</body>
|
|
311
|
+
</html>
|
|
312
|
+
`);
|
|
313
|
+
});
|
|
314
|
+
} else {
|
|
315
|
+
registerStaticRoutes(app, distPath, runtimeConfig);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
export {
|
|
320
|
+
registerStaticRoutes,
|
|
321
|
+
registerStaticRoutesWithDevProxy
|
|
322
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import {
|
|
2
|
+
registerInspectorRoutes
|
|
3
|
+
} from "./chunk-A4VH7AIP.js";
|
|
4
|
+
import {
|
|
5
|
+
registerStaticRoutes
|
|
6
|
+
} from "./chunk-6GW6OAU3.js";
|
|
7
|
+
import {
|
|
8
|
+
checkClientFiles,
|
|
9
|
+
getClientDistPath
|
|
10
|
+
} from "./chunk-IDMHJUEM.js";
|
|
11
|
+
|
|
12
|
+
// src/server/middleware.ts
|
|
13
|
+
import { Hono } from "hono";
|
|
14
|
+
function mountInspector(app, config) {
|
|
15
|
+
const clientDistPath = getClientDistPath();
|
|
16
|
+
if (!checkClientFiles(clientDistPath)) {
|
|
17
|
+
console.warn(
|
|
18
|
+
`\u26A0\uFE0F MCP Inspector client files not found at ${clientDistPath}`
|
|
19
|
+
);
|
|
20
|
+
console.warn(
|
|
21
|
+
` Run 'yarn build' in the inspector package to build the UI`
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
const runtimeConfig = {
|
|
25
|
+
devMode: config?.devMode,
|
|
26
|
+
sandboxOrigin: config?.sandboxOrigin,
|
|
27
|
+
inspectorMode: "embedded"
|
|
28
|
+
};
|
|
29
|
+
if (isHonoApp(app)) {
|
|
30
|
+
registerInspectorRoutes(app, config);
|
|
31
|
+
registerStaticRoutes(app, clientDistPath, runtimeConfig);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const honoApp = new Hono();
|
|
35
|
+
registerInspectorRoutes(honoApp, config);
|
|
36
|
+
registerStaticRoutes(honoApp, clientDistPath, runtimeConfig);
|
|
37
|
+
app.use((req, res, next) => {
|
|
38
|
+
const url = new URL(req.url || "", `http://${req.headers.host}`);
|
|
39
|
+
const request = new Request(url, {
|
|
40
|
+
method: req.method,
|
|
41
|
+
headers: req.headers,
|
|
42
|
+
body: req.method !== "GET" && req.method !== "HEAD" ? JSON.stringify(req.body) : void 0
|
|
43
|
+
});
|
|
44
|
+
Promise.resolve(honoApp.fetch(request)).then(async (fetchResponse) => {
|
|
45
|
+
res.status(fetchResponse.status);
|
|
46
|
+
fetchResponse.headers.forEach((value, key) => {
|
|
47
|
+
res.setHeader(key, value);
|
|
48
|
+
});
|
|
49
|
+
if (fetchResponse.body) {
|
|
50
|
+
const reader = fetchResponse.body.getReader();
|
|
51
|
+
while (true) {
|
|
52
|
+
const { done, value } = await reader.read();
|
|
53
|
+
if (done) {
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
res.write(value);
|
|
57
|
+
}
|
|
58
|
+
res.end();
|
|
59
|
+
} else {
|
|
60
|
+
res.end();
|
|
61
|
+
}
|
|
62
|
+
}).catch(next);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function isHonoApp(app) {
|
|
66
|
+
return typeof app.fetch === "function";
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export {
|
|
70
|
+
mountInspector
|
|
71
|
+
};
|
package/dist/server/cli.js
CHANGED
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
import "./chunk-CVECQ7BJ.js";
|
|
14
14
|
import {
|
|
15
15
|
registerStaticRoutes
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-6GW6OAU3.js";
|
|
17
17
|
import {
|
|
18
18
|
getInspectorVersion
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3FL7XPEK.js";
|
|
20
20
|
import "./chunk-IDMHJUEM.js";
|
|
21
21
|
import "./chunk-PKBMQBKP.js";
|
|
22
22
|
|
package/dist/server/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
mountInspector
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FB46XEZP.js";
|
|
4
4
|
import "./chunk-A4VH7AIP.js";
|
|
5
5
|
import {
|
|
6
6
|
handleChatRequest,
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
} from "./chunk-QQ37LGLJ.js";
|
|
13
13
|
import "./chunk-KD7K27XK.js";
|
|
14
14
|
import "./chunk-CVECQ7BJ.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-6GW6OAU3.js";
|
|
16
|
+
import "./chunk-3FL7XPEK.js";
|
|
17
17
|
import "./chunk-IDMHJUEM.js";
|
|
18
18
|
import "./chunk-PKBMQBKP.js";
|
|
19
19
|
export {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
mountInspector
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FB46XEZP.js";
|
|
4
4
|
import "./chunk-A4VH7AIP.js";
|
|
5
5
|
import "./chunk-PJNKFX2R.js";
|
|
6
6
|
import "./chunk-QQ37LGLJ.js";
|
|
7
7
|
import "./chunk-KD7K27XK.js";
|
|
8
8
|
import "./chunk-CVECQ7BJ.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-6GW6OAU3.js";
|
|
10
|
+
import "./chunk-3FL7XPEK.js";
|
|
11
11
|
import "./chunk-IDMHJUEM.js";
|
|
12
12
|
import "./chunk-PKBMQBKP.js";
|
|
13
13
|
export {
|
package/dist/server/server.js
CHANGED
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
import "./chunk-CVECQ7BJ.js";
|
|
14
14
|
import {
|
|
15
15
|
registerStaticRoutesWithDevProxy
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-6GW6OAU3.js";
|
|
17
|
+
import "./chunk-3FL7XPEK.js";
|
|
18
18
|
import "./chunk-IDMHJUEM.js";
|
|
19
19
|
import "./chunk-PKBMQBKP.js";
|
|
20
20
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerStaticRoutes,
|
|
3
3
|
registerStaticRoutesWithDevProxy
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-6GW6OAU3.js";
|
|
5
|
+
import "./chunk-3FL7XPEK.js";
|
|
6
6
|
import "./chunk-IDMHJUEM.js";
|
|
7
7
|
import "./chunk-PKBMQBKP.js";
|
|
8
8
|
export {
|