Skip to main content
Glama
hlebtkachenko

POHODA MCP Server

pohoda_create_vydejka

Create dispatch documents (výdejka) in POHODA accounting software by specifying date, partner details, and line items for inventory management.

Instructions

Create a dispatch document (výdejka) in POHODA

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDocument date (DD.MM.YYYY or YYYY-MM-DD)
textNoDocument text
noteNoNote
partnerNameNo
partnerStreetNo
partnerCityNo
partnerZipNo
partnerIcoNo
itemsNoLine items

Implementation Reference

  • The `buildWarehouseCreateTool` function is a generic factory that builds and registers MCP tools for creating various document types, including 'pohoda_create_vydejka'. It encapsulates the logic for constructing the XML import request, sending it to the POHODA client, and processing the response.
    function buildWarehouseCreateTool(
      server: McpServer,
      client: PohodaClient,
      toolName: string,
      description: string,
      ns: string,
      prefix: string,
      docTag: string,
      headerTag: string,
      detailTag: string,
      itemTag: string,
    ) {
      server.tool(
        toolName,
        description,
        {
          date: z.string().describe("Document date (DD.MM.YYYY or YYYY-MM-DD)"),
          text: z.string().optional().describe("Document text"),
          note: z.string().optional().describe("Note"),
          ...partnerFields,
          items: z.array(itemSchema).optional().describe("Line items"),
        },
        async (params) => {
          try {
            const xml = buildImportDoc({ ico: client.ico }, (item) => {
              const doc = item.ele(ns, `${prefix}:${docTag}`).att("version", "2.0");
              const hdr = doc.ele(ns, `${prefix}:${headerTag}`);
              hdr.ele(ns, `${prefix}:date`).txt(toIsoDate(params.date));
              if (params.text) hdr.ele(ns, `${prefix}:text`).txt(params.text);
              addPartner(hdr, prefix, ns, params);
              if (params.note) hdr.ele(ns, `${prefix}:note`).txt(params.note);
    
              if (params.items?.length) {
                const det = doc.ele(ns, `${prefix}:${detailTag}`);
                for (const i of params.items) {
                  const li = det.ele(ns, `${prefix}:${itemTag}`);
                  li.ele(ns, `${prefix}:text`).txt(i.text);
                  li.ele(ns, `${prefix}:quantity`).txt(String(i.quantity));
                  if (i.unit) li.ele(ns, `${prefix}:unit`).txt(i.unit);
                  if (i.rateVAT) li.ele(ns, `${prefix}:rateVAT`).txt(i.rateVAT);
                  li.ele(ns, `${prefix}:homeCurrency`).ele(NS.typ, "typ:unitPrice").txt(String(i.unitPrice));
                  if (i.stockCode) {
                    li.ele(ns, `${prefix}:stockItem`).ele(NS.typ, "typ:stockItem").ele(NS.typ, "typ:ids").txt(i.stockCode);
                  }
                }
              }
            });
            const resp = parseResponse(await client.sendXml(xml));
            const result = extractImportResult(resp);
            return result.success
              ? ok(`Document created. ${result.message}${result.producedId ? ` ID: ${result.producedId}` : ""}`)
              : err(`Failed: ${result.message}`);
          } catch (e) {
            return err((e as Error).message);
          }
        },
      );
    }
  • The 'pohoda_create_vydejka' tool is explicitly registered by calling `buildWarehouseCreateTool` within the `registerWarehouseTools` function.
    buildWarehouseCreateTool(server, client, "pohoda_create_vydejka", "Create a dispatch document (výdejka) in POHODA", NS.vyd, "vyd", "vydejka", "vydejkaHeader", "vydejkaDetail", "vydejkaItem");

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/hlebtkachenko/pohoda-mcp'

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