资源托管服务

一个Cloudflare Worker服务,用于将内联JS/CSS转换为托管资源,解决Home Assistant AI集成中的CORS限制问题。

  • by homeassistant-ai
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 homeassistant-ai/ha-mcp-worker

使用说明

医管局医务人员

Cloudflare Worker提供内联JS/CSS作为家庭助理AI集成的托管资源。

为什么?

浏览器CORS限制阻止 data: 使用ES6模块的URI。此worker通过将base64编码的代码转换为正确的HTTPS URL提供了一种解决方法。

用法

https://ha-mcp-resources.rapid-math-bbad.workers.dev/{base64_content}?type=module|js|css

示例

// Original code
const code = `export default class MyCard extends HTMLElement { }`;

// Encode to URL-safe base64
const encoded = btoa(code).replace(/\+/g, '-').replace(/\//g, '_');

// Use as module URL
const url = `https://ha-mcp-resources.rapid-math-bbad.workers.dev/${encoded}?type=module`;

资源类型

类型 内容类型 用例
module application/javascript ES6模块(默认)
js application/javascript 纯JavaScript
css text/css 样式表

约束条件

  • 最大尺寸: ~24KB的源代码(32KB base64编码的URL路径限制)
  • 免疫: 内容缓存1年(URL=内容)
  • 公众: 无需身份验证,任何具有该URL的人都可以访问内容

隐私

  • 无日志记录: 工作日志和可观察性已禁用
  • 无存储: 内容从不存储-从URL即时解码
  • 无分析: 无跟踪或遥测

地方发展

# Install dependencies
pnpm install

# Run locally (http://localhost:8787)
pnpm dev

# Run tests
pnpm test

# Type check
pnpm typecheck

# Deploy
pnpm publish:worker

部署

推送时自动部署 main 通过GitHub操作。

必需的秘密

机密 描述
CLOUDFLARE_API_TOKEN 具有Workers编辑权限的API令牌
CLOUDFLARE_ACCOUNT_ID 您的Cloudflare帐户ID

相关