get_type_info
Retrieve type information for Square API methods to ensure proper data formatting before making API requests. This tool helps developers prepare correct parameters for services like catalog, payments, and inventory management.
Instructions
Get type information for a Square API method. You must call this before calling the make_api_request tool.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | The Square API service category (e.g., 'catalog', 'payments') | |
| method | Yes | The API method to call (e.g., 'list', 'create') |
Implementation Reference
- server.ts:240-288 (registration)Full registration of the 'get_type_info' MCP tool, including description, Zod input schema, and inline async handler that resolves service/method to requestTypeName from serviceMethodsMap and returns type info from typeMap as JSON.server.tool( "get_type_info", "Get type information for a Square API method. You must call this before calling the make_api_request tool.", { service: z.string().describe("The Square API service category (e.g., 'catalog', 'payments')"), method: z.string().describe("The API method to call (e.g., 'list', 'create')") }, async (params) => { try { const { service, method } = 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)}`); } if (!methods[method]) { throw new Error(`Invalid method ${method} for service ${service}. Available methods: ${JSON.stringify(Object.keys(methods), null, 2)}`); } const methodInfo = methods[method]; const requestTypeName = methodInfo.requestType; const typeInfo = typeMap[requestTypeName]; if (!typeInfo) { throw new Error(`Type information not found for ${requestTypeName}`); } return { content: [{ type: "text", text: JSON.stringify(typeInfo, null, 2) }] }; } catch (err: any) { return { content: [{ type: "text", text: JSON.stringify({ error: err.message, details: err.errors || err.stack }, null, 2) }], isError: true }; } } );
- server.ts:247-287 (handler)The core handler logic for get_type_info: validates service and method against serviceMethodsMap, retrieves requestType, fetches typeInfo from typeMap, and returns as JSON text content or error.async (params) => { try { const { service, method } = 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)}`); } if (!methods[method]) { throw new Error(`Invalid method ${method} for service ${service}. Available methods: ${JSON.stringify(Object.keys(methods), null, 2)}`); } const methodInfo = methods[method]; const requestTypeName = methodInfo.requestType; const typeInfo = typeMap[requestTypeName]; if (!typeInfo) { throw new Error(`Type information not found for ${requestTypeName}`); } return { content: [{ type: "text", text: JSON.stringify(typeInfo, null, 2) }] }; } catch (err: any) { return { content: [{ type: "text", text: JSON.stringify({ error: err.message, details: err.errors || err.stack }, null, 2) }], isError: true }; } }
- server.ts:243-246 (schema)Zod input schema defining required string parameters 'service' and 'method' for the get_type_info tool.{ service: z.string().describe("The Square API service category (e.g., 'catalog', 'payments')"), method: z.string().describe("The API method to call (e.g., 'list', 'create')") },