Skip to main content
Glama
enemyrr

MCP-MySQL Server

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;
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

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