Skip to main content
Glama
norman-finance

Norman Finance MCP Server

Official

send_invoice_overdue_reminder

Send overdue payment reminders for invoices via email. Configure subject, body, recipient list, and company copy details to streamline collections and improve client communication.

Instructions

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
additional_emailsNo
bodyYes
custom_client_emailNo
invoice_idYes
is_send_to_companyNo
subjectYes

Implementation Reference

  • The core handler function that implements the send_invoice_overdue_reminder tool logic. It sends an overdue reminder email for a specific invoice using the Norman API.
    @mcp.tool() async def send_invoice_overdue_reminder( ctx: Context, invoice_id: str, subject: str, body: str, additional_emails: Optional[List[str]] = None, is_send_to_company: bool = False, custom_client_email: Optional[str] = None ) -> Dict[str, Any]: """ 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 """ api = ctx.request_context.lifespan_context["api"] company_id = api.company_id if not company_id: return {"error": "No company available. Please authenticate first."} send_url = urljoin( config.api_base_url, f"api/v1/companies/{company_id}/invoices/{invoice_id}/send-on-overdue/" ) send_data = { "subject": subject, "body": body, "isSendToCompany": is_send_to_company } if additional_emails: send_data["additionalEmails"] = additional_emails if additional_emails else [] if custom_client_email: send_data["customClientEmail"] = custom_client_email return api._make_request("POST", send_url, json_data=send_data)
  • The registration block in the main server setup where register_invoice_tools(server) is called, which in turn registers the send_invoice_overdue_reminder tool along with other invoice tools.
    # Register all tools register_client_tools(server) register_invoice_tools(server) register_tax_tools(server) register_transaction_tools(server) register_document_tools(server) register_company_tools(server) register_prompts(server) register_resources(server)
  • Import of register_invoice_tools from invoices.py in the main server.py file.
    from norman_mcp.tools.invoices import register_invoice_tools

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