# Cloud Studio MCP 部署服务
[](https://www.python.org/downloads/)
[](https://fastapi.tiangolo.com/)
Cloud Studio MCP 部署服务是一个基于FastMCP的服务器,提供Cloud Studio工作空间的管理功能,包括创建工作空间、上传文件和执行命令等操作。
## 功能特性
- **创建工作空间**:创建新的Cloud Studio工作空间实例
- **文件管理**:上传文件到指定工作空间
- **命令执行**:在工作空间中执行shell命令
- **MCP集成**:通过MCP协议提供标准化接口
## 安装指南
### 前置要求
- Python 3.8+
- API_TOKEN环境变量(Cloud Studio API访问令牌)
### 安装步骤
1. 克隆仓库:
```bash
git clone <repository-url>
cd mcp_deploy
```
2. 创建并激活虚拟环境:
```bash
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.\.venv\Scripts\activate # Windows
```
3. 安装依赖:
```bash
pip install -e .
```
## 配置说明
在运行服务前,需要设置以下环境变量:
```bash
export API_TOKEN="your_cloud_studio_api_token"
export region="ap-shanghai" # 可选,默认为ap-shanghai
```
## 使用说明
### 启动服务
```bash
python -m mcp_deploy
```
### API 文档
服务提供以下MCP工具:
#### 1. 创建工作空间
```python
create_workspace(title str) -> dict
```
返回示例:
```json
{
"space_key": "kmhhvqnlogr48",
"webIDE": "https://kmhhv1pyvc48--ide.ap-shanghai.cloudstudio.club"
}
```
#### 2. 上传文件
```python
write_files(space_key: str, region: str, files: list[File]) -> str
```
文件格式:
```python
class File:
save_path: str # 文件保存路径
file_content: str # 文件内容(UTF-8编码)
```
#### 3. 执行命令
```python
execute_command(space_key: str, region: str, command: str) -> str
```
示例:
```python
execute_command("xxxx", "ap-shanghai", "ls -al")
```
## 开发指南
### 项目结构
```
mcp_deploy/
├── __init__.py
├── __main__.py
├── mcp_handlers.py # 核心业务逻辑
├── models.py # 数据模型定义
└── server.py # FastMCP服务器实现
```
### 测试
1. 确保已设置API_TOKEN环境变量
2. 运行测试命令:
```bash
python -m pytest
```
## 贡献
欢迎提交Pull Request或Issue报告问题。
## 许可证
[MIT License](LICENSE)
Raw data
{
"_id": null,
"home_page": null,
"name": "cloudstudio-mcp-server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "cloudstudio, deploy, mcp",
"author": null,
"author_email": "hongxuwu <hongxuwu@tencent.com>, chrisclye <chrisclye@tencent.com>",
"download_url": "https://files.pythonhosted.org/packages/02/8d/ea9c39d7a5bad56485c05c363b1bd9bfbef185bd9e2b0714979d286a7f61/cloudstudio_mcp_server-1.0.6.tar.gz",
"platform": null,
"description": "# Cloud Studio MCP \u90e8\u7f72\u670d\u52a1\n\n[](https://www.python.org/downloads/)\n[](https://fastapi.tiangolo.com/)\n\nCloud Studio MCP \u90e8\u7f72\u670d\u52a1\u662f\u4e00\u4e2a\u57fa\u4e8eFastMCP\u7684\u670d\u52a1\u5668\uff0c\u63d0\u4f9bCloud Studio\u5de5\u4f5c\u7a7a\u95f4\u7684\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u62ec\u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4\u3001\u4e0a\u4f20\u6587\u4ef6\u548c\u6267\u884c\u547d\u4ee4\u7b49\u64cd\u4f5c\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n- **\u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4**\uff1a\u521b\u5efa\u65b0\u7684Cloud Studio\u5de5\u4f5c\u7a7a\u95f4\u5b9e\u4f8b\n- **\u6587\u4ef6\u7ba1\u7406**\uff1a\u4e0a\u4f20\u6587\u4ef6\u5230\u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4\n- **\u547d\u4ee4\u6267\u884c**\uff1a\u5728\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6267\u884cshell\u547d\u4ee4\n- **MCP\u96c6\u6210**\uff1a\u901a\u8fc7MCP\u534f\u8bae\u63d0\u4f9b\u6807\u51c6\u5316\u63a5\u53e3\n\n## \u5b89\u88c5\u6307\u5357\n\n### \u524d\u7f6e\u8981\u6c42\n\n- Python 3.8+\n- API_TOKEN\u73af\u5883\u53d8\u91cf\uff08Cloud Studio API\u8bbf\u95ee\u4ee4\u724c\uff09\n\n### \u5b89\u88c5\u6b65\u9aa4\n\n1. \u514b\u9686\u4ed3\u5e93\uff1a\n ```bash\n git clone <repository-url>\n cd mcp_deploy\n ```\n\n2. \u521b\u5efa\u5e76\u6fc0\u6d3b\u865a\u62df\u73af\u5883\uff1a\n ```bash\n python -m venv .venv\n source .venv/bin/activate # Linux/macOS\n .\\.venv\\Scripts\\activate # Windows\n ```\n\n3. \u5b89\u88c5\u4f9d\u8d56\uff1a\n ```bash\n pip install -e .\n ```\n\n## \u914d\u7f6e\u8bf4\u660e\n\n\u5728\u8fd0\u884c\u670d\u52a1\u524d\uff0c\u9700\u8981\u8bbe\u7f6e\u4ee5\u4e0b\u73af\u5883\u53d8\u91cf\uff1a\n\n```bash\nexport API_TOKEN=\"your_cloud_studio_api_token\"\nexport region=\"ap-shanghai\" # \u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3aap-shanghai\n```\n\n## \u4f7f\u7528\u8bf4\u660e\n\n### \u542f\u52a8\u670d\u52a1\n\n```bash\npython -m mcp_deploy\n```\n\n### API \u6587\u6863\n\n\u670d\u52a1\u63d0\u4f9b\u4ee5\u4e0bMCP\u5de5\u5177\uff1a\n\n#### 1. \u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4\n\n```python\ncreate_workspace(title str) -> dict\n```\n\u8fd4\u56de\u793a\u4f8b\uff1a\n```json\n{\n \"space_key\": \"kmhhvqnlogr48\",\n \"webIDE\": \"https://kmhhv1pyvc48--ide.ap-shanghai.cloudstudio.club\"\n}\n```\n\n#### 2. \u4e0a\u4f20\u6587\u4ef6\n\n```python\nwrite_files(space_key: str, region: str, files: list[File]) -> str\n```\n\u6587\u4ef6\u683c\u5f0f\uff1a\n```python\nclass File:\n save_path: str # \u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\n file_content: str # \u6587\u4ef6\u5185\u5bb9(UTF-8\u7f16\u7801)\n```\n\n#### 3. \u6267\u884c\u547d\u4ee4\n\n```python\nexecute_command(space_key: str, region: str, command: str) -> str\n```\n\u793a\u4f8b\uff1a\n```python\nexecute_command(\"xxxx\", \"ap-shanghai\", \"ls -al\")\n```\n\n## \u5f00\u53d1\u6307\u5357\n\n### \u9879\u76ee\u7ed3\u6784\n\n```\nmcp_deploy/\n\u251c\u2500\u2500 __init__.py\n\u251c\u2500\u2500 __main__.py\n\u251c\u2500\u2500 mcp_handlers.py # \u6838\u5fc3\u4e1a\u52a1\u903b\u8f91\n\u251c\u2500\u2500 models.py # \u6570\u636e\u6a21\u578b\u5b9a\u4e49\n\u2514\u2500\u2500 server.py # FastMCP\u670d\u52a1\u5668\u5b9e\u73b0\n```\n\n### \u6d4b\u8bd5\n\n1. \u786e\u4fdd\u5df2\u8bbe\u7f6eAPI_TOKEN\u73af\u5883\u53d8\u91cf\n2. \u8fd0\u884c\u6d4b\u8bd5\u547d\u4ee4\uff1a\n ```bash\n python -m pytest\n ```\n\n## \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4Pull Request\u6216Issue\u62a5\u544a\u95ee\u9898\u3002\n\n## \u8bb8\u53ef\u8bc1\n\n[MIT License](LICENSE)",
"bugtrack_url": null,
"license": null,
"summary": "Cloud Studio MCP Server",
"version": "1.0.6",
"project_urls": null,
"split_keywords": [
"cloudstudio",
" deploy",
" mcp"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "161b38f1b6cac4ac12e9548a24ace2d71e30574cdc2541580725299d1d61092e",
"md5": "d2bd2374f509eed76f210d4c8c740121",
"sha256": "edd7305740c52433e49af1b3cc73da886fcd9c0c8c89beacd61d8fe9386a0808"
},
"downloads": -1,
"filename": "cloudstudio_mcp_server-1.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d2bd2374f509eed76f210d4c8c740121",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 13672,
"upload_time": "2025-08-13T12:52:15",
"upload_time_iso_8601": "2025-08-13T12:52:15.672962Z",
"url": "https://files.pythonhosted.org/packages/16/1b/38f1b6cac4ac12e9548a24ace2d71e30574cdc2541580725299d1d61092e/cloudstudio_mcp_server-1.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "028dea9c39d7a5bad56485c05c363b1bd9bfbef185bd9e2b0714979d286a7f61",
"md5": "21500e14af80cf5dd4ecf07780bfbf6f",
"sha256": "1493cdede04ea3d7a748a240f21bb2e3003ba6812a3c4009c589c0111fadb419"
},
"downloads": -1,
"filename": "cloudstudio_mcp_server-1.0.6.tar.gz",
"has_sig": false,
"md5_digest": "21500e14af80cf5dd4ecf07780bfbf6f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 53371,
"upload_time": "2025-08-13T12:52:18",
"upload_time_iso_8601": "2025-08-13T12:52:18.079861Z",
"url": "https://files.pythonhosted.org/packages/02/8d/ea9c39d7a5bad56485c05c363b1bd9bfbef185bd9e2b0714979d286a7f61/cloudstudio_mcp_server-1.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-13 12:52:18",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "cloudstudio-mcp-server"
}