mcp_execute_procedure
Execute SQL Server stored procedures with parameters to retrieve database results for data analysis and manipulation tasks.
Instructions
Execute a SQL Server stored procedure with parameters and return results
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sp_name | Yes | Fully qualified stored procedure name (schema.name), e.g. "api.usp_BusquedaByIdUnico_v2" | |
| params | No | Parameters to pass to the stored procedure as key-value pairs |
Implementation Reference
- src/tools/dataOperations.ts:9-35 (handler)Main handler function that validates permissions, executes the SQL stored procedure using the database connection pool, handles parameters, and returns the recordset or error.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 (registration)Tool registration in the MCP_MSQL_TOOLS array, defining the tool name, description, and input schema. This array is used by the MCP server for tool listing.{ 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/tools.ts:85-98 (schema)JSON schema defining the input parameters for the mcp_execute_procedure tool: required sp_name string and optional params object.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)MCP server registration for ListToolsRequestSchema that returns the MCP_MSQL_TOOLS array containing the tool definition.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: MCP_MSQL_TOOLS }));
- src/tools/index.ts:30-33 (helper)Re-export of the mcp_execute_procedure handler from dataOperations.ts, used by mcp-server.ts to provide tool handlers.export { mcp_execute_procedure, // Execute stored procedure mcp_execute_query // Execute SQL query } from './dataOperations.js';