list_table
Lists tables in an MSSQL database or specific schemas to help users discover and manage database structure for queries and data operations.
Instructions
Lists tables in an MSSQL Database, or list tables in specific schemas
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | No | Schemas to filter by (optional) |
Implementation Reference
- src/tools/ListTableTool.ts:23-42 (handler)The main handler function that executes the list_table tool logic by querying the INFORMATION_SCHEMA.TABLES for tables, optionally filtered by provided schema names.async run(params: any) { try { const { parameters } = params; const request = new sql.Request(); const schemaFilter = parameters && parameters.length > 0 ? `AND TABLE_SCHEMA IN (${parameters.map((p: string) => `'${p}'`).join(", ")})` : ""; const query = `SELECT TABLE_SCHEMA + '.' + TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ${schemaFilter} ORDER BY TABLE_SCHEMA, TABLE_NAME`; const result = await request.query(query); return { success: true, message: `List tables executed successfully`, items: result.recordset, }; } catch (error) { console.error("Error listing tables:", error); return { success: false, message: `Failed to list tables: ${error}`, }; } }
- src/tools/ListTableTool.ts:8-21 (schema)Defines the input schema for the list_table tool, accepting an optional array of schema names to filter the table list.inputSchema = { type: "object", properties: { parameters: { type: "array", description: "Schemas to filter by (optional)", items: { type: "string" }, minItems: 0 }, }, required: [], } as any;
- src/index.ts:109-113 (registration)Registers listTableTool instance in the list of available tools returned by the ListToolsRequestSchema handler, conditionally based on readonly mode.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: isReadOnly ? [listTableTool, readDataTool, describeTableTool] // todo: add searchDataTool to the list of tools available in readonly mode once implemented : [insertDataTool, readDataTool, describeTableTool, updateDataTool, createTableTool, createIndexTool, dropTableTool, listTableTool], // add all new tools here }));
- src/index.ts:135-136 (registration)Registers the handler dispatch for list_table tool calls in the CallToolRequestSchema switch statement.case listTableTool.name: result = await listTableTool.run(args);
- src/index.ts:88-88 (registration)Instantiates the ListTableTool class for use in the MCP server.const listTableTool = new ListTableTool();