Mmcp.market

Expense MCP server

by assaf·io.github.assaf/expense·v1.0.0

Receipt tracker with no friction: receipts arrive by email and file themselves

A97/100grade A
What users say
No reviews yet
Be the first
Safety scan
A97/100

full report

Adoption
Growing

6 stars

Reviews

Write one

Nobody has reviewed Expense yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Expense tools

Tool list not cached yet. `describe` through the gateway fetches it live.

Public scan report

scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it

no findings
  • Code scanremote-only server, no package to scann/a
  • Live reliabilityremote reachable in 371ms (auth required)20/20
  • Tool poisoningtools not inspected (endpoint requires auth); not countedn/a
  • Auth qualityOAuth resource metadata advertised on 40115/15
  • Maintenancelast push 0 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 97/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

What the publisher says

From the Expense repository's README, as published. We do not edit it. Read it on GitHub

Expense

Expense is a seamless receipt tracking solution: receipts are automatically

sent via email, mileage uses the tax rate provided by the IRS, and a smart AI

assistant does your data entry so that you can forget about the process

altogether.

Screenshots

What it does:

category, merchant, amount) and mileage expenses (map a route on the map, powered by Leaflet + OSRM, using the per year mileage rate)

  • Log receipt expenses (upload/scan the image, specify the date, report,

the receipt will be parsed and automatically added (see below)

  • Forward your receipt to the email associated with your Expense account, and

saved and automatically renamed to YYYY-MM-DDReportName.jpg

  • Reports and categories to organize your expenses into; every receipt image is

archive

  • Export: as a PDF (one PDF per report with receipt images attached) and a ZIP

Stack:

settings, mileage, image blobs

  • React Router v8 (framework mode) + Tailwind v4, TypeScript
  • Postgres via Prisma: accounts, users, expenses, reports, categories,

storage

  • Images: Postgres BYTEA (production and development/test), with no external

deploys)

  • Deployed on Vercel + Supabase Postgres (git push to main automatically

Auth and accounts:

account is separate from other ones

  • Email/password login (hashed with scrypt), sessions with signed cookies
  • Multi-user accounts: everything in one account is shared between users, each

Settings) and can sign up to a new account from scratch; image keys are namespaced by an account so that two accounts won't interfere

  • A user can join an account by entering an 8-character invite code (visible in

Accounts and sharing

Email/password login: email is the login name, stored in lowercase and validated, and unique at signup/join. All expenses, reports, categories, and settings belong to an account; everything in an account is shared between users, and accounts are fully isolated from each other.

existing account and share its data.

  • Sign up -> creates an entirely new account (empty).
  • Join -> enters an account invite code (Settings -> Account) to join an

the database is empty; pre-existing accounts get their login restored from APP_EMAIL on the first launch (initStore).

  • The first account/user is bootstrapped from APPEMAIL/APPPASSWORD when

SEO and AI discovery

Marketing pages that are available publicly double as the AI search surface: if an assistant is asked for an expense tracker, the GPTBot / OAI-SearchBot / ClaudeBot / PerplexityBot crawler quotes them. The copy is written in such a way that it's easily quotable and includes the app name and the URL and lives only in one place, the content files under app/data/ (one markdown or YAML file per page, parsed by app/lib/content.server.ts), which render all the surfaces:

Plumbing to support it: public/robots.txt explicitly permits the AI crawlers while app routes are blocked, and public/sitemap.xml lists the public pages.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Install directly

claude mcp add --transport http expense https://expense.labnotes.org/mcp
Add to Cursor

Expense: common questions

Is Expense MCP server safe?
Yes, by our scan: it is graded A (97/100). Read the Expense safety report
How do I install Expense?
It runs remotely at expense.labnotes.org. Add it to Claude Code, Claude Desktop or Cursor with the snippets above, or call it through the mcp.market gateway without installing anything.
Does Expense need an API key?
No key to paste: it signs you in with OAuth when your client connects.
Is Expense maintained?
The last commit was in the last day (2026-09-24). The latest release is v1.0.0.
Is Expense up?
100% of our last 20 checks got an answer. We check remote servers about four times a day.
What can I use instead of Expense?
Servers from other publishers that do the same job: Local MCP server, Clippy MCP server and MCP server. Compare all Expense alternatives.

Alternatives to Expense

Same job from other publishers: the closest match first, then the best rated.

All Expense alternatives →
  • Local
    Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
    C
  • Clippy
    Copy AI-generated content to the macOS clipboard: rich Gmail-ready email drafts, text, and files
    A
  • MCP
    Send email, look up public IP information, and convert files to Markdown through SendSoon.
    B
  • agentmailkit
    Run scheduled LLM-written email digests from local files and feeds. Local-first MCP server.
    A
  • Outlook Email Html Lint
    Classic Outlook renders with the Word engine, the new Outlook with WebView2. Lint one email file aga
    A

More from assaf