Skip to main content

How to set up authentication

Goal: Provide credentials so every tool call succeeds without being prompted repeatedly. The server needs two values for every request: Option A: Environment variables in the config file (recommended) Set both values in claude_desktop_config.json under the env key. The server reads these automatically on every call.
Option B: Pass credentials per tool call Omit the env block entirely. Claude will prompt for credentials when it needs them. This is less convenient but useful if you’re working across multiple organizations. Option C: Environment variables set in your shell Export them in your shell profile (~/.zshrc, ~/.bashrc, etc.):
Then restart Claude Desktop so it inherits the environment.

How to generate and approve an invoice

Goal: Generate an invoice for a specific contract and billing period, then approve it. Step 1: Generate the invoice Ask Claude:
Claude calls generateInvoice with the contract ID and date range. Invoice generation is asynchronous — Claude will call getInvoiceGenerationStatus or listJobs to confirm completion. Step 2: Review the invoice Ask Claude:
Claude calls getInvoiceLineItems so you can confirm the amounts before approving. Step 3: Approve Ask Claude:
Claude calls approveInvoice. The invoice is now in an approved state and can be charged or paid. Step 4: Optionally, auto-charge Ask Claude:
Claude calls createInvoiceCharge.

How to record a payment and issue a credit note

Goal: Record a manual payment against an invoice and, if needed, create a credit note for a partial refund. Record the payment:
Claude calls createPayment with the amount and invoice allocation. Issue a credit note:
Claude calls createInvoiceCreditNote. Credit notes are listed via listCreditNotes or retrieved by ID using getCreditNoteById. Refund a payment:
Claude calls refundPayment. Partial refunds are also supported — specify the amount.

How to create a contract with phases and pricing

Goal: Create a contract with an initial phase and add expansion pricing to it. Step 1: Create the contract Ask Claude:
Claude calls createContract. Step 2: Add a phase Ask Claude:
Claude calls createContractPhase. Step 3: Add pricing to the phase Ask Claude:
Claude calls createContractPhasePricing. Step 4: Verify Ask Claude:
Claude calls getContractById and returns the complete contract structure.

How to run accounting reports

Goal: Pull a balance sheet and income statement for a reporting period. Ask Claude:
Claude calls getBalanceSheet.
Claude calls getIncomeStatement.
Claude calls recogniseRevenue. This is an async operation: Claude will poll listJobs or getJobById to confirm completion.

How to use the server outside Claude Desktop

Goal: Use the Zenskar MCP Server with a different AI application or your own tooling. Install globally:
Then run:
Run without installing:
Use a local development build:
Point your AI application to the local entry point: