# Simpler Asia MCP server

Source: https://glimind.com/server/mcp-registry%2Fasia.simpler%2Fsimpler-asia
Registry id: `mcp-registry/asia.simpler/simpler-asia`
Status: live (checked 2026-10-27T07:18:24.362Z)

## Measurements (30 days)

- Uptime: 100%
- Checks: 1035
- Outages (90 days): 0

## Install

```json
{
  "mcpServers": {
    "simpler-asia-mcp-server": {
      "type": "http",
      "url": "https://simpler.asia/mcp"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http simpler-asia-mcp-server https://simpler.asia/mcp
```

## Tools (300)

- `agent_note_list`: List your agent_note rows (newest first).
- `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 
- `agent_note_read`: Read one agent_note by id.
- `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 t
- `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 p
- `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 
- `banking.import_statement`: Import one bank account's statement as CSV text (CSV today, PDF later) so the forecast starts from the bank's own balance. Owner or admin only. Stores each line
- `brand_assets_list`: List your brand_assets rows (newest first).
- `brand_assets_read`: Read one brand_assets by id.
- `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
- `contact_delete`: Delete a contact you own.
- `contact_list`: List your contact rows (newest first).
- `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 nam
- `contact_note_delete`: Delete a contact_note you own.
- `contact_note_list`: List your contact_note rows (newest first).
- `contact_note_read`: Read one contact_note by id.
- `contact_read`: Read one contact by id.
- `contact_search`: Search your contact rows by text.
- `contact_update`: Update a contact you own (optionally compare-and-set via expected_updated_at).
- `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 fi
- `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_r
- `desk_surface_delete`: Delete a desk_surface you own.
- `desk_surface_list`: List your desk_surface rows (newest first).
- `desk_surface_read`: Read one desk_surface by id.
- `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 
- `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 a
- `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 ten
- `edit_project_delete`: Delete a edit_project you own.
- `edit_project_list`: List your edit_project rows (newest first).
- `edit_project_read`: Read one edit_project by id.
- `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), 
- `expense_aggregate`: Aggregate (count/sum) over your expense rows.
- `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 appro
- `expense_budget_create`: Create a expense_budget.
- `expense_budget_delete`: Delete a expense_budget you own.
- `expense_budget_list`: List your expense_budget rows (newest first).
- `expense_budget_read`: Read one expense_budget by id.
- `expense_budget_update`: Update a expense_budget you own (optionally compare-and-set via expected_updated_at).
- `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
- `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 undeletabl
- `expense_category_ensure_defaults`: Seeds the 9 canonical default categories (Food & Dining, Transport, Utilities, Shopping, Entertainment, Healthcare, Travel, Office & Supplies, Other) into your 
- `expense_category_list`: List your expense_category rows (newest first).
- `expense_category_read`: Read one expense_category by id.
- `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 VALID
- `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-amo
- `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 (appro
- `expense_list`: List your expense rows (newest first).
- `expense_read`: Read one expense by id.
- `expense_recurrence_create`: Create a expense_recurrence.
- `expense_recurrence_delete`: Delete a expense_recurrence you own.
- `expense_recurrence_list`: List your expense_recurrence rows (newest first).
- `expense_recurrence_read`: Read one expense_recurrence by id.
- `expense_recurrence_update`: Update a expense_recurrence you own (optionally compare-and-set via expected_updated_at).
- `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
- `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 c
- `expense_search`: Search your expense rows by text.
- `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
- `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, 
- `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)
- `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 cal
- `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 p
- `image.add_shadow`: Add a product shadow to a cut-out (subject on transparency), cast from its alpha: kind drop, contact or reflection. angle 0..359 is the light direction counterc
- `image.adjust`: Apply 1..10 adjustments to a photo in order, with the editor's own kernels: a one-op stack returns the same pixels as that tool in the editor. ops is a list of 
- `image.convert`: [paid: $0.0005] Convert an image to PNG, JPEG or WebP, and optionally bound its size, with the Cloudflare Images service: a PNG, JPEG, WebP, GIF or HEIC goes in
- `image.cut_background`: [paid: $0.02] Remove the background from a photo, returning the subject on transparency (BiRefNet). Returns JSON {images:[{url, asset_key, download_url?, width,
- `image.describe`: Analyze a photo with vision (subjects, defects, OCR text, composition) and return a description. Token-billed at the platform's vision rates. Returns JSON {text
- `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 Ga
- `image.generate_for_edit`: [paid: $0.04] Generate an image from a text prompt (google/nano-banana-2-lite) sized for editing. Returns JSON {images:[{url, asset_key, download_url?, width, h
- `image.harmonize`: Match a pasted subject's light and colour to its scene: a Reinhard colour transfer in CIELAB moves the subject's mean and spread toward the scene's, weighted by
- `image.inpaint`: [paid: $0.07] Remove or replace a masked region of a photo (FLUX Fill). White mask pixels = edit region. Returns JSON {images:[{url, asset_key, download_url?, w
- `image.marketplace_check`: Check a product photo against a marketplace's listing-image rules before the seller uploads it: shopee, lazada or tiktok_shop. Free and read-only: the platform'
- `image.replace_background`: [paid: $0.07] Replace a photo's background with a generated scene (FLUX Fill). Pass a mask covering the background (white = background). Returns JSON {images:[{
- `image.replace_sky`: [paid: $0.07] Replace a photo's sky (FLUX Fill). Pass a mask covering the sky (white = sky). Returns JSON {images:[{url, asset_key, download_url?, width, height
- `image.segment_at`: [paid: $0.01] Segment the object at pixel (x, y) via SAM 2 and return its mask image. Returns JSON {images:[{url, asset_key, download_url?, width, height}], pri
- `image.style_transfer`: [paid: $0.04] Apply a style to a photo while preserving the content (FLUX img2img, strength 0.55). Returns JSON {images:[{url, asset_key, download_url?, width, 
- `image.upscale`: [paid: $0.06] Upscale a photo 4x via aura-sr super-resolution. Returns JSON {images:[{url, asset_key, download_url?, width, height}], price, next} plus a previe
- `image.variation`: [paid: $0.04/image] Generate 1-3 variations of a reference image guided by a prompt (FLUX Pro Kontext, context-aware). Pass image_asset_key (an earlier result) 
- `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 t
- `interaction_list`: List your interaction rows (newest first).
- `interaction_read`: Read one interaction by id.
- `interaction_upsert`: Create-or-update a interaction keyed on source_ref.
- `invoice_adjustment_delete`: [REQUIRES APPROVAL] Retires a dilution fact row — the only correction lane (adjustments are append-only; amounts are never edited). If the retired row was a cre
- `invoice_adjustment_list`: List your invoice_adjustment rows (newest first).
- `invoice_adjustment_read`: Read one invoice_adjustment by id.
- `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 i
- `invoice_client_create`: Create a invoice_client.
- `invoice_client_delete`: Delete a invoice_client you own.
- `invoice_client_link_tenant`: [REQUIRES APPROVAL] Asserts that a billing client IS an on-platform tenant (or pass counterparty_tenant_id null to unlink) and retro-stamps that client's existi
- `invoice_client_list`: List your invoice_client rows (newest first).
- `invoice_client_read`: Read one invoice_client by id.
- `invoice_client_search`: Search your invoice_client rows by text.
- `invoice_client_update`: Update a invoice_client you own (optionally compare-and-set via expected_updated_at).
- `invoice_client_upsert`: Create-or-update a invoice_client keyed on email.
- `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_cent
- `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. I
- `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 p
- `invoice_item_create`: Adds one line item to an invoice. unit_price_cents is integer CENTS, 0 or more ($15.00 → 1500); quantity is 0.001 to 1,000,000 with up to 3 decimals (1.5 hours 
- `invoice_item_delete`: Soft-deletes a line item — it leaves the invoice and its derived total immediately, but the row is retired for audit history, never removed. expected_updated_at

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
