Skip to content

Commit bbf63a6

Browse files
authored
Merge pull request #12 from careyson/feature_windows_doc
Feature windows doc
2 parents a722302 + 74e86b9 commit bbf63a6

File tree

3 files changed

+330
-0
lines changed

3 files changed

+330
-0
lines changed

assets/README_WIN_CN.md

Lines changed: 330 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,330 @@
1+
# 阿里云RDS OpenAPI MCP服务器
2+
3+
🚀 通过OpenAPI为阿里云RDS提供MCP服务器支持。本项目通过[MCP](https://github.com/CherryHQ/mcp)框架公开阿里云RDS、VPC和计费API,将常见的数据库管理任务打包成易于使用的工具。
4+
5+
![logo](./rds_mcp.png)
6+
7+
> ⚠️ **注意**: 本说明文档基于Windows平台。
8+
9+
## 📋 目录
10+
- [✨ 功能特性](#-功能特性)
11+
- [📋 先决条件](#-先决条件)
12+
- [🔧 安装](#-安装)
13+
- [⚙️ 配置](#️-配置)
14+
- [🚀 快速开始](#-快速开始)
15+
- [🛠️ 可用工具](#️-可用工具)
16+
- [💡 使用场景](#-使用场景)
17+
- [🔌 集成方式](#-集成方式)
18+
- [🤝 贡献指南](#-贡献指南)
19+
- [📄 许可证](#-许可证)
20+
- [💬 技术支持](#-技术支持)
21+
22+
## ✨ 功能特性
23+
24+
- 🏗️ **全面的RDS管理**: 创建、配置和管理RDS实例
25+
- 🔒 **安全与合规**: IP白名单管理和安全审计
26+
- 📊 **性能监控**: 查询性能指标和日志
27+
- 💰 **成本优化**: 计费分析和资源优化
28+
- 🌐 **多环境支持**: 开发、测试和生产环境
29+
- 🔗 **VPC集成**: 完整的VPC和交换机管理功能
30+
31+
## 📋 先决条件
32+
33+
- 🐍 Python 3.12 或更高版本
34+
- ☁️ 拥有适当权限的阿里云账户
35+
- 🔑 Access Key ID 和 Access Key Secret(或STS Token)
36+
37+
## 🔧 安装
38+
39+
### 方式一:使用uv快速启动(推荐)
40+
41+
1. **安装uv**
42+
```powershell
43+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
44+
```
45+
46+
2. **运行服务器**
47+
```bash
48+
uvx alibabacloud-rds-openapi-mcp-server@latest
49+
```
50+
51+
### 方式二:从源码安装
52+
53+
1. **安装Python 3.12+**
54+
55+
[Python官网](https://www.python.org/downloads/)下载
56+
57+
2. **克隆仓库**
58+
```bash
59+
git clone https://github.com/aliyun/alibabacloud-rds-openapi-mcp-server.git
60+
cd alibabacloud-rds-openapi-mcp-server
61+
```
62+
63+
3. **安装依赖**
64+
```bash
65+
pip install -i https://mirrors.aliyun.com/pypi/simple/ alibabacloud_bssopenapi20171214
66+
pip install -i https://mirrors.aliyun.com/pypi/simple/ alibabacloud_rds20140815
67+
pip install -i https://mirrors.aliyun.com/pypi/simple/ alibabacloud_vpc20160428
68+
pip install -i https://mirrors.aliyun.com/pypi/simple/ mcp
69+
```
70+
71+
4. **运行服务器**
72+
```bash
73+
python src/alibabacloud_rds_openapi_mcp_server/server.py
74+
```
75+
76+
## ⚙️ 配置
77+
78+
### 环境变量设置
79+
80+
在启动MCP服务器之前,需要设置必要的环境变量:
81+
82+
#### PowerShell配置
83+
```powershell
84+
# 设置服务器传输模式
85+
$env:SERVER_TRANSPORT="sse"
86+
87+
# 设置阿里云凭证
88+
$env:ALIBABA_CLOUD_ACCESS_KEY_ID="<您的AccessKey ID>"
89+
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET="<您的AccessKey Secret>"
90+
91+
# 可选:使用临时凭证时设置STS Token
92+
$env:ALIBABA_CLOUD_SECURITY_TOKEN="<您的STS安全令牌>"
93+
```
94+
95+
#### 命令提示符(CMD)配置
96+
```cmd
97+
REM 设置服务器传输模式
98+
set SERVER_TRANSPORT=sse
99+
100+
REM 设置阿里云凭证
101+
set ALIBABA_CLOUD_ACCESS_KEY_ID=<您的AccessKey ID>
102+
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=<您的AccessKey Secret>
103+
104+
REM 可选:使用临时凭证时设置STS Token
105+
set ALIBABA_CLOUD_SECURITY_TOKEN=<您的STS安全令牌>
106+
```
107+
108+
> ⚠️ **重要提示**: 请将`<占位符>`替换为您的真实凭证信息。这些环境变量仅在当前终端会话中有效。
109+
110+
## 🚀 快速开始
111+
112+
### 服务器启动验证
113+
114+
成功启动后,您将看到类似以下的输出:
115+
```
116+
INFO: Started server process [进程ID]
117+
INFO: Waiting for application startup.
118+
INFO: Application startup complete.
119+
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
120+
```
121+
122+
### 测试安装
123+
124+
配置完成后,可以使用简单的提示词测试MCP工具的有效性:
125+
```
126+
请列出所有可用工具,列表方式,显示标题以及对应的简短描述。
127+
```
128+
129+
## 🛠️ 可用工具
130+
131+
### 🏗️ RDS实例管理
132+
- `create_db_instance`: 创建RDS实例
133+
- `describe_db_instances`: 查询实例
134+
- `describe_db_instance_attribute`: 查询实例详细信息
135+
- `modify_db_instance_description`: 修改RDS实例描述
136+
- `modify_db_instance_spec`: 修改RDS实例规格
137+
- `restart_db_instance`: 重启RDS实例
138+
139+
### 🔒 安全与访问控制
140+
- `modify_security_ips`: 修改IP白名单
141+
- `describe_db_instance_ip_allowlist`: 批量查询IP白名单配置
142+
- `attach_whitelist_template_to_instance`: 将白名单模板绑定到实例
143+
- `describe_all_whitelist_template`: 查询白名单模板列表
144+
- `describe_instance_linked_whitelist_template`: 查询绑定到实例的白名单模板列表
145+
146+
### 👥 数据库与用户管理
147+
- `create_db_instance_account`: 创建RDS实例账号
148+
- `describe_db_instance_accounts`: 批量查询账户信息
149+
- `describe_db_instance_databases`: 批量查询数据库信息
150+
151+
### 🌐 网络与连接
152+
- `allocate_instance_public_connection`: 为RDS实例分配公网连接
153+
- `describe_db_instance_net_info`: 批量查询网络配置详情
154+
- `describe_vpcs`: 查询VPC列表
155+
- `describe_vswitches`: 查询VSwitch列表
156+
157+
### 📊 监控与性能
158+
- `describe_db_instance_performance`: 查询实例性能数据
159+
- `describe_error_logs`: 查询实例错误日志
160+
- `describe_slow_log_records`: 查询RDS实例的慢日志记录
161+
- `describe_db_instance_parameters`: 批量查询参数信息
162+
- `modify_parameter`: 修改RDS实例参数
163+
164+
### 📦 资源管理
165+
- `describe_available_classes`: 查询可用实例规格和存储范围
166+
- `describe_available_zones`: 查询RDS实例可用区域
167+
- `add_tags_to_db_instance`: 添加标签到RDS实例
168+
169+
### 💰 计费与成本管理
170+
- `describe_bills`: 查询用户在特定计费周期内所有产品实例或计费项的消费汇总
171+
172+
### 🔧 实用工具
173+
- `get_current_time`: 获取当前时间
174+
175+
## 💡 使用场景示例
176+
177+
### 场景一:资源调配与环境初始化 🏗️
178+
179+
**在杭州区域创建生产RDS MySQL实例:**
180+
```
181+
在cn-hangzhou可用区生产一个RDS MySQL实例,配置、版本、白名单等信息与实例rm-bp1696hd82oc438fl保持完全一致,并打上标签:生产环境审计、月底前释放
182+
```
183+
184+
**创建只读用户账号:**
185+
```
186+
在cn-hangzhou区域的实例 rm-bp1696hd82oc438fl 上,创建一个只读账号readonly_user,密码为:Strong!Pa$$word 并授予它访问 report_db 数据库的只读权限。
187+
```
188+
189+
### 场景二:安全与合规性自动化审计 🔒
190+
191+
**添加堡垒机IP到安全组:**
192+
```
193+
立即将堡垒机新IP 100.101.102.103 添加到所有cn-hangzhou可用区的RDS MySQL实例的'ops_allowlist'安全组中。
194+
```
195+
196+
**安全合规审计:**
197+
```
198+
审计所有的RDS SQL Server实例,找到cn-hangzhou中所有白名单中不包含 123.123.123.123 IP的实例
199+
```
200+
201+
### 场景三:成本优化 💰
202+
203+
**基于性能的成本优化:**
204+
```
205+
分析cn-hangzhou区域过去3天月所有标签为"测试环境"的RDS MySQL实例,找出 CPU 平均使用率低于 5% 的,并建议一个更经济的实例规格。
206+
```
207+
208+
### 场景四:常见运维操作 🔧
209+
210+
**实例故障排除:**
211+
```
212+
cn-hangzhou实例rm-bp1696hd82oc438f目前无法连接,请立即尝试重启该实例。
213+
```
214+
215+
## 🔌 集成方式
216+
217+
### Cherry Studio集成(推荐)🍒
218+
219+
Cherry Studio是一款集成了多种大语言模型的跨平台AI客户端,支持AI对话、绘图等,旨在提升创作效率。
220+
221+
在MCP客户端配置文件中添加以下配置:
222+
223+
```json
224+
{
225+
"mcpServers": {
226+
"rds-openapi-mcp-server": {
227+
"command": "uvx",
228+
"args": [
229+
"alibabacloud-rds-openapi-mcp-server@latest"
230+
],
231+
"env": {
232+
"ALIBABA_CLOUD_ACCESS_KEY_ID": "your_access_id",
233+
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "your_access_key",
234+
"ALIBABA_CLOUD_SECURITY_TOKEN": "your_sts_token"
235+
}
236+
}
237+
}
238+
}
239+
```
240+
241+
<div align="left">
242+
<img src="./import_mcp_cherry.png" alt="Cherry Studio配置示例" width="900" />
243+
</div>
244+
*在Cherry Studio中配置RDS MCP服务器*
245+
246+
<div align="left">
247+
<img src="./cherry_studio_list_tools.png" alt="Cherry Studio中展示可用的MCP工具" width="900" />
248+
</div>
249+
*在Cherry Studio中提问展示所有可用的工具*
250+
251+
252+
> 📝 **注意**: `ALIBABA_CLOUD_SECURITY_TOKEN` 仅在使用STS Token时填入,如果使用AccessKey方式请保留该值为空。
253+
254+
255+
### Claude Desktop集成 🤖
256+
257+
在MCP客户端配置中添加:
258+
259+
```json
260+
{
261+
"mcpServers": {
262+
"rds-openapi-mcp-server": {
263+
"command": "uv",
264+
"args": [
265+
"--directory",
266+
"d:/path/to/alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server",
267+
"run",
268+
"server.py"
269+
],
270+
"env": {
271+
"ALIBABA_CLOUD_ACCESS_KEY_ID": "your_access_id",
272+
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "your_access_key",
273+
"ALIBABA_CLOUD_SECURITY_TOKEN": "your_sts_token"
274+
}
275+
}
276+
}
277+
}
278+
```
279+
280+
## 🤝 贡献指南
281+
282+
我们欢迎您的贡献!请按照以下步骤操作:
283+
284+
1. 🍴 Fork本仓库
285+
2. 🌟 创建特性分支 (`git checkout -b feature/amazing-feature`)
286+
3. 💾 提交您的修改 (`git commit -m '添加新特性'`)
287+
4. 📤 推送到分支 (`git push origin feature/amazing-feature`)
288+
5. 🔄 创建Pull Request
289+
290+
### 开发指南
291+
292+
- 💻 确保代码符合Python PEP 8规范
293+
- ✅ 添加适当的测试用例
294+
- 📚 更新相关文档
295+
- 🔍 运行所有测试确保通过
296+
297+
## 📄 许可证
298+
299+
本项目采用Apache 2.0许可证 - 查看[LICENSE](LICENSE)文件了解详情。
300+
301+
## 💬 技术支持
302+
303+
如有问题、意见或需要支持,请通过以下方式联系我们:
304+
305+
- 💬 **钉钉群**: 106730017609
306+
- 🐛 **GitHub Issues**: [创建问题](https://github.com/aliyun/alibabacloud-rds-openapi-mcp-server/issues)
307+
308+
### 常见问题 ❓
309+
310+
<details>
311+
<summary>如何获取阿里云AccessKey?</summary>
312+
313+
1. 登录阿里云控制台
314+
2. 点击右上角头像,选择"AccessKey管理"
315+
3. 创建新的AccessKey对
316+
4. 妥善保管AccessKey Secret
317+
318+
</details>
319+
320+
<details>
321+
<summary>支持哪些RDS数据库引擎?</summary>
322+
323+
目前支持:
324+
- MySQL
325+
- SQL Server
326+
- PostgreSQL
327+
- MariaDB
328+
329+
</details>
330+

assets/cherry_studio_list_tools.png

1.12 MB
Loading

assets/import_mcp_cherry.png

1.02 MB
Loading

0 commit comments

Comments
 (0)