Expensify MCP Server for Cloudflare Workers
Test Expensify tools directly in your browser. Select a tool and provide inputs to see the results.
Create a free account to test Expensify tools interactively. No credit card required.
expensify_get_policiesGet list of policies accessible to the authenticated user. Returns all policies the partner has access to, including policy ID, name, type, and owner. Args: - adminOnly: If true, only return policies where user is admin (default: false) - format: Response format ('json' or 'markdown') Returns: List of policies with their details.
expensify_get_policyGet detailed information about a specific policy. Returns policy details including categories, tags, report fields, employees, and tax configuration. Args: - policyId: The policy ID - fields: Which fields to retrieve (categories, tags, reportFields, employees, tax) - format: Response format Returns: Detailed policy information.
expensify_create_policyCreate a new expense policy. Args: - name: Name of the new policy - plan: Policy plan type ('team' or 'corporate') Returns: The created policy ID.
expensify_update_categoriesUpdate expense categories for a policy. Allows enabling/disabling categories and setting GL codes. Args: - policyId: Policy ID - categories: JSON string of category settings (e.g., {"Travel": {"enabled": true, "glCode": "1001"}}) Returns: Success confirmation.
expensify_update_tagsUpdate expense tags for a policy. Allows managing multi-level tag hierarchies. Args: - policyId: Policy ID - tagsJson: JSON string of tag settings Returns: Success confirmation.
expensify_update_report_fieldsUpdate custom report fields for a policy. Allows adding text, dropdown, or date fields to reports. Args: - policyId: Policy ID - reportFieldsJson: JSON string of field definitions Returns: Success confirmation.
expensify_get_employeesGet employees for a policy. Returns list of employees with their roles and reporting structure. Args: - policyId: Policy ID - format: Response format Returns: List of employees.
expensify_update_employeeUpdate employee settings in a policy. Args: - policyId: Policy ID - employeeEmail: Employee email - managerEmail: Manager's email - isAdmin: Whether employee is admin - employeeID: External employee ID - approvalLimit: Approval limit amount - overLimitApprover: Approver for over-limit expenses Returns: Success confirmation.
expensify_add_employeeAdd an employee to a policy. Args: - policyId: Policy ID - employeeEmail: Employee email to add - role: Employee role (default: 'user') Returns: Success confirmation.
expensify_remove_employeeRemove an employee from a policy. Args: - policyId: Policy ID - employeeEmail: Employee email to remove Returns: Success confirmation.
expensify_export_reportsExport expense reports with their transactions. Returns reports matching the specified filters with full transaction details. Args: - startDate: Start date (YYYY-MM-DD) - endDate: End date (YYYY-MM-DD) - policyId: Filter by policy ID - reportState: Filter by report state (OPEN, SUBMITTED, APPROVED, REIMBURSED, ARCHIVED) - employeeEmail: Filter by submitter email - limit: Maximum number of reports - format: Response format Returns: List of reports with their transactions.
expensify_create_reportCreate a new expense report. Args: - title: Report title - employeeEmail: Employee email who owns the report - policyId: Policy ID (optional) Returns: The created report ID.
expensify_update_report_statusUpdate the status of expense reports. Can update by report ID or by date range filter. Args: - reportId: Single report ID to update (or use date filters) - startDate: Filter by start date (YYYY-MM-DD) - endDate: Filter by end date (YYYY-MM-DD) - policyId: Filter by policy - status: New status (APPROVED or REIMBURSED) Returns: Success confirmation.
expensify_mark_exportedMark reports as exported with a label. Used to track which reports have been exported to external systems. Args: - reportIds: Comma-separated report IDs to mark - exportLabel: Label to apply Returns: Success confirmation.
expensify_download_report_pdfDownload expense reports as PDF. Returns base64-encoded PDF data for the specified reports. Args: - reportIds: Comma-separated report IDs to download Returns: Base64-encoded PDF data.
expensify_create_expenseCreate one or more expenses. Expenses are created in the user's default unreported report or assigned policy. Args: - employeeEmail: Employee email who owns the expenses - expensesJson: JSON array of expense objects with: merchant, amount, currency, created, category, tag, billable, reimbursable, comment, externalID - policyId: Policy ID to associate expenses with Returns: Created transaction ID(s).
expensify_get_categoriesGet expense categories for a policy. Returns all categories with their enabled status and GL codes. Args: - policyId: Policy ID - format: Response format Returns: List of categories.
expensify_get_tagsGet expense tags for a policy. Returns all tags including multi-level tag hierarchies. Args: - policyId: Policy ID - format: Response format Returns: List of tags.
expensify_create_expense_ruleCreate an expense rule for automatic tag/billable assignment. Args: - policyId: Policy ID - employeeEmail: Employee the rule applies to - tag: Tag to automatically apply - billable: Automatic billable status - applyWhen: When to apply the rule (tag, category, or merchant) - matchValue: Value to match for the rule Returns: Success confirmation.
expensify_get_domain_cardsGet corporate cards for a domain. Returns list of corporate card assignments with card details and owners. Args: - domain: Domain name - format: Response format Returns: List of corporate cards.
expensify_export_reconciliationExport card transaction reconciliation data. Exports corporate card transaction data for reconciliation. Args: - startDate: Start date (YYYY-MM-DD) - endDate: End date (YYYY-MM-DD) - domain: Domain to export - feed: Specific card feed name (or exports all) - reportedOnly: Only include reported transactions Returns: Reconciliation data.
expensify_update_tag_approverSet or clear an approver for a specific tag. Routes expenses with this tag to the specified approver. Args: - policyId: Policy ID - tagName: Tag name - approverEmail: Approver email (empty string to clear) Returns: Success confirmation.
expensify_get_policies{
"format": "example_format",
"adminOnly": true
}expensify_get_policy{
"format": "example_format",
"policyId": "example_policyId"
}expensify_create_policy{
"name": "example_name",
"plan": "example_plan"
}