Skip to main content
Glama
t4dhg

@t4dhg/mcp-holded

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DEBUGNoSet to true to log requests to stderr. Defaults to false.false
HOLDED_API_KEYYesHolded v2 Personal Access Token (format pat_<id>_<secret>). Required to authenticate against the Holded API v2.
HOLDED_BASE_URLNoOverride the API base URL. Defaults to https://api.holded.com/api/v2.https://api.holded.com/api/v2
HOLDED_TIMEOUT_MSNoPer-request timeout in milliseconds. Defaults to 30000.30000
HOLDED_MAX_RETRIESNoNumber of attempts for GET requests. Writes are never retried. Defaults to 3.3

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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
holded_discoverA

List the Holded tool domains. Each domain is one tool named holded_ with an action parameter; call it with no action to see the actions in its error message, or read the tool description.

holded_contactsC

Customers and suppliers. Actions: list (filters email, code, phone, mobile, custom_id are exact matches), search (substring on name), get, create, update, delete, bulk_archive, bulk_delete, list_attachments, attach, portal_link, list_groups, get_group, create_group, update_group, delete_group.

holded_salesB

Sales documents by type: invoice, credit_note, estimate, proforma, sales_receipt, sales_order, waybill, receipt_note, recurring_invoice. Actions: list, get, find_by_number (invoices), pdf (needs output_path), list_attachments, attach (file_path), schedule (recurring), create, update, delete, approve, cancel (invoices), send (emails), set_pipeline, record_payment, convert, accept, reject (estimates), skip (recurring), bulk_approve, bulk_cancel, bulk_delete (invoices). Amounts in responses are strings with a comma decimal separator.

holded_purchasesC

Purchase documents by type: purchase (supplier bill), purchase_refund, purchase_order, purchase_shipment. Actions: list, get, pdf (output_path), list_attachments, attach (file_path), received_items (orders), create, update, delete, approve, send, set_pipeline, record_payment, receive (orders). Amounts in responses are strings with a comma decimal separator.

holded_paymentsB

Payments (money out) and collections (money in). Actions: list (start_date, end_date, banking_account_id, document_id), get, create, update, delete, list_methods, get_method. Amounts are strings with a dot decimal separator.

holded_treasuryC

Banking accounts and their movements. Actions: list_accounts (type, archived), get_account, create_account, update_account, archive_account, delete_account, list_movements (bank movements of account id, start_date, end_date), list_cash_movements, create_movements (manual movements), reconcile (movement_id plus data.documents), list_remittances, get_remittance, list_forecasts, get_forecast, create_forecast, update_forecast, delete_forecast. Amounts are strings with a dot decimal separator.

holded_accountingC

Chart of accounts, journal, taxes and configuration lists. Actions: list_accounts (start_date and end_date add debit, credit and balance for the window; include_empty), create_account, list_ledger (start_date and end_date required; account), create_ledger_entry, list_taxes, tax_keys (country), list_expenses_accounts, get_expenses_account, create_expenses_account, update_expenses_account, delete_expenses_account, list_sales_channels, get_sales_channel, create_sales_channel, update_sales_channel, delete_sales_channel, list_numbering_series (series_type), create_numbering_series, update_numbering_series, delete_numbering_series, list_tags, create_tag, delete_tag (name). Ledger dates are DD/MM/YYYY; amounts use a dot decimal separator.

holded_catalogC

Products, services, warehouses, price lists and production orders. Actions: list_products (name), get_product, product_stock, create_product, update_product, update_stock (data.warehouse_id, data.stock_variation), delete_product, list_services (include_archived), get_service, create_service, update_service, delete_service, list_warehouses, get_warehouse, warehouse_stock, create_warehouse, update_warehouse, delete_warehouse, list_price_lists, get_price_list, create_price_list, update_price_list, delete_price_list, list_production_orders, get_production_order, create_production_order, update_production_order, delete_production_order.

holded_teamC

Employees and payroll records. Actions: list_employees (search), get_employee, employee_contract, create_employee, list_times (employee_id optional), list_salary_records (employee_id, start_date, end_date), get_salary_record, salary_record_pdf (output_path), list_payslips (employee_id, dates, kind, is_draft), get_payslip, payslip_pdf, create_payslip_payment, delete_payslip_payment (payment_id). Salary amounts use a comma decimal separator.

holded_crmC

Funnels and leads. Actions: list_funnels, get_funnel, create_funnel, update_funnel, delete_funnel, list_leads, get_lead, create_lead, update_lead, delete_lead, move_stage (stage_id), update_dates (due_date), add_note, update_note, add_task, update_task, delete_task (task_id).

holded_projectsB

Projects, tasks and time tracking. Actions: list_projects (status), get_project, project_summary, create_project, update_project, delete_project, list_tasks, get_task, create_task, update_task, delete_task, list_times (project_id optional), get_time (project_id, time_id), create_time (project_id), update_time, delete_time.

holded_calendarC

Events and bookings. Actions: list_events, get_event, create_event, update_event, delete_event, list_bookings (start_date, end_date, service_id, sort_field, sort_order), get_booking, create_booking, update_booking, cancel_booking, list_locations, slots (id is the location id; data carries the query, for example { date, service_id }).

holded_inboxC

Incoming documents scanned by Holded. Actions: list (status, start_date, end_date, user_id), get, upload (file_path), download (filename, output_path), update, attach (data.documentId, data.documentType), delete.

holded_webhooksC

Webhooks and API usage. Actions: list, get, events (supported event types), create, update, enable, disable, delete, usage (API quota for the current month).

holded_requestA

Low-level escape hatch for the ~350 v2 operations. path is relative to https://api.holded.com/api/v2 and must start with "/". Responses are returned unvalidated. DELETE, PUT, PATCH, and POST to paths containing bulk, cancel, archive, approve, send, reconcile, ship, skip, clock-in or clock-out require confirm: true; the first call returns the exact request and sends nothing. Prefer the domain tools, which validate inputs and responses.

Prompts

Interactive templates invoked by user choice

NameDescription
holded_aged_receivablesWho owes money, how much, and how late, bucketed by days overdue and grouped by contact. Read-only. Defaults to today.
holded_vat_summaryOutput and input VAT grouped by tax key for a period, with base and quota per key. Read-only. Defaults to the previous calendar quarter. A working aid, not a filing.
holded_bank_reconciliationMatch bank movements against recorded payments for a period and report what is unmatched in both directions. Read-only; emits the gated reconcile calls to approve. Defaults to the previous month.
holded_contact_statementWhat one contact has been invoiced, has paid and still owes, document by document. Read-only. Give either contact_id or name.
holded_month_end_closeWhat is still open at the end of a period: documents in draft, invoices past due, and inbox documents still to process, each with the call that resolves it. Read-only. Defaults to the previous month.
holded_draft_invoiceResolve the contact, look up the real tax keys, and assemble a complete invoice payload for a person to review. Creates nothing. Never approves.

Resources

Contextual data attached and managed by the client

NameDescription
api_behaviour_guideVerified v2 behaviour: Bearer auth and the 403-not-401 quirk, cursor pagination, the two decimal conventions, DD/MM/YYYY ledger dates, RFC 7807 errors, ignored query parameters, the rate limit, and why writes are never retried. Read this before writing anything.
document_types_guideThe nine sales and four purchase document types with their Spanish names, and which verbs each one supports. Recurring invoices, purchase refunds and estimates each lack verbs the others have.
irreversible_operations_guideEvery gated operation with its risk and effect, generated from the policy table so it cannot drift, plus why approving a sales document is irreversible under Verifactu.
taxes_referenceThe account's tax keys, names and percentages. A document line's `taxes` array needs the key verbatim, for example `s_iva_21`. Read this before building an invoice.
numbering_series_referenceThe numbering series configured for each document type, with formats and the last number issued.
payment_methods_referencePayment method ids, needed by record_payment and by a document payment_method_id.
accounting_accounts_referenceThe account numbers of the chart of accounts, needed for ledger entries. Spanish PGC numbering, which cannot be guessed.