mysql_describe_table
Retrieve the structure and schema of a MySQL table to understand its columns, data types, and constraints for database analysis and query planning.
Instructions
Get the structure/schema of a specific table
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Table name to describe | |
| database | No | Database name (uses current database if not specified) |
Implementation Reference
- src/index.ts:393-419 (handler)The main handler function for the 'mysql_describe_table' tool. It validates input, constructs the DESCRIBE query for the specified table (optionally in a database), executes it using the MySQL pool, and returns the table structure as JSON.private async handleDescribeTable(args: any) { if (!this.pool) { throw new Error("Not connected to MySQL. Use mysql_connect first."); } const { table, database } = args; if (!table) { throw new Error("Table name is required"); } const fullTableName = database ? `\`${database}\`.\`${table}\`` : `\`${table}\``; try { const [results] = await this.pool.execute(`DESCRIBE ${fullTableName}`); return { content: [ { type: "text", text: `Table structure for '${table}':\n${JSON.stringify(results, null, 2)}`, }, ], }; } catch (error) { throw new Error(`Failed to describe table: ${error instanceof Error ? error.message : String(error)}`); } }
- src/index.ts:181-194 (schema)The input schema definition for the 'mysql_describe_table' tool, specifying the expected parameters: table (required) and optional database.inputSchema: { type: "object", properties: { table: { type: "string", description: "Table name to describe", }, database: { type: "string", description: "Database name (uses current database if not specified)", }, }, required: ["table"], },
- src/index.ts:178-195 (registration)Registration of the 'mysql_describe_table' tool in the listTools response, including name, description, and input schema.{ name: "mysql_describe_table", description: "Get the structure/schema of a specific table", inputSchema: { type: "object", properties: { table: { type: "string", description: "Table name to describe", }, database: { type: "string", description: "Database name (uses current database if not specified)", }, }, required: ["table"], }, },
- src/index.ts:257-258 (registration)The switch case that registers and dispatches calls to the 'mysql_describe_table' handler in the CallToolRequest handler.case "mysql_describe_table": return await this.handleDescribeTable(args);