@@ -870,6 +870,52 @@ async def describe_db_instance_accounts(
870
870
except Exception as e :
871
871
raise e
872
872
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
+
873
919
874
920
@mcp .tool ()
875
921
async def describe_bills (
0 commit comments