MCPcopy Index your code
hub / github.com/WellApp-ai/Well

github.com/WellApp-ai/Well @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
432 symbols 1,158 edges 89 files 177 documented · 41%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Well App AI - Contribute Building Operators that Conquer the International Invoice Infrastructure

You don't have to waste time retrieving invoices. AI can.

Chrome Web Store License: MIT Add to Claude Code


Table of Contents


Overview

Well is the Chrome extension that becomes every founder's best friend when accounting season hits.

It automates supplier invoice retrieval and pipes the data directly into your accounting tools, ERP, or dashboards — with zero effort.

Built for founders, solo operators, and lean teams, Well replaces hours of repetitive clicking, dragging, chasing, and copy-pasting. What used to eat up days across tax seasons now takes one click.

At its core, Well is a Chrome extension that automates browser workflows on your behalf — boosting productivity when batch-retrieving invoices. You can also use it on the go: as you browse, Well catches invoices for you.

Features include: - WhatsApp and email ingestion - Google Drive and Slack integrations - AI-generated workflow blueprints - Self-healing automations that adapt to changes - Multi-format export support (JSON, CSV, XML, UBL, QuickBooks, Xero) - Built-in validation for invoice data integrity - Extensible plugin system for custom formats - Compatibility with e-invoicing standards including Factur-X and UBL 2.1

We believe invoice exchange should follow a universal protocol: instant, standardized, and automated. You shouldn't have to think about it. With Well, you won't.


Features & Benefits

  • 100,000+ web portals covered
    From the most-used SaaS, utilities, and e-commerce platforms to long-tail portals you thought no one could automate.

  • Omnichannel capture
    Collect invoices from Gmail, WhatsApp, PDFs, and more — in real time.

  • Works with your stack
    Seamlessly connects to your accounting tools, ERP, CRM, and spreadsheets — no extra setup.

  • Self-healing workflows
    Well adapts on the fly when supplier interfaces change.

  • Privacy-first by design
    No passwords stored. Fully compliant with GDPR and CCPA.

  • Export Formats Well supports exporting invoice data to multiple formats:

Format Description Best For
JSON Standard JSON format APIs, Web Apps
CSV Comma-separated values Spreadsheets, Data Analysis
XML Standard XML format Enterprise Systems
UBL Universal Business Language 2.1 International e-Invoicing
QuickBooks IIF format QuickBooks Desktop
Xero Xero-compatible CSV Xero Accounting
  • Data Validation
  • Automatic validation of required fields
  • Type checking for amounts and dates
  • Extensible validation rules
  • Clear error messages for data issues

Use Cases

  • Founder on the move
    One click, zero effort — Well retrieves invoices from emails, browsers, or WhatsApp.

  • Operator prepping for month-end
    Pull 50+ invoices from 15+ portals in under 5 minutes — no mental load.

  • Finance lead applying the 5S mindset
    Enforce structure at the source: sort, shine, sustain — and automate.

  • Manager tracking team budgets
    Monitor vendor spend in real time, catch budget drift, and uncover savings.

  • Accountant building a clean audit trail
    Substantiate expenses for tax time with complete, standardized records.


How It Works

Basic Usage

from exporters import get_exporter

# Get an exporter instance
exporter = get_exporter('json')  # or 'csv', 'xml', 'ubl', 'quickbooks', 'xero'

# Export data
data = {
    'invoice_number': 'INV-1234',
    'date': '2025-07-29',
    'amount': 199.99,
    'customer': 'Acme Corp',
    # ... other fields
}

exporter.export(data, 'invoice.json')

Required Fields

All invoices must include these required fields: - invoice_number (str): Unique identifier for the invoice - date (str): Invoice date in YYYY-MM-DD format - amount (float): Total invoice amount (must be positive) - customer (str): Name of the customer

  1. Browse our provider gallery
    Visit wellapp.ai/providers to explore thousands of supported portals.

  2. Launch the Chrome extension
    Install and pin the extension. One click to launch invoice retrieval.

  3. Auto-detect invoices as you browse
    Well's AI suggests retrieval when it sees a paid invoice.

  4. Batch-retrieve during tax season
    Run large-scale retrievals in a few clicks.

  5. Generate new blueprints with AI
    Use Contributor Mode to teach Well new workflows without code.

  6. Let it self-heal
    When a portal changes, Well adapts — no manual fixes needed.


Installation

  1. Install from the Chrome Web Store.
  2. Pin the extension to your toolbar.
  3. Log in to start syncing with your accounting tools.

MCP Integration

Connect your AI assistant to Well using the Model Context Protocol (MCP).

Query your invoices, companies, and contacts directly from Claude, Cursor, Windsurf, or ChatGPT.

Claude Code plugin (one-click)

The fastest way to use Well in Claude Code — bundles the MCP and finance skills (build a compte de résultat, balance sheet, reconcile transactions), no API key:

/plugin marketplace add WellApp-ai/Well
/plugin install well@well

Then run /mcp, select well, and Authenticate (browser sign-in). Run each command on its own line.

Quick Start (any MCP client)

https://api.wellapp.ai/v1/mcp

Add this URL to your MCP client and authenticate with your Well account. In Claude Desktop / web: Settings → Connectors → Add custom connector. In Codex: add it to ~/.codex/config.toml via mcp-remote.

Documentation

Available Tools

Tool Description
well_get_schema Discover available roots and fields
well_query_records Query invoices, companies, people, transactions, the accounting ledger, …
well_get_entity Fetch a single record by id
well_add_contact_channel Add an email/phone to a company or person
well_remove_contact_channel Remove a contact channel
well_update_invoice Update fields on an invoice
well_delete_invoice Delete an invoice

For full documentation, visit docs.wellapp.ai/mcp


Extending Well

Adding New Export Formats

  1. Create a new Python file in the exporters directory
  2. Create a class that inherits from BaseExporter
  3. Implement the _export method
  4. Add the @ExporterFactory.register() decorator

Example:

from .base_exporter import BaseExporter
from .exporter_factory import ExporterFactory

@ExporterFactory.register("myformat")
class MyFormatExporter(BaseExporter):
    """Exports invoice data to MyFormat."""

    def _export(self, data: dict, output_path: str) -> None:
        with open(output_path, 'w') as f:
            f.write(f"MyFormat: {data['invoice_number']}")

Contributing

We welcome contributions from the community. To propose a fix, feature, or improvement:

  • Open a pull request
  • Submit an issue
  • Or contribute a new blueprint via Contributor Mode

Please review our CONTRIBUTING.md and Code of Conduct.


License

Distributed under the MIT License. See LICENSE for more information.


Acknowledgments

Thanks to all contributors and early users who helped shape Well. Special thanks to the open source libraries and protocols that made this possible.


Roadmap

  • [ ] Launch public beta
  • [ ] Expand support to 200K+ portals
  • [ ] Add mobile retrieval assistant
  • [ ] Enable Zapier and Make integrations
  • [ ] Build a contributor leaderboard

FAQ

Q: Is my data safe with Well?
A: Yes. We store no passwords, follow strict encryption standards, and comply with GDPR and CCPA.

Q: Can I use Well outside Chrome?
A: Currently, Well is available as a Chrome extension. Other browsers may be supported in the future.

Q: How do I add a new portal?
A: Use Contributor Mode to guide the AI through your workflow. A blueprint is generated instantly.

Extension points exported contracts — how you extend this code

XmlOptions (Interface)
* FatturaPA XML Exporter * Generates compliant XML for Italian Sistema di Interscambio (SDI) * Based on FatturaPA form
ai-invoice-extractor/src/exporters/fatturapa-xml.ts
ErrorContext (Interface)
(no doc)
shared/errors/types.ts
DetectionIndicator (Interface)
(no doc)
ai-invoice-receipt-fraud-detector/packages/types/src/DetectionResult.ts
JsonExportOptions (Interface)
* FatturaPA JSON Exporter * Exports invoice data in JSON format mirroring FatturaPA structure * Provides both raw ex
ai-invoice-extractor/src/exporters/fatturapa-json.ts
RecoveryStrategy (Interface)
(no doc)
shared/errors/types.ts
DetectionResult (Interface)
(no doc)
ai-invoice-receipt-fraud-detector/packages/types/src/DetectionResult.ts
FatturapaJsonOutput (Interface)
(no doc)
ai-invoice-extractor/src/exporters/fatturapa-json.ts
ErrorDetails (Interface)
(no doc)
shared/errors/types.ts

Core symbols most depended-on inside this repo

getValue
called by 72
ai-invoice-extractor/src/exporters/fatturapa-xml.ts
getValue
called by 64
ai-invoice-extractor/src/exporters/fatturapa-json.ts
getValueWithConfidence
called by 53
ai-invoice-extractor/src/exporters/fatturapa-json.ts
generate_receipt_data
called by 37
ai-receipt-generator/src/core/data_generator.py
generate_image_prompt
called by 13
ai-receipt-generator/src/core/prompt_renderer.py
formatNumber
called by 11
ai-invoice-extractor/src/exporters/fatturapa-xml.ts
resolve_api_key
called by 10
ai-receipt-generator/src/core/config_loader.py
create
called by 10
ai-invoice-extractor/src/extractors/extractor.ts

Shape

Function 155
Method 141
Class 79
Route 45
Interface 11
Enum 1

Languages

Python63%
TypeScript37%

Modules by API surface

ai-receipt-generator/tests/test_comprehensive.py61 symbols
ai-receipt-generator/tests/test_api.py46 symbols
ai-receipt-generator/src/core/api/router.py36 symbols
ai-receipt-generator/src/core/api/models.py31 symbols
ai-invoice-extractor/src/exporters/fatturapa-xml.ts30 symbols
ai-invoice-extractor/src/extractors/extractor.ts23 symbols
ai-invoice-extractor/src/exporters/fatturapa-json.ts22 symbols
ai-invoice-receipt-fraud-detector/tests/fraud-detector.test.ts21 symbols
ai-receipt-generator/src/core/services/receipt_service.py15 symbols
ai-invoice-extractor/tests/integration/extractor-integration.test.ts13 symbols
shared/errors/base.ts12 symbols
ai-receipt-generator/src/core/api/app.py12 symbols

For agents

$ claude mcp add Well \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact