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",
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

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