Aikount MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AIKOUNT_API | No | Optional Aikount API base URL. | https://api.aikount.com/api/v1 |
| AIKOUNT_TOKEN | Yes | Aikount API key (scope *, prefixed agl_). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Verify the token and return the active tenant (id, name, VAT, currency…). Call this first. A 200 confirms the token works; a 401/403 means it is missing, revoked, or malformed. Note: with an 'agl_' API key this reads /tenants/me. The /auth/me endpoint is reserved for interactive session logins (onboarding/membership flow) and deliberately rejects API keys. |
| list_contactsA | List contacts (customers and suppliers). Args: search: free-text match on name / legal name / VAT. kind: 'customer' or 'supplier' to filter; omit for both. limit: page size (1-500, default 50). offset: pagination offset. |
| create_contactC | Create a contact. |
| list_tax_typesA | List the tenant's tax types (IVA/IGIC/IPSI/IRPF), each with its UUID. Invoice/purchase lines reference a tax by |
| list_productsC | List catalog products/services. |
| list_invoicesC | List sales invoices. Lifecycle: draft -> issued -> paid. Args: status: e.g. 'draft', 'issued', 'paid'. contact_id: filter to one customer (UUID). from_date / to_date: ISO 'YYYY-MM-DD' bounds on doc_date. |
| get_invoiceB | Fetch one sales invoice in full by UUID. |
| create_invoiceA | Create a DRAFT sales invoice (call issue_invoice to assign a number). Money is in MAJOR units (euros as decimals), e.g. unit_price 1200.00 — NOT cents. Each line is a dict: { "description": "Consultoría mayo", # required "quantity": 1, # default 1 "unit_price": 1200.00, # default 0, euros "tax_type_id": "", # from list_tax_types; omit # to inherit the contact/ # product default "discount_pct": 0, # optional, 0-100 "irpf_rate": 0 # optional override, 0-100 } Args: contact_id: customer UUID (see list_contacts / create_contact). doc_date: ISO 'YYYY-MM-DD'. series_id: optional numbering-series override (UUID). |
| issue_invoiceA | Issue a draft invoice — assigns the next sequential legal number. Irreversible-ish: issued numbers must stay contiguous, so do not delete issued invoices to "renumber". Confirm with the user before issuing. |
| list_purchasesC | List purchase documents (supplier invoices / expenses). |
| get_purchaseC | Fetch one purchase document in full by UUID. |
| ingest_purchase_pdfA | Queue a purchase PDF/image for AI extraction (OCR -> deduped purchase). The AI reads the supplier, lines and taxes and creates the purchase doc, deduplicating by invoice identity (contact + supplier_invoice_number, fallback total + date) so the same invoice never lands twice. Runs async: this returns a job immediately — poll get_ingest_job(job_id) until its status is done, then read result for the created document. Args: file_path: local path to a PDF / JPG / PNG / WebP / HEIC. force: bypass dedup and ingest anyway (use only when you are sure it is a genuinely distinct invoice). |
| get_ingest_jobB | Poll the status/result of an AI ingest job (see ingest_purchase_pdf). |
| list_treasuriesA | List treasuries (bank / Stripe / PayPal accounts) with balances. Stripe/PayPal treasuries return a live balance pulled on read; bank-feed treasuries return the last synced snapshot. |
| list_bank_movementsB | List bank movements, optionally scoped to one treasury. Args: treasury_id: restrict to a single treasury (UUID). status: e.g. 'unreconciled' / 'reconciled'. from_date / to_date: ISO date bounds. search: free-text match on the movement description. |
| reconciliation_boardA | Get the reconciliation board: suggested movement<->document matches. The system auto-reconciles matches with confidence >= 0.95; everything below is a suggestion to confirm (reconcile_movement) or dismiss. |
| reconcile_movementA | Manually match a bank movement to an invoice/purchase document. Args: movement_id: bank movement UUID. document_id: invoice or purchase UUID. |
| list_accountsA | List the Spanish PGC chart of accounts (code, name, UUID, balance). Use this to resolve an account's UUID for |
| ledgerB | Read ledger movements for ONE PGC account. Args: account_id: the account's UUID (required). Resolve it from list_accounts — e.g. find the account whose code is '572' (bancos) and pass its id here. from_date / to_date: ISO date bounds. |
| trial_balanceA | Balance de sumas y saldos (trial balance) across every account. A one-shot overview of all account balances — no account_id needed. Args: at_date: ISO date to compute balances as of (default: today). |
| modelo_303_summaryA | Modelo 303 (quarterly VAT) — JSON summary of every quarter with activity. One row per (year, quarter): sales base, output VAT, rectified VAT, input VAT, and the net amount to pay. Use this for a machine-readable overview; use modelo_303_csv for the AEAT-format file of one quarter. |
| modelo_303_csvA | Modelo 303 backing detail for one quarter as CSV text. Returns the per-transaction breakdown (one row per invoice/purchase line: date, doc, contact, base, rate, iva, input/output) that the quarter's VAT figures are built from — useful for auditing the numbers. For the aggregated box totals, use modelo_303_summary. Args: year: e.g. 2026. quarter: 1-4. |
| api_requestA | Call any Aikount API endpoint not covered by a dedicated tool. The full surface is documented at https://api.aikount.com/openapi.json — fetch it (e.g. api_request('GET', '/../openapi.json')) when you need an endpoint this server doesn't wrap. Args: method: GET / POST / PATCH / DELETE. path: API path relative to the base, e.g. '/invoices' or '/contacts/'. Leading slash optional. params: query parameters. body: JSON body (for POST/PATCH). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mutonby/aikount-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server