Codex CLI
Add the remote server, then start Paflio’s OAuth sign-in flow.
codex mcp add paflio --url https://mcp.paflio.com/mcp
codex mcp login paflioMCP setup reference
Copy the server URL, sign in, then choose one Workspace and a permission preset. Paflio exposes complete record details plus scoped tools for edits, workflows, exports, and direct document intake.
View setupQuick setup
These examples use Paflio’s canonical remote endpoint. Keep the complete /mcp path.
Add the remote server, then start Paflio’s OAuth sign-in flow.
codex mcp add paflio --url https://mcp.paflio.com/mcp
codex mcp login paflioUse this in ~/.codex/config.toml or a trusted project’s .codex/config.toml.
[mcp_servers.paflio]
url = "https://mcp.paflio.com/mcp"
auth = "oauth"
default_tools_approval_mode = "prompt"Connection contract
The connection uses the current MCP protocol, a stateless HTTP transport, and OAuth discovery. Paflio credentials stay in the browser sign-in flow.
https://mcp.paflio.com/mcpMCP 2026-07-28Stateless Streamable HTTP · POSTOAuth authorization code + PKCE S256View only · Edit records · All capabilitiesread · export · upload · edit · review · approve · send · destructiveOne authenticated user · one client · one WorkspaceTool reference
All tool results are limited to the Workspace approved during OAuth. No tool accepts a user ID, Organization ID, or Workspace ID from the model.
get_paflio_contextReturns the Workspace bound to the connection, your role, subscription source, granted scopes, and current capabilities.
No argumentslist_bookkeeping_recordsReturns one bounded page of record summaries from the connection-bound Workspace.
kindfinancialLanecursorlimitget_bookkeeping_recordReturns every populated user-facing field for one authorized record. Database, storage, operation, and authorization IDs are excluded.
kindreferencefinancialLanesearch_bookkeeping_recordsSearches user-facing text across recent Ledger, Inbox, Invoice, Quote, and Claim records and says when the bounded scan is incomplete or more matches exist.
querykinds and financialLaneslimitlist_bookkeeping_resourcesReturns bounded pages of Customers, Workspace bookkeeping settings, or eligible members with opaque references for relationship-safe edits.
kindsettingKindfinancialLanecursor and limitget_bookkeeping_resourceReturns every populated user-facing field for one Customer, Workspace bookkeeping setting, or eligible member without exposing its database row ID.
kindreferencebegin_bookkeeping_batchAvailable with All capabilities. Creates a durable Income or Expense batch and returns one short-lived, single-use upload capability for each accepted file. A compatible local host streams the approved file bytes directly; no browser upload opens.
financialLaneoperationIdfilesfinalize_bookkeeping_batchRechecks the connection, current server policy, uploaded length, magic-byte type, SHA-256, and server-derived PDF page count before advancing valid files into the existing Income or Expense Inbox workflow.
batchIdget_bookkeeping_batchReturns durable per-file states plus resulting Inbox and Review references. Retry the original operation and manifest to receive capabilities only for files that have not started or can be retried.
batchIdupdate_bookkeeping_recordAvailable with Edit records or All capabilities. Saves editable fields on an Expense Ledger record, Inbox Review draft, or Invoice, Quote, or Claim draft through the same validation and permission rules as Paflio Web.
kind and referenceconcurrency tokenoperationIdfieldsmanage_bookkeeping_resourceAvailable with Edit records or All capabilities. Creates or updates Customers and creates Workspace bookkeeping settings. Archival remains a separate confirmed destructive action.
actionreference and revisionresource fieldscreate_bookkeeping_draftAvailable with Edit records or All capabilities. Creates an Invoice, Quote, or Claim draft through current Web defaults and workflow prerequisites.
kindoperationIddraft identityprepare_bookkeeping_actionValidates and previews one Review, lifecycle, delivery, export, or destructive action, then returns a short-lived Paflio confirmation URL. Preparing never changes a record.
commandperform_bookkeeping_review_actionAvailable with All capabilities after exact Paflio confirmation. Reuses current Review permissions, revisions, duplicate checks, and idempotency.
command and confirmationReferenceperform_bookkeeping_lifecycle_actionAvailable with All capabilities after exact Paflio confirmation. Covers Invoice issue/payment, Quote send/decision/expiry/conversion/revision, and Claim submit/approval/rejection/return outcomes.
command and confirmationReferenceperform_destructive_bookkeeping_actionDeletes, voids, cancels, or archives one eligible Ledger, Invoice, Quote, Claim, Customer, or setting target after a separate short-lived confirmation from a recent Paflio session.
command and confirmationReferencesend_bookkeeping_documentQueues an Invoice or Quote email through Paflio’s recipient, suppression, immutable-PDF, secure-link, idempotency, and reconciliation safeguards after the user confirms the exact recipient and options.
command and confirmationReferenceexport_bookkeeping_recordsReturns one confirmed, formula-safe CSV page for an Expense or Income Ledger lane. Continue with another explicitly confirmed page when isDone is false.
command and confirmationReferenceAuthentication and access
Clerk authenticates your Paflio account in the browser. Paflio then shows the requesting client, permission, and exact Solo or Business Workspace before you allow access.
Each grant stays fixed to the Workspace shown during approval. Every call rechecks the account, membership, scope, capability, and billing entitlement.
Troubleshooting
| Error code | Next action |
|---|---|
MCP_UNAUTHENTICATED | Authenticate the Paflio connection again. |
MCP_ACCESS_DENIED | Check the connected account, Workspace membership, and grant, then reconnect. |
MCP_BILLING_REQUIRED | Start an eligible trial or restore the applicable Solo subscription or Business seat. |
MCP_SCOPE_REQUIRED | Reconnect with the permission required by the tool. |
MCP_REQUEST_INVALID | Correct the tool arguments. Ledger and Inbox calls require financialLane. |
MCP_RECORD_REFERENCE_INVALID | List the records again and retry with a reference from the current connection. |
MCP_REVISION_CONFLICT | Read the record again, reconcile the newer values, and retry with its current concurrency token. |
MCP_OPERATION_REUSED | Use a new stable operation ID; the supplied ID was already bound to a different confirmed request. |
MCP_ACTION_UNAVAILABLE | Check your role and the record’s current lifecycle; this edit is not currently available. |
MCP_CONFIRMATION_REQUIRED | Open the short-lived Paflio confirmation URL, review the exact action, approve it, and retry unchanged. |
MCP_CONFIRMATION_ALREADY_USED | Prepare and approve a new confirmation for this action. |
MCP_RESULT_TOO_LARGE | Request a smaller page by reducing limit and continue with the returned cursor. |
MCP_SERVICE_UNAVAILABLE | Try again later. If the error continues, contact Paflio support. |
First prompts
Ask the client to confirm the Workspace before requesting a list or individual record.
Use get_paflio_context and tell me which Workspace this connection can access.List the 20 newest Expense Ledger records in this Workspace.List my Invoices, get the newest one by its opaque reference, and summarize every populated field.Read this Invoice draft, update its notes and line items with its current revision, then read it again to verify the saved totals.Search for Prairie Office, show every populated field on the matching record, and do not make changes.Prepare an Expense Ledger CSV export for September, open the Paflio confirmation, then export each bounded page.Start an Income bookkeeping batch for these approved invoice PDFs, upload each file through the returned capability, finalize the batch, and report its Inbox references.Before you connect
Bookkeeping fields returned by a tool become available to that AI client and may be governed by its account and retention settings. Never paste your Paflio password, Clerk token, or MCP access token into a prompt or configuration file.