
holded-mcp
MCP server for Holded — invoicing, accounting, CRM, projects, and team
A comprehensive MCP server for integrating with Holded's business management platform, providing access to invoicing, CRM, projects, accounting, and team management functionality.
About holded-mcp
holded-mcp is a community-built MCP server published by energio-es that provides AI assistants with tools and capabilities via the Model Context Protocol. MCP server for Holded — invoicing, accounting, CRM, projects, and team It is categorized under finance. This server exposes 20 tools that AI clients can invoke during conversations and coding sessions.
How to install
You can install holded-mcp in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
License
holded-mcp is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Tools (20)
List all contacts
Create a new contact
List all products
Create a new product
List documents by type (invoices, estimates, purchases, etc.)
Holded MCP Server
A Model Context Protocol (MCP) server for integrating with the Holded API. This server provides comprehensive access to Holded's business management platform, including invoicing, accounting, CRM, projects, and team functionality.
Table of Contents
- Features
- Installation
- Configuration
- Usage
- Available Tools
- Document Types
- Response Formats
- Error Handling
- Performance
- Development
- Contributing
- License
- Support
Features
Invoicing Module
- Documents: Full CRUD operations for documents (invoices, estimates, purchases, etc.) plus pay, send, PDF export, tracking, and pipeline management
- Contacts: Full CRUD operations for contacts and contact groups
- Products: Manage products, variants, and stock levels
- Payments: Full CRUD operations for payments
- Numbering Series: Full CRUD operations for document numbering series
- Treasury: Create, list, and retrieve treasury/bank accounts
- Payment Methods: List available payment methods
- Expenses Accounts: Full CRUD operations for expenses accounts
- Sales Channels: Full CRUD operations for sales channels
- Services: Full CRUD operations for services
- Taxes: Get tax information and rates
- Warehouses: Full CRUD operations for warehouses
CRM Module
- Leads: Create, list, get, update, delete leads; manage stages, notes, and tasks
- Funnels: Full CRUD operations for sales funnels with custom stages
- Events: Full CRUD operations for CRM events
- Bookings: Full CRUD operations for bookings and manage locations
Projects Module
- Projects: Full CRUD operations for projects plus project summaries
- Tasks: Full CRUD operations for project tasks
- Time Tracking: Full CRUD operations for project time tracking entries
Accounting Module
- Accounts: List and create accounting accounts with prefix-based numbering
- Daily Ledger: List daily ledger entries and create accounting entries
Team Module
- Employees: Full CRUD operations for employees
- Time Tracking: List all time trackings, list by employee, get, create, update, and delete time tracking entries
Installation
Prerequisites
- Node.js >= 20 (check with
node --version) - Holded API Key - Get yours from Holded API Settings or go to Configuration (top bar) → API
Quick Start (npx)
The easiest way to use this MCP server is via npx - no installation or build required! Just configure your MCP client as shown below.
Setup for Claude Desktop
Add the following to your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here"
}
}
}
}
Restart Claude Desktop to load the server.
Setup for Claude Code
Add the server with a single command:
claude mcp add holded -- npx -y @energio/holded-mcp
Then set the API key in your environment:
export HOLDED_API_KEY=your_api_key_here
Setup for Cursor
Add the following to your Cursor MCP settings file:
- macOS:
~/.cursor/mcp.json - Windows:
%APPDATA%\Cursor\mcp.json - Linux:
~/.config/cursor/mcp.json
{
"mcpServers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here"
}
}
}
}
After saving, restart Cursor or reload the MCP servers from the settings.
Setup for VS Code
Add the following to your VS Code user settings (settings.json) or workspace settings (.vscode/mcp.json):
User settings (settings.json):
{
"mcp": {
"servers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here"
}
}
}
}
}
Workspace settings (.vscode/mcp.json):
{
"servers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here"
}
}
}
}
Setup for Windsurf
Add the following to your Windsurf MCP configuration file:
- macOS:
~/.codeium/windsurf/mcp_config.json - Windows:
%APPDATA%\Codeium\windsurf\mcp_config.json - Linux:
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here"
}
}
}
}
Setup for Other MCP-Compatible Agents
Any MCP-compatible agent can use this server via npx. The general configuration requires:
- Command:
npx - Arguments:
["-y", "@energio/holded-mcp"] - Environment variable:
HOLDED_API_KEYwith your API key
Example configuration:
{
"mcpServers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here"
}
}
}
}
The server communicates via stdio using the MCP protocol and can be integrated with any client that supports the Model Context Protocol.
Configuration
The server requires a HOLDED_API_KEY environment variable. This is typically set in your MCP client configuration (see installation sections above).
For manual/development usage, you can set it directly:
export HOLDED_API_KEY=your_api_key_here
Module Selection
By default, all modules are enabled. To load only specific modules, set the HOLDED_MODULES environment variable with a comma-separated list:
Available modules: invoicing, crm, projects, accounting, team
Example - enable only invoicing module:
{
"mcpServers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here",
"HOLDED_MODULES": "invoicing"
}
}
}
}
Configuration examples:
- All modules (default): Omit
HOLDED_MODULESor leave it empty - Only CRM:
"HOLDED_MODULES": "crm" - Only invoicing:
"HOLDED_MODULES": "invoicing" - Multiple modules:
"HOLDED_MODULES": "invoicing,crm"
Debug Mode
Enable debug logging for API requests and retries by setting the HOLDED_DEBUG environment variable:
{
"mcpServers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here",
"HOLDED_DEBUG": "true"
}
}
}
}
When enabled, the server will log retry attempts and API request failures to stderr, which can be helpful for troubleshooting connection issues or rate limiting.
Usage
Running the Server Manually
npm start
Or for development with auto-reload:
npm run dev
Note: In most cases, you won't run the server manually. Your MCP client (Cursor, Claude Desktop, etc.) will start and manage the server process automatically based on your configuration.
Available Tools
Contact Tools
holded_invoicing_list_contacts- List all contactsholded_invoicing_get_contact- Get a specific contactholded_invoicing_create_contact- Create a new contactholded_invoicing_update_contact- Update a contactholded_invoicing_delete_contact- Delete a contactholded_invoicing_list_contact_groups- List contact groupsholded_invoicing_get_contact_group- Get a contact groupholded_invoicing_create_contact_group- Create a contact groupholded_invoicing_update_contact_group- Update a contact groupholded_invoicing_delete_contact_group- Delete a contact groupholded_invoicing_list_contact_attachments- List attachments for a contactholded_invoicing_get_contact_attachment- Get a specific contact attachmentholded_invoicing_upload_contact_attachment- Upload an attachment to a contact
Product Tools
holded_invoicing_list_products- List all productsholded_invoicing_get_product- Get a specific productholded_invoicing_create_product- Create a new productholded_invoicing_update_product- Update a productholded_invoicing_delete_product- Delete a productholded_invoicing_list_products_stock- List product stock levels for a specific warehouseholded_invoicing_update_product_stock- Update product stockholded_invoicing_get_product_image- Get main product imageholded_invoicing_list_product_images- List all product imagesholded_invoicing_get_product_secondary_image- Get a secondary product imageholded_invoicing_upload_product_image- Upload an image to a product
Document Tools
holded_invoicing_list_documents- List documents by typeholded_invoicing_get_document- Get a specific documentholded_invoicing_create_document- Create a new documentholded_invoicing_update_document- Update a documentholded_invoicing_delete_document- Delete a document- `holded_inv
README truncated. View full README on GitHub.
Alternatives
Related Skills
Browse all skillsProduction-ready financial analyst skill with ratio analysis, DCF valuation, budget variance analysis, and rolling forecast construction. 4 Python tools (all stdlib-only). Works with Claude Code, Codex CLI, and OpenClaw.
Comprehensive news aggregator that fetches, filters, and deeply analyzes real-time content from 8 major sources: Hacker News, GitHub Trending, Product Hunt, 36Kr, Tencent News, WallStreetCN, V2EX, and Weibo. Best for 'daily scans', 'tech news briefings', 'finance updates', and 'deep interpretations' of hot topics.
Comprehensive personal finance management system for analyzing transaction data, generating insights, creating visualizations, and providing actionable financial recommendations. Use when users need to analyze spending patterns, track budgets, visualize financial data, extract transactions from PDFs, calculate savings rates, identify spending trends, generate financial reports, or receive personalized budget recommendations. Triggers include requests like "analyze my finances", "track my spending", "create a financial report", "extract transactions from PDF", "visualize my budget", "where is my money going", "financial insights", "spending breakdown", or any finance-related analysis tasks.
A Yahoo Finance (yfinance) powered financial analysis tool. Get real-time quotes, generate high-resolution charts with moving averages + indicators (RSI/MACD/Bollinger/VWAP/ATR), summarize fundamentals, and run a one-shot report that outputs both a text summary and a Pro chart.
Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.
Professional personal finance advisor specializing in plain-text accounting with Beancount and Fava. Use when users need help with: (1) Analyzing spending habits and financial patterns from Beancount files, (2) Creating or understanding Beancount transactions and syntax, (3) Financial planning, budgeting, and investment advice, (4) Interpreting Fava reports and creating custom queries, (5) Organizing chart of accounts, (6) Double-entry bookkeeping principles, (7) Personal finance optimization and wealth building strategies. Provides analysis, education, and personalized recommendations while maintaining professional standards.