Skip to content

add new tool modify_security_ips #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ Add the following configuration to the MCP client configuration file:
* `describe_slow_log_records`: Query slow log records for an RDS instance.
* `describe_vpcs`: Query VPC list.
* `describe_vswitches`: Query VSwitch list.
* `modify_security_ips`: Modify security ips
* `get_current_time`: Get the current time.
* `modify_db_instance_description`: Modify RDS instance descriptions.
* `modify_db_instance_spec`: Modify RDS instance specifications.
Expand Down
1 change: 1 addition & 0 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ git clone https://github.com/aliyun/alibabacloud-rds-openapi-mcp-server.git
* `describe_instance_linked_whitelist_template`: 查询绑定到实例的白名单模板列表
* `describe_slow_log_records`: 查询RDS实例的慢日志记录
* `describe_vpcs`: 查询VPC列表
* `modify_security_ips`: 修改白名单
* `describe_vswitches`: 查询VSwitch列表
* `get_current_time`: 获取当前时间
* `modify_db_instance_description`: 修改RDS实例描述
Expand Down
64 changes: 64 additions & 0 deletions src/alibabacloud_rds_openapi_mcp_server/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -1235,6 +1235,70 @@ async def get_current_time() -> Dict[str, Any]:
raise Exception(f"Failed to get the current time: {str(e)}")


@mcp.tool()
async def modify_security_ips(
region_id: str,
dbinstance_id: str,
security_ips: str,
whitelist_network_type: str = "MIX",
security_ip_type: str = None,
dbinstance_ip_array_name: str = None,
dbinstance_ip_array_attribute: str = None,
client_token: str = None
) -> Dict[str, Any]:
"""modify security ips。

Args:
region_id (str): RDS instance region id.
dbinstance_id (str): RDS instance id.
security_ips (str): security ips list, separated by commas.
whitelist_network_type (str, optional): whitelist network type.
- MIX: mixed network type
- Classic: classic network
- VPC: vpc
default value: MIX
security_ip_type (str, optional): security ip type.
- normal: normal security ip
- hidden: hidden security ip
dbinstance_ip_array_name (str, optional): security ip array name.
dbinstance_ip_array_attribute (str, optional): security ip array attribute.
- hidden: hidden security ip
- normal: normal security ip
client_token (str, optional): idempotency token, max 64 ascii characters.

Returns:
Dict[str, Any]: response contains request id.
"""
try:
# initialize client
client = get_rds_client(region_id)

# create request
request = rds_20140815_models.ModifySecurityIpsRequest(
dbinstance_id=dbinstance_id,
security_ips=security_ips,
whitelist_network_type=whitelist_network_type
)

# add optional parameters
if security_ip_type:
request.security_ip_type = security_ip_type
if dbinstance_ip_array_name:
request.dbinstance_ip_array_name = dbinstance_ip_array_name
if dbinstance_ip_array_attribute:
request.dbinstance_ip_array_attribute = dbinstance_ip_array_attribute
if client_token:
request.client_token = client_token

# send api request
response = client.modify_security_ips(request)
return response.body.to_map()

except Exception as e:
logger.error(f"modify security ips error: {str(e)}")
raise OpenAPIError(f"modify rds instance security ips failed: {str(e)}")


def main():
mcp.run(transport=os.getenv('SERVER_TRANSPORT', 'stdio'))

Expand Down