From 325ff9a8dbe6d5bdfcf1b0a08a2c98fccbd6121b Mon Sep 17 00:00:00 2001 From: "wenfeng.wf" Date: Fri, 25 Apr 2025 15:32:43 +0800 Subject: [PATCH 1/6] Update release version. --- README.md | 6 +++--- README_CN.md | 6 +++--- pyproject.toml | 2 +- .../__init__.py | 0 .../server.py | 2 +- .../utils.py | 0 6 files changed, 8 insertions(+), 8 deletions(-) rename src/{rds_openapi_mcp_server => alibabacloud_rds_openapi_mcp_server}/__init__.py (100%) rename src/{rds_openapi_mcp_server => alibabacloud_rds_openapi_mcp_server}/server.py (99%) rename src/{rds_openapi_mcp_server => alibabacloud_rds_openapi_mcp_server}/utils.py (100%) diff --git a/README.md b/README.md index 2fa0e40..c71361f 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Add the following configuration to the MCP client configuration file: "command": "uv", "args": [ "--directory", - "/path/to/alibabacloud-rds-openapi-mcp-server/src/rds_openapi_mcp_server", + "/path/to/alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server", "run", "server.py" ], @@ -44,7 +44,7 @@ export ALIBABA_CLOUD_ACCESS_KEY_ID=$you_access_id; export ALIBABA_CLOUD_ACCESS_KEY_SECRET=$you_access_key; # run mcp server -uv --directory alibabacloud-rds-openapi-mcp-server/src/rds_openapi_mcp_server run server.py +uv --directory alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server run server.py ``` After run mcp server, you will see the following output: ```shell @@ -67,7 +67,7 @@ Add the following configuration to the MCP client configuration file: "command": "uv", "args": [ "--directory", - "/path/to/alibabacloud-rds-openapi-mcp-server/src/rds_openapi_mcp_server", + "/path/to/alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server", "run", "server.py" ], diff --git a/README_CN.md b/README_CN.md index 51150d8..7fa5ae6 100644 --- a/README_CN.md +++ b/README_CN.md @@ -22,7 +22,7 @@ git clone https://github.com/aliyun/alibabacloud-rds-openapi-mcp-server.git "command": "uv", "args": [ "--directory", - "/path/to/alibabacloud-rds-openapi-mcp-server/src/rds_openapi_mcp_server", + "/path/to/alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server", "run", "server.py" ], @@ -43,7 +43,7 @@ export ALIBABA_CLOUD_ACCESS_KEY_ID=$your_access_id; # 替换为你的access_id export ALIBABA_CLOUD_ACCESS_KEY_SECRET=$your_access_key; # 替换为你的access_key # 启动MCP服务 -uv --directory alibabacloud-rds-openapi-mcp-server/src/rds_openapi_mcp_server run server.py +uv --directory alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server run server.py ``` 成功启动后会看到以下输出: ```shell @@ -65,7 +65,7 @@ remote_server = "http://127.0.0.1:8000/sse"; "command": "uv", "args": [ "--directory", - "/path/to/alibabacloud-rds-openapi-mcp-server/src/rds_openapi_mcp_server", + "/path/to/alibabacloud-rds-openapi-mcp-server/src/alibabacloud_rds_openapi_mcp_server", "run", "server.py" ], diff --git a/pyproject.toml b/pyproject.toml index 7641f77..e948fd4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "alibabacloud-rds-openapi-mcp-server" -version = "0.1.0" +version = "1.2.0" description = "MCP server for RDS Services via OPENAPI." readme = "README.md" requires-python = ">=3.12" diff --git a/src/rds_openapi_mcp_server/__init__.py b/src/alibabacloud_rds_openapi_mcp_server/__init__.py similarity index 100% rename from src/rds_openapi_mcp_server/__init__.py rename to src/alibabacloud_rds_openapi_mcp_server/__init__.py diff --git a/src/rds_openapi_mcp_server/server.py b/src/alibabacloud_rds_openapi_mcp_server/server.py similarity index 99% rename from src/rds_openapi_mcp_server/server.py rename to src/alibabacloud_rds_openapi_mcp_server/server.py index ef35a63..e5fe24e 100644 --- a/src/rds_openapi_mcp_server/server.py +++ b/src/alibabacloud_rds_openapi_mcp_server/server.py @@ -11,7 +11,7 @@ from alibabacloud_vpc20160428.client import Client as VpcClient from mcp.server.fastmcp import FastMCP -from utils import transform_to_iso_8601, transform_to_datetime, transform_perf_key +from alibabacloud_rds_openapi_mcp_server.utils import transform_to_iso_8601, transform_to_datetime, transform_perf_key logger = logging.getLogger(__name__) diff --git a/src/rds_openapi_mcp_server/utils.py b/src/alibabacloud_rds_openapi_mcp_server/utils.py similarity index 100% rename from src/rds_openapi_mcp_server/utils.py rename to src/alibabacloud_rds_openapi_mcp_server/utils.py From 7a3b02991e44102d4c1ef2c1bb715dcf91518e82 Mon Sep 17 00:00:00 2001 From: "wenfeng.wf" Date: Fri, 25 Apr 2025 15:36:12 +0800 Subject: [PATCH 2/6] Add pypi support. --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e948fd4..8f7855f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,8 @@ Documentation = "https://github.com/aliyun/alibaba-cloud-ops-mcp-server/" Source = "https://github.com/aliyun/alibaba-cloud-ops-mcp-server.git" "Bug Tracker" = "https://github.com/aliyun/alibaba-cloud-ops-mcp-server/issues" +[tool.hatch.build.targets.wheel] +packages = ["src/alibabacloud_rds_openapi_mcp_server"] [project.scripts] -alibabacloud-rds-openapi-mcp-server = "rds_openapi_mcp_server.server:main" \ No newline at end of file +alibabacloud-rds-openapi-mcp-server = "alibabacloud_rds_openapi_mcp_server.server:main" \ No newline at end of file From c24d981ec48eaf22c2e812ef7b5aea0d261be537 Mon Sep 17 00:00:00 2001 From: "wenfeng.wf" Date: Fri, 25 Apr 2025 15:38:16 +0800 Subject: [PATCH 3/6] Add pypi support. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8f7855f..03b5bb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "alibabacloud-rds-openapi-mcp-server" -version = "1.2.0" +version = "1.2.1" description = "MCP server for RDS Services via OPENAPI." readme = "README.md" requires-python = ">=3.12" From d95f05fee5cff683bcfe55a55e8a637ebb24b166 Mon Sep 17 00:00:00 2001 From: "wenfeng.wf" Date: Fri, 25 Apr 2025 15:39:35 +0800 Subject: [PATCH 4/6] Add pypi support. --- .github/workflows/publish-to-test-pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 2e9eaca..c76fb5e 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-latest environment: name: pypi - url: https://pypi.org/p/ # Replace with your PyPI project name + url: https://pypi.org/p/alibabacloud-rds-openapi-mcp-server # Replace with your PyPI project name permissions: id-token: write # IMPORTANT: mandatory for trusted publishing From 6ab56d6d7ba591be0f2809c2255b178feb822dad Mon Sep 17 00:00:00 2001 From: "wenfeng.wf" Date: Fri, 25 Apr 2025 15:43:17 +0800 Subject: [PATCH 5/6] Add pypi support. --- ...h-to-test-pypi.yml => publish-to-pypi.yml} | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) rename .github/workflows/{publish-to-test-pypi.yml => publish-to-pypi.yml} (79%) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-pypi.yml similarity index 79% rename from .github/workflows/publish-to-test-pypi.yml rename to .github/workflows/publish-to-pypi.yml index c76fb5e..6afb347 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -93,27 +93,27 @@ jobs: gh release upload "$GITHUB_REF_NAME" dist/** --repo "$GITHUB_REPOSITORY" - - publish-to-testpypi: - name: Publish Python 🐍 distribution 📦 to TestPyPI - needs: - - build - runs-on: ubuntu-latest - - environment: - name: testpypi - url: https://test.pypi.org/p/alibabacloud-rds-openapi-mcp-server - - permissions: - id-token: write # IMPORTANT: mandatory for trusted publishing - - steps: - - name: Download all the dists - uses: actions/download-artifact@v4 - with: - name: python-package-distributions - path: dist/ - - name: Publish distribution 📦 to TestPyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - repository-url: https://test.pypi.org/legacy/ \ No newline at end of file +# +# publish-to-testpypi: +# name: Publish Python 🐍 distribution 📦 to TestPyPI +# needs: +# - build +# runs-on: ubuntu-latest +# +# environment: +# name: testpypi +# url: https://test.pypi.org/p/alibabacloud-rds-openapi-mcp-server +# +# permissions: +# id-token: write # IMPORTANT: mandatory for trusted publishing +# +# steps: +# - name: Download all the dists +# uses: actions/download-artifact@v4 +# with: +# name: python-package-distributions +# path: dist/ +# - name: Publish distribution 📦 to TestPyPI +# uses: pypa/gh-action-pypi-publish@release/v1 +# with: +# repository-url: https://test.pypi.org/legacy/ \ No newline at end of file From ecca02a733e30821c8b078fd0ea2d46b881f5c31 Mon Sep 17 00:00:00 2001 From: "wenfeng.wf" Date: Fri, 25 Apr 2025 16:26:22 +0800 Subject: [PATCH 6/6] Add pypi support. --- .../server.py | 17 +++++++++-------- uv.lock | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/alibabacloud_rds_openapi_mcp_server/server.py b/src/alibabacloud_rds_openapi_mcp_server/server.py index e5fe24e..301a4f4 100644 --- a/src/alibabacloud_rds_openapi_mcp_server/server.py +++ b/src/alibabacloud_rds_openapi_mcp_server/server.py @@ -1,17 +1,18 @@ import json import logging import os -from datetime import datetime -from typing import Dict, Any, List +import sys +from typing import Dict, Any, List from alibabacloud_rds20140815 import models as rds_20140815_models from alibabacloud_rds20140815.client import Client as RdsClient from alibabacloud_tea_openapi.models import Config from alibabacloud_vpc20160428 import models as vpc_20160428_models from alibabacloud_vpc20160428.client import Client as VpcClient from mcp.server.fastmcp import FastMCP - -from alibabacloud_rds_openapi_mcp_server.utils import transform_to_iso_8601, transform_to_datetime, transform_perf_key +current_dir = os.path.dirname(os.path.abspath(__file__)) +sys.path.append(current_dir) +from utils import transform_to_iso_8601, transform_to_datetime, transform_perf_key logger = logging.getLogger(__name__) @@ -99,8 +100,8 @@ async def describe_db_instance_performance(region_id: str, db_instance_id: str, Args: region_id: db instance region(e.g. cn-hangzhou) db_instance_id: db instance id(e.g. rm-xxx) - db_type: the db instance database type(e.g. mysql\pgsql\sqlserver) - perf_key: Performance Key(e.g. MemCpuUsage\QPSTPS\Sessions\COMDML\RowDML) + db_type: the db instance database type(e.g. mysql,pgsql,sqlserver) + perf_key: Performance Key(e.g. MemCpuUsage,QPSTPS,Sessions,COMDML,RowDML) start_time: start time(e.g. 2023-01-01 00:00) end_time: end time(e.g. 2023-01-01 00:00) """ @@ -311,7 +312,7 @@ async def describe_available_classes( instance_charge_type (str): Instance payment type. Values: Prepaid, Postpaid, Serverless. engine (str): Database engine type. Values: MySQL, SQLServer, PostgreSQL, MariaDB. engine_version (str): Database version. - dbinstance_storage_type (str): Storage type. Values: local_ssd\general_essd\cloud_essd\cloud_essd2\cloud_essd3 + dbinstance_storage_type (str): Storage type. Values: local_ssd,general_essd,cloud_essd,cloud_essd2,cloud_essd3 category (str): Instance category. Values: Basic, HighAvailability, cluster, AlwaysOn, Finance, serverless_basic, serverless_standard, serverless_ha. dbinstance_id (str, optional): The ID of the RDS instance. order_type (str, optional): Order type. Currently only supports "BUY". @@ -394,7 +395,7 @@ async def create_db_instance( system_db_charset (str, optional): Character set. dbinstance_net_type (str, optional): Network connection type (Internet, Intranet). Default: Internet. category (str, optional): Instance category. Default: Basic. - dbinstance_storage_type (str, optional): Storage type. (e.g. local_ssd\general_essd\cloud_essd\cloud_essd2\cloud_essd3) + dbinstance_storage_type (str, optional): Storage type. (e.g. local_ssd,general_essd,cloud_essd,cloud_essd2,cloud_essd3) vpc_id (str): VPC ID. vswitch_id (str): VSwitch ID. private_ip_address (str, optional): Private IP address. diff --git a/uv.lock b/uv.lock index f8aa84a..e44b487 100644 --- a/uv.lock +++ b/uv.lock @@ -111,7 +111,7 @@ sdist = { url = "https://files.pythonhosted.org/packages/f6/50/5f41ab550d7874c62 [[package]] name = "alibabacloud-rds-openapi-mcp-server" -version = "0.1.0" +version = "1.2.1" source = { virtual = "." } dependencies = [ { name = "alibabacloud-rds20140815" },