by energio-es
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.
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.
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.
MIT
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.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
According to our notes, holded-mcp benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
holded-mcp reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
According to our notes, holded-mcp benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
holded-mcp has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
holded-mcp is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
We wired holded-mcp into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
I recommend holded-mcp for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
We wired holded-mcp into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
Strong directory entry: holded-mcp surfaces stars and publisher context so we could sanity-check maintenance before adopting.
holded-mcp is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
showing 1-10 of 66
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.
node --version)The easiest way to use this MCP server is via npx - no installation or build required! Just configure your MCP client as shown below.
Add the following to your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%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.
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
Add the following to your Cursor MCP settings file:
~/.cursor/mcp.json%APPDATA%\Cursor\mcp.json~/.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.
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"
}
}
}
}
Add the following to your Windsurf MCP configuration file:
~/.codeium/windsurf/mcp_config.json%APPDATA%\Codeium\windsurf\mcp_config.json~/.codeium/windsurf/mcp_config.json{
"mcpServers": {
"holded": {
"command": "npx",
"args": ["-y", "@energio/holded-mcp"],
"env": {
"HOLDED_API_KEY": "your_api_key_here"
}
}
}
}
Any MCP-compatible agent can use this server via npx. The general configuration requires:
npx["-y", "@energio/holded-mcp"]HOLDED_API_KEY with your API keyExample 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.
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
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:
HOLDED_MODULES or leave it empty"HOLDED_MODULES": "crm""HOLDED_MODULES": "invoicing""HOLDED_MODULES": "invoicing,crm"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.
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.
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 contactholded_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 productholded_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 documentPrerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.