Skip to main content
Glama

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
NameRequiredDescriptionDefault
sp_nameYesFully qualified stored procedure name (schema.name), e.g. "api.usp_BusquedaByIdUnico_v2"
paramsNoParameters to pass to the stored procedure as key-value pairs

Implementation Reference

  • 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"] } },
  • 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 }));
  • 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';

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/hendrickcastro/MCPQL'

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