create_customer
Create a new customer. Only displayName is required. Supports billing/shipping addresses, payment terms, and tax info.
What create_customer does
Creates a new customer in the organization. Required fields are validated server-side; optional fields default sensibly.
This tool is part of InvoiceCave's open MCP server — the most MCP-complete invoicing platform on the market with 102 tools covering invoices, customers, quotes, expenses, payments, recurring schedules, accounting, and reports. Every tool is callable from any MCP-compatible AI client without writing a single line of integration code.
How an AI uses create_customer
Use when the AI needs to record something new — typically as the final step of a "set this up for me" workflow. The call is idempotency-key aware: if the AI accidentally retries, it won't create a duplicate. The created record's ID is returned for follow-up actions like sending or invoicing.
You don't call this tool directly — you ask the AI in plain English and the MCP client decides which tool to invoke based on your request. The example prompts below were lifted from real Claude Desktop sessions, so you can use them verbatim or adapt them to your data.
Parameters
create_customer accepts 20 parameters — 1 required, 19 optional. The AI fills these in from your natural-language prompt; you never write them by hand.
| Parameter | Type | Required | Description |
|---|---|---|---|
| displayName | string | required | Customer display name (required) |
| string | optional | Customer email address (encrypted at rest) | |
| phone | string | optional | Customer phone number (encrypted at rest) |
| company | string | optional | Company name |
| currency | string | optional | Preferred currency code (e.g. USD, PKR) |
| customerType | enum | optional | Customer type (default: Business)BusinessIndividual |
| billingAddressStreet | string | optional | Billing address street |
| billingAddressCity | string | optional | Billing address city |
| billingAddressState | string | optional | Billing address state/province |
| billingAddressZip | string | optional | Billing address ZIP/postal code |
| billingAddressCountry | string | optional | Billing address country |
| shippingAddressStreet | string | optional | Shipping address street |
| shippingAddressCity | string | optional | Shipping address city |
| shippingAddressState | string | optional | Shipping address state/province |
| shippingAddressZip | string | optional | Shipping address ZIP/postal code |
| shippingAddressCountry | string | optional | Shipping address country |
| paymentTerms | string | optional | Default payment terms (e.g. "Due on Receipt", "Net 30") |
| taxId | string | optional | Customer VAT/GST/tax ID number |
| taxExempt | boolean | optional | Whether customer is tax-exempt |
| notes | string | optional | Internal notes about this customer |
Request example
Under the hood, your AI client sends a JSON-RPC 2.0 tools/call request to InvoiceCave's MCP endpoint at https://www.invoicecave.com/api/mcp/mcp. Here's what a create_customer call looks like:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_customer",
"arguments": {
"displayName": "Acme Corp",
"email": "client@example.com",
"phone": "+1-555-0100",
"company": "Acme Corp",
"currency": "USD"
}
}
}You won't write this yourself — it's shown so developers can see exactly what the MCP client generates. The arguments object maps 1:1 to the parameters above. Authentication is handled by the Authorization: Bearer header with your API key.
Example AI prompts
Type any of these into Claude Desktop, Claude Code, or Cursor — InvoiceCave's MCP server will route them to create_customer automatically.
“Add a new customer: Acme Corp, billing address 100 Main St NY 10001, Net 30 default.”
Use it in 30 seconds
Related tools
More from the Customers category.
list_customersList customers in the organization. Optionally search by name or company.
edit_customerUpdate an existing customer's details. All fields optional — only provided fields are changed.
delete_customerDelete a customer. Warning: this also removes related data.
get_customerGet full details for a single customer by ID, including addresses, payment terms, tax info, and notes.
generate_customer_portal_linkGenerate (or return existing) public portal link for a customer. Uses Customer.portalToken; creates one if missing.
FAQ — create_customer
What is create_customer?▾
create_customer is one of 102 tools in InvoiceCave's MCP server. Creates a new customer in the organization. Required fields are validated server-side; optional fields default sensibly. It's invoked automatically when an AI client like Claude or Cursor decides the user's request maps to this action.
Which AI clients can call create_customer?▾
Any MCP-compatible client. We've tested it with Claude Desktop, Claude Code, Cursor, Windsurf, and Codex. The MCP protocol is open, so any AI tool that speaks MCP can call this endpoint with a valid InvoiceCave API key.
Is calling create_customer secure?▾
Yes. Every call is authenticated by the API key you mint in the dashboard, scoped to a single organization, rate-limited per key, and recorded in the audit log with source='mcp'. Sensitive fields (SMTP passwords, encryption keys) are never returned to the AI client.
What parameters does create_customer take?▾
create_customer accepts 20 parameters — 1 required (displayName) and 19 optional. The AI populates these from your plain-English prompt — see the parameter table and request example above.
Does create_customer count against any quota?▾
MCP tool calls are unmetered on the free plan up to a generous monthly limit. Once you connect Stripe and start charging your customers, every call still counts against the same per-key rate limit but doesn't add to your bill.
Ready to wire this up?
Free plan — no credit card. 102 tools at your AI's disposal.