MCP server
Floatless ships a Model Context Protocol (MCP) server so AI assistants can read your billing data. It uses the same API key as the Public API and exposes read-only tools — assistants can answer questions about customers, invoices, payments, revenue, and taxes, but cannot change anything.
Endpoint
POST https://api.floatless.com/api/mcp
Authentication is identical to the Public API:
Authorization: Bearer sk_live_...
Protocol
The endpoint speaks JSON-RPC 2.0 over HTTP (MCP Streamable HTTP transport, JSON responses). Supported methods:
| Method | Purpose |
|---|---|
initialize |
Handshake; returns server info and capabilities |
notifications/initialized |
Handshake completion (notification, no response) |
tools/list |
List available tools |
tools/call |
Execute a tool |
ping |
Liveness check |
Tools
| Tool | Description |
|---|---|
list_customers |
Recent customers with locale and tax-exempt flags |
get_customer |
One customer with open-invoice and subscription counts |
list_invoices |
Invoices, filterable by status (POSTED, PARTIALLY_PAID, PAID) |
revenue_summary |
Totals billed, paid, outstanding, overdue count, active subscriptions |
list_products |
Product catalog with prices |
recent_payments |
Recent payments across invoices |
tax_lookup |
Destination sales-tax lines (GST/HST/QST or US state baseline) for a location |
All tools are tenant-scoped: an API key can only ever see its own organization's data. Mutations are deliberately not exposed over MCP — use the versioned REST API for writes.
Example: listing invoices from a client
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_invoices",
"arguments": { "status": "PARTIALLY_PAID", "limit": 10 }
}
}
The response wraps tool output as MCP content:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{ "type": "text", "text": "{'count': 2, 'invoices': [...]}" }],
"isError": false
}
}
Claude Desktop / Cursor configuration
Add Floatless as an MCP server and point it at your deployment with an API key created in the console (Settings → Developers):
{
"mcpServers": {
"floatless": {
"url": "https://api.floatless.com/api/mcp",
"headers": {
"Authorization": "Bearer sk_live_YOUR_KEY"
}
}
}
}
llms.txt
A markdown overview of the API for LLM agents and crawlers is published at:
GET https://api.floatless.com/api/llms.txt
Rate limits and errors
The MCP server inherits API-key authentication and returns standard JSON-RPC error codes: -32700 parse error, -32600 invalid request, -32601 unknown method, -32602 unknown tool. Tool execution failures are returned as tool results with isError: true rather than protocol errors.