Skip to main content
Glama
paracetamol951

caisse-enregistreuse-mcp-server

data_list_discounts

Retrieve available discounts from a sales recorder system in JSON, CSV, or HTML format for integration and reporting purposes.

Instructions

Liste des Lister les réductions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formatNojson

Implementation Reference

  • The handler function registered for the 'data_list_discounts' tool (shared via registerSimple). It resolves authentication, performs an HTTP GET to '/workers/getDiscounts.php' with shop credentials and format, structures the data response, and handles errors.
        async ({ format }: CommonArgs, ctx: Ctx) => {
            try {
                const { shopId, apiKey } = resolveAuth(undefined, ctx);
                const data = await get(path, { idboutique: shopId, key: apiKey, format });
    
                process.stderr.write(
                    `[caisse][tool:${toolName}] ok type=${Array.isArray(data) ? 'array' : typeof data}`
                    + (Array.isArray(data) ? ` len=${data.length}` : '')
                    + '\n'
                );
                //Array.isArray(data) ? data.slice(0, 50) : data
                const funcResult = structData( data);
                process.stderr.write(`[caisse][RES]  ${JSON.stringify(data)} \n`);
                process.stderr.write(`[caisse][RES] funcResult ${JSON.stringify(funcResult)} \n`);
                return funcResult;
                //return { content, structuredContent: isText ? undefined : data };
            } catch (e) {
                process.stderr.write(`[caisse][tool:${toolName}][error]\n`);
                process.stderr.write(`[caisse][tool:${toolName}][error] ${(e as Error).message}\n`);
                // renvoyer un message "propre" plutôt que laisser l’exception devenir un 424
                return {
                    content: [{ type: 'text', text: `Erreur pendant la préparation de la réponse: ${(e as Error).message}` }],
                    is_error: true,
                };
            }
        }
    );
  • Common input schema used for 'data_list_discounts' tool, defining the optional 'format' parameter.
        format: z.enum(['json', 'csv', 'html']).default('json'),
    } satisfies Record<string, ZodTypeAny>;
  • Registration of the 'data_list_discounts' tool using the generic registerSimple helper, specifying the PHP endpoint and i18n labels.
    registerSimple(server, 'data_list_discounts', '/workers/getDiscounts.php', t('tools.data_list_discounts.description'), t('tools.data_list_discounts.title'));
  • The registerSimple helper function that defines the generic handler, schema, and registration logic used for 'data_list_discounts' and other list tools.
    function registerSimple(
        server: McpServer | any,
        toolName: string,
        path: string,
        title: string,
        entityLabel: string
    ) {
        server.registerTool(
            toolName,
            {
                title,
                description: `Liste des ${entityLabel}`,
                inputSchema: CommonShape, // ZodRawShape,
                annotations: { readOnlyHint: true }
            },
            async ({ format }: CommonArgs, ctx: Ctx) => {
                try {
                    const { shopId, apiKey } = resolveAuth(undefined, ctx);
                    const data = await get(path, { idboutique: shopId, key: apiKey, format });
    
                    process.stderr.write(
                        `[caisse][tool:${toolName}] ok type=${Array.isArray(data) ? 'array' : typeof data}`
                        + (Array.isArray(data) ? ` len=${data.length}` : '')
                        + '\n'
                    );
                    //Array.isArray(data) ? data.slice(0, 50) : data
                    const funcResult = structData( data);
                    process.stderr.write(`[caisse][RES]  ${JSON.stringify(data)} \n`);
                    process.stderr.write(`[caisse][RES] funcResult ${JSON.stringify(funcResult)} \n`);
                    return funcResult;
                    //return { content, structuredContent: isText ? undefined : data };
                } catch (e) {
                    process.stderr.write(`[caisse][tool:${toolName}][error]\n`);
                    process.stderr.write(`[caisse][tool:${toolName}][error] ${(e as Error).message}\n`);
                    // renvoyer un message "propre" plutôt que laisser l’exception devenir un 424
                    return {
                        content: [{ type: 'text', text: `Erreur pendant la préparation de la réponse: ${(e as Error).message}` }],
                        is_error: 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/paracetamol951/caisse-enregistreuse-mcp-server'

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