Expense Management MCP Tools

Expense Management MCP tools follow mobile receipt capture, OCR, claim draft, policy checks, budget alerts, approval, reimbursement batch, accounting export, and audit workflows.

expense.config.get

read

Read reimbursement currency, OCR, policy, approval, budget, payment, and accounting export settings.

-

Read-only. No approval required.

Do not expose bank, accounting connector, OCR provider, or payroll secrets.

expense.employees.list

read

List employees eligible for claims, departments, grade, approver, and payment state.

expense.config.get

Read-only. No approval required.

Mask personal and payment profile data according to HR/finance role.

expense.employee.get

read

Read employee claim history, pending claims, payment summary, and applicable policy scope.

expense.employees.list

Read-only. No approval required.

Only HR, finance, approver, or the employee can read personal reimbursement records.

expense.departments.list

read

List departments, owners, budget owners, and approval-routing base data.

expense.config.get

Read-only. No approval required.

Do not expose restricted department cost data without finance permission.

expense.cost_centres.list

read

List cost centres, project codes, ledger accounts, and availability.

expense.departments.list

Read-only. No approval required.

Keep ledger mapping scoped to finance/admin roles.

expense.policies.list

read

Read reimbursement policies, limits, receipt requirements, exceptions, approval levels, and effective dates.

expense.config.get

Read-only. No approval required.

Return effective policy version and avoid applying draft rules as active rules.

expense.categories.list

read

List meal, travel, material, transport, and other categories with limits and ledger accounts.

expense.policies.list

Read-only. No approval required.

Keep category-to-ledger mappings controlled by finance roles.

expense.budgets.list

read

List department, project, category, and monthly budgets, used, reserved, and overspend alerts.

expense.cost_centres.list

Read-only. No approval required.

Budget visibility must follow department and finance permissions.

expense.claims.list

read

List claims by employee, department, status, date, category, amount, or payment state.

expense.employee.get, expense.policies.list

Read-only. No approval required.

Employees should only see own claims unless they are approvers or finance users.

expense.claim.get

read

Read claim detail, receipts, OCR, policy result, approvals, payment, and audit.

expense.claims.list

Read-only. No approval required.

Mask bank/payment data and preserve approver comments according to role.

expense.receipts.list

read

List receipt images/files, uploader, OCR state, missing fields, and linked claims.

expense.claim.get

Read-only. No approval required.

Return signed receipt views only to authorized users.

expense.receipt.get

read

Read one receipt, OCR fields, original image, correction history, and confidence.

expense.receipts.list

Read-only. No approval required.

Mask sensitive card numbers or personal data visible on receipt images.

expense.ocr_results.list

read

List OCR extracted date, merchant, amount, currency, tax, category, and confidence results.

expense.receipts.list

Read-only. No approval required.

Low-confidence fields must be marked and not silently used for approval.

expense.duplicate_risks.list

read

List duplicate receipt, same amount/date, repeated reference, or possible split-claim risks.

expense.receipts.list, expense.claims.list

Read-only. No approval required.

Risk scores must be explainable and should not auto-accuse employees.

expense.pending_approvals.list

read

List claims waiting for approval, information, over-limit review, or finance final check.

expense.claims.list

Read-only. No approval required.

Only return approvals assigned to the requester or their delegated role.

expense.approval_chain.get

read

Read approval route, approved steps, pending steps, delegation, and separation-of-duty rules.

expense.claim.get, expense.policies.list

Read-only. No approval required.

Enforce separation of submitter, approver, and payment marker roles.

expense.reimbursements.list

read

List approved-pending, processing, paid, failed, or cancelled reimbursements.

expense.claims.list

Read-only. No approval required.

Mask bank details and payroll identifiers.

expense.payment_batches.list

read

List payment batches, totals, employee count, payment method, bank file, and state.

expense.reimbursements.list

Read-only. No approval required.

Bank file links must be permissioned and time-limited.

expense.project_allocations.list

read

List expense allocation to projects, clients, cost centres, or milestones.

expense.cost_centres.list, expense.claims.list

Read-only. No approval required.

Do not expose project profitability outside permitted teams.

expense.accounting_exports.list

read

List expense export batches, periods, formats, states, errors, and re-export history.

expense.config.get

Read-only. No approval required.

Do not expose accounting connector tokens or private ledger details.

expense.summary.get

read

Read expense summary by department, employee, category, project, month, and currency.

expense.claims.list, expense.reimbursements.list

Read-only. No approval required.

Aggregate where possible; employee-level views require appropriate permission.

expense.policy_exceptions.get

read

Read over-limit, missing receipt, duplicate, low-confidence OCR, policy exception, and missing-info summary.

expense.duplicate_risks.list, expense.policies.list

Read-only. No approval required.

Do not treat exception summaries as final fraud findings.

expense.audit_logs.list

read

Read audit logs for claims, receipts, OCR, policies, approvals, payments, exports, and budgets.

expense.claim.get or expense.payment_batches.list

Read-only. No approval required.

Audit logs must be immutable and restricted to finance/admin/compliance roles.

expense.claim_check.preview

preview

Preview OCR result, category, policy limit, budget, duplicate risk, and missing information for a claim.

expense.claim.get, expense.ocr_results.list, expense.policies.list, expense.budgets.list, expense.duplicate_risks.list

Used before submit or approval. No write occurs until approved action.

Low-confidence OCR and policy exceptions must be explicit in the preview.

expense.approval_result.preview

preview

Preview status, notification, payment, and audit impact after approval, rejection, or information request.

expense.claim_check.preview, expense.approval_chain.get

Approver must confirm before changing claim state.

Prevent self-approval and bypassing required approval levels.

expense.reimbursement_batch.preview

preview

Preview payment batch, employees, amounts, missing bank data, ledger accounts, and cashflow impact.

expense.reimbursements.list, expense.payment_batches.list, expense.employee.get

Finance approval required before creating or marking payment batches.

Recheck approved status and bank data before payment execution.

expense.policy_change.preview

preview

Preview policy, category, limit, or approval-rule changes and their impact on employees and pending claims.

expense.policies.list, expense.categories.list, expense.pending_approvals.list

Finance/admin approval required before policy changes become active.

Use effective dates and do not retroactively alter already approved claims without correction flow.

expense.accounting_export.preview

preview

Preview approved expense export period, categories, cost centres, tax, attachments, and errors.

expense.accounting_exports.list, expense.claims.list, expense.reimbursements.list

Finance approval required before export creation or external push.

Prevent duplicate exports and keep stable batch references.

expense.budget_alert.preview

preview

Preview budget usage and overspend alerts after claim submission or approval.

expense.budgets.list, expense.claim_check.preview

Approval required only when alert rules or budget amounts are changed.

Do not block claims solely on budget alert unless policy explicitly requires it.

expense.claim.create

write

Create claim draft with employee, lines, amounts, currency, category, and cost centre.

expense.employee.get, expense.categories.list, expense.claim_check.preview

Employee submission does not need finance approval, but final reimbursement does.

Validate employee eligibility and prevent duplicate draft creation from the same receipt.

expense.claim.update

write

Update draft or returned claim lines, notes, category, cost centre, and attachments.

expense.claim.get, expense.claim_check.preview

Approval required when finance edits submitted or approved claims.

Do not change approved claims without correction audit.

expense.claim.submit

write

Submit claim into approval workflow and lock submitted version.

expense.claim_check.preview

Employee confirms submission; approver approval happens later.

Block submission only for required missing fields or invalid policy setup.

expense.claim.withdraw

write

Withdraw an unpaid claim and record reason.

expense.claim.get

Claim owner or finance approval required depending on claim state.

Do not withdraw paid or exported claims without reversal flow.

expense.receipt.attach

write

Upload or attach receipt image/PDF and trigger OCR and duplicate checks.

expense.claim.get

No approval required for attachment; approval required before reimbursement.

Virus scan files and restrict signed receipt access.

expense.ocr_result.correct

write

Correct OCR date, merchant, amount, currency, tax, or category and preserve editor.

expense.receipt.get, expense.ocr_results.list

Approval required if correction changes submitted or approved amount.

Keep original OCR and manual correction history immutable.

expense.approval.approve

write

Approve a claim and advance it to payment or next approval level.

expense.approval_result.preview

Assigned approver must explicitly approve.

Enforce separation of duties, policy exceptions, and approval delegation rules.

expense.approval.reject

write

Reject a claim with reason, notify employee, and lock approval record.

expense.approval_result.preview

Assigned approver must explicitly reject.

Rejection reasons should be clear and policy-based where possible.

expense.approval.request_info

write

Return claim to request receipt, explanation, category, or project details.

expense.approval_result.preview

Assigned approver or finance user approval required.

Keep previous submitted version and requested fields in audit.

expense.reimbursement_batch.create

write

Create reimbursement payment batch for approved claims with total, method, and bank file.

expense.reimbursement_batch.preview

Finance approval required before payment batch creation/finalisation.

Only approved and not-yet-paid claims can enter a payment batch.

expense.reimbursement.mark_paid

write

Mark reimbursement or payment batch as paid with date, method, reference, and proof.

expense.payment_batches.list, expense.reimbursement_batch.preview

Finance approval required before marking paid.

Do not mark unapproved, failed, or already paid reimbursements as paid.

expense.policy.update

write

Update policy, limits, receipt requirements, approval levels, exceptions, and effective dates.

expense.policy_change.preview

Finance/admin approval required.

Use versioning and effective dates; never silently rewrite historical policy results.

expense.category.upsert

write

Create or update expense category, ledger account, limit, receipt requirement, and visibility.

expense.categories.list, expense.policy_change.preview

Finance/admin approval required.

Prevent breaking active policy rules or accounting mappings.

expense.budget.upsert

write

Create or update department, project, category, or monthly budget and alert threshold.

expense.budget_alert.preview

Budget owner or finance approval required.

Keep budget changes auditable and effective-dated.

expense.project_allocation.upsert

write

Update allocation between expense and project, client, cost centre, or milestone.

expense.project_allocations.list, expense.claim_check.preview

Approval required when changing submitted or approved cost allocation.

Preserve original allocation and project profitability audit.

expense.accounting_export.create

write

Create accounting export file or push approved expense records to accounting system.

expense.accounting_export.preview

Finance approval required before export finalisation or external push.

Prevent duplicate exports and preserve batch id on exported records.

expense.notification.send

write

Send submission, return, approval, payment, missing-info, or budget alert notifications.

expense.approval_result.preview or expense.budget_alert.preview

Approval required for bulk or sensitive finance notifications.

Respect recipient scope and avoid exposing private claim details to the wrong manager.

expense.employee_payment_profile.update

write

Update employee reimbursement payment profile summary, preferred method, or missing-payment-data state.

expense.employee.get, expense.reimbursement_batch.preview

HR/finance approval required for sensitive payment profile changes.

Do not expose or store full bank data in public fields; keep change audit.

expense.action_request.status

status

Check status for expense writes, previews, or approval requests without re-executing actions.

expense.audit_logs.list

Read-only status lookup. No approval required.

Return status and audit references only; never replay approval or payment writes.