{"_id":"@afterwayx/mcp-ui","_rev":"6-fc0486b2595af7d6d2a022060131be10","name":"@afterwayx/mcp-ui","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@afterwayx/mcp-ui","version":"1.0.0","keywords":["mcp","model-context-protocol","react","web-components","ui","client-sdk","typescript","ai","llm","chat"],"author":{"name":"FuseLab Creative"},"license":"Apache-2.0","_id":"@afterwayx/mcp-ui@1.0.0","maintainers":[{"name":"afterwayx","email":"dbgameforever@gmail.com"}],"homepage":"https://github.com/fuselab-creative/mcp-ui-client#readme","bugs":{"url":"https://github.com/fuselab-creative/mcp-ui-client/issues"},"dist":{"shasum":"a2d7de21fb07f18fe787f9b93cc3352b88f9c3d7","tarball":"https://registry.npmjs.org/@afterwayx/mcp-ui/-/mcp-ui-1.0.0.tgz","fileCount":3,"integrity":"sha512-b5lO4Ve7UZzL1bP32o1Exq+4hjUJMfe1VlPrkVJbDR8W5DeencsQ6V35OFXcvWgmyfGJuvbjGCsJUKs9amhgwQ==","signatures":[{"sig":"MEYCIQCyy9ca6Ni13ARKDAMjOXmlJrM7+Krg0x9d7eOjN+nAXQIhANrfP6QEK7bAQ7lUaZUglDe1JXClY+ri36U/mbs1jXHK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":873246},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./ui-resource-renderer.wc.js":"./dist/ui-resource-renderer.wc.js"},"private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"dev":"pnpm run bundle:iframe && vite","lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"pnpm run bundle:iframe && tsc && vite build && pnpm run build:wc","build:wc":"vite build --config vite.config.wc.ts","test:watch":"vitest watch","bundle:iframe":"node scripts/bundle-iframe.js","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"afterwayx","email":"dbgameforever@gmail.com"},"repository":{"url":"git+https://github.com/fuselab-creative/mcp-ui-client.git","type":"git","directory":"mcp-ui-client"},"_npmVersion":"11.5.2","description":"MCP-UI Client SDK - A powerful client library for Model Context Protocol with React components and web components","directories":{},"_nodeVersion":"22.18.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","@quilted/threads":"^3.1.3","@remote-dom/core":"^1.8.0","@remote-dom/react":"^1.2.2","@vitejs/plugin-react-swc":"^4.0.1","@modelcontextprotocol/sdk":"*","@r2wc/react-to-web-component":"^2.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^22.0.0","vitest":"^1.0.0","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^24.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^14.0.0","@testing-library/jest-dom":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-ui_1.0.0_1756719492877_0.9637197811552962","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@afterwayx/mcp-ui","version":"1.0.1","keywords":["mcp","model-context-protocol","react","web-components","ui","client-sdk","typescript","ai","llm","chat"],"author":{"name":"FuseLab Creative"},"license":"Apache-2.0","_id":"@afterwayx/mcp-ui@1.0.1","maintainers":[{"name":"afterwayx","email":"dbgameforever@gmail.com"}],"homepage":"https://github.com/fuselab-creative/mcp-ui-client#readme","bugs":{"url":"https://github.com/fuselab-creative/mcp-ui-client/issues"},"dist":{"shasum":"57f73757f9d415a2b2971942d51241869e489a90","tarball":"https://registry.npmjs.org/@afterwayx/mcp-ui/-/mcp-ui-1.0.1.tgz","fileCount":3,"integrity":"sha512-apd2qnk1GlnVRYBTD7DewOg+4R+P8bujRsLOda1kHhDiAuJTXW68Misro0FCJqAE7+78s9ZF7HKVuuecCxwHgg==","signatures":[{"sig":"MEUCIQCGfExQMH/JE0hZy4RcLM3hiddWXhPf1Gx6YpN6mSIkeAIgOv9F3FBHdfvaDP9eOpuciJSZq3JdMdGDiQYlrTp8XiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":870187},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./ui-resource-renderer.wc.js":"./dist/ui-resource-renderer.wc.js"},"private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"dev":"pnpm run bundle:iframe && vite","lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"pnpm run bundle:iframe && tsc && vite build && pnpm run build:wc","build:wc":"vite build --config vite.config.wc.ts","test:watch":"vitest watch","bundle:iframe":"node scripts/bundle-iframe.js","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"afterwayx","email":"dbgameforever@gmail.com"},"repository":{"url":"git+https://github.com/fuselab-creative/mcp-ui-client.git","type":"git","directory":"mcp-ui-client"},"_npmVersion":"11.5.2","description":"MCP-UI Client SDK - A powerful client library for Model Context Protocol with React components and web components","directories":{},"_nodeVersion":"22.18.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","@quilted/threads":"^3.1.3","@remote-dom/core":"^1.8.0","@remote-dom/react":"^1.2.2","@vitejs/plugin-react-swc":"^4.0.1","@modelcontextprotocol/sdk":"*","@r2wc/react-to-web-component":"^2.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^22.0.0","vitest":"^1.0.0","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^24.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^14.0.0","@testing-library/jest-dom":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-ui_1.0.1_1756719881488_0.022490253679022576","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@afterwayx/mcp-ui","version":"1.0.2","keywords":["mcp","model-context-protocol","react","web-components","ui","client-sdk","typescript","ai","llm","chat"],"author":{"name":"FuseLab Creative"},"license":"Apache-2.0","_id":"@afterwayx/mcp-ui@1.0.2","maintainers":[{"name":"afterwayx","email":"dbgameforever@gmail.com"}],"homepage":"https://github.com/fuselab-creative/mcp-ui-client#readme","bugs":{"url":"https://github.com/fuselab-creative/mcp-ui-client/issues"},"dist":{"shasum":"1bb00a58cfc397e9be1b3f6365425a2ce85bb202","tarball":"https://registry.npmjs.org/@afterwayx/mcp-ui/-/mcp-ui-1.0.2.tgz","fileCount":3,"integrity":"sha512-nrX3I9upyQG/OZSyJixRlSSVMk3KfoKPw0cjy+jkf4DmXgNcoaAJQ1VavkvjjU5atWstSARC09Rr6A83WpfXAg==","signatures":[{"sig":"MEQCIHmuZS0o7po5Q77CJMk4H4CCnq/r9BVvmWNDMSPEwoAtAiA40KopwSCPaO0hifL7QMSX5RE/fILf0Sw7ZhJmuHyhMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":870128},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./ui-resource-renderer.wc.js":"./dist/ui-resource-renderer.wc.js"},"gitHead":"d82c6f976136432541382e77a631afc2b1420470","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"dev":"pnpm run bundle:iframe && vite","lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"pnpm run bundle:iframe && tsc && vite build && pnpm run build:wc","build:wc":"vite build --config vite.config.wc.ts","test:watch":"vitest watch","bundle:iframe":"node scripts/bundle-iframe.js","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"afterwayx","email":"dbgameforever@gmail.com"},"repository":{"url":"git+https://github.com/fuselab-creative/mcp-ui-client.git","type":"git","directory":"mcp-ui-client"},"_npmVersion":"11.5.2","description":"MCP-UI Client SDK - A powerful client library for Model Context Protocol with React components and web components","directories":{},"_nodeVersion":"22.18.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","@quilted/threads":"^3.1.3","@remote-dom/core":"^1.8.0","@remote-dom/react":"^1.2.2","@vitejs/plugin-react-swc":"^4.0.1","@modelcontextprotocol/sdk":"*","@r2wc/react-to-web-component":"^2.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^22.0.0","vitest":"^1.0.0","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^24.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^14.0.0","@testing-library/jest-dom":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-ui_1.0.2_1756723059871_0.7199605910493212","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@afterwayx/mcp-ui","version":"1.0.3","keywords":["mcp","model-context-protocol","react","web-components","ui","client-sdk","typescript","ai","llm","chat"],"author":{"name":"FuseLab Creative"},"license":"Apache-2.0","_id":"@afterwayx/mcp-ui@1.0.3","maintainers":[{"name":"afterwayx","email":"dbgameforever@gmail.com"}],"homepage":"https://github.com/fuselab-creative/mcp-ui-client#readme","bugs":{"url":"https://github.com/fuselab-creative/mcp-ui-client/issues"},"dist":{"shasum":"d2a7286d00e879f74c9fde675bf351ecda96d532","tarball":"https://registry.npmjs.org/@afterwayx/mcp-ui/-/mcp-ui-1.0.3.tgz","fileCount":3,"integrity":"sha512-mk77aUJ9D7zG0nY6mOM0UMeUzPNrsMszSJo6+p1h/4MOhGgfXRJJBsN5I37mITOwcP/djYXVJFR1KHaoa89uXg==","signatures":[{"sig":"MEYCIQCuVnNbiLaBWosRAf+wZvkp0tSonWPggcroWaqNsM4ssQIhAPfjTGpiLykOrPJb1vsoGn8Z6QKaDfgzQUtwEPo1Rt6Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":870128},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./ui-resource-renderer.wc.js":"./dist/ui-resource-renderer.wc.js"},"gitHead":"48796382f2b92c661f42b78ce0a7add44538a8a2","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"dev":"pnpm run bundle:iframe && vite","lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"pnpm run bundle:iframe && tsc && vite build && pnpm run build:wc","build:wc":"vite build --config vite.config.wc.ts","test:watch":"vitest watch","bundle:iframe":"node scripts/bundle-iframe.js","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"afterwayx","email":"dbgameforever@gmail.com"},"repository":{"url":"git+https://github.com/fuselab-creative/mcp-ui-client.git","type":"git","directory":"mcp-ui-client"},"_npmVersion":"11.5.2","description":"MCP-UI Client SDK - A powerful client library for Model Context Protocol with React components and web components","directories":{},"_nodeVersion":"22.18.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","@quilted/threads":"^3.1.3","@remote-dom/core":"^1.8.0","@remote-dom/react":"^1.2.2","@vitejs/plugin-react-swc":"^4.0.1","@modelcontextprotocol/sdk":"*","@r2wc/react-to-web-component":"^2.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^22.0.0","vitest":"^1.0.0","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^24.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^14.0.0","@testing-library/jest-dom":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-ui_1.0.3_1756730804865_0.929984752230709","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@afterwayx/mcp-ui","version":"1.0.4","keywords":["mcp","model-context-protocol","react","web-components","ui","client-sdk","typescript","ai","llm","chat"],"author":{"name":"FuseLab Creative"},"license":"Apache-2.0","_id":"@afterwayx/mcp-ui@1.0.4","maintainers":[{"name":"afterwayx","email":"dbgameforever@gmail.com"}],"homepage":"https://github.com/fuselab-creative/mcp-ui-client#readme","bugs":{"url":"https://github.com/fuselab-creative/mcp-ui-client/issues"},"dist":{"shasum":"95d5dfdbcb1eb61fe3e517ad5ac4a856523fe50b","tarball":"https://registry.npmjs.org/@afterwayx/mcp-ui/-/mcp-ui-1.0.4.tgz","fileCount":26,"integrity":"sha512-9Epf0fYe1VCHSv663cmyNn8ifpqXj71v+U2zvTCf4vKSx2NketuD0wT1tkAf47CoRkbB7NXmNV8WUeNdq6sKZA==","signatures":[{"sig":"MEUCIEQ2/79yFZbOWGCphPDI+eGEOiCep35MoQ6m8TylrdjrAiEAt7TKfNJwsZk6FZzVGzUQ3GXDpnr9bDkhlgMRH7gFmus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271701},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./ui-resource-renderer.wc.js":"./dist/ui-resource-renderer.wc.js"},"gitHead":"48796382f2b92c661f42b78ce0a7add44538a8a2","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"dev":"pnpm run bundle:iframe && vite","lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"pnpm run bundle:iframe && tsc && vite build && pnpm run build:wc","build:wc":"vite build --config vite.config.wc.ts","build:lib":"vite build","test:watch":"vitest watch","bundle:iframe":"node scripts/bundle-iframe.js"},"_npmUser":{"name":"afterwayx","email":"dbgameforever@gmail.com"},"repository":{"url":"git+https://github.com/fuselab-creative/mcp-ui-client.git","type":"git","directory":"mcp-ui-client"},"_npmVersion":"11.5.2","description":"MCP-UI Client SDK - A powerful client library for Model Context Protocol with React components and web components","directories":{},"_nodeVersion":"22.18.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","@quilted/threads":"^3.1.3","@remote-dom/core":"^1.8.0","@remote-dom/react":"^1.2.2","@vitejs/plugin-react-swc":"^4.0.1","@modelcontextprotocol/sdk":"*","@r2wc/react-to-web-component":"^2.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^22.0.0","vitest":"^1.0.0","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^24.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^14.0.0","@testing-library/jest-dom":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-ui_1.0.4_1756731104024_0.9179376671976034","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@afterwayx/mcp-ui","version":"1.0.5","description":"MCP-UI Client SDK - A powerful client library for Model Context Protocol with React components and web components","private":false,"type":"module","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./ui-resource-renderer.wc.js":"./dist/ui-resource-renderer.wc.js"},"keywords":["mcp","model-context-protocol","react","web-components","ui","client-sdk","typescript","ai","llm","chat"],"author":{"name":"FuseLab Creative"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/fuselab-creative/mcp-ui-client.git","directory":"mcp-ui-client"},"bugs":{"url":"https://github.com/fuselab-creative/mcp-ui-client/issues"},"homepage":"https://github.com/fuselab-creative/mcp-ui-client#readme","engines":{"node":">=18.0.0","npm":">=8.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"*","@quilted/threads":"^3.1.3","@r2wc/react-to-web-component":"^2.0.4","@remote-dom/core":"^1.8.0","@remote-dom/react":"^1.2.2","@vitejs/plugin-react-swc":"^4.0.1","react":"^18.3.1","react-dom":"^18.3.1"},"devDependencies":{"@testing-library/jest-dom":"^6.0.0","@testing-library/react":"^14.0.0","@types/node":"^24.3.0","@types/react":"^18.2.0","@vitejs/plugin-react":"^4.0.0","esbuild":"^0.25.5","jsdom":"^22.0.0","typescript":"^5.0.0","vite":"^5.0.0","vite-plugin-dts":"^3.6.0","vite-tsconfig-paths":"^5.1.4","vitest":"^1.0.0"},"scripts":{"publish:lib":"pnpm run build && npm publish","build:lib":"vite build","build:wc":"vite build --config vite.config.wc.ts","copy:wc":"node scripts/copy-wc.js","build":"pnpm run build:lib && pnpm run build:wc && pnpm run copy:wc","bundle:iframe":"node scripts/bundle-iframe.js","dev":"pnpm run bundle:iframe && vite","test":"vitest run","test:watch":"vitest watch","lint":"eslint . --ext .ts,.tsx"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"release":{"branches":["main"],"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}"}]]},"_id":"@afterwayx/mcp-ui@1.0.5","gitHead":"48796382f2b92c661f42b78ce0a7add44538a8a2","_nodeVersion":"22.18.0","_npmVersion":"11.5.2","dist":{"integrity":"sha512-sirX4C51SRFeUCUJFxZMx1wadl9VdnHPOWlD5RhGysqu8ovKW6/qeTas//IwUx/E151ZXjnQHcD1lgVkXQ70FA==","shasum":"855b6bcbb752744a2250fa05b26bb9bee3c63380","tarball":"https://registry.npmjs.org/@afterwayx/mcp-ui/-/mcp-ui-1.0.5.tgz","fileCount":27,"unpackedSize":1129007,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHwufQIolHLo+z4pJJjUufkkTH34w0jmqNRlM3+5ZlGqAiEAkdt8FAAPAbC/8OUspPTDK8EDniv+yuonkXxsBmecKEY="}]},"_npmUser":{"name":"afterwayx","email":"dbgameforever@gmail.com"},"directories":{},"maintainers":[{"name":"afterwayx","email":"dbgameforever@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-ui_1.0.5_1756731504351_0.4647445544817179"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-01T09:38:12.788Z","modified":"2025-09-01T12:58:24.738Z","1.0.0":"2025-09-01T09:38:13.087Z","1.0.1":"2025-09-01T09:44:41.706Z","1.0.2":"2025-09-01T10:37:40.082Z","1.0.3":"2025-09-01T12:46:45.082Z","1.0.4":"2025-09-01T12:51:44.263Z","1.0.5":"2025-09-01T12:58:24.552Z"},"bugs":{"url":"https://github.com/fuselab-creative/mcp-ui-client/issues"},"author":{"name":"FuseLab Creative"},"license":"Apache-2.0","homepage":"https://github.com/fuselab-creative/mcp-ui-client#readme","keywords":["mcp","model-context-protocol","react","web-components","ui","client-sdk","typescript","ai","llm","chat"],"repository":{"type":"git","url":"git+https://github.com/fuselab-creative/mcp-ui-client.git","directory":"mcp-ui-client"},"description":"MCP-UI Client SDK - A powerful client library for Model Context Protocol with React components and web components","maintainers":[{"name":"afterwayx","email":"dbgameforever@gmail.com"}],"readme":"## 📦 Model Context Protocol UI SDK\r\n\r\n<p align=\"center\">\r\n  <img width=\"250\" alt=\"image\" src=\"https://github.com/user-attachments/assets/65b9698f-990f-4846-9b2d-88de91d53d4d\" />\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://www.npmjs.com/package/@afterwayx/mcp-ui\"><img src=\"https://img.shields.io/npm/v/@mcp-ui/client?label=client&color=blue\" alt=\"Client Version\"></a>\r\n  <a href=\"https://gitmcp.io/idosal/mcp-ui\"><img src=\"https://img.shields.io/endpoint?url=https://gitmcp.io/badge/idosal/mcp-ui\" alt=\"MCP Documentation\"></a>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"#-whats-mcp-ui\">What's mcp-ui?</a> •\r\n  <a href=\"#-core-concepts\">Core Concepts</a> •\r\n  <a href=\"#-installation\">Installation</a> •\r\n  <a href=\"#-getting-started\">Getting Started</a> •\r\n  <a href=\"#-walkthrough\">Walkthrough</a> •\r\n  <a href=\"#-examples\">Examples</a> •\r\n  <a href=\"#-security\">Security</a> •\r\n  <a href=\"#-roadmap\">Roadmap</a> •\r\n  <a href=\"#-contributing\">Contributing</a> •\r\n  <a href=\"#-license\">License</a>\r\n  <a href=\"#-deploy\">Deploy</a>\r\n</p>\r\n\r\n----\r\n\r\n**`mcp-ui`** brings interactive web components to the [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP). Deliver rich, dynamic UI resources directly from your MCP server to be rendered by the client. Take AI interaction to the next level!\r\n\r\n> *This project is an experimental community playground for MCP UI ideas. Expect rapid iteration and enhancements!*\r\n\r\n<p align=\"center\">\r\n  <video src=\"https://github.com/user-attachments/assets/7180c822-2dd9-4f38-9d3e-b67679509483\"></video>\r\n</p>\r\n\r\n## 💡 What's `mcp-ui`?\r\n\r\n`mcp-ui` is a collection of SDKs comprising:\r\n\r\n* **`@afterwayx/mcp-ui` (TypeScript)**: UI components (e.g., `<UIResourceRenderer />`) to render the UI resources and handle their events.\r\n\r\nTogether, they let you define reusable UI snippets on the server side, seamlessly and securely render them in the client, and react to their actions in the MCP host environment.\r\n\r\n## ✨ Core Concepts\r\n\r\nIn essence, by using `mcp-ui` SDKs can agree on contracts that enable them to create and render interactive UI snippets (as a path to a standardized UI approach in MCP).\r\n\r\n### UI Resource\r\nThe primary payload returned from the server to the client is the `UIResource`:\r\n\r\n```ts\r\ninterface UIResource {\r\n  type: 'resource';\r\n  resource: {\r\n    uri: string;       // e.g., ui://component/id\r\n    mimeType: 'text/html' | 'text/uri-list' | 'application/vnd.mcp-ui.remote-dom'; // text/html for HTML content, text/uri-list for URL content, application/vnd.mcp-ui.remote-dom for remote-dom content (Javascript)\r\n    text?: string;      // Inline HTML, external URL, or remote-dom script\r\n    blob?: string;      // Base64-encoded HTML, URL, or remote-dom script\r\n  };\r\n}\r\n```\r\n\r\n* **`uri`**: Unique identifier for caching and routing\r\n  * `ui://…` — UI resources (rendering method determined by mimeType)\r\n* **`mimeType`**: `text/html` for HTML content (iframe srcDoc), `text/uri-list` for URL content (iframe src), `application/vnd.mcp-ui.remote-dom` for remote-dom content (Javascript)\r\n  * **MCP-UI requires a single URL**: While `text/uri-list` format supports multiple URLs, MCP-UI uses only the first valid `http/s` URL and warns if additional URLs are found\r\n* **`text` vs. `blob`**: Choose `text` for simple strings; use `blob` for larger or encoded content.\r\n\r\n### Resource Renderer\r\n\r\nThe UI Resource is rendered in the `<UIResourceRenderer />` component. It automatically detects the resource type and renders the appropriate component.\r\n\r\nIt is available as a React component and as a Web Component.\r\n\r\n**React Component**\r\n\r\nIt accepts the following props:\r\n- **`resource`**: The resource object from an MCP Tool response. It must include `uri`, `mimeType`, and content (`text`, `blob`)\r\n- **`onUIAction`**: Optional callback for handling UI actions from the resource:\r\n  ```typescript\r\n  { type: 'tool', payload: { toolName: string, params: Record<string, unknown> }, messageId?: string } |\r\n  { type: 'intent', payload: { intent: string, params: Record<string, unknown> }, messageId?: string } |\r\n  { type: 'prompt', payload: { prompt: string }, messageId?: string } |\r\n  { type: 'notify', payload: { message: string }, messageId?: string } |\r\n  { type: 'link', payload: { url: string }, messageId?: string }\r\n  ```\r\n  When actions include a `messageId`, the iframe automatically receives response messages for asynchronous handling.\r\n- **`supportedContentTypes`**: Optional array to restrict which content types are allowed (`['rawHtml', 'externalUrl', 'remoteDom']`)\r\n- **`htmlProps`**: Optional props for the internal `<HTMLResourceRenderer>`\r\n  - **`style`**: Optional custom styles for the iframe\r\n  - **`iframeProps`**: Optional props passed to the iframe element\r\n- **`remoteDomProps`**: Optional props for the internal `<RemoteDOMResourceRenderer>`\r\n  - **`library`**: Optional component library for Remote DOM resources (defaults to `basicComponentLibrary`)\r\n  - **`remoteElements`**: remote element definitions for Remote DOM resources.\r\n\r\n**Web Component**\r\n\r\nThe Web Component is available as `<ui-resource-renderer>`. It accepts the same props as the React component, but they must be passed as strings.\r\n\r\nExample:\r\n```html\r\n<ui-resource-renderer\r\n  resource='{ \"mimeType\": \"text/html\", \"text\": \"<h2>Hello from the Web Component!</h2>\" }'\r\n></ui-resource-renderer>\r\n```\r\n\r\nThe `onUIAction` prop can be handled by attaching an event listener to the component:\r\n```javascript\r\nconst renderer = document.querySelector('ui-resource-renderer');\r\nrenderer.addEventListener('onUIAction', (event) => {\r\n  console.log('Action:', event.detail);\r\n});\r\n```\r\n\r\nThe Web Component is available in the `@afterwayx/mcp-ui` package at `dist/ui-resource-renderer.wc.js`.\r\n\r\n### Supported Resource Types\r\n\r\n#### HTML (`text/html` and `text/uri-list`)\r\n\r\nRendered using the internal `<HTMLResourceRenderer />` component, which displays content inside an `<iframe>`. This is suitable for self-contained HTML or embedding external apps.\r\n\r\n*   **`mimeType`**:\r\n    *   `text/html`: Renders inline HTML content.\r\n    *   `text/uri-list`: Renders an external URL. MCP-UI uses the first valid `http/s` URL.\r\n\r\n#### Remote DOM (`application/vnd.mcp-ui.remote-dom`)\r\n\r\nRendered using the internal `<RemoteDOMResourceRenderer />` component, which utilizes Shopify's [`remote-dom`](https://github.com/Shopify/remote-dom). The server responds with a script that describes the UI and events. On the host, the script is securely rendered in a sandboxed iframe, and the UI changes are communicated to the host in JSON, where they're rendered using the host's component library. This is more flexible than iframes and allows for UIs that match the host's look-and-feel.\r\n\r\n* **`mimeType`**: `application/vnd.mcp-ui.remote-dom+javascript; framework={react | webcomponents}`\r\n\r\n### UI Action\r\n\r\nUI snippets must be able to interact with the agent. In `mcp-ui`, this is done by hooking into events sent from the UI snippet and reacting to them in the host (see `onUIAction` prop). For example, an HTML may trigger a tool call when a button is clicked by sending an event which will be caught handled by the client.\r\n\r\n## 🏗️ Installation\r\n\r\n### TypeScript\r\n\r\n```bash\r\n# using npm\r\nnpm i @afterwayx/mcp-ui\r\n\r\n# or pnpm\r\npnpm add @afterwayx/mcp-ui\r\n\r\n# or yarn\r\nyarn add @afterwayx/mcp-ui\r\n```\r\n\r\n## 🚀 Getting Started\r\n\r\nYou can use [GitMCP](https://gitmcp.io/idosal/mcp-ui) to give your IDE access to `mcp-ui`'s latest documentation! \r\n\r\n### TypeScript\r\n\r\n\r\n1. **Client-side**: Render in your MCP host\r\n\r\n   ```tsx\r\n   import React from 'react';\r\n   import { UIResourceRenderer } from '@afterwayx/mcp-ui';\r\n\r\n   function App({ mcpResource }) {\r\n     if (\r\n       mcpResource.type === 'resource' &&\r\n       mcpResource.resource.uri?.startsWith('ui://')\r\n     ) {\r\n       return (\r\n         <UIResourceRenderer\r\n           resource={mcpResource.resource}\r\n           onUIAction={(result) => {\r\n             console.log('Action:', result);\r\n           }}\r\n         />\r\n       );\r\n     }\r\n     return <p>Unsupported resource</p>;\r\n   }\r\n   ```\r\n\r\n## 🚶 Walkthrough\r\n\r\nFor a detailed, simple, step-by-step guide on how to integrate `mcp-ui` into your own server, check out the full server walkthroughs on the [mcp-ui documentation site](https://mcpui.dev):\r\n\r\n- **[TypeScript Server Walkthrough](https://mcpui.dev/guide/server/typescript/walkthrough)**\r\n- **[Ruby Server Walkthrough](https://mcpui.dev/guide/server/ruby/walkthrough)**\r\n\r\nThese guides will show you how to add a `mcp-ui` endpoint to an existing server, create tools that return UI resources, and test your setup with the `ui-inspector`!\r\n\r\n## 🌍 Examples\r\n\r\n**Client Examples**\r\n* [ui-inspector](https://github.com/idosal/ui-inspector) - inspect local `mcp-ui`-enabled servers. \r\n* [MCP-UI Chat](https://github.com/idosal/scira-mcp-ui-chat) - interactive chat built with the `mcp-ui` client. Check out the [hosted version](https://scira-mcp-chat-git-main-idosals-projects.vercel.app/)!\r\n* MCP-UI RemoteDOM Playground (`examples/remote-dom-demo`) - local demo app to test RemoteDOM resources (intended for hosts)\r\n\r\n**Server Examples**\r\n* **TypeScript**: A [full-featured server](examples/server) that is deployed to a hosted environment for easy testing.\r\n  * **[`typescript-server-demo`](./examples/typescript-server-demo)**: A simple Typescript server that demonstrates how to generate UI resources.\r\n  * **server**: A [full-featured Typescript server](examples/server) that is deployed to a hosted Cloudflare environment for easy testing.\r\n    * **HTTP Streaming**: `https://remote-mcp-server-authless.idosalomon.workers.dev/mcp`\r\n    * **SSE**: `https://remote-mcp-server-authless.idosalomon.workers.dev/sse`\r\n* **Ruby**: A barebones [demo server](/examples/ruby-server-demo) that shows how to use `mcp_ui_server` and `mcp` gems together.\r\n\r\nDrop those URLs into any MCP-compatible host to see `mcp-ui` in action. For a supported local inspector, see the [ui-inspector](https://github.com/idosal/ui-inspector).\r\n\r\n\r\n\r\n## 🔒 Security\r\nHost and user security is one of `mcp-ui`'s primary concerns. In all content types, the remote code is executed in a sandboxed iframe.\r\n\r\n\r\n## 🛣️ Roadmap\r\n\r\n- [X] Add online playground\r\n- [X] Expand UI Action API (beyond tool calls)\r\n- [X] Support Web Components\r\n- [X] Support Remote-DOM\r\n- [ ] Add component libraries (in progress)\r\n- [ ] Add SDKs for additional programming languages (in progress; Ruby available)\r\n- [ ] Support additional frontend frameworks\r\n- [ ] Add declarative UI content type\r\n- [ ] Support generative UI?\r\n      \r\n## 🤝 Contributing\r\n\r\nContributions, ideas, and bug reports are welcome! See the [contribution guidelines](https://github.com/idosal/mcp-ui/blob/main/.github/CONTRIBUTING.md) to get started.\r\n\r\n\r\n## 📄 License\r\n\r\nApache License 2.0 © [The MCP-UI Authors](LICENSE)\r\n\r\n## Disclaimer\r\n\r\nThis project is provided \"as is\", without warranty of any kind. The `mcp-ui` authors and contributors shall not be held liable for any damages, losses, or issues arising from the use of this software. Use at your own risk.\r\n\r\n## Deploy\r\n\r\nTo deploy the package to npm:\r\n\r\n1. **Ensure you are authenticated with npm**  \r\n   If you haven't already, log in to npm with:\r\n   ```sh\r\n   npm login\r\n   ```\r\n   or, if using pnpm:\r\n   ```sh\r\n   pnpm login\r\n   ```\r\n\r\n2. **Build the package**  \r\n   Run the build script to generate the production-ready files:\r\n   ```sh\r\n   pnpm install\r\n   pnpm run build\r\n   ```\r\n\r\n3. **Publish to npm**  \r\n   Make sure your `package.json` version is updated as needed, then publish:\r\n   ```sh\r\n   pnpm publish --access public\r\n   ```\r\n   or, if using npm:\r\n   ```sh\r\n   npm publish --access publice t\r\n   ```\r\n\r\n**Notes:**\r\n- The package is configured to be public (`\"publishConfig\": { \"access\": \"public\" }`).\r\n- Only the files listed in the `files` array (`dist`, `README.md`, `LICENSE`) will be published.\r\n- Make sure you have the necessary permissions to publish to the `@afterwayx` scope.\r\n\r\nFor automated releases, this project uses [semantic-release](https://semantic-release.gitbook.io/semantic-release/). To trigger a release, push your changes to the `main` branch and let the CI handle publishing.\r\n\r\nFor more details, see the [npm publishing docs](https://docs.npmjs.com/cli/v9/commands/npm-publish).\r\n","readmeFilename":"README.md"}