Skip to main content
Glama
aliyun

Alibaba Cloud DMS MCP Server

Official
by aliyun

optimizeSql

Analyze and optimize SQL performance by identifying bottlenecks and suggesting improvements for enhanced database query efficiency.

Instructions

Analyze and optimize SQL performance based on the provided SQL statement and database IDIf you don't know the databaseId, first use getDatabase or searchDatabase to retrieve it. (1) If you have the exact host, port, and database name, use getDatabase. (2) If you only know the database name, use searchDatabase. (3) If you don't know any information, ask the user to provide the necessary details. Note: searchDatabase may return multiple databases. In this case, let the user choose which one to use.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
database_idYesDMS databaseId
questionNoNatural language question
sqlYesSQL statement
modelNoOptional: if a specific model is desired, it can be specified here

Implementation Reference

  • Core handler function 'optimize_sql' that invokes the Alibaba Cloud DMS Enterprise API method 'optimize_sql_by_meta_agent' to analyze and optimize the provided SQL statement for the specified database.
    async def optimize_sql( database_id: str = Field(description="DMS databaseId"), question: Optional[str] = Field(default=None, description="Natural language question"), sql: str = Field(description="SQL statement"), model: Optional[str] = Field(default=None, description="Optional: if a specific model is desired, it can be specified here") ) -> Any: client = create_client() req = dms_enterprise_20181101_models.OptimizeSqlByMetaAgentRequest(db_id=database_id, query=question, sql=sql) # if mcp.state.real_login_uid: # req.real_login_user_uid = mcp.state.real_login_uid if model: req.model = model try: resp = client.optimize_sql_by_meta_agent(req) if not resp or not resp.body: return None data = resp.body.to_map() return data except Exception as e: logger.error(f"Error in optimize_sql: {e}") raise
  • Registration of 'optimizeSql' tool in the configured database toolset (when default_database_id is set). This wrapper calls the core 'optimize_sql' handler with the pre-configured database ID.
    @self.mcp.tool(name="optimizeSql", description="Analyze and optimize SQL performance based on the provided SQL statement", annotations={"title": "SQL优化", "readOnlyHint": True, "destructiveHint": False}) async def optimize_sql_configured( question: Optional[str] = Field(default=None, description="Natural language question"), sql: str = Field(description="SQL statement"), model: Optional[str] = Field(default=None, description="Optional: if a specific model is desired, it can be specified here") ) -> Any: result_obj = await optimize_sql(database_id=self.default_database_id, question=question, sql=sql, model=model) return result_obj
  • Direct registration of the core 'optimize_sql' handler as the 'optimizeSql' tool in the full toolset (when no default database is configured). Requires explicit database_id parameter.
    self.mcp.tool(name="optimizeSql", description=f"Analyze and optimize SQL performance " f"based on the provided SQL statement and database ID" f"{DATABASE_ID_DESCRIPTION}", annotations={"title": "SQL优化", "readOnlyHint": True})(optimize_sql)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aliyun/alibabacloud-dms-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server