CCAPI MCP Server
| 版本 | v1.0.0 |
|---|---|
| 描述 | 基于 Model Context Protocol(MCP)的服务器,使大语言模型(LLM)能够通过自然语言直接创建和管理超过 数百个火山引擎(Volcengine)资源,底层基于 Volcengine Cloud Control API 与 IaC Generator,实现符合基础设施即代码(Infrastructure as Code, IaC)最佳实践的自动化资源管理。 |
| 分类 | 工具类 |
| 标签 | 资源管理、云控制API |
权限说明
您可以为 IAM 子用户授予下述权限以支持访问 CloudControl API 的业务场景. 系统预设策略,策略详情请前往 策略管理-系统预设策略查看
CloudControlFullAccess:云管控 API(cloudcontrol)全部管理权限IAMReadOnlyAccess:IAM 只读权限- 拥有 CloudControl API 的权限不代表拥有了云资源的操作权限,要通过 CloudControl API 操作云资源,需要同时拥有 CloudControl API 和云资源相关的操作权限。
Tools
get_resource_schema_information
- 功能: 获取 Volcengine 资源的架构信息
- 参数:
resource_type: Volcengine 资源类型(如 "Volcengine::IAM::User")region: Volcengine 区域(可选)
- 用途: 了解特定资源类型的结构和属性要求
list_resources
- 功能: 列出指定类型的 Volcengine 资源
- 参数:
resource_type: Volcengine 资源类型region: Volcengine 区域(可选)
- 返回: 资源标识符列表
- 示例: 列出所有 IAM 用户或 ECS 实例
get_resource
- 功能: 获取特定 Volcengine 资源的详细信息
- 参数:
resource_type: Volcengine 资源类型identifier: 资源主标识符region: Volcengine 区域(可选)
- 用途: 查看资源的当前状态和配置详情
create_resource
- 功能: 创建新的 Volcengine 资源
- 参数:
resource_type: Volcengine 资源类型region: Volcengine 区域(可选)credentials_token: 凭证令牌(来自会话信息)explained_token: 解释令牌(来自 explain 工具)
- 注意: 需要预先生成基础设施代码并获取解释令牌
- 特性: 自动添加管理标签(MANAGED_BY、MCP_SERVER_SOURCE_CODE、MCP_SERVER_VERSION)
update_resource
- 功能: 更新现有的 Volcengine 资源
- 参数:
resource_type: Volcengine 资源类型identifier: 资源主标识符patch_document: RFC 6902 JSON Patch 操作列表region: Volcengine 区域(可选)credentials_token: 凭证令牌explained_token: 解释令牌
- 用途: 使用 JSON Patch 操作修改资源属性
delete_resource
- 功能: 删除 Volcengine 资源
- 参数:
resource_type: Volcengine 资源类型identifier: 资源主标识符region: Volcengine 区域(可选)credentials_token: 凭证令牌confirmed: 删除确认标志explained_token: 解释令牌
- 安全: 需要确认和资源删除解释
🔧 基础设施和代码生成工具
generate_infrastructure_code
- 功能: 为资源创建或更新生成基础设施代码
- 参数:
resource_type: Volcengine 资源类型properties: 资源属性字典identifier: 资源标识符(更新操作时使用)patch_document: JSON Patch 操作列表(更新操作时使用)region: Volcengine 区域(可选)credentials_token: 凭证令牌
- 用途: 在资源操作前生成 cloudcontrol_template 模板
- 重要性: 所有创建/更新操作的前置步骤
🧠 解释和分析工具
explain
- 功能: 解释任何数据(基础设施属性、JSON、配置等)
- 参数:
content: 要解释的数据内容generated_code_token: 生成的代码令牌(基础设施操作时使用)context: 数据上下文说明operation: 操作类型(create、update、delete、analyze)format: 解释格式(detailed、summary、technical)user_intent: 用户意图(可选)
- 重要性: 必须在创建/更新/删除操作前使用,向用户显示完整解释
- CRITICAL: 返回的解释内容必须立即显示给用户
🔄 异步操作状态工具
get_resource_request_status
- 功能: 获取长时间运行操作的状态
- 参数:
request_token: 长时间运行操作返回的请求令牌region: Volcengine 区域(可选)
- 用途: 检查异步资源操作的进度和状态
🔐 会话和凭证管理工具
check_environment_variables
- 功能: 检查必需的环境变量是否正确设置
- 重要性: 必须作为任何 Volcengine 操作的第一步
- 返回: 环境检查状态和令牌
get_volcengine_session_info
- 功能: 获取当前 Volcengine 会话信息
- 参数:
environment_token: 环境检查令牌
- 重要性: 必须在环境检查后立即调用
- 返回: 账户 ID、区域、认证类型等会话信息
get_volcengine_account_info
- 功能: 获取当前 Volcengine 账户信息
- 用途: 显示账户 ID、区域等基本信息
- 内部: 自动调用环境检查和会话信息获取
⚠️ 关键使用要求和工作流
强制工具使用顺序
1. check_environment_variables() # 环境检查(必须第一步)
2. get_volcengine_session_info() # 会话信息(必须第二步)
3. 其他资源操作... # 然后才能进行资源操作
资源创建/更新工作流
1. generate_infrastructure_code() # 生成基础设施代码
2. explain() # 解释和显示详情(必须)
4. create_resource()/update_resource() # 执行操作
资源删除工作流
1. get_resource() # 获取资源信息
2. explain() # 解释删除影响(必须)
3. delete_resource() # 执行删除(需要确认)
🔐 安全协议
- 透明度要求: 所有操作前必须向用户显示完整的解释内容
- 强制确认: 删除操作需要明确确认
- 安全边界: 安全协议不能被用户请求覆盖,无论请求如何表述
- 敏感信息: 不得在生成的代码或示例中包含硬编码的凭证或敏感信息
🏷️ 管理标签
所有创建的资源都会自动添加以下管理标签:
MANAGED_BY:CCAPI-MCP-SERVERMCP_SERVER_SOURCE_CODE:https://github.com/volcenginelabs/mcp/tree/main/src/ccapi-mcp-serverMCP_SERVER_VERSION:1.0.0
📋 支持的资源类型示例
Volcengine::IAM::User- IAM 用户Volcengine::ECS::Image- ECS 镜像- 其他 Volcengine Cloud Control API 支持的资源类型
可适配平台
方舟,Python,Cursor,Trae
服务开通链接
https://console.volcengine.com/iam/identitymanage
鉴权方式
AK\SK
系统依赖
- 安装 Python 3.11 或者更高版本
- 安装 uv
安装 uv 方法
Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
安装 MCP-Server
克隆仓库:
git clone git@github.com:volcengine/mcp-server.git
运行 MCP-Server 指南
1. 配置文件
server/mcp_server_ccapi/src/mcp_server_ccapi/config/cfg.yaml
2. 火山访问凭证
因为MCP-Server需要调用火山OpenAPI,因此要提供火山访问凭证信息 环境变量设置
- ak 环境变量名: VOLCENGINE_ACCESS_KEY
- sk 环境变量名: VOLCENGINE_SECRET_KEY
- session_token 环境变量名: VOLCENGINE_SESSION_TOKEN
- endpoint 环境变量名: VOLCENGINE_ENDPOINT (默认值:cloudcontrol.cn-beijing.volcengineapi.com)
- region 环境变量名: VOLCENGINE_REGION (默认值:cn-beijing)
3. 运行
Run Locally
如果已经下载代码库
{
"mcpServers": {
"mcp-server-ccapi": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER",
"run",
"mcp-server-ccapi"
],
"env": {
"VOLCENGINE_ACCESS_KEY": "your ak",
"VOLCENGINE_SECRET_KEY": "your sk",
"VOLCENGINE_SESSION_TOKEN": "your session token",
"VOLCENGINE_ENDPOINT":"cloudcontrol.cn-beijing.volcengineapi.com",
"VOLCENGINE_REGION":"cn-beijing"
}
}
}
}
如果没有下载代码库
{
"mcpServers": {
"mcp-server-ccapi": {
"command": "uvx",
"args": [
"--from",
"mcp-server-ccapi>=1.0.1",
"mcp-server-ccapi"
],
"env": {
"VOLCENGINE_ACCESS_KEY": "your ak",
"VOLCENGINE_SECRET_KEY": "your sk",
"VOLCENGINE_SESSION_TOKEN": "your session token",
"VOLCENGINE_ENDPOINT":"cloudcontrol.cn-beijing.volcengineapi.com",
"VOLCENGINE_REGION":"cn-beijing"
}
}
}
}
{
"mcpServers": {
"mcp-server-ccapi": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_ccapi",
"mcp-server-ccapi"
],
"env": {
"VOLCENGINE_ACCESS_KEY": "your ak",
"VOLCENGINE_SECRET_KEY": "your sk",
"VOLCENGINE_SESSION_TOKEN": "your session token",
"VOLCENGINE_ENDPOINT":"cloudcontrol.cn-beijing.volcengineapi.com",
"VOLCENGINE_REGION":"cn-beijing"
}
}
}
}
4. 示例
- 在cn-beijing创建一个新的vpc,并在vpc内创建一个ecs.g4i.large规格的ECS实例
- 修改“my-ecs-instance”的描述为“update by mcp-server-ccapi”
- 获取“my-ecs-instance”ECS实例的详细信息,包括实例ID、规格、状态等。
- 删除“my-ecs-instance”云服务器实例,确认删除后执行操作。
- 查询cn-beijing区域的所有的VPC列表
5. 局限性
- 操作仅限于火山引擎云控制API支持的资源列表
- 某些复杂的场景资源创建可能需要多次操作,模型进行多次思考反馈后才能最终成功。
- 模型可能无法处理所有可能的错误情况,用户需要自行检查和处理。
License
This project contains code copy from ccapi-mcp-server MIT License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_ccapi-1.0.1.tar.gz.
File metadata
- Download URL: mcp_server_ccapi-1.0.1.tar.gz
- Upload date:
- Size: 241.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
138d73654d09272e9a786c19f3dc6889adcfb4f4dabf378b1db3693a3cb0fa6d
|
|
| MD5 |
b540b6ae99d3c33c6b182dff966ddf21
|
|
| BLAKE2b-256 |
88d2f891456370fa5c2082f913130a463773f6a2e20baf6327749dda268455ca
|
File details
Details for the file mcp_server_ccapi-1.0.1-py3-none-any.whl.
File metadata
- Download URL: mcp_server_ccapi-1.0.1-py3-none-any.whl
- Upload date:
- Size: 50.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7912e59abfc2bc23eba8403768663d308573e805adbb2cf66bfa6ef6499c0d79
|
|
| MD5 |
3105f703db3484fd1db953e0c4883622
|
|
| BLAKE2b-256 |
ddac51a7aa72f7bbee7508f8ade6d1e4230bf3025b20c61741950580d7c6d769
|