invoiceninja-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INVOICENINJA_URL | Yes | URL raíz de la instancia (`https://invoicing.co` o tu self-hosted). Se tolera un `/api/v1` final. | |
| INVOICENINJA_TIMEOUT | No | Timeout HTTP en segundos. | 30 |
| INVOICENINJA_API_TOKEN | Yes | Token de API de Invoice Ninja. | |
| INVOICENINJA_VERIFY_SSL | No | `false` para certificados autofirmados. | true |
| INVOICENINJA_ENABLE_WRITES | No | `true` registra las herramientas de escritura. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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 |
|---|---|
| invoiceninja_pingA | Check the connection and show which company and user the API token uses. |
| invoiceninja_get_staticsA | Look up static reference data (currencies, countries, payment types, languages, timezones, industries, sizes, date formats, gateways) to translate ids such as currency_id, country_id or type_id into names. |
| invoiceninja_searchA | Quickly find clients, client contacts, invoices and projects by name, email or number and get their ids. Start here when the user mentions a record by name. |
| invoiceninja_dashboard_totalsA | Totals per currency for a period: invoiced, paid, outstanding (with count) and expenses. Defaults to the instance's default period when dates are omitted. |
| invoiceninja_run_reportA | Run an Invoice Ninja report (invoices, payments, expenses, profit & loss, aged receivables, tax summaries, product sales, …) and return its rows. Best for aggregates over many records. Reports are generated asynchronously: if not ready within max_wait_seconds a report_id is returned for invoiceninja_get_report_result. |
| invoiceninja_get_report_resultA | Fetch the rows of a report started by invoiceninja_run_report. |
| invoiceninja_list_clientsA | List clients from Invoice Ninja with filtering, sorting and pagination. extra_filters keys: name, email, number, id_number, vat_number, balance ('gt:0', 'lt:100', operators lt/lte/gt/gte/eq), between_balance ('10:100'), group (group settings id), country_id, classification; created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Use invoiceninja_get_client with an id from this list for the full record. |
| invoiceninja_get_clientA | Get one client by its hashed id, with all details. |
| invoiceninja_list_invoicesA | List invoices from Invoice Ninja with filtering, sorting and pagination. client_status values: all, draft, paid, unpaid, overdue, cancelled. extra_filters keys: date_range ('YYYY-MM-DD,YYYY-MM-DD' on the document date, or 'due_date,YYYY-MM-DD,YYYY-MM-DD' for another column), date (on/after YYYY-MM-DD), due_date (on/before YYYY-MM-DD), number, project_id, private_notes, payable (client_id); created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name). Use invoiceninja_get_invoice with an id from this list for the full record. |
| invoiceninja_get_invoiceA | Get one invoice by its hashed id, with all details (line items included). |
| invoiceninja_list_quotesA | List quotes from Invoice Ninja with filtering, sorting and pagination. client_status values: all, draft, sent, approved, expired, upcoming, converted. extra_filters keys: date_range ('YYYY-MM-DD,YYYY-MM-DD' on the document date, or 'due_date,YYYY-MM-DD,YYYY-MM-DD' for another column), date (on/after YYYY-MM-DD), due_date (on/before YYYY-MM-DD), number; created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name). Use invoiceninja_get_quote with an id from this list for the full record. |
| invoiceninja_get_quoteB | Get one quote by its hashed id, with all details (line items included). |
| invoiceninja_list_creditsA | List credits from Invoice Ninja with filtering, sorting and pagination. client_status values: all, draft, sent, partial, applied. extra_filters keys: date_range ('YYYY-MM-DD,YYYY-MM-DD' on the document date, or 'due_date,YYYY-MM-DD,YYYY-MM-DD' for another column), date (on/after YYYY-MM-DD), due_date (on/before YYYY-MM-DD), number, applicable (credits usable now); created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name). Use invoiceninja_get_credit with an id from this list for the full record. |
| invoiceninja_get_creditB | Get one credit by its hashed id, with all details (line items included). |
| invoiceninja_list_paymentsA | List payments from Invoice Ninja with filtering, sorting and pagination. client_status values: all, pending, cancelled, failed, completed, partially_refunded, refunded, partially_unapplied. extra_filters keys: number, date_range ('YYYY-MM-DD,YYYY-MM-DD'); created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name). Use invoiceninja_get_payment with an id from this list for the full record. |
| invoiceninja_get_paymentC | Get one payment by its hashed id, with all details. |
| invoiceninja_list_recurring_invoicesA | List recurring invoices from Invoice Ninja with filtering, sorting and pagination. client_status values: all, draft, active, paused, completed. extra_filters keys: number, product_key, frequency_id (1 daily … 5 monthly … 10 annually), next_send_between ('YYYY-MM-DD|YYYY-MM-DD'); created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name). Use invoiceninja_get_recurring_invoice with an id from this list for the full record. |
| invoiceninja_get_recurring_invoiceA | Get one recurring invoice by its hashed id, with all details (line items included). |
| invoiceninja_list_productsA | List products from Invoice Ninja with filtering, sorting and pagination. extra_filters keys: product_key; created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Use invoiceninja_get_product with an id from this list for the full record. |
| invoiceninja_get_productB | Get one product by its hashed id, with all details. |
| invoiceninja_list_expensesA | List expenses from Invoice Ninja with filtering, sorting and pagination. client_status values: all, logged, pending, invoiced, uninvoiced, paid, unpaid, uncategorized. extra_filters keys: number, amount, categories (category ids, comma separated), vendor_ids, project_ids, payment_type, has_invoices, date_range ('YYYY-MM-DD,YYYY-MM-DD'); created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name, vendor_name). Use invoiceninja_get_expense with an id from this list for the full record. |
| invoiceninja_get_expenseB | Get one expense by its hashed id, with all details. |
| invoiceninja_list_recurring_expensesA | List recurring expenses from Invoice Ninja with filtering, sorting and pagination. client_status values: all, logged, pending, invoiced, paid, unpaid. extra_filters keys: number; created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name, vendor_name). Use invoiceninja_get_recurring_expense with an id from this list for the full record. |
| invoiceninja_get_recurring_expenseA | Get one recurring expense by its hashed id, with all details. |
| invoiceninja_list_vendorsA | List vendors from Invoice Ninja with filtering, sorting and pagination. extra_filters keys: number; created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Use invoiceninja_get_vendor with an id from this list for the full record. |
| invoiceninja_get_vendorB | Get one vendor by its hashed id, with all details. |
| invoiceninja_list_projectsA | List projects from Invoice Ninja with filtering, sorting and pagination. extra_filters keys: number, assigned_user (user id); created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name). Use invoiceninja_get_project with an id from this list for the full record. |
| invoiceninja_get_projectC | Get one project by its hashed id, with all details. |
| invoiceninja_list_tasksA | List tasks from Invoice Ninja with filtering, sorting and pagination. client_status values: all, invoiced, uninvoiced, is_running, overdue. extra_filters keys: number, project_tasks (project id), project_ids, task_status (status ids), user_id, assigned_user, activity_dates; created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (client_name, project_name, status_name). Use invoiceninja_get_task with an id from this list for the full record. |
| invoiceninja_get_taskB | Get one task by its hashed id, with all details. |
| invoiceninja_list_purchase_ordersA | List purchase orders from Invoice Ninja with filtering, sorting and pagination. client_status values: all, draft, sent, accepted, cancelled. extra_filters keys: date_range ('YYYY-MM-DD,YYYY-MM-DD' on the document date, or 'due_date,YYYY-MM-DD,YYYY-MM-DD' for another column), date (on/after YYYY-MM-DD), due_date (on/before YYYY-MM-DD), number, vendor_id; created_between / updated_between ('YYYY-MM-DD,YYYY-MM-DD'), tag_ids (comma separated), assigned_user_ids. Related names are resolved automatically (vendor_name). Use invoiceninja_get_purchase_order with an id from this list for the full record. |
| invoiceninja_get_purchase_orderA | Get one purchase order by its hashed id, with all details (line items included). |
| invoiceninja_list_recordsA | List reference/secondary records: tax_rates, payment_terms, expense_categories, task_statuses, group_settings, designs, documents, bank_transactions, activities, tags, locations, subscriptions, recurring_quotes, users. Use it to resolve ids found on other records (e.g. category_id, status ids, tax names) or to browse the activity log. |
| invoiceninja_get_recordA | Get one reference/secondary record by id. Entities: tax_rates, payment_terms, expense_categories, task_statuses, group_settings, designs, documents, bank_transactions, activities, tags, locations, subscriptions, recurring_quotes, users. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
Most tools pair list_X and get_X for distinct entities, making selection clear. Minor overlap exists between search and filtered list tools, and between dashboard_totals and run_report; get_statics also has a slightly confusing name.
All tool names use snake_case with the invoiceninja_ prefix and predominantly follow a list_/get_ verb_noun pattern. Exceptions like ping, search, dashboard_totals, and get_statics are readable but slightly inconsistent.
At 34 tools, the surface is very large for a single MCP server and exceeds the typical well-scoped range. While each list/get pair targets a distinct resource, the count is high enough to burden tool selection.
The server provides extensive read/list/get and reporting coverage, but it lacks any create, update, delete, send, or payment-recording operations. These are core invoicing lifecycle actions, so common management tasks would fail.