Skip to content

Commit 3d349c4

Browse files
author
wenfeng.wf
committed
Add describe_db_instance_parameters tools.
1 parent 596d695 commit 3d349c4

File tree

4 files changed

+49
-1
lines changed

4 files changed

+49
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ Add the following configuration to the MCP client configuration file:
9595
* `describe_vpcs`: Query VPC list.
9696
* `describe_vswitches`: Query VSwitch list.
9797
* `describe_slow_log_records`: Query slow log records for an RDS instance.
98+
* `describe_db_instance_parameters`: Batch retrieves parameter information for multiple RDS instances.
9899
* `modify_parameter`: Modify RDS instance parameters.
99100
* `modify_db_instance_spec`: Modify RDS instance specifications.
100101
* `get_current_time`: Get the current time.

README_CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ git clone https://github.com/aliyun/alibabacloud-rds-openapi-mcp-server.git
9393
* `describe_vpcs`: 查询VPC列表
9494
* `describe_vswitches`: 查询虚拟交换机列表
9595
* `describe_slow_log_records`: 查询RDS慢日志记录
96+
* `describe_db_instance_parameters`: 批量查询实例参数信息.
9697
* `modify_parameter`: 修改RDS实例参数
9798
* `modify_db_instance_spec`: 调整RDS实例规格
9899
* `get_current_time`: 获取当前时间

src/alibabacloud_rds_openapi_mcp_server/server.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,52 @@ async def describe_db_instance_accounts(
870870
except Exception as e:
871871
raise e
872872

873+
@mcp.tool()
874+
async def describe_db_instance_parameters(
875+
region_id: str,
876+
db_instance_ids: list[str],
877+
paramters: list[str] = None
878+
) -> dict[str, dict[str, Any]]:
879+
"""
880+
Batch retrieves parameter information for multiple RDS instances.
881+
Args:
882+
region_id: The region ID of the RDS instance.
883+
db_instance_ids: List of DB instance identifiers (e.g., ["rm-uf6wjk5****", "db-instance-01"])
884+
paramters: List of parameter names (e.g., ["max_connections", "innodb_buffer_pool_size"])
885+
Returns:
886+
list[dict]: A list of dictionaries containing parameter information(ParamGroupInfo,ConfigParameters,RunningParameters) foreach instance.
887+
"""
888+
try:
889+
client = get_rds_client(region_id)
890+
db_instance_parameters = {}
891+
for db_instance_id in db_instance_ids:
892+
request = rds_20140815_models.DescribeParametersRequest(
893+
dbinstance_id=db_instance_id
894+
)
895+
response = await client.describe_parameters_async(request)
896+
if paramters:
897+
response.body.config_parameters.dbinstance_parameter = [
898+
config_parameter for config_parameter in response.body.config_parameters.dbinstance_parameter
899+
if config_parameter.parameter_name in paramters
900+
]
901+
response.body.running_parameters.dbinstance_parameter = [
902+
running_parameter for running_parameter in response.body.running_parameters.dbinstance_parameter
903+
if running_parameter.parameter_name in paramters
904+
]
905+
906+
db_instance_parameters[db_instance_id] = {
907+
"ParamGroupInfo": response.body.param_group_info.to_map(),
908+
"ConfigParameters": compress_json_array([
909+
config_parameter.to_map() for config_parameter in response.body.config_parameters.dbinstance_parameter
910+
]),
911+
"RunningParameters": compress_json_array([
912+
running_parameter.to_map() for running_parameter in response.body.running_parameters.dbinstance_parameter
913+
])
914+
}
915+
return db_instance_parameters
916+
except Exception as e:
917+
raise e
918+
873919

874920
@mcp.tool()
875921
async def describe_bills(

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)