Skip to main content
Glama
dinghuazhou

TOS MCP Server

by dinghuazhou

TOS MCP Server

TOS 官方推出的 MCP Server 提供强大的查询能力,支持通过自然语言便捷地探索和检索 TOS 中存储的内容,提升了数据访问的直观性与效率。可以与火山引擎云产品 MCP 组合,助力构建更智能的业务应用场景。

版本

v0.2.0

描述

基于 MCP 管理 TOS 资源,智能化探索数据

分类

存储

标签

搜索,视频,图片,文本

Tools

本 MCP Server 产品提供以下 Tools (工具/能力):

Tool 1: list_buckets

类型

SaaS

详细描述

该工具允许您便捷查看火山引擎TOS的存储桶列表。

调试所需的输入参数:

输入:

{
  "inputSchema": {
    "type": "object",
    "required": [],
    "properties": {}
  },
  "name": "list_buckets",
  "description": "查询您账号下拥有的所有存储桶的列表。"
}

输出:

  • 返回您账号下拥有的存储桶列表,包含桶名、创建时间、桶位置信息、访问域名等信息。

最容易被唤起的 Prompt示例

列举火山引擎 TOS 的存储桶列表。

Tool 2: list_objects

类型

SaaS

详细描述

该工具允许您便捷查看火山引擎TOS桶下的对象列表,每次请求都会返回存储桶中的部分或全部对象(最多 1000 个)。您可以使用请求参数作为选择条件,返回存储桶中对象的子集。

调试所需的输入参数:

输入:

{
  "inputSchema": {
    "type": "object",
    "required": [
      "bucket"
    ],
    "properties": {
      "bucket": {
        "type": "string",
        "description": "用户指定的存储桶名称"
      },
      "prefix": {
        "type": "string",
        "description": "可选的对象前缀"
      },
      "start_after": {
        "type": "string",
        "description": "列举对象的起始位置。您可以通过指定对象的起始位置分页列举对象"
      },
      "continuation_token": {
        "type": "string",
        "description": "指定列举操作从该 Token 开始,通常从上次请求返回的 NextContinuationToken 中获取此 Token"
      }
    }
  },
  "name": "list_objects",
  "description": "查询您指定存储桶的对象列表"
}

输出:

  • 返回您指定存储下的对象列表,包含对象名、对象的最后修改时间、ETag、对象大小、存储类型等信息。

最容易被唤起的 Prompt示例

列举火山引擎 TOS 的 example 桶下的对象。

Tool 3: get_object tool

类型

SaaS

详细描述

从 TOS 检索对象,需要指定桶名和对象的完整路径。对于文本内容的对象,比如文本文件、CSV 文件等,该工具返回的是其内容。对于图片、视频等二进制对象,该工具返回的是Base64编码的内容。

调试所需的输入参数:

输入:

{
  "inputSchema": {
    "type": "object",
    "required": [
      "bucket",
      "key"
    ],
    "properties": {
      "bucket": {
        "type": "string",
        "description": "用户指定的存储桶名称"
      },
      "key": {
        "type": "string",
        "description": "用户需要读取的对象名,需要指定完整的对象名"
      }
    }
  },
  "name": "get_object",
  "description": "获取指定对象的内容,对于文本内容的对象,比如文本文件、CSV 文件等,该工具返回的是其内容。对于图片、视频等二进制对象,该工具返回的是Base64编码的内容。"
}

输出:

  • 返回具体的对象内容,对于文本内容的对象,比如文本文件、CSV 文件等,该工具返回的是内容。对于图片、视频等二进制对象,该工具返回的是Base64编码的内容。

最容易被唤起的 Prompt示例

读取火山引擎 TOS 桶example下对象名为example.txt的文件内容

Related MCP server: MinIO Storage MCP

可适配平台

方舟,python,cursor

服务开通链接 (整体产品)

https://console.volcengine.com/tos

鉴权方式

火山引擎,从 volcengine 管理控制台获取 volcengine 访问密钥 ID、秘密访问密钥和区域,请在.env文件中设置相关环境变量

环境变量

以下环境变量可用于配置MCP服务器:

环境变量

描述

默认值

VOLCENGINE_ACCESS_KEY

火山引擎账号 ACCESS KEY

-

VOLCENGINE_SECRET_KEY

火山引擎账号 SECRET KEY

-

VOLCENGINE_REGION

火山引擎 TOS region

-

TOS_ENDPOINT

火山引擎 TOS Endpoint

-

SECURITY_TOKEN

火山引擎 Security Token,可选

-

TOS_BUCKETS

指定访问的 TOS 桶,可选

-

安装部署

系统依赖

  • 安装 Python 3.10 或者更高版本

  • 安装 uv

    • 如果是linux系统

    curl -LsSf https://astral.sh/uv/install.sh | sh
    • 如果是window系统

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • 同步依赖项并更uv.lock:

    uv sync
  • 构建mcp server:

    uv build

When using uv no specific installation is needed. We will use uvx to directly run mcp-server-tos.

本地配置

添加以下配置到你的 mcp settings 文件中

{
  "mcpServers": {
    "tos-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/PARENT/FOLDER/src/mcp_server_tos",
        "run",
        "mcp-server-tos"
      ]
    }
  }
}

在不同平台的配置

方舟

体验中心

[示例如下]

  1. 查看MCP Server 详情 在大模型生态广场,选择合适的MCP Server,并查看详情

  2. 选择MCP Server即将运行的平台 检查当前MCP Server 已适配的平台,并选择合适的平台

  3. 查看并对比可用的Tools 仔细查看可用的Tools的功能描述与所需的输入参数,并尝试运行对应的功能。

  4. 获取专属的URL或代码示例 检查账号登录状态与服务开通情况,生成唯一URL

  5. 去对应的Client的平台进行使用 点击快捷跳转按钮,前往方舟平台的体验中心进行对应MCP Server的体验

产品截图/视频 - optional

Cursor

部署

[示例如下]

UVX

{
  "mcpServers": {
    "tos-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_tos",
        "mcp-server-tos"
      ],
      "env": {
        "VOLCENGINE_ACCESS_KEY": "your access-key-id",
        "VOLCENGINE_SECRET_KEY": "your access-key-secret",
        "VOLCENGINE_REGION": "tos region",
        "TOS_ENDPOINT": "tos endpoint",
        "SECURITY_TOKEN": "your security token",
        "TOS_BUCKET": "your specific bucket"
      }
    }
  }
}

License

volcengine/mcp-server is licensed under the MIT License.

Available Tools

3 tools
get_objectB
Retrieves an object from VolcEngine TOS. In the GetObject request, specify the full key name for the object.
Args:
    bucket: The name of the bucket.
    key: The key of the object.
Returns:
    If the object content is text format, return the content as string.
    If the object content is binary format, return the content as base64 encoded string.
ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes
keyYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the return behavior for text vs. binary formats, which is valuable context beyond basic retrieval. However, it lacks details on error conditions, permissions required, rate limits, or whether it's read-only (implied but not stated).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose. The Args and Returns sections are structured clearly, though the formatting with quotes might be slightly verbose. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple retrieval with 2 parameters) and no annotations or output schema, the description is moderately complete. It covers the purpose, parameters, and return behavior, but lacks context on usage guidelines, error handling, or integration with sibling tools, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the input schema, which has 0% coverage. It explains that 'bucket' is the bucket name and 'key' is the full key name for the object, clarifying what these parameters represent. For a tool with 2 parameters and low schema coverage, this compensates well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieves' and the resource 'an object from VolcEngine TOS', making the purpose explicit. However, it doesn't differentiate from sibling tools like list_objects, which might also retrieve object information in a different way.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like list_objects. It mentions specifying the full key name but doesn't explain when this is preferable over listing objects or other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_bucketsC
List all buckets in TOS.
Returns:
    A list of buckets.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'Returns: A list of buckets' which adds some behavioral context about the output. However, it lacks details on permissions, rate limits, pagination, or error handling, which are important for a list operation with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with two sentences that directly state the action and return value. It's front-loaded and has zero waste, making it efficient. However, it could be slightly improved by integrating the return statement more seamlessly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, no annotations, and no output schema, the description is minimal but covers the basic purpose and return. It's adequate for a simple list tool but lacks depth in behavioral context and usage guidelines, making it just sufficient for minimal viability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%. With no parameters, the description doesn't need to add parameter semantics. The baseline for 0 parameters is 4, as it appropriately handles the lack of inputs without redundancy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'List all buckets in TOS' which clearly indicates the verb (list) and resource (buckets). However, it doesn't differentiate from sibling tools like 'list_objects' which suggests it's vague about scope distinction. The purpose is understandable but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like 'list_objects'. The description only states what it does without context or exclusions. This leaves the agent with no explicit or implied usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_objectsC
List all objects in a bucket.
Args:
    bucket: The name of the bucket.
    prefix: The prefix to filter objects.
    start_after: The start after key to filter objects.
    continuation_token: The continuation token to filter objects.
Returns:
    A list of objects.
ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYes
prefixNo
start_afterNo
continuation_tokenNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that it returns 'A list of objects' but lacks details on pagination behavior (implied by 'continuation_token'), rate limits, authentication requirements, or error handling. The description is minimal and doesn't adequately cover behavioral traits for a tool with multiple parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with clear sections for 'Args' and 'Returns', making it easy to scan. It's concise with no wasted words, though the parameter explanations are very brief. The front-loaded purpose statement is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on return format (e.g., structure of the object list), pagination behavior (critical given 'continuation_token'), error cases, and usage context. The minimal parameter explanations don't compensate for the missing behavioral and output information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists all four parameters with brief explanations, but schema description coverage is 0%, so the schema provides no additional context. The parameter explanations are basic (e.g., 'The prefix to filter objects') and don't add significant semantic detail beyond what the parameter names imply. This meets the baseline for minimal compensation given the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List all objects') and resource ('in a bucket'), making the purpose immediately understandable. It distinguishes from sibling tools like 'get_object' (which retrieves a specific object) and 'list_buckets' (which lists buckets rather than objects). However, it doesn't explicitly mention how it differs from siblings beyond the resource scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention sibling tools like 'get_object' for retrieving specific objects or 'list_buckets' for listing buckets, nor does it explain prerequisites or appropriate contexts for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedget_object
    • First observedlist_buckets
    • First observedlist_objects

TDQS

B3.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. get_object retrieves specific object content, list_buckets enumerates available buckets, and list_objects lists objects within a bucket. The three tools cover different operations without overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case formatting. get_object, list_buckets, and list_objects maintain perfect naming consistency throughout the toolset.

Tool Count3/5

With only 3 tools, this feels thin for a storage service interface. While the tools cover basic read operations, the absence of create, update, or delete operations makes this feel incomplete rather than minimal. The count is borderline for the apparent scope.

Completeness2/5

Significant gaps exist in this TOS storage interface. While it provides read operations (get_object, list_buckets, list_objects), it lacks essential CRUD operations like create_bucket, put_object, delete_object, or delete_bucket. Agents will encounter dead ends when trying to perform basic storage workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables interaction with Volcengine's TOS (Object Storage) service through MCP protocol. Supports bucket management, object operations, pre-signed URLs, and media processing including image manipulation and video frame extraction.
    13
    2
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to manage MinIO object storage through comprehensive bucket operations, file uploads/downloads, batch processing, permissions management, and URL generation. Supports both automatic and manual connection modes with flexible authentication options.
    19
    20
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables interaction with Tencent Cloud Object Storage (COS) through MCP protocol. Supports file upload, download, deletion, listing objects, and generating temporary signed URLs for cloud storage management.
    5
    25
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    Enables AI models to interact with Tencent Cloud COS for cloud storage operations (upload, download, list files) and advanced media processing capabilities (image super-resolution, QR code recognition, video thumbnails, document conversion, and natural language-based file search).
    21
    Apache 2.0

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/dinghuazhou/sample-mcp-server-tos'

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