Skip to main content
Glama
vini-cius

SQL Server MCP Service

by vini-cius

execute_query

Execute SQL queries on SQL Server databases with parameter support while maintaining security against SQL injection and blocking destructive operations.

Instructions

Executes a SQL query in SQL Server

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
parametersNoQuery parameters (optional)
queryYesSQL query to execute

Implementation Reference

  • Core handler function that executes the SQL query using the database pool, sanitizes parameters, validates the query, runs the query, and returns the resultset as JSON or an error message.
    export async function executeQuery( db: DatabaseConnection, query: string, parameters?: Record<string, unknown> ): Promise<CallToolResult> { try { const pool = db.getPool() const request = pool.request() if (parameters) { const sanitizedParams = sanitizeParameters(parameters) for (const [key, value] of Object.entries(sanitizedParams)) { request.input(key, value) } } if (!validateQuery(query)) { throw new Error('Potentially destructive command blocked.') } const result = await request.query(query) return { content: [ { type: 'text', text: JSON.stringify(result.recordset, null, 2), }, ], } } catch (error) { return { content: [ { type: 'text', text: `Erro: ${error instanceof Error ? error.message : 'Erro desconhecido'}`, }, ], isError: true, } } }
  • Zod input schema for the execute_query tool, defining 'query' as required string and optional 'parameters' record.
    export const executeQueryInput = z.object({ query: z.string().describe('SQL query to execute'), parameters: z .record(z.string(), z.union([z.string(), z.number(), z.boolean()])) .optional() .describe('Query parameters (optional)'), })
  • Registers the 'execute_query' handler in the MCP service's toolHandlers Map, parsing args with ExecuteQueryInput type and delegating to the core executeQuery function.
    handlers.set('execute_query', async (database, args) => { const { query, parameters } = args as ExecuteQueryInput return await executeQuery(database, query, parameters ?? {}) })
  • Tool specification registration in toolsList(), providing name, description, and JSON schema for the execute_query tool.
    name: 'execute_query', description: 'Executes a SQL query in SQL Server', inputSchema: zodToJsonSchema(executeQueryInput), },

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/vini-cius/mcp-sqlserver'

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