Skip to main content
Glama
unctad-ai

eRegulations MCP Server

by unctad-ai

getProcedureDetails

Retrieve detailed information on specific administrative procedures using the procedure ID, enabling structured access to eRegulations data for AI-driven insights.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
procedureIdYesID of the procedure to retrieve

Implementation Reference

  • The main handler implementation for the getProcedureDetails tool. It creates a ToolHandler object with the tool's metadata and the async execution logic that retrieves procedure details via the ERegulationsApi and formats the response.
    export function createGetProcedureDetailsHandler( api: ERegulationsApi ): ToolHandler { return { name: ToolName.GET_PROCEDURE_DETAILS, description: `Get detailed information about a specific procedure by ID.`, inputSchema: zodToJsonSchema(GetProcedureDetailsSchema), inputSchemaDefinition: GetProcedureDetailsSchema, handler: async (args: any) => { try { // Use the inferred type for args const { procedureId } = args as GetProcedureDetailsArgs; logger.log( `Handling GET_PROCEDURE_DETAILS request for ID ${procedureId}` ); const procedure = await api.getProcedureById(procedureId); // Use the formatter - Get result (data part will be ignored) const formattedResult = formatters.procedure.format(procedure); logger.log( `GET_PROCEDURE_DETAILS returning details for ${procedure.name}` ); // Always return only text content return { content: [ { type: "text", text: formattedResult.text, // Data part of formattedResult is ignored }, ], }; } catch (error: any) { const errorMessage = error.message || String(error); logger.error( `Error in GET_PROCEDURE_DETAILS handler for ID ${args?.procedureId}:`, errorMessage ); return { content: [ { type: "text", text: `Error retrieving procedure details: ${errorMessage}\n\nValid procedure IDs can be found by using the listProcedures tool first.`, }, ], }; } }, }; }
  • Zod schema definition for the input parameters of the getProcedureDetails tool, requiring a positive integer procedureId.
    export const GetProcedureDetailsSchema = z.object({ procedureId: z .number() .int() .positive() .describe("ID of the procedure to retrieve"), });
  • Registration of all tools, including getProcedureDetails, with the MCP server using server.tool() in a loop over the handlers array.
    handlers.forEach((handler) => { const schemaDef = handler.inputSchemaDefinition; // Check if it's an instance of ZodObject if (schemaDef instanceof z.ZodObject) { // Now TypeScript knows schemaDef is a ZodObject and has .shape // Cast handler to 'any' to bypass strict type checking server.tool(handler.name, schemaDef.shape, handler.handler as any); logger.info(`Registered tool '${handler.name}' with McpServer`); } else { // Handle non-object schemas or log warning logger.warn( `Could not register tool '${handler.name}': Schema is not a ZodObject.` ); } });
  • The createHandlers function that includes the getProcedureDetails handler in the array of all tool handlers, called from mcp-server.ts.
    export function createHandlers(api: ERegulationsApi): ToolHandler[] { return [ createListProceduresHandler(api), createGetProcedureDetailsHandler(api), createGetProcedureStepHandler(api), createSearchProceduresHandler(api), ]; }
  • Enum defining the tool names, including GET_PROCEDURE_DETAILS used as the tool name string.
    export enum ToolName { LIST_PROCEDURES = "listProcedures", GET_PROCEDURE_DETAILS = "getProcedureDetails", GET_PROCEDURE_STEP = "getProcedureStep", SEARCH_PROCEDURES = "searchProcedures", }

Other Tools

Related Tools

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/unctad-ai/eregulations-mcp-server'

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