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) |
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 | {} |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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