add_column
Add a new column to a MySQL table by specifying the column name, data type, and optional attributes such as length, nullability, and default value.
Instructions
Add a new column to existing table
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | ||
| table | Yes |
Implementation Reference
- src/index.ts:719-740 (handler)The handler function for the 'add_column' tool. It constructs an ALTER TABLE ADD COLUMN SQL statement based on the input arguments and executes it using executeQuery. Returns a success message.private async handleAddColumn(args: any) { if (!args.table || !args.field) { throw new McpError(ErrorCode.InvalidParams, 'Table name and field are required'); } let sql = `ALTER TABLE \`${args.table}\` ADD COLUMN \`${args.field.name}\` ${args.field.type.toUpperCase()}`; if (args.field.length) sql += `(${args.field.length})`; if (args.field.nullable === false) sql += ' NOT NULL'; if (args.field.default !== undefined) { sql += ` DEFAULT ${args.field.default === null ? 'NULL' : `'${args.field.default}'`}`; } await this.executeQuery(sql); return { content: [ { type: 'text', text: `Column ${args.field.name} added to table ${args.table}` } ] }; }
- src/index.ts:543-564 (schema)The input schema definition for the 'add_column' tool, specifying the expected structure of table name and field properties (name, type, length, nullable, default).inputSchema: { type: 'object', properties: { table: { type: 'string' }, field: { type: 'object', properties: { name: { type: 'string' }, type: { type: 'string' }, length: { type: 'number', optional: true }, nullable: { type: 'boolean', optional: true }, default: { type: 'string', description: 'Default value for the column (as string).', optional: true } }, required: ['name', 'type'] } }, required: ['table', 'field'] }
- src/index.ts:540-565 (registration)The tool registration object for 'add_column' in the setTools call, including name, description, and input schema.{ name: 'add_column', description: 'Add a new column to existing table', inputSchema: { type: 'object', properties: { table: { type: 'string' }, field: { type: 'object', properties: { name: { type: 'string' }, type: { type: 'string' }, length: { type: 'number', optional: true }, nullable: { type: 'boolean', optional: true }, default: { type: 'string', description: 'Default value for the column (as string).', optional: true } }, required: ['name', 'type'] } }, required: ['table', 'field'] } }
- src/index.ts:583-584 (registration)The dispatch case in setRequestHandler that routes 'add_column' tool calls to the handleAddColumn method.case 'add_column': return await this.handleAddColumn(request.params.arguments);