Skip to main content
Glama
norman-finance

Norman Finance MCP Server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NORMAN_EMAILYesYour Norman Finance account email address
NORMAN_PASSWORDYesYour Norman Finance account password
NORMAN_API_TIMEOUTNoRequest timeout in seconds200
NORMAN_ENVIRONMENTNoEnvironment to use, 'production' or 'sandbox' for the development environmentproduction

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
get_company_detailsB

Get detailed information about the user's company.

get_company_balanceC
Get the current balance of the company.

Returns:
    Company balance information
get_company_tax_statisticsC
Get tax statistics for the company.

Returns:
    Company tax statistics data
get_vat_next_reportC
Get the VAT amount for the next report period.

Returns:
    VAT next report amount data
update_company_detailsD

Update company information.

search_transactionsA
Search for transactions matching specified criteria.

Args:
    description: Text to search for in transaction descriptions
    from_date: Start date in YYYY-MM-DD format
    to_date: End date in YYYY-MM-DD format
    min_amount: Minimum transaction amount
    max_amount: Maximum transaction amount
    category: Transaction category
    limit: Maximum number of results to return (default 100)
    no_invoice: Whether to exclude invoices
    no_receipt: Whether to exclude receipts
    status: Status of the transaction (UNVERIFIED, VERIFIED)
    cashflow_type: Cashflow type of the transaction (INCOME, EXPENSE)
Returns:
    List of matching transactions with sensitive data removed
create_transactionB
Create a new manual transaction.

Args:
    amount: Transaction amount (positive for income, negative for expense)
    description: Transaction description
    category: Transaction category
    date: Transaction date in YYYY-MM-DD format (defaults to today)
    vat_rate: VAT rate (0, 7, 19)
    sale_type: Sale type (GOODS, SERVICES)
    supplier_country: Country of the supplier (DE, INSIDE_EU, OUTSIDE_EU)
    cashflow_type: Cashflow type of the transaction (INCOME, EXPENSE)
    category_id: Category ID of the transaction (If not provided, the transaction will be categorized automatically using AI)
Returns:
    Information about the created transaction
update_transactionC

Update an existing transaction.

create_invoiceA
Create a new invoice. Ask for additional information if needed, for example:
- If the client is not found, ask for the client details and create a new client if necessary.
- If pyament reminder should be sent, ask for the reminder settings.
- If the invoice type is GOODS, ask for the delivery date.
- If the invoice type is SERVICES, ask for the service start and end dates.
- If the invoice should be sent to the client, ask for the email data.

Args:
    client_id: ID of the client for the invoice
    items: List of invoice items, each containing name, quantity, rate, vatRate and total. 
           Example: [{"name": "Software Development", "quantity": 3, "rate": 30000, "vatRate": 19, "total": 1071}] // VAT rates might be 0, 7, 19. By default it's 19. Rate and total are in cents.
    invoice_number: Optional invoice number (will be auto-generated if not provided)
    issued: Issue date in YYYY-MM-DD format
    due_to: Due date in YYYY-MM-DD format
    currency: Invoice currency (EUR, USD), by default it's EUR
    payment_terms: Payment terms text
    notes: Additional notes
    language: Invoice language (en, de)
    invoice_type: Type of invoice (SERVICES, GOODS)
    is_vat_included: Whether prices include VAT
    bank_name: Name of the bank (gets from company details if exists)
    iban: IBAN for payments (gets from company details if exists)
    bic: BIC/SWIFT code (gets from company details if exists)
    create_qr: Whether to create payment QR code (only if BIC and IBAN provided)
    color_schema: Invoice style color (hex code)
    font: Invoice font (e.g. "Plus Jakarta Sans", "Inter")
    is_to_send: Whether to send invoice automatically to client
    mailing_data: Email data if is_to_send is True. Example: {
        "emailSubject": "Invoice No.{invoice_number} for {client_name}",
        "emailBody": "Dear {client_name},...",
        "customClientEmail": "client@example.com" // email to send the invoice to, if not provided, it will be sent to the client email address
    }
    settings_on_overdue: Configuration for overdue notifications. Example: {
        "isToAutosendNotification": true, // whether to send notification automatically
        "customEmailSubject": "Reminder: Invoice {invoice_number} is overdue", // custom email subject
        "customEmailBody": "Dear {client_name},...", // custom email body
        "notifyAfterDays": [1, 3], // days to notify after the due date
        "notifyInParticularDays": [] // days to notify in particular dates [2025-05-23", "2025-05-24"]
    }
    service_start_date: Service period start date (YYYY-MM-DD) by default it's today, should be provided if invoice_type is SERVICES
    service_end_date: Service period end date (YYYY-MM-DD) by default it's one month from today, should be provided if invoice_type is SERVICES
    delivery_date: Delivery date for goods (YYYY-MM-DD) by default it's today, should be provided if invoice_type is GOODS

Returns:
    Information about the created invoice and always include the generated invoice pdf url from reportUrl field
create_recurring_invoiceA
Create a recurring invoice that will automatically generate new invoices based on specified frequency.
Useful for contracts or services that bill on a regular basis.
Always ask for reccurring configuration, for example:
    - How often to generate invoices (weekly, monthly)
    - Number of units for frequency (e.g. 1 for monthly = every month, 2 = every 2 months)
    - Start date
    - End date
    - End invoice count (optional)
    
Ask for additional information if needed, for example:
    - If the client is not found, ask for the client details and create a new client if necessary.
    - If the invoice number is not provided, ask for it.
    - If the due date is not provided, ask for it.
    - If the payment terms are not provided, ask for it.
    - If the bank details are not provided, ask for it.

Args:
    client_id: ID of the client for the invoice
    items: List of invoice items, each containing name, quantity, rate, vatRate and total
    frequency_type: How often to generate invoices ("weekly", "monthly")
    frequency_unit: Number of units for frequency (e.g. 1 for monthly = every month, 2 = every 2 months)
    starts_from_date: Date to start generating invoices from (YYYY-MM-DD)
    ends_on_date: Optional end date for recurring invoices (YYYY-MM-DD). Either ends_on_date or ends_on_invoice_count should be provided.
    ends_on_invoice_count: Optional number of invoices to generate before stopping. Either ends_on_date or ends_on_invoice_count should be provided.
    invoice_number: Base invoice number (will be auto-generated if not provided)
    issued: Issue date in YYYY-MM-DD format
    due_to: Due date in YYYY-MM-DD format
    currency: Invoice currency (EUR, USD), by default it's EUR
    payment_terms: Payment terms text
    notes: Additional notes
    language: Invoice language (en, de)
    invoice_type: Type of invoice (SERVICES, GOODS)
    is_vat_included: Whether prices include VAT
    bank_name: Name of the bank
    iban: IBAN for payments
    bic: BIC/SWIFT code
    create_qr: Whether to create payment QR code
    color_schema: Invoice style color (hex code)
    font: Invoice font (e.g. "Plus Jakarta Sans", "Inter")
    is_to_send: Whether to send invoices automatically to client
    settings_on_overdue: Configuration for overdue notifications
    service_start_date: Service period start date (for SERVICES type)
    service_end_date: Service period end date (for SERVICES type)
    delivery_date: Delivery date (for GOODS type)

Returns:
    Information about the created recurring invoice setup and always include the generated invoice pdf url from reportUrl field
get_invoiceC
Get detailed information about a specific invoice.

Args:
    invoice_id: ID of the invoice to retrieve
    
Returns:
    Detailed invoice information
send_invoiceB
Send an invoice via email.

Args:
    invoice_id: ID of the invoice to send
    subject: Email subject line
    body: Email body content
    additional_emails: List of additional email addresses to send to
    is_send_to_company: Whether to send the copy to the company email (Owner)
    custom_client_email: Custom email address for the client (By default the email address of the client is used if it is set)
    
Returns:
    Response from the send invoice request
send_invoice_overdue_reminderB
Send an overdue payment reminder for an invoice via email.

Args:
    invoice_id: ID of the invoice to send reminder for
    subject: Email subject line
    body: Email body content
    additional_emails: List of additional email addresses to send to
    is_send_to_company: Whether to send the copy to the company email (Owner)
    custom_client_email: Custom email address for the client (By default the email address of the client is used if it is set)
    
Returns:
    Response from the send overdue reminder request
link_transactionB
Link a transaction to an invoice.

Args:
    invoice_id: ID of the invoice
    transaction_id: ID of the transaction to link
    
Returns:
    Response from the link transaction request
get_einvoice_xmlB
Get the e-invoice XML for a specific invoice.

Args:
    invoice_id: ID of the invoice to get XML for
    
Returns:
    E-invoice XML data
list_clientsB
Get a list of all clients for the company.

Returns:
    List of clients with their details
get_clientC
Get detailed information about a specific client.

Args:
    client_id: ID of the client to retrieve
    
Returns:
    Detailed client information
create_clientB
Create a new client.

Args:
    name: Client name or business name
    client_type: Type of client (defaults to "business"), Options: "business", "private"
    address: Client physical address
    zip_code: Client postal/zip code
    email: Client email address
    country: Client country code (e.g. "DE")
    vat_number: Client VAT number
    city: Client city
    phone: Client phone number
    
Returns:
    Newly created client record
update_clientB
Update an existing client.

Args:
    client_id: ID of the client to update
    name: Updated client name
    client_type: Updated client type ("business" or "private")
    address: Updated client physical address
    zip_code: Updated client postal/zip code
    email: Updated client email address
    country: Updated client country code (e.g. "DE")
    vat_number: Updated client VAT number
    city: Updated client city
    phone: Updated client phone number
    
Returns:
    Updated client record
upload_bulk_attachmentsB
Upload multiple file attachments in bulk.

Args:
    file_paths: List of paths to files to upload
    cashflow_type: Optional cashflow type for the transactions (INCOME or EXPENSE)
    
Returns:
    Response from the bulk upload request
list_attachmentsB
Get list of attachments with optional filters.

Args:
    file_name: Filter by file name (case insensitive partial match)
    linked: Filter by whether attachment is linked to transactions
    attachment_type: Filter by attachment type (invoice, receipt, contract, other)
    description: Filter by description (case insensitive partial match)
    brand_name: Filter by brand name (case insensitive partial match)
    
Returns:
    List of attachments matching the filters
create_attachmentB
Create a new attachment.

Args:
    file_path: Path to file to upload
    transactions: List of transaction IDs to link
    attachment_type: Type of attachment (invoice, receipt)
    amount: Amount related to attachment
    amount_exchanged: Exchanged amount in different currency
    attachment_number: Unique number for attachment
    brand_name: Brand name associated with attachment
    currency: Currency of amount (default EUR)
    currency_exchanged: Exchanged currency (default EUR)
    description: Description of attachment
    supplier_country: Country of supplier (DE, INSIDE_EU, OUTSIDE_EU)
    value_date: Date of value
    vat_sum_amount: VAT sum amount
    vat_sum_amount_exchanged: Exchanged VAT sum amount
    vat_rate: VAT rate percentage
    sale_type: Type of sale
    additional_metadata: Additional metadata for attachment
    
Returns:
    Created attachment information
link_attachment_transactionC
Link a transaction to an attachment.

Args:
    attachment_id: ID of the attachment
    transaction_id: ID of the transaction to link
    
Returns:
    Response from the link transaction request
categorize_transactionB
Detect category for a transaction using AI.

Args:
    transaction_amount: Amount of the transaction
    transaction_description: Description of the transaction
    transaction_type: Type of transaction ("income" or "expense")
    
Returns:
    Suggested category information for the transaction
list_tax_reportsB

List all available tax reports.

validate_tax_numberC
Validate a tax number for a specific region.

Args:
    tax_number: Tax number to validate
    region_code: Region code (e.g. "BE" for Belgium)
    
Returns:
    Validation result for the tax number
get_tax_reportB
Retrieve a specific tax report.

Args:
    report_id: Public ID of the tax report to retrieve
    
Returns:
    Tax report details
generate_finanzamt_previewC
Generate a test Finanzamt preview for a tax report.

Args:
    report_id: Public ID of the tax report
    
Returns:
    Generate a PDF preview of the tax report. 
    Always suggest to check the preview before sending it to the Finanzamt.
    Always include the path to the generated PDF file as a link to open the file from local file system.
    Get the report data from @get_tax_report and show line items and totals.
      You could add short summary based on the report data.
    Ask follow up question to file the tax report to the Finanzamt @submit_tax_report. Don't send the report to the Finanzamt without the user confirmation.
submit_tax_reportB
Submit a tax report to the Finanzamt.

Args:
    report_id: Public ID of the tax report to submit
    
Returns:
    Response from the submission request and a link to the tax report from reportFile to download.
    If response status is 403, it means a paid subscription is required to file the report.
list_tax_statesB
Get list of available tax states.

Returns:
    List of tax states
list_tax_settingsB
Get list of tax settings for the current company.

Returns:
    List of company tax settings
update_tax_settingA
Update a tax setting. Always generate a preview of the tax report @generate_finanzamt_preview before submitting it to the Finanzamt.

Args:
    setting_id: Public ID of the tax setting to update
    tax_type: Type of tax (e.g. "sales")
    vat_type: VAT type (e.g. "vat_subject")
    vat_percent: VAT percentage
    start_tax_report_date: Start date for tax reporting (YYYY-MM-DD)
    reporting_frequency: Frequency of reporting (e.g. "monthly")
    
Returns:
    Updated tax setting
list_invoicesB
List invoices with optional filtering.

Args:
    status: Filter by invoice status (draft, pending, sent, paid, overdue, uncollectible)
    name: Filter by invoice (client) name
    from_date: Filter invoices created after this date (YYYY-MM-DD)
    to_date: Filter invoices created before this date (YYYY-MM-DD)
    limit: Maximum number of invoices to return (default 100)
    
Returns:
    List of invoices matching the criteria
delete_clientC
Delete a client.

Args:
    client_id: ID of the client to delete
    
Returns:
    Confirmation of deletion

Prompts

Interactive templates invoked by user choice

NameDescription
create_transaction_prompt Create a prompt for adding a new transaction with essential information. Args: amount: The transaction amount (positive value) description: The transaction description cashflow_type: Type of transaction (INCOME or EXPENSE) Returns: A formatted prompt for creating a transaction
create_client_prompt Create a prompt for adding a new client with basic information. Args: name: The client name or business name client_type: Type of client (business or private) Returns: A formatted prompt for creating a client
send_invoice_prompt Create a prompt for sending an invoice via email. Args: invoice_id: ID of the invoice to send Returns: A list of messages forming a conversation about sending an invoice
search_transactions_prompt Create a prompt for searching transactions with optional date range. Args: date_range: Optional description of date range (e.g., "last month", "this week") Returns: A formatted prompt for searching transactions

Resources

Contextual data attached and managed by the client

NameDescription
company://current
categories://list

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/norman-finance/norman-mcp-server'

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