create_currency
Creates a new company currency by specifying a global currency ID, conversion rate, and whether the rate is fixed.
Instructions
Create a company currency. POST /currencies. Required: currencyId (global currency ID), conversionRate (number), fixedRate (boolean).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| currencyId | Yes | Global currency ID (required) | |
| conversionRate | Yes | Conversion rate (required) | |
| fixedRate | Yes | Fixed rate flag (required) |
Implementation Reference
- Handler function for the create_currency tool. Validates input via Zod schema, then calls currencyService.createCurrency to POST /currencies.
async function handler(client: Client, args: Record<string, unknown> | undefined) { const parsed = schema.safeParse(args); if (!parsed.success) { return errorResult(parsed.error.errors.map((e) => e.message).join("; ")); } return handleToolCall(() => currencyService.createCurrency(client, parsed.data)); } - Zod input validation schema for create_currency: currencyId (positive int), conversionRate (finite number), fixedRate (boolean).
const schema = z.object({ currencyId: z.number().int().positive("currencyId is required (global currency ID)"), conversionRate: z.number().finite("conversionRate is required"), fixedRate: z.boolean({ required_error: "fixedRate is required (boolean)" }), }); - Tool definition/inputSchema for MCP registration: name 'create_currency', description, and JSON Schema properties.
const definition = { name: "create_currency", description: "Create a company currency. POST /currencies. Required: currencyId (global currency ID), conversionRate (number), fixedRate (boolean).", inputSchema: { type: "object" as const, properties: { currencyId: { type: "number", description: "Global currency ID (required)" }, conversionRate: { type: "number", description: "Conversion rate (required)" }, fixedRate: { type: "boolean", description: "Fixed rate flag (required)" }, }, required: ["currencyId", "conversionRate", "fixedRate"], }, }; - src/tools/currencies/index.ts:15-25 (registration)Registration of createCurrencyTool in the registerCurrencyTools() array alongside all other currency tools.
export function registerCurrencyTools(): Tool[] { return [ listCurrenciesTool, getCurrencyTool, createCurrencyTool, updateCurrencyTool, deleteCurrencyTool, getDefaultCurrencyTool, setDefaultCurrencyTool, ]; } - Service-layer helper that performs the actual POST /currencies API call via the client.
/** POST /currencies */ export async function createCurrency( client: Client, body: CreateCurrencyBody ): Promise<unknown> { return client.post<unknown>("/currencies", body); }