# Expensify MCP

> Expensify automates your entire corporate expense lifecycle, from logging individual receipts to running complex financial reconciliation reports. Get full control over policy enforcement, managing policies, creating detailed expenditure reports, and exporting raw corporate card data using natural conversation with any AI agent.

## Overview
- **Category:** finance-accounting
- **Price:** Free
- **Tags:** expense-tracking, reconciliation, corporate-cards, financial-reporting, receipts

## Description

Connecting your Expensify account gives you complete command of corporate finance workflows. You can create new expense entries or compile massive report packages directly within a user’s profile. Need to audit spending? The system generates detailed export files and handles complex reconciliation by exporting raw corporate card transaction feeds using custom templates. Beyond tracking, you manage the rules themselves: creating policies, updating employee details, and setting specific expense guidelines for different teams. Everything is accessible through your AI client; just connect Vinkius to your account, and you can start managing compliance without leaving your chat window. It’s designed for finance teams who need audit-grade reports and operations staff who manage policy rules daily.

## Tools

### create_expense_rules
Establishes specific spending guidelines or rules that must be followed by a policy member.

### create_expense
Logs a single expense record directly into a user's account for immediate tracking.

### create_policy
Sets up an entirely new financial policy under the company's team or corporate plan structure.

### create_report
Compiles and generates a full expense report containing multiple transactions within a user's account.

### download_file
Retrieves previously generated export files or reconciliation sheets from the system.

### export_reconciliation
Generates a full data dump of corporate card transactions, perfect for accounting reconciliation.

### export_reports
Exports expense or report data in various formats using specific filters and templates.

### get_domain_cards
Retrieves a list of all corporate credit cards assigned to the entire domain level.

### get_policy_list
Retrieves a quick summary list of all existing company policies by name and date.

### get_policy
Pulls specific, detailed information about a single policy ID for review.

### update_employees
Performs advanced data updates for employee records, managing user provisioning details.

### update_policy
Modifies an existing policy by changing its associated categories, tags, or report fields.

## Prompt Examples

**Prompt:** 
```
Create an expense report for employee@company.com under policy ID PLY123 with a $50 meal expense.
```

**Response:** 
```
I've created the report using `create_report` for employee@company.com under Policy PLY123. The report includes the $50 meal expense.
```

**Prompt:** 
```
Export corporate card reconciliation data for last month.
```

**Response:** 
```
I have initiated the reconciliation export using `export_reconciliation` with the settings for last month. The export file is being generated.
```

**Prompt:** 
```
Get the categories and tags for policy ID PLY123.
```

**Response:** 
```
I've fetched the policy details using `get_policy` for PLY123. The active categories are 'Travel', 'Meals', and 'Software', and the tags are 'Marketing' and 'Engineering'.
```

## Capabilities

### Process Expense Logging
Log single expenses or compile entire report packages with attached transactions directly into the user's account.

### Reconcile Corporate Cards
Generate and export raw corporate card transaction data, making it easier to reconcile accounts against company spending policies.

### Manage Financial Policy Rules
Create new expense policies or update existing ones by adjusting categories, tags, and specific financial rules for members.

### Generate Auditable Reports
Compile custom reports, export data using configurable formats, or download reconciliation sheets based on defined filters.

### Maintain User Data Integrity
Update employee records and assign domain-level credit cards to keep user and financial data current across the organization.

## Use Cases

### Month-End Reconciliation
The finance team needs to reconcile last month's spending against the corporate card statements. They ask their agent to run `export_reconciliation`, which immediately provides a clean data set ready for accounting software, eliminating hours of manual spreadsheet work.

### New Department Policy
The Operations Manager needs to enforce new rules for the Marketing department (e.g., increasing travel limits but reducing meal caps). They use `create_policy` and then apply specific restrictions with `create_expense_rules`, guaranteeing immediate compliance.

### Annual Audit Preparation
A senior manager needs to prove that all department spending aligns with the current guidelines. Instead of pulling separate reports, they ask the agent to compile a full report package using `create_report` for the entire year, making the audit simple.

### User Offboarding
A contractor leaves and their access needs updating, or employee records need cleaning. They use the agent to run `update_employees`, ensuring all associated financial roles are correctly provisioned or retired.

## Benefits

- Avoid manually exporting data for reconciliation. Use `export_reconciliation` to get raw corporate card feeds instantly, speeding up your month-end close process.
- Never lose a receipt or forget a rule again. You can use the agent to quickly log individual costs via `create_expense`, ensuring every expense is accounted for immediately.
- Policy changes don't require IT tickets anymore. Use `update_policy` and `create_expense_rules` to adjust spending limits across specific employee groups in minutes.
- Audit trails are built-in. You can use the agent to compile full report packages with `create_report`, making it easy to prove compliance for any given time period.
- Keep your user data current without manual updates. The `update_employees` tool lets you provision and sync employee details dynamically, keeping records accurate.

## How It Works

The bottom line is that you tell your agent what financial task needs doing, and it handles all the backend commands to make it happen.

1. Subscribe to this MCP, then provide your Expensify Partner User ID and Secret credentials.
2. Your AI agent connects these details, granting it access to manage your corporate accounts.
3. You give a simple command—like 'Create an expense report for John Smith covering travel in June'—and the MCP executes the necessary actions.

## Frequently Asked Questions

**How do I download a generated export or reconciliation file?**
You can use the `download_file` tool by providing the exact `fileName` returned by your export or reconciliation job. The agent will fetch the file content directly.

**Can I create a new expense report and attach multiple transactions at once?**
Yes! Use the `create_report` tool. You can specify the employee's email, the target policy ID, report details, and pass an array of expense objects (including merchant, currency, date, and amount).

**How do I retrieve policy details like categories, tags, or tax rates?**
Use the `get_policy` tool. Provide a comma-separated list of policy IDs and specify the fields you want to retrieve (e.g., 'categories,tags,tax,employees,reportFields').

**If I need to set specific spending limits or category rules for a team, how do I use `create_expense_rules`?**
You must call `create_expense_rules` with the policy member ID and the specific rule criteria. This tool ensures that expense submissions adhere to defined financial parameters before they get logged.

**I just need a quick overview of all available company policies; should I use `get_policy_list`?**
Yes, use `get_policy_list`. This tool gives you an immediate summary list of all active policies without needing the detailed fields that `get_policy` retrieves.

**How do I modify existing policy details, such as changing tags or adding new categories? Should I use `update_policy`?**
You need to call `update_policy`. This function lets you manage and revise specific fields—like categories, tags, and report parameters—on a policy that already exists.

**My employee roster changes frequently; how do I keep the system updated for all users using `update_employees`?**
`update_employees` is designed to handle dynamic provisioning. You provide the necessary employee data, and this tool syncs those updates across your corporate profile.

**Where can I retrieve a comprehensive list of all credit cards assigned at the domain level using `get_domain_cards`?**
`get_domain_cards` retrieves every credit card currently assigned to the entire domain. This is useful for auditing or identifying which accounts need reconciliation data.