Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.3.1 instead.

finizi-app-agent (PyPI: finizi-app)

CLI + MCP server for the finizi-app-api Vietnamese accounting, tax, payroll, and operations platform — built to work with the admin.finizi.ai application.

What it is

finizi-app-agent (distributed as the PyPI package finizi-app) is a thin wrapper that exposes 33 carefully-chosen workflows of the finizi-app-api as:

  1. finizi-app CLI — a scriptable command-line tool with stable JSON output
  2. MCP server — agent-callable tools via stdio or Streamable HTTP

Both surfaces share a single core/ package, so the same business logic is exercised in tests, CLI, and MCP.

The wrapper targets the production admin.finizi.ai application by default but every endpoint is fully configurable through the credential resolution chain.

Install

# from finizi-app-api repo root (editable)
uv pip install -e ./finizi-app-agent

# or, once published, install the distribution
uv pip install finizi-app

Endpoint configuration

The CLI/MCP client talks to a finizi-app-api backend. By default it targets the production admin.finizi.ai application. Override through any of:

Layer Variable Example
Flag (CLI) --api-url finizi-app doctor --api-url https://staging.admin.finizi.ai
Process env FINIZI_API_URL export FINIZI_API_URL=https://staging.admin.finizi.ai
.env.local FINIZI_API_URL=... per-developer override
.env.<FINIZI_ENV> same per-environment
.env same shared default
User config ~/.config/finizi-app/credentials.json {"api_url": "..."}
Project config ./.finizi-app/credentials.json same
OS keychain finizi-app-agent/api_url security add-generic-password -s finizi-app-agent -a api_url -w 'https://...'
Default built-in https://admin.finizi.ai

FINIZI_MCP_URL is also configurable; it defaults to {api_url}/mcp.

finizi-app doctor --json reports which layer resolved without printing values.

Quick start

# Check the API is reachable (uses default https://admin.finizi.ai)
finizi-app doctor

# Override for staging
FINIZI_API_URL=https://staging.admin.finizi.ai finizi-app doctor

# Authenticate (caches to OS keychain)
finizi-app auth login --phone +84xxxxxxxxx --password '...'

# Pick a tenant
finizi-app entities use --entity-id 42

# Run a workflow
finizi-app invoices list --entity-id 42 --page 1
finizi-app invoices import-xml --entity-id 42 ./invoice.xml
finizi-app einvoice issue --entity-id 42 --invoice-id 1234

MCP server

# stdio (for local Claude Code / Cursor) — connects to admin.finizi.ai by default
finizi-app-mcp --transport stdio

# Streamable HTTP (self-hosted MCP server, e.g. alongside the admin app)
finizi-app-mcp --transport http --host 0.0.0.0 --port 8080 --bearer-token "$FINIZI_MCP_BEARER_TOKEN"

See docs/cli.md and docs/mcp.md for full reference.

Architecture

finizi-app-agent/
├── core/         # framework-agnostic (no typer, no mcp)
├── cli/          # Typer app, thin adapter over core
├── mcp/          # FastMCP server, thin adapter over core
└── tests/

See docs/architecture.md for details.

Distribution naming

What Name
PyPI distribution (pip install ...) finizi-app
Python import package finizi_app
CLI entry point finizi-app
MCP server entry point finizi-app-mcp

License

Proprietary — Finizi Engineering.

Release files for finizi-app 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for finizi-app 0.2.0
File Size Uploaded
finizi_app-0.2.0.tar.gz 146.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for finizi-app 0.2.0
File Interpreter ABI Platform
finizi_app-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 225.7 kB

Release files / finizi_app-0.2.0.tar.gz

Download URL finizi_app-0.2.0.tar.gz
Size 146.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e5b1283636469b84679e3723ee1c1011b1449c1675f6a72216f0449b889466b3
BLAKE2b-256 checksum
How to use checksums
8947668dc3a2e4b45f4102dd200902f321024007b0d24ec3a3d9c402276a6f97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / finizi_app-0.2.0-py3-none-any.whl

Download URL finizi_app-0.2.0-py3-none-any.whl
Size 79.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d41a987e28f200220438b90fb5ffbfcd1aa3057c95f79a4d2b39d27eadef8ddf
BLAKE2b-256 checksum
How to use checksums
65840bd5f72377ce170b78b8f184e5cfa40f7d97727200350a80372fcd05dc2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page