Skip to main content

MCP Server for Tencent Cloud TKE

Project description

TKE MCP Server

腾讯云容器服务(TKE) Model Context Protocol (MCP) 服务器,提供标准化的TKE集群管理接口。

🚀 快速开始

环境要求

  • Python 3.8+
  • 腾讯云账号和API密钥

安装

# 克隆项目
git clone <repository-url>
cd tke-mcp

# 安装依赖(可选)
pip install tencentcloud-sdk-python  # 生产环境
pip install model-context-protocol   # MCP支持

配置

# 设置环境变量
export TENCENTCLOUD_SECRET_ID="your_secret_id"
export TENCENTCLOUD_SECRET_KEY="your_secret_key"

启动服务

# 直接运行
python3 -m mcp_server_tke

# 或使用启动脚本
python3 src/mcp_server_tke/server.py

🛠 功能特性

支持的工具

工具名称 功能描述 状态
create_cluster 创建TKE集群
delete_cluster 删除TKE集群

核心特性

  • 🔌 MCP协议兼容: 符合Model Context Protocol标准
  • 🛡️ 参数验证: 完整的输入参数验证和错误处理
  • 🔄 模拟模式: 支持无SDK环境下的开发和测试
  • 📊 日志记录: 详细的操作日志和错误追踪
  • 🧪 测试覆盖: 完整的单元测试和集成测试

📖 使用说明

创建集群

from mcp_server_tke.tool_tke import create_cluster

params = {
    "Region": "ap-guangzhou",
    "ClusterBasicSettings.ClusterName": "my-cluster",
    "ClusterBasicSettings.ClusterOs": "ubuntu18.04.1x86_64",
    "ClusterBasicSettings.VpcId": "vpc-12345678",
    "ClusterCIDRSettings.EniSubnetIds": ["subnet-12345678"],
    "ClusterCIDRSettings.ServiceCIDR": "10.96.0.0/12"
}

result = create_cluster(params)
print(result)

删除集群

from mcp_server_tke.tool_tke import delete_cluster

params = {
    "ClusterId": "cls-12345678"
}

result = delete_cluster(params)
print(result)

MCP工具调用

{
  "method": "tools/call",
  "params": {
    "name": "create_cluster",
    "arguments": {
      "Region": "ap-guangzhou",
      "ClusterBasicSettings.ClusterName": "test-cluster",
      "ClusterBasicSettings.ClusterOs": "ubuntu18.04.1x86_64",
      "ClusterBasicSettings.VpcId": "vpc-example",
      "ClusterCIDRSettings.EniSubnetIds": ["subnet-example"],
      "ClusterCIDRSettings.ServiceCIDR": "10.96.0.0/12"
    }
  }
}

🏗 项目结构

tke-mcp/
├── src/mcp_server_tke/          # 源代码
│   ├── __init__.py              # 模块初始化
│   ├── server.py                # MCP服务器实现
│   ├── client.py                # 腾讯云客户端
│   └── tool_tke.py              # TKE工具逻辑
├── tests/                       # 测试文件
│   ├── test_client.py           # 客户端测试
│   ├── test_tool_tke.py         # 工具测试
│   ├── test_mcp_integration.py  # MCP集成测试
│   ├── test_e2e.py              # 端到端测试
│   └── test_architecture_consistency.py  # 架构一致性测试
├── examples/                    # 使用示例
│   └── usage_examples.py        # 完整使用示例
├── scripts/                     # 脚本工具
│   ├── verify_server.py         # 服务器验证
│   └── optimize_code.py         # 代码优化
├── docs/                        # 文档
│   └── USAGE.md                 # 使用指南
└── README.md                    # 项目说明

🧪 测试

运行测试

# 单元测试
python3 tests/test_tool_tke.py
python3 tests/test_client.py

# 集成测试
python3 tests/test_mcp_integration.py

# 端到端测试
python3 tests/test_e2e.py

# 架构一致性验证
python3 tests/test_architecture_consistency.py

验证服务器

# 完整验证
python3 scripts/verify_server.py

# 运行示例
python3 examples/usage_examples.py

测试覆盖率

  • 单元测试: 15/15 通过 ✅
  • 集成测试: 9/9 (跳过,需要MCP库) ⏸️
  • 端到端测试: 6/6 通过 ✅
  • 架构验证: 3/3 通过 ✅

📋 API参考

create_cluster

描述: 创建TKE集群

参数:

  • Region (string, 必填): 地域标识
  • ClusterBasicSettings.ClusterName (string, 可选): 集群名称
  • ClusterBasicSettings.ClusterLevel (string, 可选): 集群规格,默认L50
  • ClusterBasicSettings.ClusterOs (string, 必填): 操作系统镜像ID
  • ClusterBasicSettings.VpcId (string, 必填): VPC ID
  • ClusterCIDRSettings.EniSubnetIds (array, 必填): 子网ID列表
  • ClusterCIDRSettings.ServiceCIDR (string, 必填): Service网段

返回: JSON格式的集群创建结果

delete_cluster

描述: 删除TKE集群

参数:

  • ClusterId (string, 必填): 集群ID

返回: JSON格式的删除操作结果

🚀 部署

Docker部署

FROM python:3.9-slim
WORKDIR /app
COPY src/ ./src/
RUN pip install tencentcloud-sdk-python
ENV TENCENTCLOUD_SECRET_ID=""
ENV TENCENTCLOUD_SECRET_KEY=""
CMD ["python3", "-m", "mcp_server_tke"]

系统服务

# 安装为系统服务
sudo cp scripts/tke-mcp-server.service /etc/systemd/system/
sudo systemctl enable tke-mcp-server
sudo systemctl start tke-mcp-server

🔧 开发

架构设计

TKE MCP服务器采用三层架构:

  1. 协议层 (server.py): MCP协议处理和工具注册
  2. 业务层 (tool_tke.py): TKE业务逻辑和参数验证
  3. 客户端层 (client.py): 腾讯云SDK客户端管理

代码规范

  • 遵循PEP 8编码规范
  • 使用类型注解
  • 完整的文档字符串
  • 95%+ 测试覆盖率

贡献指南

  1. Fork项目
  2. 创建特性分支
  3. 提交更改
  4. 运行测试
  5. 创建Pull Request

📊 质量指标

指标 当前值 目标值
单元测试覆盖率 100% >90%
文档字符串覆盖率 92.3% >80%
代码行数 474行 <1000行
圈复杂度 <10 <10

🛠 故障排除

常见问题

Q: ModuleNotFoundError: No module named 'tencentcloud' A: 安装腾讯云SDK:pip install tencentcloud-sdk-python

Q: ModuleNotFoundError: No module named 'mcp' A: 服务器将在模拟模式下运行,生产环境需要安装MCP库

Q: 参数验证失败 A: 检查必填参数是否完整,参数格式是否正确

日志调试

import logging
logging.basicConfig(level=logging.DEBUG)

📚 相关资源

📄 许可证

MIT License

🤝 支持

如有问题或建议,请:

  1. 查看使用文档
  2. 运行验证脚本诊断问题
  3. 提交Issue描述问题
  4. 联系维护团队

版本: 0.1.0
最后更新: 2025-09-03
维护状态: 积极维护 🟢 Implementation of Tencent Cloud CVM (Cloud Virtual Machine) MCP server for managing Tencent Cloud instances and network resources.

Features

  • Instance Management: Full lifecycle management including creating, starting, stopping, restarting, and terminating instances
  • Instance Query: Query instance lists and instance type configurations
  • Image Management: Query available image lists
  • Network Management: Query network resources like VPCs, subnets, and security groups
  • Region Management: Query available regions and availability zones
  • Monitoring & Diagnostics: CPU, memory, disk performance metrics monitoring
  • Security Group Management: Create, configure and manage security group rules
  • Price Inquiry: Pre-creation instance pricing functionality

API List

🔍 Basic Query

Tool Name Description
DescribeRegions Query region list
DescribeZones Query availability zone list
DescribeInstances Query instance list
DescribeImages Query image list
DescribeInstanceTypeConfigs Query instance type configurations
DescribeVpcs Query VPC list
DescribeSubnets Query subnet list
DescribeSecurityGroups Query security group list

🖥️ Instance Lifecycle

Tool Name Description
RunInstances Create new instances
QuickRunInstance Quick create instances (simplified)
StartInstances Start instances
StopInstances Stop instances
RebootInstances Reboot instances
TerminateInstances Terminate instances
ResetInstancesPassword Reset instance password
ResetInstance Reinstall instance OS

🔐 Security Group Management

Tool Name Description
DescribeSecurityGroupPolicies Query security group rules
CreateSecurityGroup Create new security group
CreateSecurityGroupWithPolicies Create security group with rules
CreateSecurityGroupPolicies Add rules to existing security group
ReplaceSecurityGroupPolicies Replace security group rules

📊 Monitoring & Diagnostics

Tool Name Description
CreateDiagnosticReports Create diagnostic reports
DescribeDiagnosticReports Query diagnostic reports
GetCpuUsageData Get CPU utilization
GetCpuLoadavgData Get CPU 1-minute load average
GetCpuloadavg5mData Get CPU 5-minute load average
GetCpuloadavg15mData Get CPU 15-minute load average
GetMemUsedData Get memory usage
GetMemUsageData Get memory utilization
GetCvmDiskUsageData Get disk utilization
GetDiskTotalData Get disk total capacity
GetDiskUsageData Get disk usage percentage

💰 Pricing & Recommendations

Tool Name Description
InquiryPriceRunInstances Inquiry price for creating instances
DescribeRecommendZoneInstanceTypes Recommend instance types in zone

Configuration

Set Tencent Cloud Credentials

  1. Obtain SecretId and SecretKey from Tencent Cloud Console
  2. Set default region (optional)

Environment Variables

Configure the following environment variables:

  • TENCENTCLOUD_SECRET_ID: Tencent Cloud SecretId
  • TENCENTCLOUD_SECRET_KEY: Tencent Cloud SecretKey

Usage in Claude Desktop

Add the following configuration to claude_desktop_config.json:

{
  "mcpServers": {
    "tencent-cvm": {
      "command": "uv",
      "args": [
        "run",
        "mcp-server-cvm"
      ],
      "env": {
        "TENCENTCLOUD_SECRET_ID": "YOUR_SECRET_ID_HERE",
        "TENCENTCLOUD_SECRET_KEY": "YOUR_SECRET_KEY_HERE",
      }
    }
  }
}

Installation

pip install mcp-server-cvm

License

MIT License. See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_tke-0.0.1.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_tke-0.0.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_tke-0.0.1.tar.gz.

File metadata

  • Download URL: mcp_server_tke-0.0.1.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for mcp_server_tke-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3d4d5937ee773f24c1fac35972834fee078a537139fd6867a9320681854738ef
MD5 4fffabd4107b4bea4ed2df6e798b1be5
BLAKE2b-256 500f4647c33ebc094a0c4193d9e1b0758db8f9131b70bce8cbe7f96a6132cb15

See more details on using hashes here.

File details

Details for the file mcp_server_tke-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_tke-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a4a777102ca0601ffb5bc77d60fa187625c94425ee5bad9cb13b6f44b28875e
MD5 a46388d17a5cdfbbcda8d956903b2bff
BLAKE2b-256 4c94affd153e324b9d820cb856036f4baf9b51f511d9f6048dfedf4e41204791

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page