使用说明
前端MCP服务器
MCP服务器,用于使用Gemini映像工具生成前端代码。此repo旨在在Cloud run上运行。
学分
前端设计说明基于 frontend-design 插件来自 claude-code 存储库,经过本地修改:
https://github.com/anthropics/claude-code/tree/main/plugins/frontend-design
运作原理
此MCP服务器以MCP名称公开了一小部分工具 frontend-mcp.客户来电 tools/list 发现能力和 tools/call 执行他们。
核心工具:
frontend_contract_get返回前端合约(堆栈、设计系统、ID和可访问性规则)。frontend_contract_validate_and_patch根据合同验证文件,并可以返回修补的内容。frontend_docs_update为生成更新/docs(合同摘要、ID图、变更日志条目)。gemini_image_generate调用Gemini图像模型,保存图像,并返回有关结果的元数据。
图像生成行为:
- 打造双子座
generateContent请求并支持无徽标/文本、调色板、纵横比、大小和亮/暗主题提示等约束。 - 在Cloud Run上,图像会保存到GCS,该工具会返回一个短暂的签名URL供下载。
- 响应从不返回原始的base64图像数据,以避免上下文膨胀##我经历了艰难的过程。 ##
部署(云运行)
先决条件:
- 启用了Cloud Run、Cloud Build和Secret Manager的GCP项目。
- 秘密管理员条目:
GEMINI_API_KEY(Gemini API密钥),MCP_BEARER_TOKEN(客户需要令牌) - 用于图像持久化的GCS存储桶(私有存储桶;Cloud Run将发布签名URL)
云构建(推荐)
此回购包括 cloudbuild.yaml 并且旨在部署到推送 prod 支。
- 创建机密(示例):
gcloud secrets create GEMINI_API_KEY --data-file=gemini_api_key.txt
gcloud secrets create MCP_BEARER_TOKEN --data-file=mcp_bearer_token.txt
- 创建要运行的Cloud Build触发器
cloudbuild.yaml上prod. - 推至
prod构建和部署。
Cloud Run默认值 cloudbuild.yaml:
- 服务:
mcp-server - 地区:
us-central1 - 映射到env变量的秘密:
GEMINI_API_KEY,MCP_BEARER_TOKEN
Cloud Run服务URL用于下面的客户端配置。
图像存储和签名URL(云运行)
这 gemini_image_generate 该工具将图像存储在GCS中,并返回一个短暂的签名URL,以便客户端可以直接下载图像。
流量:
- Cloud Run生成映像。
- 图像上传到GCS专用存储桶。
- Cloud Run生成一个V4签名的URL,并将其包含在工具响应中。
必需的环境变量:
MCP_GCS_FALLBACK_BUCKET(用于图像存储的GCS存储桶名称)MCP_SIGNED_URL_EXPIRATION(秒,默认值300)
如果 MCP_GCS_FALLBACK_BUCKET 未设置,默认存储桶名称为 mcp-image-fallback.
在Cloud Run服务上设置这些环境变量(或扩展Cloud Build部署步骤以包含它们)。
Cloud Run服务帐户所需的IAM:
- 将对象上传到bucket的权限(例如。
roles/storage.objectAdmin在桶上)。 - 通过IAM凭据对URL进行签名的权限(例如。
roles/iam.serviceAccountTokenCreator在服务帐户上)。
工具响应包括:
download_url(签名URL)download_expires_in_seconds
工具
| 工具 | 目的 |
|---|---|
frontend_contract_get |
获取前端堆栈/设计规则 |
frontend_contract_validate_and_patch |
根据合同验证代码 |
frontend_docs_update |
无令牌膨胀的更新/docs |
gemini_image_generate |
通过Gemini API生成图像 |
客户端配置
MCP配置文件被忽略。根据这些模板创建自己的模板,并指向 url 转到您的Cloud Run服务URL。
用于Codex CLI(mcp-config.toml)
更新后 codexcli v0.98.0 config.toml MCP语法已更改。使用此格式:
[mcp_servers.frontend-mcp]
url = "<YOUR-CLOUD-RUN-URL>"
http_headers = { "Authorization" = "Bearer <YOUR-MCP-BEARER-TOKEN>" }
传统格式(v0.98.0之前):
[mcp.frontend-mcp]
type = "remote"
url = "<YOUR-CLOUD-RUN-URL>"
[mcp.frontend-mcp.headers]
Authorization = "Bearer <YOUR-MCP-BEARER-TOKEN>"
对于OpenCode(mcp-config.json)
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"frontend-mcp": {
"type": "remote",
"url": "<YOUR-CLOUD-RUN-URL>",
"headers": {
"Authorization": "Bearer <YOUR-MCP-BEARER-TOKEN>"
}
}
}
}
认证
Cloud Run服务可以公开访问,但MCP服务器强制执行承载令牌身份验证。客户必须发送 Authorization: Bearer <MCP_BEARER_TOKEN> 头球
测试
cd MCP
pytest tests/ -v
