Mirae Invoice for AI assistants

Connect your assistant to your Mirae Invoice account over MCP, the open standard assistants use to reach other apps. Then ask it to draft invoices, tell you who still owes you, or mark one paid.

MCP server address

https://invoice.miraestudio.id/api/mcp

Connect your assistant

Every assistant does the same three things: you add the address above, sign in to Mirae Invoice in your browser, and choose what it may do. You need a Mirae Invoice account; guest invoices cannot be connected.

  • Claude (web, desktop and mobile)

    Plans: All plans. Free is limited to one custom connector.

    1. Open Customize › Connectors, press +, then Add custom connector.
    2. Paste the address, press Add, and sign in to Mirae Invoice when asked.
    3. In a chat, open + › Connectors and switch Mirae Invoice on.
    4. Team and Enterprise: an Owner adds it under Organization settings › Connectors. Members then press Connect on it.
  • ChatGPT

    Plans: Plus, Pro, Business, Enterprise and Education, on the web. Your workspace policy may turn it off.

    1. Open Settings › Security and login and turn on Developer mode.
    2. Go to chatgpt.com/plugins, press +, give it a name, and paste the address under Connection.
    3. In a chat, open + › Developer mode and pick Mirae Invoice. ChatGPT asks you before each change it makes.
  • Claude Code

    Plans: Any plan that includes Claude Code.

    1. Run the command below.
    2. Start Claude Code, type /mcp, and sign in to Mirae Invoice in the browser.
    Terminal
    claude mcp add --transport http mirae-invoice https://invoice.miraestudio.id/api/mcp
  • Cursor

    Plans: Not stated by Cursor.

    1. Add the server to .cursor/mcp.json in your project, or ~/.cursor/mcp.json for every project.
    2. Cursor asks you to sign in the first time it connects.
    .cursor/mcp.json
    {
      "mcpServers": {
        "mirae-invoice": {
          "url": "https://invoice.miraestudio.id/api/mcp"
        }
      }
    }
  • VS Code with GitHub Copilot

    Plans: Copilot Free, Pro, Pro+ and Max. On Business and Enterprise an admin must allow MCP servers first.

    1. Add the server to .vscode/mcp.json, or run MCP: Add Server from the Command Palette.
    2. A browser window opens to sign in the first time it connects.
    .vscode/mcp.json
    {
      "servers": {
        "mirae-invoice": {
          "type": "http",
          "url": "https://invoice.miraestudio.id/api/mcp"
        }
      }
    }
  • Gemini CLI

    Plans: Any Gemini CLI account.

    1. Run the command below.
    2. Type /mcp auth mirae-invoice and sign in to Mirae Invoice in the browser.
    Terminal
    gemini mcp add --transport http mirae-invoice https://invoice.miraestudio.id/api/mcp

For agents

If an agent is setting this up for you, give it the brief below. It has everything the agent needs; the sign-in step still needs you in a browser.

Brief
Add the Mirae Invoice MCP server.
URL: https://invoice.miraestudio.id/api/mcp
Transport: Streamable HTTP. No API key: sign-in is OAuth 2.1 with dynamic client registration and PKCE,
discovered from the 401 WWW-Authenticate header (RFC 9728).
Scopes: invoices:read (required), invoices:write (to change invoices).
The user must log in to Mirae Invoice and allow access in the browser the first time.
Each invoice is in IDR or SGD; amounts are in its currency (Rp2.5 juta = 2500000, S$12.50 = 12.5). Dates are YYYY-MM-DD in WIB.
Nothing can be deleted permanently over MCP; trash_invoice and trash_client can be undone.
Ask the user before publish_invoice: publishing locks the invoice.

What it can do

Your assistant picks these tools on its own when you ask. Tools that change anything are only there if you allowed changes when connecting.

See your data

get_profile
Your business name, signer name and default payment instruction.
list_clients
Search your clients, or list the ones in Trash.
list_invoices
Invoices by state: draft, unpaid, overdue or paid.
get_invoice
One invoice in full: totals with discount and tax, links to open it or download the PDF, its share link, and how often that link was opened.
get_receivables_summary
What is still owed, what is overdue, and by whom.

Make changes (only if you allowed them)

save_client
Add a client or change one.
update_profile
Change your business name, signer name or payment instruction.
create_draft_invoice
Write a new draft with your usual defaults, with a discount or tax line if you ask.
update_draft_invoice
Change a draft: items, dates, number, discount, tax, payment details.
publish_invoice
Publish a draft. This locks it, like pressing Publish in the app.
back_to_draft
Unlock a published, unpaid invoice so it can be edited.
set_paid
Mark a published invoice paid or unpaid.
trash_invoice
Move an invoice to Trash. You can restore it.
trash_client
Move an unused client to Trash. You can restore it.
restore_invoice
Bring an invoice back from Trash, with its client.
restore_client
Bring a client back from Trash.

You stay in charge

  • You approve every connection

    Nothing connects until you sign in and press Allow. Untick “Create and change invoices” to let it only read.

  • Nothing is deleted for good

    An assistant can only move things to Trash. Permanent delete is only in the app, in the Deleted tab.

  • Sent invoices stay as sent

    A published invoice is locked. Changing it means moving it back to draft first, and a paid one stays locked.

  • Disconnect any time

    Profile › AI assistant lists every connected app. Disconnect cuts it off on its very next request.

  • It sees only what it needs

    Never your password, never your signature image. Only your own clients and invoices.

Availability

Works with

Any assistant that supports remote MCP servers with OAuth sign-in, including the ones above. We test every release with the official MCP client libraries on both current protocol versions, 2025-11-25 and 2026-07-28.

Service

Price
Free, like the rest of Mirae Invoice.
Where it runs
Alongside the app at invoice.miraestudio.id. When the app is up, so is the MCP server.
Staying connected
Your assistant renews its access by itself. After 30 days without use it asks you to sign in again.
Limits
Each connected assistant can make 120 requests a minute, and one network can open 10 new connections a minute. Over the limit, the answer says how many seconds to wait. Normal use never reaches either.
Support hours
09:00–17:00 WIB (UTC+7).

Technical details

Endpoint
https://invoice.miraestudio.id/api/mcp (POST, Streamable HTTP)
Protocol
2026-07-28, plus stateless 2025-era requests (2025-11-25 and earlier)
Resource metadata
https://invoice.miraestudio.id/.well-known/oauth-protected-resource/api/mcp
Authorization server
https://invoice.miraestudio.id/.well-known/oauth-authorization-server/api/auth
Client registration
Dynamic (RFC 7591) at https://invoice.miraestudio.id/api/auth/oauth2/register
Scopes
invoices:read, invoices:write, plus openid, profile, offline_access
Tokens
Access tokens last 1 hour and are bound to the /api/mcp resource. Refresh tokens last 30 days.