vietnam-invoice-mcp

Let AI agents issue Vietnam e-invoices (hoa don dien tu) — create via your own MISA meInvoice account, sign merchant-side with your USB token, publish and…

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Create Invoice: STEP 1 of the MISA meInvoice flow: create a Vietnamese e-invoice (hóa đơn điện tử) draft on MISA — the POST /itg/invoicepublishing/createinvoice call. You supply seller, buyer and line
  • Publish Invoice: STEP 3 of the MISA meInvoice flow: publish an ALREADY-SIGNED e-invoice — the POST /itg/invoicepublishing call. After create_invoice returns invoice_data (unsigned XML) and you sign it
  • Query Invoice: Look up the status of one or more published e-invoices — the POST /itg/invoicepublished/invoicestatus call (read-only). Pass the transaction_id(s) returned by create_invoice/publish_inv

What data it sees

Do you need an account

No: the server works without sign-in

Let AI agents issue Vietnam e-invoices (hoa don dien tu) — create via your own MISA meInvoice account, sign merchant-side with your USB token, publish and query. Stateless remote MCP server: bring your own credentials, VAT 10/8/5/0% computed locally, never stores data.

How to connect

How to connect vietnam-invoice-mcp to Claude

The server address to paste into Claude settings:

https://vietnam-invoice-mcp--wishpool.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect vietnam-invoice-mcp to ChatGPT

The server address to paste into ChatGPT settings:

https://vietnam-invoice-mcp--wishpool.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect vietnam-invoice-mcp to Cursor

The server address to paste into Cursor settings:

https://vietnam-invoice-mcp--wishpool.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (3)

Raw names from tools/list. Only developers need these.

create_invoiceSTEP 1 of the MISA meInvoice flow: create a Vietnamese e-invoice (hóa đơn điện tử) draft on MISA — the POST /itg/invoicepublishing/createinvoice call. You supply seller, buyer and line items; this server computes the Vietnamese VAT (thuế GTGT) math locally in VND (integer đồng — no decimals) and forwards the payload. MISA returns a transaction_id, ref_id and invoice_data (an UNSIGNED invoice XML). This server does NOT sign: you then sign invoice_data MERCHANT-SIDE with your own digital signature / USB Token (chữ ký số) using the MISA local signing service, and pass the signed XML to publish_invoice (STEP 3). VAT rates: 10 (standard), 8 (temporary reduced), 5 (essentials), 0 (exports). Set withCode=true if you issue invoices WITH a tax-authority code (hóa đơn có mã); default false (không mã). Result accepted=true when MISA created the draft with no per-document error (check error_code). Required credential headers (set once in your MCP client, per-request, never stored): x-meinvoice-token (your MISA meInvoice access token) + x-meinvoice-taxcode (your company tax code / MST, sent as CompanyTaxCode). Optional header x-meinvoice-env: test (default = sandbox testapi.meinvoice.vn, no fiscal effect) | prod (production api.meinvoice.vn, real fiscal effect). Optional owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools. All amounts are in VND (đồng, whole numbers — no decimals).
publish_invoiceSTEP 3 of the MISA meInvoice flow: publish an ALREADY-SIGNED e-invoice — the POST /itg/invoicepublishing call. After create_invoice returns invoice_data (unsigned XML) and you sign it MERCHANT-SIDE with your USB Token (chữ ký số) via the MISA local signing service, pass the signed XML back here with its transaction_id and ref_id. MISA submits it to the tax authority (Tổng cục Thuế) and returns the official inv_no (số hóa đơn), inv_code (mã cơ quan thuế, for coded invoices) and inv_series. This server does NOT sign — it only forwards the signed document. Set withCode to match how the invoice was created. Result accepted=true when MISA published with no per-document error (check error_code); common errors: SignatureEmpty, InvalidSignature, InvoiceNumberNotContinuous, InvoiceDuplicated. Required credential headers (set once in your MCP client, per-request, never stored): x-meinvoice-token (your MISA meInvoice access token) + x-meinvoice-taxcode (your company tax code / MST, sent as CompanyTaxCode). Optional header x-meinvoice-env: test (default = sandbox testapi.meinvoice.vn, no fiscal effect) | prod (production api.meinvoice.vn, real fiscal effect). Optional owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools. All amounts are in VND (đồng, whole numbers — no decimals).
query_invoiceLook up the status of one or more published e-invoices — the POST /itg/invoicepublished/invoicestatus call (read-only). Pass the transaction_id(s) returned by create_invoice/publish_invoice. Result per invoice: publish_status (MISA SaveInvoiceStatus int — draft/published state), send_tax_status + send_tax_status_label = the tax-authority (cơ quan thuế) submission status. For invoices WITHOUT a code (không mã): 0=not sent, 1=sent, 2=accepted, 3=rejected, 4=send error. For invoices WITH a code (có mã, withCode=true): 0=awaiting code, 1=send error, 2=code issued, 3=code rejected. Also returns invoice_code, reference_type (0=original, 1=replacement, 2=adjustment), is_deleted and received_status (0=not received, 1=received). Set withCode to match the invoice type. Required credential headers (set once in your MCP client, per-request, never stored): x-meinvoice-token (your MISA meInvoice access token) + x-meinvoice-taxcode (your company tax code / MST, sent as CompanyTaxCode). Optional header x-meinvoice-env: test (default = sandbox testapi.meinvoice.vn, no fiscal effect) | prod (production api.meinvoice.vn, real fiscal effect). Optional owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools. All amounts are in VND (đồng, whole numbers — no decimals).