gitextract_f5vcxr1e/ ├── .github/ │ ├── CONTRIBUTING.md │ ├── copilot-instructions.md │ └── workflows/ │ ├── ci.yml │ └── deploy-docs.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── .releaserc.json ├── .ruby-version ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── SECURITY.md ├── docs/ │ ├── README.md │ ├── package.json │ └── src/ │ ├── .vitepress/ │ │ ├── config.ts │ │ └── theme/ │ │ ├── custom.css │ │ └── index.ts │ ├── about.md │ ├── guide/ │ │ ├── apps-sdk.md │ │ ├── client/ │ │ │ ├── app-renderer.md │ │ │ ├── overview.md │ │ │ └── walkthrough.md │ │ ├── embeddable-ui.md │ │ ├── getting-started.md │ │ ├── introduction.md │ │ ├── mcp-apps.md │ │ ├── protocol-details.md │ │ ├── server/ │ │ │ ├── python/ │ │ │ │ ├── overview.md │ │ │ │ ├── usage-examples.md │ │ │ │ └── walkthrough.md │ │ │ ├── ruby/ │ │ │ │ ├── overview.md │ │ │ │ ├── usage-examples.md │ │ │ │ └── walkthrough.md │ │ │ └── typescript/ │ │ │ ├── overview.md │ │ │ ├── usage-examples.md │ │ │ └── walkthrough.md │ │ └── supported-hosts.md │ ├── index.md │ └── team.md ├── eslint.config.mjs ├── examples/ │ ├── external-url-demo/ │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.css │ │ │ ├── App.tsx │ │ │ ├── index.css │ │ │ └── main.tsx │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── mcp-apps-demo/ │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── python-server-demo/ │ │ ├── README.md │ │ ├── pyproject.toml │ │ └── python_server_demo.py │ ├── ruby-server-demo/ │ │ ├── Gemfile │ │ ├── README.md │ │ └── server.rb │ ├── server/ │ │ ├── .react-router/ │ │ │ └── types/ │ │ │ ├── +future.ts │ │ │ ├── +routes.ts │ │ │ ├── +server-build.d.ts │ │ │ └── app/ │ │ │ ├── +types/ │ │ │ │ └── root.ts │ │ │ └── routes/ │ │ │ └── +types/ │ │ │ ├── home.ts │ │ │ ├── task.ts │ │ │ └── user.ts │ │ ├── README.md │ │ ├── app/ │ │ │ ├── app.css │ │ │ ├── entry.server.tsx │ │ │ ├── graph/ │ │ │ │ └── graph.tsx │ │ │ ├── images.d.ts │ │ │ ├── root.tsx │ │ │ ├── routes/ │ │ │ │ ├── home.tsx │ │ │ │ ├── task.tsx │ │ │ │ └── user.tsx │ │ │ ├── routes.ts │ │ │ ├── user/ │ │ │ │ └── user.tsx │ │ │ └── utils/ │ │ │ └── messageUtils.ts │ │ ├── biome.json │ │ ├── package.json │ │ ├── pnpm-workspace.yaml │ │ ├── react-router.config.ts │ │ ├── src/ │ │ │ └── index.ts │ │ ├── tsconfig.cloudflare.json │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ ├── vite.config.ts │ │ ├── worker-configuration.d.ts │ │ └── wrangler.jsonc │ └── typescript-server-demo/ │ ├── README.md │ ├── package.json │ ├── src/ │ │ └── index.ts │ └── tsconfig.json ├── lefthook.yml ├── package.json ├── pnpm-workspace.yaml ├── sdks/ │ ├── python/ │ │ └── server/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── pyproject.toml │ │ ├── release.config.js │ │ ├── src/ │ │ │ └── mcp_ui_server/ │ │ │ ├── __init__.py │ │ │ ├── core.py │ │ │ ├── exceptions.py │ │ │ ├── types.py │ │ │ └── utils.py │ │ └── tests/ │ │ ├── __init__.py │ │ ├── test_create_ui_resource.py │ │ ├── test_metadata.py │ │ └── test_ui_action_results.py │ ├── ruby/ │ │ ├── .rspec │ │ ├── .rubocop.yml │ │ ├── CHANGELOG.md │ │ ├── Gemfile │ │ ├── README.md │ │ ├── Rakefile │ │ ├── lib/ │ │ │ ├── mcp_ui_server/ │ │ │ │ └── version.rb │ │ │ └── mcp_ui_server.rb │ │ ├── mcp_ui_server.gemspec │ │ ├── release.config.js │ │ └── spec/ │ │ ├── mcp_ui_server_spec.rb │ │ └── spec_helper.rb │ └── typescript/ │ ├── client/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── proxy/ │ │ │ └── index.html │ │ ├── src/ │ │ │ ├── __tests__/ │ │ │ │ └── capabilities.test.ts │ │ │ ├── capabilities.ts │ │ │ ├── components/ │ │ │ │ ├── AppFrame.tsx │ │ │ │ ├── AppRenderer.tsx │ │ │ │ └── __tests__/ │ │ │ │ ├── AppFrame.test.tsx │ │ │ │ ├── AppRenderer.test.tsx │ │ │ │ └── ProxyScript.test.ts │ │ │ ├── index.ts │ │ │ ├── test-setup.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── __tests__/ │ │ │ │ ├── isUIResource.test.ts │ │ │ │ └── metadataUtils.test.ts │ │ │ ├── app-host-utils.ts │ │ │ ├── isUIResource.ts │ │ │ └── metadataUtils.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.test.json │ │ ├── vite.config.ts │ │ └── vitest.config.ts │ ├── server/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── __tests__/ │ │ │ │ ├── index.test.ts │ │ │ │ ├── test-utils.ts │ │ │ │ └── utils.test.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── tsconfig.json │ │ ├── vite.config.ts │ │ └── vitest.config.ts │ └── shared/ │ ├── package.json │ ├── src/ │ │ └── index.ts │ ├── tsconfig.json │ └── vite.config.ts ├── tsconfig.base.json ├── vitest.config.ts └── vitest.setup.ts