← All servers

ExpenseBot

warnings

mcp.expensebot.ai

Capture receipts, scan Gmail, analyze spending, and create reviewed reports from AI assistants.

https://mcp.expensebot.ai/mcpWebsiteOAuthMCP 2025-11-25v0.3.1-m3.6last checked 18 Oct 2026spoke MCP on 100% of 87 checks (30 days)initialize in 186 ms

Will my client connect?

Decided from what the probe found at the endpoint, and from what each client's own documentation says it can complete. Every row carries the day that documentation was read.

✓Claude CodeConnects

The authorization server advertises RFC 7591 registration, so Claude Code can register itself and sign you in through the browser.

claude mcp add --transport http expensebot https://mcp.expensebot.ai/mcp

Claude Code docs · read on 2026-08-30

✓Claude (claude.ai & Desktop)Connects

The authorization server advertises RFC 7591 registration, so Claude (claude.ai & Desktop) can register itself and sign you in through the browser.

Settings → Connectors → Add custom connector, then paste https://mcp.expensebot.ai/mcp.

Claude (claude.ai & Desktop) docs · read on 2026-08-30

✓ChatGPTConnects

The authorization server advertises RFC 7591 registration, so ChatGPT can register itself and sign you in through the browser.

Settings → Apps → Advanced settings → Developer mode, then create a connector pointing at https://mcp.expensebot.ai/mcp.

ChatGPT docs · read on 2026-08-30

✓CursorConnects

The authorization server advertises RFC 7591 registration, so Cursor can register itself and sign you in through the browser.

{
  "mcpServers": {
    "expensebot": {
      "url": "https://mcp.expensebot.ai/mcp"
    }
  }
}

Cursor docs · read on 2026-08-30

✓VS Code (Copilot)Connects

The authorization server advertises RFC 7591 registration, so VS Code (Copilot) can register itself and sign you in through the browser.

{
  "servers": {
    "expensebot": {
      "type": "http",
      "url": "https://mcp.expensebot.ai/mcp"
    }
  }
}

VS Code (Copilot) docs · read on 2026-08-30

How to authenticate

Checked against the endpoint by our probe on 18 Oct 2026. These are the capabilities the server advertises, not a prediction about any particular client.

Scheme
OAuth
Issuer
https://mcp.expensebot.ai
Dynamic client registration
✓Advertised (RFC 7591)
Client ID Metadata Document
✕Not advertised
PKCE
✓S256
Grant types
authorization_code, refresh_token
Scopes
expenses.read, expenses.write, gmail.scan, reports.read, reports.write, compliance
Protected-resource metadata
✓Published (RFC 9728)
Anonymous access
Handshake succeeds; 61 tools listable
Credentials demanded in prose
✕check_tax_deductibility, add_cash_expense, get_accounting_push_status, list_categories, get_spreadsheet_url, whatif_afford, mark_client_invoice_paid, list_client_close_readiness

These tools are listed anonymously and their own descriptions ask for an account or key, but no challenge is issued — so a client has nothing to act on and the refusal arrives as a tool error.

Documentation
https://www.expensebot.ai/mcp

What the probe found

warningTools needing credentials are listed without a challenge

8 of the 61 tools listed anonymously say in their own descriptions that they need an account or a key (check_tax_deductibility, add_cash_expense, get_accounting_push_status, list_categories, get_spreadsheet_url, whatif_afford, mark_client_invoice_paid, list_client_close_readiness), but the endpoint issued no WWW-Authenticate challenge. The requirement is stated only in prose, so a call reaches the tool and comes back as a tool error instead of an authorization step.

No CORS headers for browser-based clients

A cross-origin preflight came back without Access-Control-Allow-Origin, so the endpoint is reachable from native clients only — code running in a web page is stopped by the browser before a request is ever sent.

61 tools usable without signing in

The server exposes a public surface before authorization: search_expenses, get_spending_summary, get_deep_analytics, create_report, list_reports, request_accounting_integration, get_report_details, share_report, check_compliance, fix_compliance, check_tax_deductibility, search_knowledge, submit_receipt, get_last_receipt_result, add_cash_expense, parse_expense, process_gmail_receipts, scan_gmail, add_mileage_entry, add_income, add_income_from_file, add_income_from_csv, get_accounting_integration_status, send_report_to_accounting, get_accounting_push_status, list_categories, list_tags, get_income_summary, get_pnl, get_per_tag_pnl, list_income_categories, get_recent_activity, trace_document, get_mileage_summary, get_subscription_audit, get_expense_by_id, export_report, get_spreadsheet_url, check_feature, whatif_afford, whatif_client, whatif_tax_setaside, scan_gmail_years, get_scan_status, get_statement_import_status, list_client_invoices, get_client_invoice, prepare_client_invoice, create_client_invoice, mark_client_invoice_paid, get_expense_splits, get_monthly_books_review, list_client_close_readiness, get_credits_refunds, get_client_advance_balances, get_trip_suggestions, group_expenses, update_expense, correct_expenses, search, fetch.

Tools

add_cash_expenseadd_incomeadd_income_from_csvadd_income_from_fileadd_mileage_entrycheck_compliancecheck_featurecheck_tax_deductibilitycorrect_expensescreate_client_invoicecreate_reportexport_reportfetchfix_complianceget_accounting_integration_statusget_accounting_push_statusget_client_advance_balancesget_client_invoiceget_credits_refundsget_deep_analyticsget_expense_by_idget_expense_splitsget_income_summaryget_last_receipt_resultget_mileage_summaryget_monthly_books_reviewget_per_tag_pnlget_pnlget_recent_activityget_report_detailsget_scan_statusget_spending_summaryget_spreadsheet_urlget_statement_import_statusget_subscription_auditget_trip_suggestionsgroup_expenseslist_categorieslist_client_close_readinesslist_client_invoiceslist_income_categorieslist_reportslist_tagsmark_client_invoice_paidparse_expenseprepare_client_invoiceprocess_gmail_receiptsrequest_accounting_integrationscan_gmailscan_gmail_yearssearchsearch_expensessearch_knowledgesend_report_to_accountingshare_reportsubmit_receipttrace_documentupdate_expensewhatif_affordwhatif_clientwhatif_tax_setaside

Contract history

16 Oct 2026v0.3.1-m3.62 compatibleinstructions rewritten

Instructions rewritten: get_report_details. The description an agent follows changed; the callable contract may not have.

15 Oct 2026v0.3.1-m3.62 cosmeticinstructions rewritten

Instructions rewritten: get_scan_status, scan_gmail_years. The description an agent follows changed; the callable contract may not have.

7 Oct 2026v0.3.1-m3.61 cosmeticinstructions rewritten

Instructions rewritten: trace_document. The description an agent follows changed; the callable contract may not have.

6 Oct 2026v0.3.1-m3.61 breaking3 cosmeticinstructions rewritten

Breaking: add_income_from_csv

Instructions rewritten: add_income_from_csv, check_tax_deductibility, get_expense_by_id, get_income_summary. The description an agent follows changed; the callable contract may not have.

5 Oct 2026v0.3.1-m3.63 breaking2 compatible16 cosmeticinstructions rewritten

Breaking: check_compliance, get_expense_by_id, get_report_details

Instructions rewritten: add_cash_expense, add_income, add_income_from_csv, add_income_from_file, add_mileage_entry, correct_expenses, create_report, fix_compliance, get_expense_by_id, get_income_summary, get_monthly_books_review, get_pnl, group_expenses, list_categories, search_expenses, submit_receipt, update_expense. The description an agent follows changed; the callable contract may not have.

5 Oct 2026v0.3.1-m3.61 compatible
2 Oct 2026v0.3.1-m3.64 breaking1 cosmeticinstructions rewritten

Breaking: add_income, add_mileage_entry, fetch, get_last_receipt_result

Instructions rewritten: fetch, get_last_receipt_result, get_spreadsheet_url. The description an agent follows changed; the callable contract may not have.

9 Sep 2026v0.3.1-m3.62 breaking51 compatibleinstructions rewritten

Breaking: correct_expenses, fix_compliance

Instructions rewritten: add_income, fix_compliance, update_expense. The description an agent follows changed; the callable contract may not have.

2 Sep 2026v0.3.1-m3.6first recorded contract

Watch this server

Save its public contract as a baseline and manage breaking-change email alerts.

Set up a watch

Own this server?

Sign in to claim this listing by proving control of its host.

Status badge

Status for a README, from the last probe — cached an hour, so up to seven hours behind the endpoint. Links back to this page.

MCP status badge for ExpenseBot
[![MCP status](https://mcpi.app/servers/expensebot/badge.svg)](https://mcpi.app/servers/expensebot)