get_resource
Retrieve specific Lithic banking resources like cards, accounts, or transactions by providing the resource type and ID.
Instructions
Get a specific Lithic resource by ID
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| resourceType | Yes | Type of resource (card, account, transaction, etc.) | |
| resourceId | Yes | ID/token of the resource to fetch |
Implementation Reference
- src/index.ts:155-190 (handler)The handler logic for the 'get_resource' tool. It validates the input arguments using Zod, maps the resource type to the appropriate Lithic API endpoint, fetches the specific resource by ID using axios, and returns the JSON response or an error message.if (request.params.name === "get_resource") { try { // Parse and validate arguments const args = z.object({ resourceType: resourceTypeSchema, resourceId: resourceIdSchema }).parse(request.params.arguments); // Map to standardized resource type const standardizedResourceType = RESOURCE_MAP[args.resourceType.toLowerCase()] || args.resourceType; // Map resource type to endpoint const endpoint = mapResourceTypeToEndpoint(standardizedResourceType); const response = await lithicApi.get(`${endpoint}/${args.resourceId}`); return { content: [ { type: "text", text: JSON.stringify(response.data, null, 2) } ] }; } catch (error: any) { console.error(`Error fetching resource:`, error.message); return { isError: true, content: [ { type: "text", text: `Error fetching resource: ${error.message}` } ] }; }
- src/index.ts:85-98 (schema)JSON Schema definition for the 'get_resource' tool input parameters, specifying resourceType and resourceId as required strings.inputSchema: { type: "object", properties: { resourceType: { type: "string", description: "Type of resource (card, account, transaction, etc.)" }, resourceId: { type: "string", description: "ID/token of the resource to fetch" } }, required: ["resourceType", "resourceId"] }
- src/index.ts:82-99 (registration)Registration of the 'get_resource' tool in the ListToolsRequestSchema handler, including name, description, and input schema.{ name: "get_resource", description: "Get a specific Lithic resource by ID", inputSchema: { type: "object", properties: { resourceType: { type: "string", description: "Type of resource (card, account, transaction, etc.)" }, resourceId: { type: "string", description: "ID/token of the resource to fetch" } }, required: ["resourceType", "resourceId"] } },
- src/index.ts:119-148 (helper)Helper function that maps a resource type string to the corresponding Lithic API endpoint path, used in the get_resource handler.function mapResourceTypeToEndpoint(resourceType: string): string { switch (resourceType) { case 'card': return '/cards'; case 'account': return '/accounts'; case 'financial_account': return '/financial_accounts'; case 'transaction': return '/transactions'; case 'external_bank_account': return '/external_bank_accounts'; case 'event': return '/events'; case 'balance': return '/balances'; case 'card_program': return '/card_programs'; case 'dispute': return '/disputes'; case 'report': return '/reports'; case 'webhook': return '/webhooks'; case 'account_holder': return '/account_holders'; default: return `/${resourceType}s`; // Default to pluralizing the resource type } }
- src/index.ts:29-47 (helper)Mapping object for standardizing various resource type aliases to canonical Lithic API resource types, used in get_resource and list_resources handlers.const RESOURCE_MAP: Record<string, string> = { 'card': 'card', 'account': 'account', 'financial_account': 'financial_account', 'financial-account': 'financial_account', 'credit': 'financial_account', 'credit-account': 'financial_account', 'transaction': 'transaction', 'event': 'event', 'balance': 'balance', 'dispute': 'dispute', 'bank': 'external_bank_account', 'bank-account': 'external_bank_account', 'external_bank_account': 'external_bank_account', 'report': 'report', 'webhook': 'webhook', 'card_program': 'card_program', 'account_holder': 'account_holder' };