Skip to main content
Glama
emma-transactions-mcp

emma-transactions-mcp

Emma Transactions MCP Server

A reusable Model Context Protocol server for querying Emma-app transaction exports stored in Google Sheets.

The server is generic: you provide your own Google Sheet URL, published CSV URL, or Sheet ID at runtime. This repository contains no personal transaction data and no hard-coded Sheet IDs.

Features

  • list_transactions — list normalized transactions, with filters for category, account, search text, and date range.

  • get_spending_summary — totals for income, expenses, net movement, category, account, and month.

  • get_metadata — available accounts, categories, currencies, row count, and date range.

  • validate_sheet — confirms the sheet can be parsed without returning transaction rows.

  • Google Sheets URL helper — accepts a Sheet ID, a normal /edit URL, a /pub?output=csv URL, or an /export?format=csv URL.

  • Robust CSV parsing — recognizes common column variants such as Date, Transaction Date, Description, Name, Amount, Value, Category, Account, and Merchant.

Related MCP server: google-sheet-mcp

Privacy model

This server does not store transaction data. It fetches the configured CSV when a tool is called and returns the requested result to the MCP client.

You still need to treat your Google Sheet URL as sensitive. If you publish a Google Sheet to the web as CSV, anyone with that URL may be able to access the data. Use a private runtime environment and do not commit your real Sheet URL to version control.

Requirements

  • Node.js 20+

  • An Emma transaction export in Google Sheets, accessible to the process running the MCP server

Current implementation supports unauthenticated CSV access: published-to-web CSV links and Google Sheet export URLs that the runtime can fetch. OAuth/service-account support is intentionally not bundled yet, because credentials for personal finance data need a sharper knife than a README example.

Install

From a checkout:

git clone https://github.com/accesstechnology-mike/emma-transactions-mcp.git
cd emma-transactions-mcp
npm install
npm run build

MCP client configuration

Use an environment variable:

{
  "mcpServers": {
    "emma-transactions": {
      "command": "node",
      "args": ["/absolute/path/to/emma-transactions-mcp/dist/index.js"],
      "env": {
        "EMMA_SHEET_URL": "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/pub?output=csv",
        "EMMA_SHEET_GID": "0"
      }
    }
  }
}

Or pass sheet_url in each tool call.

Optional gid selects a specific tab. It defaults to EMMA_SHEET_GID, then 0.

Expected columns

At minimum, the CSV needs:

  • date: Date, Transaction Date, Timestamp, or Time

  • description: Description, Name, Transaction, Transaction Name, or Title

  • amount: Amount, Value, Transaction Amount, Money Out, or Money In

Optional columns include Currency, Category, Account, Merchant, Notes, and Type.

Development

npm install
npm test
npm run build

The test suite uses synthetic fixture rows only. Do not add real transaction exports to tests, issues, screenshots, or docs.

License

MIT

Available Tools

4 tools
get_metadataA

Return available categories, accounts, currencies, row count, and date range

Inputs: sheet_url, gid.

get_spending_summaryB

Summarize income, spending, net movement, and totals by category, account, and month

Inputs: sheet_url, gid, from, to.

list_transactionsB

List normalized Emma transactions with optional filters

Inputs: sheet_url, gid, category, account, +4 more.

validate_sheetB

Fetch and validate that the configured sheet can be parsed without returning transaction rows

Inputs: sheet_url, gid.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool serves a distinct function: metadata retrieval, spending summary, transaction listing, and sheet validation. No overlap in purposes.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (get_metadata, get_spending_summary, list_transactions, validate_sheet) with clear, descriptive verbs.

    Tool Count5/5

    4 tools is well-scoped for a transaction management server, covering essential operations without being excessive or insufficient.

    Completeness4/5

    The server provides metadata, summaries, and transaction listing, but lacks write operations or advanced filtering. This seems intentional for a read-only analysis tool, so the gap is minor.

    Maintenance

    ActivitySlowing
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers