mcp_execute_procedure
Execute SQL Server stored procedures with specified parameters and retrieve results efficiently using MCPQL server capabilities.
Instructions
Execute a SQL Server stored procedure with parameters and return results
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | Parameters to pass to the stored procedure as key-value pairs | |
| sp_name | Yes | Fully qualified stored procedure name (schema.name), e.g. "api.usp_BusquedaByIdUnico_v2" |
Implementation Reference
- src/tools/dataOperations.ts:9-35 (handler)Core implementation of the mcp_execute_procedure tool. Validates permissions, executes the stored procedure using the database pool with optional parameters, and returns results or error messages.export const mcp_execute_procedure = async (args: { sp_name: string; params?: object }): Promise<ToolResult<any[]>> => { const { sp_name, params } = args; console.log('Executing mcp_execute_procedure with:', args); // Security validation for stored procedure execution const permission = validateStoredProcedurePermission(sp_name); if (!permission.allowed) { return { success: false, error: permission.message || 'Stored procedure execution not allowed' }; } try { const pool = getPool(); const request = pool.request(); if (params) { for (const [key, value] of Object.entries(params)) { request.input(key, value); } } const result = await request.execute(sp_name); return { success: true, data: result.recordset }; } catch (error: any) { console.error(`Error in mcp_execute_procedure for SP ${sp_name}: ${error.message}`); return { success: false, error: error.message }; } };
- src/tools.ts:82-99 (schema)Tool definition including name, description, and input schema for mcp_execute_procedure in the MCP_MSQL_TOOLS array.{ name: "mcp_execute_procedure", description: "Execute a SQL Server stored procedure with parameters and return results", inputSchema: { type: "object", properties: { sp_name: { type: "string", description: "Fully qualified stored procedure name (schema.name), e.g. \"api.usp_BusquedaByIdUnico_v2\"" }, params: { type: "object", description: "Parameters to pass to the stored procedure as key-value pairs" } }, required: ["sp_name"] } },
- src/server.ts:64-66 (registration)Registers the ListTools request handler which returns the MCP_MSQL_TOOLS array, making the mcp_execute_procedure tool discoverable.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: MCP_MSQL_TOOLS }));
- src/tools/index.ts:30-33 (registration)Re-exports the handler function from dataOperations.ts, allowing it to be imported as part of the tool namespace in the server.export { mcp_execute_procedure, // Execute stored procedure mcp_execute_query // Execute SQL query } from './dataOperations.js';