List your agent

Simpler.Asia

MCP server · hosted · v1.0.0 · asia.simpler/simpler-asia
Online · tested 2h agoNEW · 3h agoSeen in the registry 2h ago

Free back office for small businesses in Singapore and Southeast Asia: invoices, expenses, stock.

What it does

Simpler.Asia is an MCP server, a connector that lets an AI assistant use it as a tool. It is hosted: an assistant connects to it over the internet, nothing to install.

From the publisher's description, Electra Index matched it to one capability: invoicing. That makes it a candidate for tasks such as send and chase invoices.

Facts come from the Official MCP Registry, as declared by the publisher. Capabilities are matched automatically (low confidence) and are not a test of the tool.

At a glance

Hosted (remote)YES
Local installNO
Version1.0.0
PriceNot in the registry
First seen23 Oct 2026
Last checked2h ago

How to connect

As declared in the Official MCP Registry · hosted endpoint tested by Electra Index 2h ago (live check)

Hosted endpoint

  • https://simpler.asia/mcp streamable-http

In Claude Code: claude mcp add --transport http simpler-asia https://simpler.asia/mcp

MCP settings (Claude Desktop, Cursor and other MCP clients)

{
  "mcpServers": {
    "simpler-asia": {
      "url": "https://simpler.asia/mcp"
    }
  }
}

Live check

Electra Index connected to the hosted endpoint 2h ago

ONLINE Simpler.Asia answered an MCP connection on 23 Oct 2026 and introduced itself as simpler-prod 4fb66a9588e02a57 (MCP protocol 2025-06-18).

318 tools offered to AI assistants

  • simpler.directory · DISCOVERY TIER 1 of 3 — the service directory: one token-dense line per service (s:name st:status cost:class ops:N — purpose). START HERE instead of reading every tool. No auth required. NEXT: simpler.describe_service with a service name fr
  • simpler.describe_service · DISCOVERY TIER 2 of 3 — one service's operations and entity shapes from the live catalog, token-dense (op lines name the underlying tool). No auth required. NEXT: simpler.invoke {service, operation, args} — or call the named tool directly.
  • simpler.invoke · DISCOVERY TIER 3 of 3 — execute one operation: dispatches to the underlying generated tool (same gates, same envelope, same idempotency as calling it directly). Requires auth. args = the underlying tool's arguments object.
  • simpler.outcomes · DISCOVERY TIER 0 — the OUTCOME MENU: one line per common business outcome, each mapped to ONE tool with one-call notes (composites: ONE call creates the whole document). START HERE for a business task. No auth required. NEXT: call the named
  • simpler.approval_status · Check a parked approval by approval_id (returned in an APPROVAL_REQUIRED refusal). States: pending (the account owner has not decided — tell the user, do NOT retry the original call), executed (done — the result rides this response; never r
  • agent_note_send_cross_tenant · Send a cross-tenant AI-to-AI message into another tenant's agent_note inbox — the door that turns a cross_tenant_comm consent grant into an actual reach. Both tenants must be KYB-approved and the recipient must hold an active grant (claims
  • contact_upsert · Create-or-merge a contact keyed on email-then-phone identity — the sync door the future desktop harness and ingest lanes write through. Matching probes email first, then phone; a hit MERGES only the fields you send (omitted fields keep thei
  • expense_create · Logs a new expense — amount_cents must be integer CENTS (a decimal string via `amount` also works, and `category` resolves to a category_id by name). A same-amount, same-UTC-day duplicate for the same user is refused as CONFLICT unless you
  • expense_submit · Sends your own draft expense into the approval queue — draft only; an already-submitted or resolved expense refuses CONFLICT, and only the expense's own creator may submit it. Nobody is notified automatically — approvers see it appear in th
  • expense_approve · Approves a submitted expense claim — requires the admin or owner role, and only a 'pending' expense qualifies (CONFLICT otherwise). Stamps approved_by and approved_at with the caller and the current time; once approved, the row's content fr
  • interaction_create · Log an interaction — call, meeting, email, message, visit, payment, or other — against a contact. The ONE activity-logging door every lane funnels through, so the contact's last_contact_at freshness bumps no matter which surface logged the
  • invoice_create · ONE call creates the whole document: claims the next invoice number, then writes the header plus every line in `items` ([{description, quantity, unit_price_cents}], integer CENTS). client_name finds a client by name or creates one. Birth st
Show 88 more
  • invoice_adjustment_record · [REQUIRES APPROVAL] Records a credit note, write-off or post-issue discount on an issued invoice. A credit_note is numbered from the credit note series, holds its tax at the invoice's rate and takes reason_code and credit_outcome: reduce_ba
  • invoice_payment_record · Records a money-in fact row against an invoice (by invoice_id or its invoice_number) in ONE call: money is integer CENTS via amount_cents, or a decimal STRING via amount — never multiply or divide yourself. A draft invoice auto-advances to
  • myinvois_invoice_generate · Mint a sealed LHDN e-invoice in ONE call: invoice_type, line_items (unit_price_cents in integer CENTS, tax_rate_bps in basis points), and a buyer as customer_id or an inline buyer object. Refuses until myinvois_settings_save is done; invoic
  • myinvois_invoice_record_submission · Record the UUID the LHDN MyInvois portal assigned after the owner keyed this e-invoice into the portal (its form or LHDN's Excel batch template). Simpler never submits to LHDN and never calls the MyInvois API; this only stores the UUID the
  • myinvois_invoice_read · Read one sealed e-invoice by id, with its portal_field_sheet: the document's values laid out to key into the LHDN MyInvois portal form (e-invoice details, supplier, buyer, each line, totals), coded values with their meaning. Simpler never s
  • quote_create · ONE call creates the whole document: claims the next atomic quote number, then writes the header plus every line in `items` ([{description, quantity, unit_price_cents}], integer CENTS) together. client_name resolves an existing client by na
  • quote_convert · Converts a quote into its invoice in ONE call: claims the quote's 'converted' status first (so a lost race never creates an orphan invoice), copies every live line item across, and records converted_invoice_id — nothing else to do afterward
  • settlement_proposal_propose_cross_tenant · Record a payment obligation against a KYB-verified partner tenant's settlement_proposals — the record-don't-move on-ramp: this writes the row only, no money moves until a later settlement-rails door executes it. amount_cents is a nonzero in
  • sticky_note_create · Create a sticky_note.
  • stock_item_adjust · Move stock in or out by id or item name, in one atomic write with its movements-ledger row: stock-out clamps at zero (never negative) and applied_quantity reports what actually moved. An unmatched name CREATES the item at quantity 0 first s
  • team_assignment_create · [REQUIRES APPROVAL] Delegates a task to a teammate (or yourself) as a new team_assignment; status is workflow-owned and always starts 'pending' — passing status yourself fails validation instead of being silently overridden. Accepts natural
  • workflow_create · Create a workflow — an AI operator's job: validates definition_json (a { nodes, edges, schedule? } graph) against the platform's node vocabulary, refusing unknown node types and any comms/message-shaped step that isn't a prepare_output node
  • workflow_prepared_outputs · List this tenant's APPROVED prepared outputs: drafts a workflow's prepare_output nodes parked for review, which a human then approved in the platform inbox. Pending and rejected drafts never appear here — approval happens only in the inbox,
  • ai.budget · Your prepaid wallet, period spend, caps, and runway as a compact line DSL (~8 lines). Requires auth (your balance is closed data). Read this BEFORE committing paid actions; pair with ai.estimate_cost to price a specific call first.
  • ai.estimate_cost · Price an AI task BEFORE running it: provider passthrough at wholesale cost, no markup — the per-token platform fee is retired, so text/reasoning passes through at cost. Anonymous — open catalog includes open pricing. Returns integer micro-U
  • sales_receivables · Who owes you, by client: each client's unpaid balance aged by days past its due date — current (not yet due), 1-30, 31-60, 61-90 and over 90 days — counted in the business's own days (the sales_settings time zone), so an invoice due today i
  • sales_document_show · Show one invoice, quote or receipt as the document itself. When the result has a second content block, it is the document as copy-ready plain text (title, business, billed to, dates, one line per item, the totals as printed, notes, payment
  • invoice_message_prepare · Prepare what a business sends a client about one issued invoice: purpose 'invoice', 'reminder' (overdue), 'receipt' (paid in full) or 'promise_follow_up' (promised date passed); left out, the one that fits. language 'en', 'ms' or 'zh'; left
  • invoice_reminders_due · Today's collection list, in the business's days (its sales_settings time zone). reminders: each issued invoice still owed that is 3 days before its due date, on it, or 7 or 14 days after, as its client's reminder_cadence allows (standard, f
  • statement_prepare · A client's statement of account over a period of the business's own days (the sales_settings time zone): the balance they owed before it (opening), each invoice issued, payment received, credit and write-off in it with a running balance, th
  • invoice_handoff · Get one issued invoice ready to give the client, in one call: the document, the client link (made if it has none), the PDF (printed or the stored one) and the prepared message (invoice_message_prepare's words, with the link). ready lists th
  • forecast.run · WHAT-IF / scenario lane: runs monthly data YOU supply through a seeded 5,000-path simulation of monthly revenue and costs; bands are simulation outputs, not calibrated probabilities. The paths are clustered into 3-7 outcome bands for the ne
  • forecast.run_stored · Run the tenant's REAL forecast from the books — cash receipts (recorded invoice payments by payment date, plus paid invoices with no recorded payment at their paid date, flagged) and expenses by expense date, monthly in the tenant's base cu
  • forecast.read · Read the tenant's STORED forecast — the verify-read for this rail. view picks the answer, one of summary, monthly, variance, scenarios, weekly (default summary). summary: the outcome bands (label, growth_direction, probability_pct, final_mo
  • image.generate · [paid: $0.042/image max] Generate 1-3 images from a text prompt on the first lane that delivers, tried in order: gemini-2.5-flash-image via the Cloudflare AI Gateway, square requests only ($0.0406/image), then @cf/black-forest-labs/flux-2-d
  • document.extract · Fetch a document from a URL, classify its type (personal/medical/business/unknown) with keyword + PII-pattern heuristics (documents containing actual PII data are NEVER business), and return extracted text capped at 100K chars. Free. STREAM
  • spreadsheet.create_with_content · Create a spreadsheet in the user's library from CSV content in ONE call: the platform stores the bytes (honest text/csv) and registers the file row. Free — storage costs nothing; only AI lanes bill. Returns the file row including its id. Re
  • agent_note_mark_read · Confirm receipt of a note in your cross-tenant agent_note inbox — the ONLY edit a recipient holds, moving status unread to read under the registry's transition guard. Idempotent: re-confirming an already-read note is a no-op, and the subjec
  • agent_note_list · List your agent_note rows (newest first).
  • agent_note_read · Read one agent_note by id.
  • brand_assets_read · Read one brand_assets by id.
  • brand_assets_list · List your brand_assets rows (newest first).
  • consent_grant_list · List your consent_grant rows (newest first).
  • consent_grant_read · Read one consent_grant by id.
  • contact_create · Create a contact and, in the same call, log its first note and/or first interaction — the composite first-touch door. Children validate before the contact write; if the contact commits but a child then fails, the error names the contact's i
  • contact_update · Update a contact you own (optionally compare-and-set via expected_updated_at).
  • contact_delete · Delete a contact you own.
  • contact_read · Read one contact by id.
  • contact_list · List your contact rows (newest first).
  • contact_search · Search your contact rows by text.
  • contact_note_create · Add a note to a contact — the same door as the granular tool, extended only to accept contact_name, contact_email or contact_phone in place of contact_id. A name match must be unique: more than one hit refuses, listing the candidate ids; ze
  • contact_note_list · List your contact_note rows (newest first).
  • contact_note_read · Read one contact_note by id.
  • contact_note_delete · Delete a contact_note you own.
  • desk_surface_create · Pins one widget or a saved artifact onto the operator's home canvas. kind='widget' requires widget_key from the shipped enum; kind='artifact' requires content_ref (an assistant artifact id) — the door enforces whichever pair the kind demand
  • desk_surface_update · Moves, resizes, or restacks a surface already on the desk canvas — x/y/w/h/z_index are real column writes, not a layout cache. The surface's identity is frozen here: kind, widget_key, and content_ref never change through this door, only via
  • desk_surface_read · Read one desk_surface by id.
  • desk_surface_list · List your desk_surface rows (newest first).
  • desk_surface_delete · Delete a desk_surface you own.
  • edit_project_create · Create a canvas project from a Fabric.js toJSON serialization (canvas_json, required): every embedded data:image src is pulled out, hashed, and written to a tenant-scoped, content-addressed R2 key before the row is saved, so canvas_json nev
  • edit_project_update · Save changes to an existing canvas project by id — the autosave door: send only the fields that changed (name, canvas_json, width, height, thumbnail_data_url), everything else on the row is left alone. A canvas_json you send goes through th
  • edit_project_read · Read one edit_project by id.
  • edit_project_list · List your edit_project rows (newest first).
  • edit_project_delete · Delete a edit_project you own.
  • expense_update · Edits an expense's own fields only — status and approval stamps refuse with VALIDATION_ERROR here since those are transitions (expense_submit, expense_approve, expense_reject, expense_reimburse). amount_cents, if changed, must stay integer
  • expense_delete · Deletes an expense you created — draft and rejected rows only. Pending, approved, and reimbursed rows are approval-trail records and refuse with CONFLICT (approval_locked: true), and the lock is pinned into the delete itself so a status cha
  • expense_reject · Rejects a submitted expense claim — requires the admin or owner role, and only a 'pending' expense qualifies (CONFLICT otherwise). rejection_reason (up to 500 chars) is optional but records why; rejected is terminal and never counts as spen
  • expense_reimburse · Marks an approved expense as paid out — restricted to the tenant owner because it moves real money, and only an 'approved' expense qualifies (CONFLICT otherwise). Stamps reimbursed_at, after which the row's content freezes unconditionally s
  • expense_read · Read one expense by id.
  • expense_list · List your expense rows (newest first).
  • expense_search · Search your expense rows by text.
  • expense_aggregate · Aggregate (count/sum) over your expense rows.
  • expense_budget_create · Create a expense_budget.
  • expense_budget_update · Update a expense_budget you own (optionally compare-and-set via expected_updated_at).
  • expense_budget_delete · Delete a expense_budget you own.
  • expense_budget_read · Read one expense_budget by id.
  • expense_budget_list · List your expense_budget rows (newest first).
  • expense_category_create · Adds a custom category to your tenant's category table — slug must be 1-50 chars of lowercase a-z, 0-9, '-' or '_' and unique per tenant (CONFLICT if taken). is_default is server-owned: supplying it at all refuses with VALIDATION_ERROR, and
  • expense_category_update · Edits a category's name, icon, color, or sort_order — slug and is_default are the category's fixed identity, and any attempt to change either refuses with VALIDATION_ERROR. color, when given, must be a #rrggbb hex value. Create a new catego
  • expense_category_delete · Deletes a custom category — categories are tenant-shared, so any tenant member can remove one regardless of who created it; the 9 seeded defaults are undeletable and refuse with CONFLICT (default_category: true). Expenses already carrying t
  • expense_category_ensure_defaults · Seeds the 9 canonical default categories (Food & Dining, Transport, Utilities, Shopping, Entertainment, Healthcare, Travel, Office & Supplies, Other) into your tenant, skipping any slug that already exists. Takes no arguments and is safe to
  • expense_category_read · Read one expense_category by id.
  • expense_category_list · List your expense_category rows (newest first).
  • expense_recurrence_create · Create a expense_recurrence.
  • expense_recurrence_update · Update a expense_recurrence you own (optionally compare-and-set via expected_updated_at).
  • expense_recurrence_delete · Delete a expense_recurrence you own.
  • expense_recurrence_read · Read one expense_recurrence by id.
  • expense_recurrence_list · List your expense_recurrence rows (newest first).
  • interaction_upsert · Create-or-update a interaction keyed on source_ref.
  • interaction_list · List your interaction rows (newest first).
  • interaction_read · Read one interaction by id.
  • invoice_update · Edits an invoice's header fields and status. status 'paid' cannot be set here — it derives from the payment ledger, so call invoice_payment_record instead. Status moves are machine-checked (draft to sent/cancelled, sent to cancelled); cance
  • invoice_share · Returns share_url, the client's view link for this invoice, and the full document (parties, lines, totals in integer CENTS) in one call. action: 'get' (default) returns the live link; 'rotate' replaces it and the old link stops working; 're
  • invoice_payer_confirmation · Acts on a payer's report, sent from the invoice's client page, that they have paid. action 'accept' records the payment with the same writer as invoice_payment_record, graded counterparty_confirmed: the amount is amount_cents (or amount) wh
  • invoice_debit_note · [REQUIRES APPROVAL] Issues a numbered debit note that raises what an issued ('sent' or 'paid') invoice is owed: an extra charge, or a price or tax correction. It is numbered from the debit note series and adds amount_cents (or a decimal STR
  • invoice_reissue · Voids a 'sent' invoice with no money on it and reissues it under the next number: 'sent', dated today, same client, currency, notes, terms and lines, tax on today's rules, the old days to pay unless due_date is sent. A foreign-currency sg_g
  • invoice_promise_set · Records the date a client promised to pay an issued invoice that still has money owed: promised_payment_date 'YYYY-MM-DD', the business's own date, today or later. clear true removes it. invoice_read then shows promise_status: pending until
  • invoice_read · Returns one invoice with its money and state worked out on read, in integer CENTS: subtotal_cents, tax_cents, total_cents, paid_cents, credited_cents, adjusted_cents, remaining_cents (copy remaining_cents, never compute it). state: draft, s

The first 100 are shown.

What "online" means: the server answered an MCP connection at the time of the check. It is not a guarantee of security, quality or continuous uptime. How we test: we open an MCP session and ask for the tool list, as an AI assistant would. We never run a tool and never send a key. Checked every few days. Method

Is this your server? Monitoring Pro: a check every 30 minutes and an email within the hour when it stops answering. $9.99/month.

Tasks it helps with

Share of each task's required capabilities it covers

Similar tools

Listed for the same task: send and chase invoices
  • FoxyInvoiceREMOTELOCAL
    Invoicing tools for AI assistants: clients, draft invoices with computed tax, and email sending
  • Pax8 MCPREMOTELOCAL
    Every Pax8 Partner API endpoint, plus an offline store that reconciles billing, tracks MRR, and
  • Every QuickBooks Online Accounting entity, plus an offline SQLite mirror and AR/AP aging
  • vn-skillsREMOTELOCAL
    Vietnam tools: VietQR, addresses, tax IDs, CCCD, holidays, money in words, lunar calendar, e-invoice
  • Maxio MCPREMOTELOCAL
    Open, local revenue-intelligence CLI for Maxio Advanced Billing - MRR waterfalls
  • Fleet-wide Cove Data Protection backup health, billing, and storage trends from your terminal

Ready-made AI agents

An MCP server is a connector you add to your own assistant. These are finished products that do the same job for you:

Facts & evidence

Each fact shows where it was seen and when.
FactValueEvidenceSourceLast confirmed
Hosted endpointhttps://simpler.asia/mcpDECLAREDSRC-001 Official MCP Registry2h ago
Local install (package)noDECLAREDSRC-001 Official MCP Registry2h ago
Remote access (hosted)yesDECLAREDSRC-001 Official MCP Registry2h ago
Websitehttps://simpler.asiaDECLAREDSRC-001 Official MCP Registry2h ago
Registry statusactiveDECLAREDSRC-001 Official MCP Registry2h ago
Version1.0.0DECLAREDSRC-001 Official MCP Registry2h ago
MCP serveryesDECLAREDSRC-001 Official MCP Registry2h ago

Change history

  • NEW23 Oct 2026
    first seen in the index

Is this page accurate?

Flag it and our robot re-checks the official source. Reports never change a score.

Questions about Simpler.Asia

How do I connect Simpler.Asia?

Use the hosted endpoint https://simpler.asia/mcp in your assistant's MCP settings. The exact settings are in "How to connect" above, as declared in the Official MCP Registry.

What tools does Simpler.Asia offer?

When Electra Index connected on 23 Oct 2026, it listed 318 tools: simpler.directory, simpler.describe_service, simpler.invoke, simpler.outcomes, simpler.approval_status, agent_note_send_cross_tenant, contact_upsert, expense_create and more. The full list is in "Live check" above.

Is Simpler.Asia online?

Yes. Its hosted endpoint answered an MCP connection from Electra Index 2h ago.

What can I use Simpler.Asia for?

Based on its description, it is most relevant to: send and chase invoices.