MCP Holded
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOLDED_API_KEY | Yes | Your Holded API key (get it from Holded Settings > API) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_documentsA | List all documents of a specific type with optional filters for date range, contact, payment status, approval, and sorting. Supports field filtering to reduce response size. NOTE: a document carries three INDEPENDENT and sometimes-conflicting flags — (1) the stored Paid/Pending badge |
| create_documentA | Create a new document (invoice, estimate, purchase, etc.). By default the document is approved (finalized) so it appears in the Holded UI; pass approveDoc:false to create a draft instead. Set the expense/income account at document level via |
| get_documentB | Get a specific document by ID |
| get_document_paymentsA | Get the payments registered against a specific document, read directly from the document's |
| update_documentC | Update an existing document |
| delete_documentC | Delete a document |
| pay_documentA | Register a payment for a document. IMPORTANT: this AUTO-APPROVES the document as a side effect (status 0→1) — Holded has no separate approve endpoint, and approval cannot be undone via the API. |
| send_documentC | Send a document by email |
| get_document_pdfC | Get the PDF of a document |
| ship_all_itemsC | Ship all items of a document |
| ship_items_by_lineC | Ship specific items by line |
| get_shipped_unitsC | Get shipped units by item for a document |
| attach_file_to_documentB | Attach a file to a document |
| update_document_trackingA | Update tracking information for a document |
| update_document_pipelineC | Update pipeline stage for a document |
| list_payment_methodsB | List available payment methods |
| list_contactsA | List all contacts with optional filters for phone, mobile, or custom ID. Supports field filtering to reduce response size. |
| create_contactC | Create a new contact |
| get_contactC | Get a specific contact by ID |
| update_contactC | Update an existing contact |
| delete_contactB | Delete a contact |
| list_contact_attachmentsA | Get list of attachments for a contact |
| get_contact_attachmentB | Get a specific attachment from a contact |
| list_productsB | List all products with optional pagination. Supports field filtering to reduce response size. |
| create_productB | Create a new product |
| get_productA | Get a specific product by ID |
| update_productC | Update an existing product |
| delete_productC | Delete a product |
| get_product_main_imageB | Get the main image of a product |
| list_product_imagesB | List all images of a product |
| get_product_secondary_imageC | Get a secondary image of a product |
| update_product_stockC | Update stock quantity for a product |
| list_treasuriesA | List all treasury accounts with pagination support. Supports field filtering to reduce response size. WARNING: the |
| create_treasuryB | Create a new treasury account |
| get_treasuryA | Get a specific treasury account by ID. WARNING: the |
| list_expenses_accountsA | List expenses accounts with pagination support. Supports field filtering to reduce response size. Each account has |
| create_expenses_accountC | Create a new expenses account |
| get_expenses_accountA | Get a single account by its Holded id. Despite the "expenses" name, this endpoint serves ANY account (including income/group-7 accounts that list_expenses_accounts omits) when you already know its id. |
| update_expenses_accountC | Update an existing expenses account |
| delete_expenses_accountC | Delete an expenses account |
| get_numbering_seriesA | Get numbering series for a specific document type with pagination support. Supports field filtering to reduce response size. |
| create_numbering_serieB | Create a new numbering serie |
| update_numbering_serieC | Update an existing numbering serie |
| delete_numbering_serieB | Delete a numbering serie |
| list_sales_channelsA | List all sales channels with pagination support. Supports field filtering to reduce response size. |
| create_sales_channelC | Create a new sales channel |
| get_sales_channelA | Get a specific sales channel by ID |
| update_sales_channelC | Update an existing sales channel |
| delete_sales_channelC | Delete a sales channel |
| list_paymentsA | List all payments with optional filters for date range. Supports field filtering to reduce response size. NOTE: this endpoint is filtered to the ACTIVE fiscal year, so payments made in a prior year do NOT appear here even if they are linked to documents. For cross-year payment audits, read a document's payments via get_document_payments (the document |
| create_paymentC | Create a new payment |
| get_paymentB | Get a specific payment by ID |
| update_paymentA | Update an existing payment. IMPORTANT: Holded's PUT /payments/{id} REPLACES the record rather than merging, so any field omitted from the body is blanked. To prevent that, this tool first re-reads the current payment and merges your changes over it, preserving fields you did not pass (contactId, bankId, date, ...). |
| delete_paymentC | Delete a payment |
| get_taxesA | Get all available taxes with pagination support. Supports field filtering to reduce response size. Each tax has: |
| list_contact_groupsA | List all contact groups with pagination support. Supports field filtering to reduce response size. |
| create_contact_groupC | Create a new contact group |
| get_contact_groupA | Get a specific contact group by ID |
| update_contact_groupC | Update an existing contact group |
| delete_contact_groupC | Delete a contact group |
| list_remittancesA | List all remittances with pagination support. Supports field filtering to reduce response size. |
| get_remittanceB | Get a specific remittance by ID |
| list_servicesA | List all services with optional pagination. Supports field filtering to reduce response size. |
| create_serviceB | Create a new service |
| get_serviceB | Get a specific service by ID |
| update_serviceB | Update an existing service |
| delete_serviceD | Delete a service |
| list_warehousesB | List all warehouses with pagination support. Supports field filtering to reduce response size. |
| create_warehouseC | Create a new warehouse |
| list_warehouse_stockA | List all products stock in a specific warehouse. Supports field filtering to reduce response size. |
| get_warehouseB | Get a specific warehouse by ID |
| update_warehouseB | Update an existing warehouse |
| delete_warehouseC | Delete a warehouse |
| list_project_timesA | List time-tracking entries across all Holded projects (Projects API). Each project includes a timeTracking[] array of entries with duration (seconds), date (Unix seconds), user, and approved (0/1). Optionally filter by date range (YYYY-MM-DD, inclusive) and approved-only, and flatten into a single entry list with hours pre-computed. Read-only. |
| list_project_times_by_projectA | List time-tracking entries for a single Holded project (Projects API). Returns a one-element array holding the project and its filtered timeTracking[] entries; set flatten: true to get a flat list of entries with hours pre-computed instead. Supports the same date-range and approved-only filters as list_project_times. Read-only. |
| get_project_timeA | Get a single time-tracking entry by project ID and time-tracking ID (Projects API). Read-only. |
| get_chart_of_accountsA | Get the full chart of accounts for the ACTIVE fiscal year (Accounting API). Returns every account with |
| get_daily_ledgerA | Get the daily ledger (journal / asientos) between two Unix timestamps (Accounting API). Returns one row per ledger line with entryNumber, line, timestamp, type (collect/payment/purchase/...), description, account (PGC num), debit, and credit. This is the authoritative source for balance-sheet and tax-return figures. Range must not exceed 1 year. Set groupByEntry to nest lines into full double-entry entries with per-entry debit/credit totals. Read-only. |
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/nubiia-dev/mcp-holded'
If you have feedback or need assistance with the MCP directory API, please join our Discord server