Firebase MCP
Firestore documents, Cloud Storage files and Auth user lookups for one Firebase project
Manage Tencent CloudBase environments, databases, functions, hosting and deployments from an MCP client
Official · Tencent CloudBase TypeScript Remote (hosted) · Streamable HTTPLocal · stdio Cloud platformsDatabasesFiles and storage
91 popularity score ★ 1.2k ↓ 74k/wk
Opens the app, which asks before it adds the server.
Its docs show no set-up for a particular client: add this address in your client the way it adds a remote MCP server.
https://tcb-api.cloud.tencent.com/mcp/v1Opens the app, which asks before it adds the server.
claude mcp add cloudbase -- npx @cloudbase/cloudbase-mcp@latest{
"mcpServers": {
"cloudbase": {
"command": "npx",
"args": [
"@cloudbase/cloudbase-mcp@latest"
]
}
}
}{
"mcpServers": {
"cloudbase": {
"command": "npx",
"args": [
"@cloudbase/cloudbase-mcp@latest"
]
}
}
}{
"servers": {
"cloudbase": {
"type": "stdio",
"command": "npx",
"args": [
"@cloudbase/cloudbase-mcp@latest"
]
}
}
}[mcp_servers.cloudbase]
command = "npx"
args = ["@cloudbase/cloudbase-mcp@latest"]gemini mcp add --scope user cloudbase npx -- @cloudbase/cloudbase-mcp@latest| Set together: credentials | |
|---|---|
CLOUDBASE_ENV_ID |
Optional: CloudBase environment ID to bind; used with CLOUDBASE_API_KEY. |
CLOUDBASE_API_KEY secret |
Optional: CloudBase API key; preferred over Tencent Cloud secret keys when set with CLOUDBASE_ENV_ID. |
TENCENTCLOUD_SECRETID secret |
Optional: Tencent Cloud SecretId; TENCENTCLOUD_SESSIONTOKEN adds a temporary token. Without any key, sign-in happens in the browser. |
TENCENTCLOUD_SECRETKEY secret |
Optional: Tencent Cloud SecretKey paired with TENCENTCLOUD_SECRETID. |
| Set together: site | |
TCB_SITE |
Optional: domestic or intl; the two sites use separate accounts. |
TCB_REGION |
Optional: Region of the environment; ap-singapore alone selects the international site. |
| Set together: tools | |
CLOUDBASE_MCP_PLUGINS_ENABLED |
Optional: Comma-separated plugin list replacing the defaults, e.g. add msg-push. CLOUDBASE_MCP_PLUGINS_DISABLED leaves plugins out. |
CLOUDBASE_MCP_UI |
Optional: on (or 1/true/yes/enabled) registers the experimental ui:// panels. |
| Set together: safety | |
CLOUDBASE_MCP_SKIP_ELICITATIONS |
Optional: Comma-separated tool or action names that skip the delete confirmation. |
CLOUDBASE_MCP_ELICIT_AUTO_APPROVE |
Optional: allow or block: whether a delete proceeds when the client cannot or does not really ask the user. |
CLOUDBASE_MCP_SKIP_CREDENTIAL_GUARD |
Optional: Comma-separated tool or action names that skip the check on arguments holding a JWT or CloudBase key. |
| Set together: privacy | |
CLOUDBASE_MCP_TELEMETRY_DISABLED |
Optional: Set to true to stop usage reports to Tencent. |
CloudBase MCP is Tencent CloudBase's own server for working with a CloudBase environment from a coding assistant. It covers sign-in and environment setup, document (NoSQL) and PostgreSQL databases, data models, cloud functions, static hosting, object storage, Cloud Run services, app deployment, the HTTP gateway, app login settings, permissions, logs, CloudBase AI agents, and a pass-through to an allowlist of 58 Tencent Cloud APIs. It runs locally through npx or as a hosted endpoint on Tencent's side.
In 2.36.1 MySQL provisioning is gone: the MySQL tools only work on an instance that already exists, report MYSQL_NOT_CREATED otherwise, and point new environments to PostgreSQL. Deletes and other destructive steps (functions, collections, documents, storage files, Cloud Run services, a MySQL instance, some cloud API calls and dropping PostgreSQL SQL) now pause for a yes/no form in clients that support MCP form elicitation; declining or 45 seconds without an answer cancels the call. Clients without form support, or ones that answer within half a second, are let through unless CLOUDBASE_MCP_ELICIT_AUTO_APPROVE=block. Arguments that contain a JWT or CloudBase key trigger a similar check showing only lengths and a fingerprint.
A new, experimental CLOUDBASE_MCP_UI=on setting adds three ui:// panels (sign-in status, usage and plan, deploy result cards) for clients that render MCP Apps; it is off by default.
| To run it yourself | Node.js 18.15.0+ |
|---|---|
| Runs on | macOS, Windows, Linux |
Node.js 18.15.0 or newer for the local server, and a Tencent Cloud account with a CloudBase environment. China (domestic) and international sites use separate accounts. The hosted endpoint needs no Node: an OAuth client opens the browser to sign in and pick the environment. The international site has its own endpoint, https://tcb-api.tencentcloud.com/mcp/v1. A client without OAuth, or a CI job, can add ?env_id=<ENV_ID> to the URL and send X-TencentCloud-SecretId and X-TencentCloud-SecretKey headers with a key pair from the same site.
The hosted endpoint picks the site by its host name and takes no site setting, so a China-site environment in ap-singapore still uses tcb-api.cloud.tencent.com. Run locally, that same environment is treated as international unless TCB_SITE=domestic is set. A static key pair in the hosted URL form stays valid until it is rotated or deleted, while an OAuth session ends at logout.
Developers building web apps, Mini Programs or backends on Tencent CloudBase who want their coding assistant to set up and deploy the cloud side.
20 only read, 8 change things, 16 can delete or overwrite. A ? marks an optional parameter.
auth changesaction?: enumauthMode?: enumoauthEndpoint?: stringclientId?: stringoauthCustom?: booleansite?: enumenvId?: stringregion?: stringlang?: enumapiKey?: stringapiKeyEnvId?: stringconfirm?: stringreveal?: booleanqueryEnvaction: enumalias?: stringaliasExact?: booleanenvId?: stringregion?: enumlimit?: integeroffset?: integerfields?: arraytype?: arraystartDate?: stringendDate?: stringneedUsageDetails?: booleanmetricName?: enumstartTime?: stringendTime?: stringperiod?: enumresourceID?: stringsubresourceID?: stringenvDomainManagement deletesaction: enumdomains: arraymanageEnv changesaction: enumdomains?: arrayalias?: stringpackageId?: stringresources?: arrayduration?: integerexternalStorage?: objectregion?: enumenvId?: stringconfirm?: stringreadNoSqlDatabaseStructureaction: enumlimit?: numberoffset?: numbercollectionName?: stringindexName?: stringwriteNoSqlDatabaseStructure deletesaction: enumcollectionName: stringupdateOptions?: objectreadNoSqlDatabaseContentcollectionName: stringinstanceId?: stringquery?: anyprojection?: anysort?: anylimit?: numberoffset?: numberwriteNoSqlDatabaseContent deletesaction: enumcollectionName: stringinstanceId?: stringdocuments?: arrayquery?: anyupdate?: anyisMulti?: booleanupsert?: booleanmanageDataModelaction: enumname?: stringnames?: arraymodifyDataModel changesmermaidDiagram: stringaction?: enumpublish?: booleandbInstanceType?: enumqueryPgDatabaseaction: enumsql?: stringobjectName?: stringschema?: stringlimit?: integermanagePgDatabase deletesaction: enumsql?: stringconfirm?: booleanenvId?: stringinstanceId?: stringdefaultSchema?: stringrole?: stringobjectName?: stringmigrationName?: stringmigrationVersion?: stringrollbackSql?: stringlimit?: integeroffset?: integerlockTimeoutMs?: integerstatementTimeoutMs?: integertaskPollTimeoutMs?: integerwaitForTask?: booleantaskId?: stringrepairStatus?: enumrepairReason?: stringqueryPgStorage changesaction: enumbucket?: stringobjectKey?: stringobjectKeys?: arrayobjects?: arrayexpiresIn?: integerqueryMysqlDatabaseaction: enumsql?: stringrequest?: objectdbInstance?: objectstartTime?: stringendTime?: stringlimit?: numberoffset?: numberusername?: stringhost?: stringdatabase?: stringorderBy?: enumorderByType?: enumsqlText?: stringlogLevels?: arraykeyWords?: arraymanageMysqlDatabase deletesaction: enumconfirm?: booleansql?: stringrequest?: objectstatements?: arrayrequireReady?: booleanstatusContext?: objectdbInstance?: objectqueryFunctionsaction: enumfunctionName?: stringlimit?: numberoffset?: numbercodeSecret?: stringrevealEnvValues?: booleanstartTime?: stringendTime?: stringrequestId?: stringqualifier?: stringcontext?: stringruntime?: stringsearchKey?: stringlayerName?: stringlayerVersion?: numbertaskId?: stringorder?: stringorderBy?: stringaliasName?: stringmanageFunctions deletesaction: enumfunc?: objectfunctionRootPath?: stringforce?: booleanfunctionName?: stringzipFile?: stringcode?: objecthandler?: stringtimeout?: numberenvVariables?: objectvpc?: anyparams?: objecttriggers?: arraytriggerName?: stringlayerName?: stringlayerVersion?: numbercontentPath?: stringbase64Content?: stringruntimes?: arraydescription?: stringqueryHostingaction: enumprefix?: stringmarker?: stringmaxKeys?: integerdomains?: arraymanageHosting deletesaction: enumlocalPath?: stringcloudPath?: stringfiles?: arrayignore?: anyisDir?: booleanconfirm?: booleanindexDocument?: stringerrorDocument?: stringroutingRules?: arraydomain?: stringcertId?: stringdomainId?: numberdomainConfig?: objectqueryStorageaction: enumcloudPath: stringmaxAge?: numbermanageStorage deletesaction: enumcloudPath: stringlocalPath?: stringforce?: booleanisDirectory?: booleandownloadTemplate changestemplate: enumide: enumoverwrite?: booleansearchKnowledgeBasemode: enumskillName?: enumapiName?: enumaction?: enummoduleName?: stringinput?: stringdocPath?: stringquery?: stringqueryCloudRunaction: enumpageSize?: numberpageNum?: numberserverName?: stringserverType?: enumenvId?: stringdetailServerName?: stringbuildId?: numberrunId?: stringrevealEnvParams?: booleanmanageCloudRun deletesaction: enumserverName?: stringtrafficOp?: enumstablePercent?: numbercanaryPercent?: numberenvId?: stringpackageType?: enumvpcId?: stringsubnetIds?: arraytargetPath?: stringimageUrl?: stringenvParamsReplaceAll?: booleanserverConfig?: objecttemplate?: stringrunOptions?: objectagentConfig?: objectforce?: booleanserverType?: enumwaitRegistration?: booleandeployBuild changescwd?: stringmode?: stringdeployPlancwd?: stringmode?: stringenvId?: stringonly?: arrayskip?: arrayyes?: booleandeployApply deletesconfirm?: booleanconfirmDestructive?: booleancwd?: stringmode?: stringenvId?: stringonly?: arrayskip?: arrayyes?: booleanconcurrency?: integercontinueOnError?: booleanqueryGatewayaction: enumtargetName?: stringrouteId?: stringpath?: stringdomain?: stringcacheType?: enumtaskId?: stringpurgeType?: enumstartTime?: stringendTime?: stringoffset?: integerlimit?: integermanageGateway deletesaction: enumtargetName?: stringpath?: stringupstreamResourceType?: enumauth?: booleanenablePathTransmission?: booleanenableSafeDomain?: booleanpathRewrite?: objectqpsPolicy?: objectextension?: objectdomainExtension?: anyprotocol?: enumroute?: objectdomain?: stringcertificateId?: stringaccessType?: enumcustomCname?: stringenable?: booleancacheType?: enumpurgeType?: enumqueryAppAuthaction: enumproviderId?: stringclientId?: stringkeyType?: enumpageNumber?: integerpageSize?: integermanageAppAuth deletesaction: enumpatch?: objectproviderId?: stringproviderType?: enumdisplayName?: anyclientId?: stringconfig?: objectkeyType?: enumkeyName?: stringexpireIn?: integerkeyId?: stringqueryAppsaction: enumserviceName?: stringsearchKey?: stringpageNo?: numberpageSize?: numberversionName?: stringbuildId?: anystart?: numbermanageApps deletesaction: enumserviceName: stringfilePath?: stringcosTimestamp?: anyappPath?: stringbuildPath?: stringframework?: enumnodeJsVersion?: stringinstallCmd?: stringbuildCmd?: stringdeployCmd?: stringignore?: arrayversionName?: stringqueryPermissionsaction: enumresourceType?: enumresourceId?: stringresourceIds?: arrayroleId?: stringroleIdentity?: stringroleName?: stringuid?: stringusername?: stringpageNo?: numberpageSize?: numberextension?: booleanpolicyResourceType?: enummanagePermissions deletesaction: enumresourceType?: enumresourceId?: stringpermission?: enumsecurityRule?: stringroleId?: stringroleIds?: arrayroleName?: stringroleIdentity?: stringdescription?: stringmemberUids?: arraypolicies?: arraypolicyIds?: arrayuid?: stringuids?: arrayusername?: stringpassword?: stringuserStatus?: enumregoContent?: stringconfirm?: booleanqueryLogsaction: enumqueryString?: stringservice?: enumstartTime?: stringendTime?: stringlimit?: numbercontext?: stringsort?: enummanageLogs changesaction: enumconfirm?: booleanqueryAgentsaction: enumagentId?: stringpageNumber?: numberpageSize?: numberparams?: objectmanageAgents deletesaction: enumagentId?: stringname?: stringdescription?: stringruntime?: stringtimeout?: numbermemorySize?: numberinstallDependency?: booleanzipFile?: stringcosBucketRegion?: stringtempCosObjectName?: stringsessionConfig?: objectcwd?: stringparams?: objectcallCloudApi deletesservice: enumaction: stringversion?: stringparams?: objectregion?: stringprepareFeedbackchannel: enumqueryMessagePushappid: stringaction: enumenv?: stringmanageMessagePush changesappid: stringenv_id: stringfunction_name: stringaction: enummsg_type?: enumevent_types?: arrayenable?: booleanqbase_container_path?: stringqbase_env?: stringtext_mode?: enumconfirm?: stringui://cloudbase/get-startedui://cloudbase/env-creditsui://cloudbase/artifact-card