Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
CloudBase MCP: DB, functions, storage, hosting via @cloudbase/cloudbase-mcp
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
X-TencentCloud-SecretId, X-TencentCloud-SecretKey标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"cloudbase": {
"command": "npx",
"args": [
"-y",
"@cloudbase/cloudbase-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add --transport http cloudbase 'https://tcb-api.cloud.tencent.com/mcp/v1?env_id={env_id}' --header 'X-TencentCloud-SecretId: your-value' --header 'X-TencentCloud-SecretKey: your-value'claude mcp add cloudbase -- npx -y @cloudbase/cloudbase-mcp运行前请先填写空着的值。
地址中有只有你知道的 {…} 部分(例如你的账户),请复制后自行填写。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"cloudbase": {
"url": "https://tcb-api.cloud.tencent.com/mcp/v1?env_id={env_id}",
"headers": {
"X-TencentCloud-SecretId": "your-value",
"X-TencentCloud-SecretKey": "your-value"
}
}
}
}粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"cloudbase": {
"command": "npx",
"args": [
"-y",
"@cloudbase/cloudbase-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
地址中有只有你知道的 {…} 部分(例如你的账户),请复制后自行填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"cloudbase": {
"type": "http",
"url": "https://tcb-api.cloud.tencent.com/mcp/v1?env_id={env_id}",
"headers": {
"X-TencentCloud-SecretId": "your-value",
"X-TencentCloud-SecretKey": "your-value"
}
}
}
}粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"cloudbase": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cloudbase/cloudbase-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
你的选择通过 Cookie 保存在这台设备上,无需账户。
X-TencentCloud-SecretId 机密 HTTP headerX-TencentCloud-SecretKey 机密 HTTP header这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 TencentCloudBase 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
这个地址需要填入你自己的账户信息,所以我们无法替你检查
这个地址需要填入你自己的账户信息,所以我们无法替你检查
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:X-TencentCloud-SecretId, X-TencentCloud-SecretKey
两种方式都可以:安装在你的电脑上,或者连接云端版本。
GitHub 仓库最后更新于–,最新版本(2.37.4)于前天进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Usaspending
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
USAspending MCP — Federal spending data from USAspending.gov API
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
MCP Server for Tencent CloudBase. Part of CloudBase AI Toolkit.
Operate CloudBase from AI coding tools: login, databases, functions, storage, hosting, and logs—via the Model Context Protocol.
English · 简体中文 · Toolkit README · Docs · Changelog · Issues
[][npm-link] [][npm-link] [][github-stars-link]
@cloudbase/cloudbase-mcp is the npm distribution of the CloudBase MCP Server. It is one piece of the Toolkit:
| Piece | Role |
|---|---|
| Plugin | Installs MCP + Skills + Hooks together |
| Agent Skills | Scenario skills toward workable CloudBase practice |
| MCP (this package) | Tools the agent calls to act on your CloudBase environment |
Prefer Plugin when your IDE supports it. Use this package alone when you only need MCP config.
Full Toolkit narrative, related repos, and IDE matrix: repository README.
{
"mcpServers": { "cloudbase": { "command": "npx", "args": ["@cloudbase/cloudbase-mcp@latest"] } } }
First prompts:
Login to CloudBase
Use CloudBase Skills to build a todo app with login, database and permissions, then deploy
You need a CloudBase environment and should confirm sensitive actions the AI proposes.
| Path | When |
|---|---|
Official MCP Registry io.github.TencentCloudBase/cloudbase-mcp | Discover via registry search=cloudbase |
npx plugins add TencentCloudBase/cloudbase-plugin | Open Plugin Spec tools |
| Marketplace / built-in plugin | Claude Code, Codex, CodeBuddy, WorkBuddy, Doubao, MiniMax Code, DeepSeek Harness, Kimi Code, Kimi Work, ZCode, etc. |
Already using CloudBase CLI?
tcb aisets up MCP and Skills too (docs).
Remote (recommended): your IDE connects over HTTP to Tencent Cloud MCP. No local Node, and interactive clients finish authorization in the browser.
| Site | MCP endpoint |
|---|---|
| China (domestic) | https://tcb-api.cloud.tencent.com/mcp/v1 |
| International | https://tcb-api.tencentcloud.com/mcp/v1 |
Pick the endpoint matching the site your environment lives in—the two sites use separate accounts and credentials.
OAuth (interactive, recommended): the URL is the whole configuration—your IDE opens the browser for login and consent, and you pick the environment there. No keys land in config files, and there is nothing to rotate.
{
"mcpServers": { "cloudbase": { "type": "http", "url": "https://tcb-api.cloud.tencent.com/mcp/v1" } } }
Static credentials (for a client without OAuth, and for CI/CD): append env_id and a key pair created on the same site as the endpoint.
{
"mcpServers": { "cloudbase": { "type": "http", "url": "https://tcb-api.cloud.tencent.com/mcp/v1?env_id= ", "headers": { "X-TencentCloud-SecretId": " ", "X-TencentCloud-SecretKey": " " } } } }
A static key pair stays valid until it is rotated or deleted; an OAuth session ends when you log out. Use the static form only where the browser flow is impossible—and keep it out of a repository.
Local: runs npx @cloudbase/cloudbase-mcp@latest on your machine—full features, including local filesystem upload and template download. Requires Node.js v18.15.0+.
Remote trade-off: local-filesystem features (upload, template download) are unavailable, and the international site does not yet expose NoSQL tools.
Remote URLs accept site for one case only—a China-site environment in ap-singapore, where the region is ambiguous—plus enable_plugins / disable_plugins (comma-separated). Canonical plugin names: see src/server.ts in this package (e.g. env, database, functions, hosting, storage, pg_database, cloudrun, logs, feedback).
Self-hosted Cloud Mode: set CLOUDBASE_MCP_CLOUD_MODE=true (or MCP_CLOUD_MODE=true) so local file and process tools are disabled for remote callers.
| Scenario | Suggestion |
|---|---|
| Personal / fastest start | Remote URL (OAuth) |
| Need local file features | Local npx |
| CI / automation | Remote + static credentials |
| Self-hosted MCP | Cloud Mode required |
Set TCB_SITE (domestic / intl) to select the login/credential site, and TCB_REGION for API routing. The domestic and international sites are separate account systems. ap-singapore exists on both, so domestic-site Singapore users must set `TCB_SITE=domestic`; otherwise it defaults to intl. Project-level .cloudbase/project.json ({ site, region, envId }) is also supported.
In remote mode the site is determined by the endpoint host itself—tcb-api.cloud.tencent.com is the China site, tcb-api.tencentcloud.com is the international site—and there is no site query parameter to set. This holds for a China-site environment in ap-singapore too: keep using the China-site endpoint. Self-hosted Cloud Mode deployments can still use the TCB_SITE environment variable.
auth, queryEnv and the deploy tools can render MCP Apps panels (ui://cloudbase/*) in hosts that support them. Panels are on by default: the ui:// resources are registered and those tools carry _meta.ui.
Hosts that cannot render them are unaffected in practice — resources/list stays empty (the panels are ResourceTemplates without a list), so nothing new appears in a resource browser, and every tool keeps returning the same JSON text it did before. The flag only decides whether panels are offered.
Turn it off with CLOUDBASE_MCP_UI=off (also accepts 0 / false / no / disabled). Leaving it unset means on; a typo such as of also leaves it off, so a misspelled value never silently enables something you meant to disable. Tools behave identically either way.
Typical backend work in your environment (confirm critical steps):
Tool catalog: MCP tools · tools.json
Deleting a cloud function, a collection, the documents in one, a stored file, a CloudRun service or a MySQL instance now pauses the call until you answer a dialog that names the target — "about to delete the cloud function hello (env env-abc)" — instead of asking a bare "are you sure?". The same deletes pause when they arrive as callCloudApi, but only for an explicit service + Action pair: DeleteFunction on tcb or scf, tcb.DeleteTable, tcb.DeleteItem, tcb.DestroyEnv, tcb.DestroyPlatformEnv, tcb.DestroyMySQL, tcbr.DeleteCloudRunServer, and tcbr.DeleteCloudRunVersions when IsDeleteServer is true. A Delete prefix does not confirm other cloud APIs. Cloud storage deletes do not go through callCloudApi. PostgreSQL execute / applyMigration pause only when the SQL itself is DELETE, DROP, TRUNCATE or ALTER … DROP; INSERT, UPDATE and CREATE TABLE do not. It is built on MCP form elicitation, so it can only appear where the client declares that capability *and* actually asks the user.
| Situation | What happens |
|---|---|
| The client asks the user | You get the dialog; the call runs only after you pick "delete" |
| The client is in a full-access / never-ask mode | It answers on its own within a few milliseconds. That is treated as "you were not asked", and the call proceeds |
| The client cannot render forms | No dialog, and the call proceeds — the behaviour is the same as before this change |
| You decline, dismiss it, or answer nothing for 45s | Nothing is executed, and the result says so without being marked as an error, so a model does not retry the same deletion |
A declined call is not a failure: the tool returns "not executed" plus what to do instead. Two environment variables change the handling, and neither of them bypasses authentication, permissions or read-only limits — they only decide whether the question is asked:
| Variable | Effect |
|---|---|
CLOUDBASE_MCP_SKIP_ELICITATIONS | Comma-separated. Accepts a tool name (manageFunctions, callCloudApi) or a single action (manageFunctions.deleteFunction, callCloudApi.tcb.DeleteFunction), case-sensitive, no wildcard. Unknown entries are logged and ignored rather than failing the server |
CLOUDBASE_MCP_ELICIT_AUTO_APPROVE | allow (default) proceeds when the client answers for itself; block treats that case as not confirmed |
A client's own tool-approval prompt is not this confirmation: it asks "may this tool run?", not "is this the resource you want to delete?".
When a call's arguments contain something shaped like a credential — a three-part JWT, or a cb_secret_… / cb_publishable_… key — the server asks the client for one check before writing: compare the value against your original source and confirm. The message deliberately carries no plaintext: only the total length, the segment lengths (for a JWT), and a fingerprint (the first 12 hex characters of sha256). That is enough to notice a value that was changed while being copied or transcribed, and nothing that would put the secret into the conversation or into the logs.
What this is not. We do not decide whether the credential is valid. There is no signature verification, no certs/JWKS lookup, no network request of any kind, and no server-side comparison — the server never sees the value you originally pasted, so the only side that can compare it is the client. This is a request for a real confirmation at write time, not a validity check.
Boundaries. It only applies when the arguments actually contain a credential-shaped string (otherwise the call is unchanged: one shallow scan, no network). It only applies when the client supports interactive form elicitation; a client that cannot ask proceeds as before, so an unattended client is not blocked. And a check that returns within a few hundred milliseconds counts as "nobody looked at it": unlike the deletion confirmation — where a client answering for itself is treated as "you were not asked" and the call proceeds — a credential write is not executed, because a value nobody compared is exactly the case this guards against. When the guard declines, the result says "not executed" without being marked as an error, so a model does not retry it blindly.
| Variable | Effect |
|---|---|
CLOUDBASE_MCP_SKIP_CREDENTIAL_GUARD | Comma-separated. Accepts a tool name (manageCloudRun) or a single action (manageCloudRun.updateConfig), case-sensitive, no wildcard. Unknown entries are logged and ignored rather than failing the server |
The panel is on by default. Set CLOUDBASE_MCP_UI=off to hide it. Where the client declares the io.modelcontextprotocol/ui extension, auth also opens a panel (ui://cloudbase/get-started). It consumes the structured result that th
只显示了开头部分;其余内容请在仓库中阅读