Skip to main content
Glama
square

Square Model Context Protocol Server

Official
by square

get_service_info

Retrieve details about Square API services to understand available endpoints and data structures before making API calls.

Instructions

Get information about a Square API service. Call me before trying to get type info

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serviceYesThe Square API service category (e.g., 'catalog', 'payments')

Implementation Reference

  • Handler function for the 'get_service_info' tool. It retrieves method information for a given Square API service and returns descriptions of available methods.
    async (params) => {
      try {
        const { service } = params;
        const serviceName = service.charAt(0).toUpperCase() + service.slice(1);
        
        const methods = serviceMethodsMap[serviceName];
        if (!methods) {
          throw new Error(`Invalid service: ${service}. Available services: ${JSON.stringify(Object.keys(serviceMethodsMap), null, 2)}`);
        }
    
        // Create a map of method names to their descriptions
        const methodInfo = Object.entries(methods).reduce((acc, [methodName, info]) => {
          acc[methodName] = {
            description: info.description
          };
          return acc;
        }, {} as Record<string, { description: string }>);
    
        return {
          content: [{
            type: "text",
            text: JSON.stringify(methodInfo, null, 2)
          }]
        };
      } catch (err: any) {
        return {
          content: [{
            type: "text",
            text: JSON.stringify({
              error: err.message,
              details: err.errors || err.stack
            }, null, 2)
          }],
          isError: true
        };
      }
    }
  • Input schema for the 'get_service_info' tool, defining the 'service' parameter using Zod.
    {
      service: z.string().describe("The Square API service category (e.g., 'catalog', 'payments')")
    },
  • server.ts:291-334 (registration)
    Registration of the 'get_service_info' MCP tool using server.tool, including description, schema, and inline handler.
    server.tool(
      "get_service_info",
      "Get information about a Square API service. Call me before trying to get type info",
      {
        service: z.string().describe("The Square API service category (e.g., 'catalog', 'payments')")
      },
      async (params) => {
        try {
          const { service } = params;
          const serviceName = service.charAt(0).toUpperCase() + service.slice(1);
          
          const methods = serviceMethodsMap[serviceName];
          if (!methods) {
            throw new Error(`Invalid service: ${service}. Available services: ${JSON.stringify(Object.keys(serviceMethodsMap), null, 2)}`);
          }
    
          // Create a map of method names to their descriptions
          const methodInfo = Object.entries(methods).reduce((acc, [methodName, info]) => {
            acc[methodName] = {
              description: info.description
            };
            return acc;
          }, {} as Record<string, { description: string }>);
    
          return {
            content: [{
              type: "text",
              text: JSON.stringify(methodInfo, null, 2)
            }]
          };
        } catch (err: any) {
          return {
            content: [{
              type: "text",
              text: JSON.stringify({
                error: err.message,
                details: err.errors || err.stack
              }, null, 2)
            }],
            isError: true
          };
        }
      }
    );

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/square/square-mcp-server'

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