Skip to main content
Glama
Tencent

Tencent Cloud COS MCP Server

Official
by Tencent

putObject

Upload local files to a specified bucket and directory in Tencent Cloud Object Storage (COS) using file path, name, and target directory details for efficient storage management.

Instructions

上传本地文件到存储桶

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileNameNo文件名 (存在存储桶里的名称)
filePathYes文件路径 (包含文件名)
targetDirNo目标目录 (存在存储桶的哪个目录)

Implementation Reference

  • src/server.ts:84-111 (registration)
    Registration of the 'putObject' MCP tool, including input schema using Zod and a thin handler that calls CosService.uploadFile
    server.tool( 'putObject', '上传本地文件到存储桶', { filePath: z.string().describe('文件路径 (包含文件名)'), fileName: z.string().optional().describe('文件名 (存在存储桶里的名称)'), targetDir: z .string() .optional() .describe('目标目录 (存在存储桶的哪个目录)'), }, async ({ fileName, filePath, targetDir }) => { const res = await COSInstance.uploadFile({ fileName, filePath, targetDir, }); return { content: [ { type: 'text', text: JSON.stringify(res.data, null, 2), }, ], isError: !res.isSuccess, }; }, );
  • Main handler implementation in CosService.uploadFile: validates params, checks file existence, builds COS key, and calls cos.uploadFile to upload the local file
    async uploadFile(params: UploadFileParams) { // 验证并解析参数 const validParams = UploadFileParamsSchema.parse(params); const { filePath, targetDir = '', fileName } = validParams; try { // 检查文件是否存在 if (!filePath || !fs.existsSync(filePath)) { return { isSuccess: false, message: '此路径上文件不存在', data: '此路径上文件不存在: ' + filePath, }; } // 确定文件名 const actualFileName = fileName || path.basename(filePath); // 构建COS路径 const cosPath = this.buildCosPath(actualFileName, targetDir); // 上传文件 const cosParams: COS.UploadFileParams = { Bucket: this.bucket, Region: this.region, Key: cosPath, FilePath: filePath, }; const result = await this.cos.uploadFile(cosParams); return { isSuccess: true, message: '上传成功', data: result, }; } catch (error) { return { isSuccess: false, message: '上传失败', data: error, }; } }
  • Zod schema for uploadFile parameters used by the service handler
    export const UploadFileParamsSchema = z.object({ filePath: z.string().optional(), targetDir: z.string().optional(), fileName: z.string().optional(), sourceUrl: z.string().optional() });
  • Helper method to build the COS object key path from fileName and optional targetDir
    private buildCosPath(fileName: string, targetDir?: string): string { if (!targetDir) { return fileName; } // 规范化目标目录:移除头尾斜杠 const normalizedDir = targetDir.replace(/^\/+|\/+$/g, ''); return normalizedDir ? `${normalizedDir}/${fileName}` : fileName; }
  • Input schema defined directly in the tool registration for putObject parameters
    { filePath: z.string().describe('文件路径 (包含文件名)'), fileName: z.string().optional().describe('文件名 (存在存储桶里的名称)'), targetDir: z .string() .optional() .describe('目标目录 (存在存储桶的哪个目录)'),

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tencent/cos-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server