Skip to main content
Glama
enemyrr

MCP-MySQL Server

by enemyrr

create_table

Build and define new database tables on MCP-MySQL Server by specifying table names, fields, indexes, and column properties for structured data storage.

Instructions

Create a new table in the database

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldsYes
indexesNo
tableYesTable name

Implementation Reference

  • The handler function that implements the core logic for the 'create_table' tool. It builds a CREATE TABLE SQL statement based on the input fields and optional indexes, executes it using executeQuery, and returns a success message.
    private async handleCreateTable(args: any) { const fields = args.fields.map((field: SchemaField) => { let def = `\`${field.name}\` ${field.type.toUpperCase()}`; if (field.length) def += `(${field.length})`; if (field.nullable === false) def += ' NOT NULL'; if (field.default !== undefined) { def += ` DEFAULT ${field.default === null ? 'NULL' : `'${field.default}'`}`; } if (field.autoIncrement) def += ' AUTO_INCREMENT'; if (field.primary) def += ' PRIMARY KEY'; return def; }); const indexes = args.indexes?.map((idx: IndexDefinition) => { const type = idx.unique ? 'UNIQUE INDEX' : 'INDEX'; return `${type} \`${idx.name}\` (\`${idx.columns.join('`, `')}\`)`; }) || []; const sql = `CREATE TABLE \`${args.table}\` ( ${[...fields, ...indexes].join(',\n ')} )`; await this.executeQuery(sql); return { content: [ { type: 'text', text: `Table ${args.table} created successfully` } ] }; }
  • src/index.ts:490-539 (registration)
    Registration of the 'create_table' tool in the ListToolsRequestSchema handler, including its name, description, and detailed input schema definition.
    { name: 'create_table', description: 'Create a new table in the database', inputSchema: { type: 'object', properties: { table: { type: 'string', description: 'Table name', }, fields: { type: 'array', items: { 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 }, autoIncrement: { type: 'boolean', optional: true }, primary: { type: 'boolean', optional: true } }, required: ['name', 'type'] } }, indexes: { type: 'array', items: { type: 'object', properties: { name: { type: 'string' }, columns: { type: 'array', items: { type: 'string' } }, unique: { type: 'boolean', optional: true } }, required: ['name', 'columns'] }, optional: true } }, required: ['table', 'fields'] } },
  • src/index.ts:581-582 (registration)
    Registration of the 'create_table' handler in the CallToolRequestSchema switch statement, dispatching to handleCreateTable.
    case 'create_table': return await this.handleCreateTable(request.params.arguments);
  • TypeScript interface defining the structure of table fields used in create_table input and handler.
    interface SchemaField { name: string; type: string; length?: number; nullable?: boolean; default?: string | number | null; autoIncrement?: boolean; primary?: boolean; }
  • TypeScript interface defining indexes for table creation in create_table tool.
    interface IndexDefinition { name: string; columns: string[]; unique?: boolean; }

Other Tools

Related Tools

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/enemyrr/mcp-mysql-server'

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