@htmlbricks/mcp 0.66.10
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/README.md +33 -0
- package/assets/AGENT_WEBCOMPONENTS_REFERENCE.md +4591 -0
- package/assets/list.json +1 -0
- package/cli.js +4 -0
- package/package.json +32 -0
- package/server.js +273 -0
package/assets/list.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"packages":[{"i18n":[],"name":"hb-vertical-img-txt-archive","category":"content","tags":["content","archive"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-fIgRcBqRDVn0doC8gpQY4DQvDgM11AsJ7M2ArOWz8J4laSlXZEg3m9BLS8Genj9U","repoName":"@htmlbricks/hb-vertical-img-txt-archive","version":"0.66.10"},{"i18n":[],"name":"hb-uploader","category":"utilities","tags":["utilities","files"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-JWZJdA/wcU2gC0RVtCTI9IgCO4YyNmg6A0tSvMtk3wOKTqNlRjrAQsj6Kkrb5i5P","repoName":"@htmlbricks/hb-uploader","version":"0.66.10"},{"i18n":[],"name":"hb-tooltip","category":"overlays","tags":["overlays","tooltip"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-jhJRbcvdlpb5Rwd8SBj2SlTETS5HWYE8aATlu1KAOoQ+S004gU1oPEJNJy4qYJtX","repoName":"@htmlbricks/hb-tooltip","version":"0.66.10"},{"i18n":[],"name":"hb-toast","category":"overlays","tags":["overlays","notifications"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-bNMxQ0tXZLNTPHZa46a3mn3PBu9SvRQeiZL9ukTMZOZX55bosN4Z/sYku1N0M3NO","repoName":"@htmlbricks/hb-toast","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-terms-doc-templates","category":"content","tags":["content","compliance"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-DRVJMAt/d1BeB6oNCXQtjU6/zYCkk8vDmQouO2gAuTA3x3FkTwukYXT2oF4SjqMb","repoName":"@htmlbricks/hb-terms-doc-templates","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-table","category":"data","tags":["data","table"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-gGj9HhkwnZB8BLqLqsmJ2bFo3P0xy0DsVHBunWPr1XGwtw4CxOws8k2azF4/1MhW","repoName":"@htmlbricks/hb-table","version":"0.66.10"},{"i18n":[],"name":"hb-stylus-paper","category":"inputs","tags":["inputs","drawing"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-1I8vGAMNTx7d+EcJ7XnmNxAh1ZqqglqCmOIYujVUB3YJcjrvdbnJ6ZsH9MOWG0Bz","repoName":"@htmlbricks/hb-stylus-paper","version":"0.66.10"},{"i18n":[],"name":"hb-stylus-notebook","category":"inputs","tags":["inputs","drawing"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-0QD9cOXP2RGKMIDktZQovvMTHIPEUUr0aiguWoR+Rw81hMLXkrEXPQDszRyWynnW","repoName":"@htmlbricks/hb-stylus-notebook","version":"0.66.10"},{"i18n":[],"name":"hb-skeleton-component","category":"data","tags":["data","loading"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ImesZaa/bGfOgZhH+EKkXZ9KZuRslUjX8lnDAZ3PpctTL54DXKL3Xwu28lhOa8/K","repoName":"@htmlbricks/hb-skeleton-component","version":"0.66.10"},{"i18n":[],"name":"hb-site-slideshow-horizontal","category":"content","tags":["content","media"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-MxPV/G8dXzYv7AMQBKTaXvqsaDj992sAG2phYuXmqPS20Nh4hvwbnvqNf1E20CvH","repoName":"@htmlbricks/hb-site-slideshow-horizontal","version":"0.66.10"},{"i18n":[],"name":"hb-site-slideshow","category":"content","tags":["content","media"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-qAMfBFkDaCi2Hzb/pScUfb9EaHNt+mu3EZkuH4xCKnNQ52LxHBeWUhPNH4QBmmon","repoName":"@htmlbricks/hb-site-slideshow","version":"0.66.10"},{"i18n":[],"name":"hb-site-paragraph-with-image","category":"content","tags":["content"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-p/RZw3VeHw/0N357JCWrIInETQ9uz4BcT0OGtJaR0WK15otQS/rswNvIXlFRdhnF","repoName":"@htmlbricks/hb-site-paragraph-with-image","version":"0.66.10"},{"i18n":[],"name":"hb-site-contacts-row","category":"content","tags":["content","contact"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-cDeQ1OJDn01LkEIqU6zGerWMjIA9V/fn/5dPsmwVwerT3kye3RNNxmIM8FVsrnlj","repoName":"@htmlbricks/hb-site-contacts-row","version":"0.66.10"},{"i18n":[],"name":"hb-sidenav-link","category":"layout","tags":["layout","navigation"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-EyqZFY6JSy6FaCzHxSTsYySxir73TyWSo6YSYvU7/MO+xUmAbD50TR/+RZRli4ry","repoName":"@htmlbricks/hb-sidenav-link","version":"0.66.10"},{"i18n":[],"name":"hb-sidenav-button","category":"layout","tags":["layout","navigation"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-V9d4dY8eBSZTgYxzqrj6uJNOU7k5JCrgYfmP/QMeZRPtc2GFpHMqPsohxLMoKm0C","repoName":"@htmlbricks/hb-sidenav-button","version":"0.66.10"},{"i18n":[],"name":"hb-sidebar-desktop","category":"layout","tags":["layout","navigation"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-BTjReFBtGXaY96TyUipSxfZ58RFVdQlhomOFtxPt3qXLfz6X8iQji1b2UZcagLEo","repoName":"@htmlbricks/hb-sidebar-desktop","version":"0.66.10"},{"i18n":[],"name":"hb-sidebar-cards-navigator","category":"layout","tags":["layout","navigation"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-SeJSF/FW8G06ncn9NG15Co+ZPy19AogvosGxT7fXPQRDDHfer0rTY0mKSwup/o/N","repoName":"@htmlbricks/hb-sidebar-cards-navigator","version":"0.66.10"},{"i18n":[],"name":"hb-shop-item-row","category":"commerce","tags":["commerce","product"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-a93mk8d5hUlo0sDaDjkFVHb/k8cRvSWxX2VWATZgSG//WFBqrNxUVp1qAZCDvT4g","repoName":"@htmlbricks/hb-shop-item-row","version":"0.66.10"},{"i18n":[],"name":"hb-shop-item-cell","category":"commerce","tags":["commerce","product"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-P8EUdFH2TpGzKGUfXMxpmksSmilm8DQVLJBcHmwAvbZG7dhDeya+P9p5f4BxaY9D","repoName":"@htmlbricks/hb-shop-item-cell","version":"0.66.10"},{"i18n":[],"name":"hb-searchbar","category":"utilities","tags":["utilities","search"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-+QvUDpKapBodWSdT0rzMktvS1FKpB3CDzWeQ/Tb2p10VAAb5xwqzleW02uYq7ejA","repoName":"@htmlbricks/hb-searchbar","version":"0.66.10"},{"i18n":[],"name":"hb-range-slider","category":"inputs","tags":["inputs","slider"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-jh8qAsLqnVB3PR/NcRW78meTcs/f/V/vxRTCUNDF9/WXTEA1xF758PwDMVJWVu1L","repoName":"@htmlbricks/hb-range-slider","version":"0.66.10"},{"i18n":[],"name":"hb-product-comparison","category":"commerce","tags":["commerce","product"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-x6aAtaiPCoXIXOlDDR1UzRQznCyZYbMen2yAOX1WRv6/pp51JXtZzOEP8rDdbpXW","repoName":"@htmlbricks/hb-product-comparison","version":"0.66.10"},{"i18n":[],"name":"hb-player-live-camera-ptz","category":"media","tags":["media","video","streaming","camera"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-GvLojewYVfZjEWIrp4dHJjzn73rXmEZQP/p8QAki0xRShtivH+8qgK024EcyLRKa","repoName":"@htmlbricks/hb-player-live-camera-ptz","version":"0.66.10"},{"i18n":[],"name":"hb-player-live","category":"media","tags":["media","video","streaming"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-TQobRGctZukzZC2fmzQkrAaR+UCaic5Xp9nd0uASSynSzA7OLCTb78ubCf1/pMi3","repoName":"@htmlbricks/hb-player-live","version":"0.66.10"},{"i18n":[],"name":"hb-player-input-streaming","category":"media","tags":["media","video","camera"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-eK343jShhjE2XfesPh0ekbTlj0O34zO1I3bKfx+PTF+HvZRqmpl6scsM0jbVfQI/","repoName":"@htmlbricks/hb-player-input-streaming","version":"0.66.10"},{"i18n":[],"name":"hb-payment-paypal","category":"commerce","tags":["commerce","payment"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ZiKL8BRx0PxsDcFXAGF0PTTyRKp7cShl1BBlRuC4Sq2roQn0x+yU6AOX0MIOXYTa","repoName":"@htmlbricks/hb-payment-paypal","version":"0.66.10"},{"i18n":[],"name":"hb-paragraps-around-image-cell","category":"content","tags":["content"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-c0AksVDs57ySth4XvLa7QcTwOSlsPOQHvmASQE8Q7QYPJEqr7Lj6aC9On9ke+Jos","repoName":"@htmlbricks/hb-paragraps-around-image-cell","version":"0.66.10"},{"i18n":[],"name":"hb-paragraps-around-image","category":"content","tags":["content"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-CCjBTPiJfb6FTZ7c36yprhMFJsSeMOBvwunCIs6J6nBwFBGaEWTTY8I7lD4FLGvO","repoName":"@htmlbricks/hb-paragraps-around-image","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-paginate","category":"utilities","tags":["utilities","navigation"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-vHmJco/PlghTkzYGhpdqBEkaWWIyF0IwpYXHN+BwpUPdevHli/fBCzNxt7OS8Pnr","repoName":"@htmlbricks/hb-paginate","version":"0.66.10"},{"i18n":[],"name":"hb-page-invoice","category":"commerce","tags":["commerce","invoice","page"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ULcnm7IHTWDB+8NA9TsvBewihK0bFLeESi1BsziZiMbzk1WsRnb7DwVeOY6Ppzyw","repoName":"@htmlbricks/hb-page-invoice","version":"0.66.10"},{"i18n":[],"name":"hb-page-checkout","category":"commerce","tags":["commerce","checkout","page"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-8wMPZgXcjSrvEqeUX2h8ZESFBUs8USQMygn7OLIWOWJSAUso9PrY2VEEKC4u46Df","repoName":"@htmlbricks/hb-page-checkout","version":"0.66.10"},{"i18n":[],"name":"hb-pad-joystick","category":"utilities","tags":["utilities","controls"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-LXo5yeZ57AFNPwTNlZ6AuIM0otGNOeNXaGAius22MCzHZ4vLun8WSZizfQxLprZd","repoName":"@htmlbricks/hb-pad-joystick","version":"0.66.10"},{"i18n":[],"name":"hb-order-list","category":"commerce","tags":["commerce","order"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-Gl51FmMLOFOyLjgmf2OGtBMz/FGdbhKan5CXV6wlsSVyRyTBdMYwhyE2TRyVmbka","repoName":"@htmlbricks/hb-order-list","version":"0.66.10"},{"i18n":[],"name":"hb-offcanvas","category":"layout","tags":["layout","navigation"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-+X8FYVy6nspQYcZRE/2QE1R2BeICJ8PDAhX6BDUIbfa4WVKL1CADbV82uCAs4S+o","repoName":"@htmlbricks/hb-offcanvas","version":"0.66.10"},{"i18n":[],"name":"hb-navbar","category":"layout","tags":["layout","navigation"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-inWDOtbx0LZ7hKGpxP+KO0KnHmBabwpgzjaC8uoSICXFbI5ZmmxqVXnOpz83EgI4","repoName":"@htmlbricks/hb-navbar","version":"0.66.10"},{"i18n":[],"name":"hb-modal-video","category":"media","tags":["media","video","overlays"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-53MK/91PFdSj95Y4H5W7CXLpwXhKgq1ujr6ID2ARsWNLewD5DB9A+jPpr/P7RuBr","repoName":"@htmlbricks/hb-modal-video","version":"0.66.10"},{"i18n":[],"name":"hb-messages-topics-card","category":"messaging","tags":["messaging","chat"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-TziADMFgu3uU+9zzLtwf0N9VIweeRzrcNVIyz1YxYc56qk3numTCR0dv9ntq/zqj","repoName":"@htmlbricks/hb-messages-topics-card","version":"0.66.10"},{"i18n":[],"name":"hb-messages-send","category":"messaging","tags":["messaging","chat"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ly+mCPU8Av1T4moto0GCcKAyKXExZz0gcCYCAeECzqZmqxWpgepQIrQs4rGQdqYf","repoName":"@htmlbricks/hb-messages-send","version":"0.66.10"},{"i18n":[],"name":"hb-messages-list","category":"messaging","tags":["messaging","chat"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-jV0HH9xDGqXHmCOhldhINPNeKeR6BjHvKeXYEuc7aoSBNpFKjGC6vwICJ4+2Ez4b","repoName":"@htmlbricks/hb-messages-list","version":"0.66.10"},{"i18n":[],"name":"hb-messages-box","category":"messaging","tags":["messaging","chat"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-1YX4mQT+BgbFaKBa1ficDDhU3jEioNeCLKKNBYrNXO0CVFovSoIkLaEuBuhqt+ka","repoName":"@htmlbricks/hb-messages-box","version":"0.66.10"},{"i18n":[],"name":"hb-matrix-video","category":"media","tags":["media","video","grid"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-VSm4wccAE3ZACjVKayF/BzPrJeXqbu9KhupslsqTY9nAA0KCvWRvk/A+Ruon4+vw","repoName":"@htmlbricks/hb-matrix-video","version":"0.66.10"},{"i18n":[],"name":"hb-markdown-viewer","category":"content","tags":["content","markdown"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-7NSlsromTsgd5ZAIP64p6DPqzz4mTqL372gZhNrZAkWIJiz/56BZAfAERLwE+E5b","repoName":"@htmlbricks/hb-markdown-viewer","version":"0.66.10"},{"i18n":[],"name":"hb-map","category":"maps","tags":["maps"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-9aM8FP84lgi6oI6JCeQdvqVr2E6xpr/1MO8mUm9/xqvc5hdvNerpDiEsJR3iknp5","repoName":"@htmlbricks/hb-map","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-layout-mobile","category":"layout","tags":["layout","shell","responsive"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-/+ZUVjVqmsNjeoQQJ98PIFEHWU6VSgFY/TbEUUv4TOMhW6lrZhBzmt1Lh09whmzk","repoName":"@htmlbricks/hb-layout-mobile","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-layout-desktop","category":"layout","tags":["layout","shell","responsive"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-wtjVkDcxSJqmfstRrcM/KjaZqcm7x0W2sZXcFB2MHjDUL/qlc3VxHANw71ka9jCI","repoName":"@htmlbricks/hb-layout-desktop","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-layout","category":"layout","tags":["layout","shell"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-l0ZM8B/Z55WWRo738nOVUZz0C4Ml539J8qDSa/S0mURzm4SatW2eJdAER6/n5QHB","repoName":"@htmlbricks/hb-layout","version":"0.66.10"},{"i18n":[],"name":"hb-json-viewer","category":"data","tags":["data","json"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ofpmdD0HXZIhsuSsyXoGISl7Z6r69Lqs/lCLaH3jTHmd3yLp8iq9APwB+unZBZri","repoName":"@htmlbricks/hb-json-viewer","version":"0.66.10"},{"i18n":[],"name":"hb-input-text","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-jgNB6eV2o8/szJHdt8A5gqPt9wEsgsrr70hi4DNd9fhDFyGKxJXWVXTNsEJODcIE","repoName":"@htmlbricks/hb-input-text","version":"0.66.10"},{"i18n":[],"name":"hb-input-select","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-4ve+0XaBD9U60yxaR1asf3UqTHmrscFGfdJReV2GDzS+EtlnN/2KvKj27XaXD371","repoName":"@htmlbricks/hb-input-select","version":"0.66.10"},{"i18n":[],"name":"hb-input-range","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-lkZEV6Q4Eit7K5tq5qYngL5ZetAswYVBcWq1bNh7BA97KY0MQVg/OsDKncuvC3S/","repoName":"@htmlbricks/hb-input-range","version":"0.66.10"},{"i18n":[],"name":"hb-input-radio","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-iYP4BPca/B/tA6qK+SeFF6pZw2Iyw5TXcYo8eX/L+BEwKVqmE8LYliUw5NOc4hGR","repoName":"@htmlbricks/hb-input-radio","version":"0.66.10"},{"i18n":[],"name":"hb-input-number","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-nakOMSkLZeI4Qd3GV7wjGfZ7ddDMEco+1iVribSrF3+KsMFdqFDTvQujxI11Ol31","repoName":"@htmlbricks/hb-input-number","version":"0.66.10"},{"i18n":[],"name":"hb-input-file","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-cpFyxewYGdgTCLfa0xq89uwwHvie6UI6ur5b5zxpw3jVFg1SstDLeoHEx+rng5oT","repoName":"@htmlbricks/hb-input-file","version":"0.66.10"},{"i18n":[],"name":"hb-input-email","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-vY9un3gq4GFr9YGwOqSwVRz7WaBntqdA6O0kVv7/JMc+wWYDVaAW+MzOwEwNz4bd","repoName":"@htmlbricks/hb-input-email","version":"0.66.10"},{"i18n":[],"name":"hb-input-datetime","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-PZKtEOTrVMnPVNmPiXNCS0OjnTV3PqAqzR0wV52JiO5N1lkbKafAbBw17uyNzxFM","repoName":"@htmlbricks/hb-input-datetime","version":"0.66.10"},{"i18n":[],"name":"hb-input-date","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ZUI1RfUIsP2LxA1EcqUjM6Xt7e/7MhYyADP6S1O7oPEBK0wgRw2fdYNYdFmEeVUv","repoName":"@htmlbricks/hb-input-date","version":"0.66.10"},{"i18n":[],"name":"hb-input-coords","category":"inputs","tags":["inputs","maps"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-JCw/zfa77gnhwPAC4e719gDDF+AcJNVBZ4luvSd9rgdLdR2jgF+0ai2IMHlxZliP","repoName":"@htmlbricks/hb-input-coords","version":"0.66.10"},{"i18n":[],"name":"hb-input-color","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-r7x3qpxHXPf6A/eLgnvbzB8Lea3plarFJ0lOwAOP6mwAibT4HMm8sLj/KS9b9Tuj","repoName":"@htmlbricks/hb-input-color","version":"0.66.10"},{"i18n":[],"name":"hb-input-checkbox","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-/j2kNF2yii/R/nqt8qqGk9xeDsGtIhm8jXahDhxGu9bonnwMU22H5G5lDSCkdcfs","repoName":"@htmlbricks/hb-input-checkbox","version":"0.66.10"},{"i18n":[],"name":"hb-input-array-tags","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-lutRQZCjgT4WDuihKlFmTu9Dpr84jF5CvdT/Ss8gdFgJubecbeTRtVtMbS8cLNKh","repoName":"@htmlbricks/hb-input-array-tags","version":"0.66.10"},{"i18n":[],"name":"hb-input-array-objects","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-r7yaboYEOeFpwpxYtzP1K3XwrmRjV4LuK5pSFFlp3S7I38KvoysNy44/AKz8AQBw","repoName":"@htmlbricks/hb-input-array-objects","version":"0.66.10"},{"i18n":[],"name":"hb-input-area","category":"inputs","tags":["inputs"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-NvuCr49O5C1g73DH412A9N2JEiXrl6MiHXGGBa7Kr44tUF4XL033SQjtTckfWuo1","repoName":"@htmlbricks/hb-input-area","version":"0.66.10"},{"i18n":[],"name":"hb-gauge","category":"data","tags":["data","chart"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-fcnkTdXW2rSBI3c5MXmmZ3/IRipNYysgXzRYQUnj1DdSZpWaFXFfBfQcO9xjVoDw","repoName":"@htmlbricks/hb-gauge","version":"0.66.10"},{"i18n":[],"name":"hb-gallery-video","category":"media","tags":["media","video","gallery"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-gWKyQIbIdwBZyKEXWzGeP7sGAJG681l2M9KCkvrXIaTE3gDA3Cc3EHDexNlFvw5x","repoName":"@htmlbricks/hb-gallery-video","version":"0.66.10"},{"i18n":[],"name":"hb-funnel","category":"forms","tags":["forms","multistep"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-xKuYZCiDuxihN2QJlLSh0wYcIiJGIMHvytrzYHJuss8PJmV0tZAPnNWB1R8KL0zX","repoName":"@htmlbricks/hb-funnel","version":"0.66.10"},{"i18n":[],"name":"hb-form-contact","category":"forms","tags":["forms","contact"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-E6Q5U7FbUzpGKJ8DBBxba6IRSg3/nYAkN3Pnn+z53nVLPNbGpMxDQ66pfSHYQddQ","repoName":"@htmlbricks/hb-form-contact","version":"0.66.10"},{"i18n":[],"name":"hb-form-composer","category":"forms","tags":["forms","builder"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ymsTZZzTJnu1n0YsY5VkRMbQ5OrfMnn9yCBQDJcaaXndN00f/IKE9a4oHPk9571U","repoName":"@htmlbricks/hb-form-composer","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-form","category":"forms","tags":["forms"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ubwgX3tAOQEUxMOOZSjNcqn6x3OhTy4wWS4cmKKqk0zYEM9ypgzwG0bQ3opIYt8I","repoName":"@htmlbricks/hb-form","version":"0.66.10"},{"i18n":[],"name":"hb-footer","category":"layout","tags":["layout","navigation"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-5T1xVj5/7OIdyxMHySndcWHgfsOucMuWTttKck/KekRjI/y3CIxuxvG/hgd5U6UU","repoName":"@htmlbricks/hb-footer","version":"0.66.10"},{"i18n":[],"name":"hb-faq-component","category":"content","tags":["content"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-69g/VlpVdGq1J4aSl8YhckQbPLkZhleuFdr/hP7O6wC0WbNqWmNydG0rkPuVuCuJ","repoName":"@htmlbricks/hb-faq-component","version":"0.66.10"},{"i18n":[],"name":"hb-editor-video","category":"media","tags":["media","video","editor"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-SaJqzheJWL/rnxvucPnOhc2pM4TGUV1YktCimwJr6/7rDVcEHig/vzkII9s/PVd1","repoName":"@htmlbricks/hb-editor-video","version":"0.66.10"},{"i18n":[],"name":"hb-dropdown-simple","category":"overlays","tags":["overlays","menu"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-u+0J/PQJEsIZEsExMkNIO/hnw3A5E4haatugY8nSqoTAO4vtaNbr1NHkLuqIYK0z","repoName":"@htmlbricks/hb-dropdown-simple","version":"0.66.10"},{"i18n":[],"name":"hb-dropdown-notifications","category":"overlays","tags":["overlays","menu","notifications"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-kkZYlPbj3XCarXqWEgiJRAFUYb5YRyt94+HjOzJuyHP9HSkxxqlPjtvjzmeXttPl","repoName":"@htmlbricks/hb-dropdown-notifications","version":"0.66.10"},{"i18n":[],"name":"hb-downloader","category":"utilities","tags":["utilities","files"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-vLuYani2X1Q9dWd886/Am6lsEvm3NqCnXrBkLqNECavGgLTbsw9DEjCVoPb6iJ5F","repoName":"@htmlbricks/hb-downloader","version":"0.66.10"},{"i18n":[],"name":"hb-dialogform","category":"forms","tags":["forms","overlays"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-H3YeNCvIfd9LyPT0NRxgy/NLfa9AgEpkGJ8tA58AauU8WkICLSDKbaLi3vb78Ig2","repoName":"@htmlbricks/hb-dialogform","version":"0.66.10"},{"i18n":[],"name":"hb-dialog-loader","category":"overlays","tags":["overlays","modal","loading"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-stkOhwSE1cKdLo8qI8RYuP8AW8Q0pLeflpd7INAAXlFci+lHRHbdbB0MseiQ1Pzs","repoName":"@htmlbricks/hb-dialog-loader","version":"0.66.10"},{"i18n":[],"name":"hb-dialog","category":"overlays","tags":["overlays","modal"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-DhJWUAQSi/9BBLLBZUkMPrmFFHAbJHOyiXWpLV/A+nxo57i/QaPRNF7EVe91MhWh","repoName":"@htmlbricks/hb-dialog","version":"0.66.10"},{"i18n":[],"name":"hb-dashboard-indicator","category":"data","tags":["data","dashboard"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-toKRoDwk48SSRjMwO/rKfpALlQ6L9G199OOwVlZQTJBDMyWw4meZwIbqNm1vr4GP","repoName":"@htmlbricks/hb-dashboard-indicator","version":"0.66.10"},{"i18n":[],"name":"hb-dashboard-counter-lines","category":"data","tags":["data","dashboard"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-B1sVNiOX8KndQfiMvUUq0fjn4djTF9ksvaz7bsz77p9LRu63YVO/eawZF9rRv4Ut","repoName":"@htmlbricks/hb-dashboard-counter-lines","version":"0.66.10"},{"i18n":[],"name":"hb-dashboard-card1","category":"data","tags":["data","dashboard"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-V1fIvV/OakzZTl5gPMWtvzytYSUYLnv7Ewk1bSjPqSoVJXlN7zwBOjXOZ5Jg2J/T","repoName":"@htmlbricks/hb-dashboard-card1","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-cookie-law-banner","category":"layout","tags":["layout","compliance"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-ibQSTPd9EXOoN00vOqwXdpXVwQOQUsaF+9DCY+GbfAc64RNQpORmBaBKYlBMGss5","repoName":"@htmlbricks/hb-cookie-law-banner","version":"0.66.10"},{"i18n":[],"name":"hb-contact-item","category":"content","tags":["content","contact"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-A3qsFTcreRirRJ3xOm+PyUEG3hwu+VwDXpB4CU4hHay4Ltv/8MRAsqYp7L93ZzxY","repoName":"@htmlbricks/hb-contact-item","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-contact-card","category":"content","tags":["content","contact"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-IlEd1+feo+hZHIGq8GOkQ749CfLpIfQIIS6c7sMi3JN/Lf+0a2D/eZ9B9L1lM1XB","repoName":"@htmlbricks/hb-contact-card","version":"0.66.10"},{"i18n":[],"name":"hb-checkout-shopping-cart","category":"commerce","tags":["commerce","cart"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-AWfDqMnyPXi+PwRziBYfFraTjJ8r9aqg8cSZtvvQICYnl4RMmChikInR87x5D6TU","repoName":"@htmlbricks/hb-checkout-shopping-cart","version":"0.66.10"},{"i18n":[],"name":"hb-checkout","category":"commerce","tags":["commerce","checkout"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-z5AjXigSa0kUh1n2WJozDH1Y1dv9yDwjjSwQTTiuUQWRHji998Fmlw1nOOIGpbLf","repoName":"@htmlbricks/hb-checkout","version":"0.66.10"},{"i18n":[],"name":"hb-chartjs","category":"data","tags":["data","chart"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-mjWoCK2FCkqkbq5mvmay/YEejNWwGPfRnXu7FM4MQOSF4/qGPFrWegb85kpdClto","repoName":"@htmlbricks/hb-chartjs","version":"0.66.10"},{"i18n":[],"name":"hb-card-video","category":"media","tags":["media","video"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-JRVe2FE0zTg/ycWR3aXyH9IXVgqvMKz2vxiNxvXx3WAwps4AX+oGXLS5+iOA/umi","repoName":"@htmlbricks/hb-card-video","version":"0.66.10"},{"i18n":[],"name":"hb-captcha-google-recaptcha-v2-invisible","category":"utilities","tags":["utilities","security"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-LKR7oNsRvJZHnsJa7ENJISmQQcsxd1XEw3w+f1q3vo7AQdDCgpYF3yE5sPeCcQ8Y","repoName":"@htmlbricks/hb-captcha-google-recaptcha-v2-invisible","version":"0.66.10"},{"i18n":[],"name":"hb-calendar-events","category":"calendar","tags":["calendar"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-vUva8JfARvdiUZqlZ7v4rp60UkDsq3zDWHPecrVip5kVSpmHle3BanLpiy6LXVtz","repoName":"@htmlbricks/hb-calendar-events","version":"0.66.10"},{"i18n":[],"name":"hb-calendar-appointments","category":"calendar","tags":["calendar","appointments"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-fWv0UU5aeTz6ZMknCKEpjmlROhfM0SK4+Ql+cqOaPMd6L7DmoZuByXkh5BYqcIl5","repoName":"@htmlbricks/hb-calendar-appointments","version":"0.66.10"},{"i18n":[],"name":"hb-banner","category":"content","tags":["content","marketing"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-nmyh9wR90r+9xSANBUQ4QJ2Wo7MWK/wGWvpgR3deagQvR1SusaxwQzZJBtgm6/7F","repoName":"@htmlbricks/hb-banner","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-auth-social-login-button","category":"auth","tags":["auth","oauth"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-J7QAnCtXOoMoVkoL0B37fayu76+Yi4RiNAJvc8LAYN5WGq9e3zN2R4Su2y1OtGJ8","repoName":"@htmlbricks/hb-auth-social-login-button","version":"0.66.10"},{"i18n":[{"lang":"it","language":"italian"},{"lang":"en","language":"english"}],"name":"hb-auth","category":"auth","tags":["auth"],"size":{"layout":"fullscreen"},"iifePath":"main.iife.js","iifeIntegrity":"sha384-RlhSnYpI4Fq9vTy7k0r/HABC1EGZu0CeraI4HyTr/Yj+WRpZDEyJZlnnaA5cCa+/","repoName":"@htmlbricks/hb-auth","version":"0.66.10"},{"i18n":[],"name":"hb-area-code","category":"utilities","tags":["utilities","developer"],"size":{},"iifePath":"main.iife.js","iifeIntegrity":"sha384-LbXh+fg0OPWXlDpzkd5R2qcSSHjY1pALs4Athq8G7PxnlyObfg1XnyZ1V4s+9gm6","repoName":"@htmlbricks/hb-area-code","version":"0.66.10"}],"version":"0.66.10"}
|
package/cli.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@htmlbricks/mcp",
|
|
3
|
+
"version": "0.66.10",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "MCP server with HTML Bricks (hb-*) web component catalog resources and tools for agentic IDEs.",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=18"
|
|
9
|
+
},
|
|
10
|
+
"bin": "./cli.js",
|
|
11
|
+
"files": [
|
|
12
|
+
"cli.js",
|
|
13
|
+
"server.js",
|
|
14
|
+
"assets",
|
|
15
|
+
"README.md"
|
|
16
|
+
],
|
|
17
|
+
"keywords": [
|
|
18
|
+
"mcp",
|
|
19
|
+
"htmlbricks",
|
|
20
|
+
"web-components",
|
|
21
|
+
"model-context-protocol"
|
|
22
|
+
],
|
|
23
|
+
"author": "",
|
|
24
|
+
"license": "Apache-2.0",
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
30
|
+
"zod": "^3.25.0"
|
|
31
|
+
}
|
|
32
|
+
}
|
package/server.js
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import * as z from "zod/v4";
|
|
5
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
7
|
+
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const PACKAGE_ROOT = __dirname;
|
|
10
|
+
const ASSETS_DIR = join(PACKAGE_ROOT, "assets");
|
|
11
|
+
|
|
12
|
+
const RESOURCE_REFERENCE_URI = "htmlbricks://catalog/agent-reference";
|
|
13
|
+
const RESOURCE_LIST_URI = "htmlbricks://catalog/package-list";
|
|
14
|
+
const RESOURCE_GUIDE_URI = "htmlbricks://docs/development-guide";
|
|
15
|
+
|
|
16
|
+
/** Cached reference markdown (large); avoids re-reading disk. */
|
|
17
|
+
let referenceCache = null;
|
|
18
|
+
|
|
19
|
+
const DEVELOPMENT_GUIDE = `# HTML Bricks — agent development guide
|
|
20
|
+
|
|
21
|
+
Use this together with the resource **${RESOURCE_REFERENCE_URI}** (full catalog) and **${RESOURCE_LIST_URI}** (manifest index).
|
|
22
|
+
|
|
23
|
+
## Conventions
|
|
24
|
+
|
|
25
|
+
- Custom elements are **\`hb-*\`** tags (for example \`hb-button\`, \`hb-modal\`).
|
|
26
|
+
- **Web component attributes are snake_case**; values are **strings** (even booleans and numbers).
|
|
27
|
+
- Styling follows **Bootstrap 5**; prefer **\`--bs-*\`** CSS variables for themes. Optional bundle theme sheets live under \`style/bundle.light.vars.css\` and \`style/bundle.dark.vars.css\` in **@htmlbricks/hb-bundle**.
|
|
28
|
+
- Icons use **Bootstrap Icons**.
|
|
29
|
+
|
|
30
|
+
## Loading components in the browser
|
|
31
|
+
|
|
32
|
+
- **Per-component** scripts from jsDelivr: \`https://cdn.jsdelivr.net/npm/@htmlbricks/hb-<name>@<version>/main.iife.js\` (see each package for optional \`integrity\` from npm).
|
|
33
|
+
- **Full catalog** IIFE: **@htmlbricks/hb-bundle** provides \`main.iife.js\`, \`list.json\`, \`bundle.json\`, and \`agents/docs/AGENT_WEBCOMPONENTS_REFERENCE.md\` (same content as the MCP resource above when versions match).
|
|
34
|
+
|
|
35
|
+
## Workflow for agents
|
|
36
|
+
|
|
37
|
+
1. Read **${RESOURCE_GUIDE_URI}** (this file) and **${RESOURCE_REFERENCE_URI}** before proposing markup or props.
|
|
38
|
+
2. Use the **search_catalog** tool for keyword lookup when the reference is too large to scan manually.
|
|
39
|
+
3. Prefer attributes and events documented in the reference; do not invent props.
|
|
40
|
+
|
|
41
|
+
Version of this MCP package tracks the published **@htmlbricks/hb-bundle** release it was built with.
|
|
42
|
+
`;
|
|
43
|
+
|
|
44
|
+
async function readPackageVersion() {
|
|
45
|
+
const raw = await readFile(join(PACKAGE_ROOT, "package.json"), "utf-8");
|
|
46
|
+
const pkg = JSON.parse(raw);
|
|
47
|
+
return typeof pkg.version === "string" ? pkg.version : "0.0.0";
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function readLocalFile(relPath) {
|
|
51
|
+
return readFile(join(ASSETS_DIR, relPath), "utf-8");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async function fetchReferenceFromCdn(version) {
|
|
55
|
+
const url = `https://cdn.jsdelivr.net/npm/@htmlbricks/hb-bundle@${version}/agents/docs/AGENT_WEBCOMPONENTS_REFERENCE.md`;
|
|
56
|
+
const res = await fetch(url);
|
|
57
|
+
if (!res.ok) {
|
|
58
|
+
throw new Error(
|
|
59
|
+
`Could not fetch catalog from CDN (${res.status}): ${url}. Install the published @htmlbricks/mcp package or run the HTML Bricks publish flow to populate assets/.`
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
return res.text();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function getAgentReferenceMarkdown() {
|
|
66
|
+
if (referenceCache !== null) return referenceCache;
|
|
67
|
+
const version = await readPackageVersion();
|
|
68
|
+
try {
|
|
69
|
+
referenceCache = await readLocalFile("AGENT_WEBCOMPONENTS_REFERENCE.md");
|
|
70
|
+
return referenceCache;
|
|
71
|
+
} catch {
|
|
72
|
+
referenceCache = await fetchReferenceFromCdn(version);
|
|
73
|
+
return referenceCache;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
async function getPackageListJson() {
|
|
78
|
+
const version = await readPackageVersion();
|
|
79
|
+
try {
|
|
80
|
+
return await readLocalFile("list.json");
|
|
81
|
+
} catch {
|
|
82
|
+
const url = `https://cdn.jsdelivr.net/npm/@htmlbricks/hb-bundle@${version}/list.json`;
|
|
83
|
+
const res = await fetch(url);
|
|
84
|
+
if (!res.ok) {
|
|
85
|
+
throw new Error(
|
|
86
|
+
`Could not read list.json from assets or CDN (${res.status}). Use a published @htmlbricks/mcp build.`
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
return res.text();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function searchInText(text, query, maxResults) {
|
|
94
|
+
const q = query.trim().toLowerCase();
|
|
95
|
+
if (!q) return [];
|
|
96
|
+
const lines = text.split(/\r?\n/);
|
|
97
|
+
const matches = [];
|
|
98
|
+
for (let i = 0; i < lines.length; i++) {
|
|
99
|
+
if (lines[i].toLowerCase().includes(q)) {
|
|
100
|
+
const from = Math.max(0, i - 2);
|
|
101
|
+
const to = Math.min(lines.length, i + 3);
|
|
102
|
+
matches.push({
|
|
103
|
+
line: i + 1,
|
|
104
|
+
excerpt: lines.slice(from, to).join("\n"),
|
|
105
|
+
});
|
|
106
|
+
if (matches.length >= maxResults) break;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return matches;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export async function startMcp() {
|
|
113
|
+
const version = await readPackageVersion();
|
|
114
|
+
const server = new McpServer(
|
|
115
|
+
{
|
|
116
|
+
name: "@htmlbricks/mcp",
|
|
117
|
+
version,
|
|
118
|
+
title: "HTML Bricks catalog MCP",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
capabilities: {
|
|
122
|
+
resources: { subscribe: false, listChanged: false },
|
|
123
|
+
tools: {},
|
|
124
|
+
prompts: {},
|
|
125
|
+
},
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
server.registerResource(
|
|
130
|
+
"agent-reference",
|
|
131
|
+
RESOURCE_REFERENCE_URI,
|
|
132
|
+
{
|
|
133
|
+
title: "HTML Bricks — agent component reference",
|
|
134
|
+
description:
|
|
135
|
+
"Merged Markdown reference for all hb-* elements: props (snake_case), events, slots, theming.",
|
|
136
|
+
mimeType: "text/markdown",
|
|
137
|
+
},
|
|
138
|
+
async () => {
|
|
139
|
+
const text = await getAgentReferenceMarkdown();
|
|
140
|
+
return {
|
|
141
|
+
contents: [{ uri: RESOURCE_REFERENCE_URI, mimeType: "text/markdown", text }],
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
server.registerResource(
|
|
147
|
+
"package-list",
|
|
148
|
+
RESOURCE_LIST_URI,
|
|
149
|
+
{
|
|
150
|
+
title: "HTML Bricks — package list",
|
|
151
|
+
description: "list.json from hb-bundle: component metadata, versions, tags, IIFE paths.",
|
|
152
|
+
mimeType: "application/json",
|
|
153
|
+
},
|
|
154
|
+
async () => {
|
|
155
|
+
const text = await getPackageListJson();
|
|
156
|
+
return {
|
|
157
|
+
contents: [{ uri: RESOURCE_LIST_URI, mimeType: "application/json", text }],
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
server.registerResource(
|
|
163
|
+
"development-guide",
|
|
164
|
+
RESOURCE_GUIDE_URI,
|
|
165
|
+
{
|
|
166
|
+
title: "HTML Bricks — development guide for agents",
|
|
167
|
+
description: "Conventions, CDN usage, and workflow for building pages with hb-* components.",
|
|
168
|
+
mimeType: "text/markdown",
|
|
169
|
+
},
|
|
170
|
+
async () => ({
|
|
171
|
+
contents: [{ uri: RESOURCE_GUIDE_URI, mimeType: "text/markdown", text: DEVELOPMENT_GUIDE }],
|
|
172
|
+
})
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
server.registerTool(
|
|
176
|
+
"search_catalog",
|
|
177
|
+
{
|
|
178
|
+
title: "Search catalog reference",
|
|
179
|
+
description:
|
|
180
|
+
"Search the HTML Bricks agent reference (Markdown) for a keyword: tag name, attribute, or topic. Returns line numbers and short excerpts.",
|
|
181
|
+
inputSchema: {
|
|
182
|
+
query: z.string().min(1).describe("Case-insensitive substring to find"),
|
|
183
|
+
max_results: z
|
|
184
|
+
.number()
|
|
185
|
+
.int()
|
|
186
|
+
.min(1)
|
|
187
|
+
.max(80)
|
|
188
|
+
.optional()
|
|
189
|
+
.describe("Maximum matches (default 25)"),
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
async ({ query, max_results = 25 }) => {
|
|
193
|
+
const text = await getAgentReferenceMarkdown();
|
|
194
|
+
const matches = searchInText(text, query, max_results);
|
|
195
|
+
if (matches.length === 0) {
|
|
196
|
+
return {
|
|
197
|
+
content: [
|
|
198
|
+
{
|
|
199
|
+
type: "text",
|
|
200
|
+
text: `No matches for ${JSON.stringify(query)} in the agent reference.`,
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
const body = matches
|
|
206
|
+
.map((m) => `--- Line ${m.line} ---\n${m.excerpt}`)
|
|
207
|
+
.join("\n\n");
|
|
208
|
+
return {
|
|
209
|
+
content: [{ type: "text", text: body }],
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
);
|
|
213
|
+
|
|
214
|
+
server.registerTool(
|
|
215
|
+
"get_bundle_cdn_urls",
|
|
216
|
+
{
|
|
217
|
+
title: "hb-bundle CDN base URLs",
|
|
218
|
+
description:
|
|
219
|
+
"Returns jsDelivr base URLs for @htmlbricks/hb-bundle for this MCP package version (IIFE, list.json, agent reference).",
|
|
220
|
+
inputSchema: {},
|
|
221
|
+
},
|
|
222
|
+
async () => {
|
|
223
|
+
const v = await readPackageVersion();
|
|
224
|
+
const base = `https://cdn.jsdelivr.net/npm/@htmlbricks/hb-bundle@${v}`;
|
|
225
|
+
const lines = [
|
|
226
|
+
`version: ${v}`,
|
|
227
|
+
`bundle_root: ${base}/`,
|
|
228
|
+
`main_iife: ${base}/main.iife.js`,
|
|
229
|
+
`list_json: ${base}/list.json`,
|
|
230
|
+
`agent_reference: ${base}/agents/docs/AGENT_WEBCOMPONENTS_REFERENCE.md`,
|
|
231
|
+
`style_light: ${base}/style/bundle.light.vars.css`,
|
|
232
|
+
`style_dark: ${base}/style/bundle.dark.vars.css`,
|
|
233
|
+
].join("\n");
|
|
234
|
+
return { content: [{ type: "text", text: lines }] };
|
|
235
|
+
}
|
|
236
|
+
);
|
|
237
|
+
|
|
238
|
+
server.registerPrompt(
|
|
239
|
+
"plan_htmlbricks_page",
|
|
240
|
+
{
|
|
241
|
+
title: "Plan a page with HTML Bricks",
|
|
242
|
+
description:
|
|
243
|
+
"Guides the model to read catalog resources and then design HTML using hb-* components.",
|
|
244
|
+
argsSchema: {
|
|
245
|
+
goal: z.string().describe("What the page or UI should accomplish"),
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
async ({ goal }) => ({
|
|
249
|
+
messages: [
|
|
250
|
+
{
|
|
251
|
+
role: "user",
|
|
252
|
+
content: {
|
|
253
|
+
type: "text",
|
|
254
|
+
text: `You are building web UI with **HTML Bricks** (\`hb-*\` custom elements).
|
|
255
|
+
|
|
256
|
+
First, read MCP resources:
|
|
257
|
+
- ${RESOURCE_GUIDE_URI}
|
|
258
|
+
- ${RESOURCE_REFERENCE_URI}
|
|
259
|
+
|
|
260
|
+
Rules: use **snake_case** attributes with **string** values; follow Bootstrap 5 and Bootstrap Icons; align with the reference for props and events.
|
|
261
|
+
|
|
262
|
+
Goal: ${goal}
|
|
263
|
+
|
|
264
|
+
Produce a concise plan (sections, components, key attributes), then valid HTML example snippets using the correct \`hb-*\` tags.`,
|
|
265
|
+
},
|
|
266
|
+
},
|
|
267
|
+
],
|
|
268
|
+
})
|
|
269
|
+
);
|
|
270
|
+
|
|
271
|
+
const transport = new StdioServerTransport();
|
|
272
|
+
await server.connect(transport);
|
|
273
|
+
}
|