# dversum/mcp-server [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/dversum/mcp-server  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-server-115

## Description
Manage clients, projects, tasks, invoices, time tracking & calendar in dVersum.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp-server": {
    "command": "npx",
    "args": ["-y","@dversum/mcp-server"]
  }
}
```

## Documentation & README

# @dversum/mcp-server

Official [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for the **dVersum** business management API. Lets AI assistants like Claude Desktop, Cursor, and Windsurf interact with your dVersum workspace — managing clients, projects, tasks, invoices, time tracking, and more.

## Quick Start

### Claude Desktop

Add this to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "dversum": {
      "command": "npx",
      "args": ["-y", "@dversum/mcp-server"],
      "env": {
        "DVERSUM_API_URL": "https://api.dversum.com/api/v1",
        "DVERSUM_API_TOKEN": "your-jwt-token"
      }
    }
  }
}
```

### Cursor / Windsurf

Add to your MCP settings:

```json
{
  "mcpServers": {
    "dversum": {
      "command": "npx",
      "args": ["-y", "@dversum/mcp-server"],
      "env": {
        "DVERSUM_API_URL": "https://api.dversum.com/api/v1",
        "DVERSUM_API_TOKEN": "your-jwt-token"
      }
    }
  }
}
```

## Docker (Production)

### Quick start

```bash
cd mcp-server

# Create .env file
echo "DVERSUM_API_URL=https://api.dversum.com/api/v1" > .env
echo "DVERSUM_API_TOKEN=your-jwt-token" >> .env

# Run
docker compose up -d
```

The server starts on port **3100** with a health check at `/health` and the MCP endpoint at `/mcp`.

### Build & run manually

```bash
docker build -t dversum-mcp .
docker run -d \
  -p 3100:3100 \
  -e DVERSUM_API_URL=https://api.dversum.com/api/v1 \
  -e DVERSUM_API_TOKEN=your-jwt-token \
  --name dversum-mcp \
  --restart unless-stopped \
  dversum-mcp
```

### Connect remote MCP to Claude Desktop

Once the Docker container is running, point Claude Desktop to the remote endpoint:

```json
{
  "mcpServers": {
    "dversum": {
      "url": "http://your-server:3100/mcp"
    }
  }
}
```

## Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `DVERSUM_API_URL` | Yes | Base URL of your dVersum API (e.g. `https://api.dversum.com/api/v1`) |
| `DVERSUM_API_TOKEN` | Yes | Your JWT authentication token |
| `MCP_TRANSPORT` | No | `stdio` (default) or `http` (for Docker/remote) |
| `MCP_PORT` | No | HTTP port when using `http` transport (default: `3100`) |

## Available Tools (152)

### Clients (5)
| Tool | Description |
|------|-------------|
| `list_clients` | List all clients with pagination |
| `get_client` | Get client details |
| `create_client` | Create a new client |
| `update_client` | Update client details |
| `delete_client` | Delete a client |

### Contacts (5)
| Tool | Description |
|------|-------------|
| `list_contacts` | List all contacts |
| `get_contact` | Get contact details |
| `create_contact` | Create a new contact |
| `update_contact` | Update contact details |
| `delete_contact` | Delete a contact |

### Projects (12)
| Tool | Description |
|------|-------------|
| `list_projects` | List all projects |
| `get_project` | Get project details |
| `create_project` | Create a new project |
| `update_project` | Update project details |
| `delete_project` | Delete a project |
| `get_project_board` | Get full kanban board (columns + tasks) |
| `list_project_members` | List project members |
| `add_project_member` | Add a member to a project |
| `remove_project_member` | Remove a member from a project |
| `get_project_time_stats` | Get project time statistics |
| `get_gantt_data` | Get Gantt chart data with dependencies |
| `create_column` | Create a kanban column |

### Tasks (16)
| Tool | Description |
|------|-------------|
| `get_task` | Get task details (assignees, subtasks, tags) |
| `create_task` | Create a task in a project column |
| `update_task` | Update task properties |
| `delete_task` | Delete a task |
| `move_task` | Move task to a different column |
| `assign_task` | Add an assignee to a task |
| `remove_assignee` | Remove an assignee from a task |
| `list_task_comments` | List comments on a task |
| `create_comment` | Add a comment to a task |
| `create_subtask` | Create a subtask (checklist item) |
| `toggle_task_done` | Toggle task completion |
| `add_tag_to_task` | Add a tag to a task |
| `remove_tag_from_task` | Remove a tag from a task |
| `archive_task` | Archive a task |
| `restore_task` | Restore an archived task |
| `move_task_to_project` | Move task to a different project |

### Time Tracking (8)
| Tool | Description |
|------|-------------|
| `list_time_entries` | List time entries (filter by date, project) |
| `create_time_entry` | Log a completed time entry |
| `update_time_entry` | Update a time entry |
| `delete_time_entry` | Delete a time entry |
| `start_timer` | Start a running timer |
| `stop_timer` | Stop a running timer |
| `get_running_timer` | Get the currently running timer |
| `get_time_stats` | Get time tracking statistics |

### Calendar (5)
| Tool | Description |
|------|-------------|
| `list_events` | List calendar events in a date range |
| `get_event` | Get event details |
| `create_event` | Create a calendar event |
| `update_event` | Update an event |
| `delete_event` | Delete an event |

### Invoices (14)
| Tool | Description |
|------|-------------|
| `list_invoices` | List invoices (filter by status, client, type) |
| `get_invoice` | Get invoice with line items and totals |
| `create_invoice` | Create a draft invoice |
| `update_invoice` | Update a draft invoice |
| `delete_invoice` | Delete a draft invoice |
| `update_invoice_status` | Change invoice status |
| `send_invoice_email` | Send invoice via email |
| `create_invoice_from_time` | Create invoice from tracked time |
| `add_invoice_line_item` | Add a line item |
| `update_invoice_line_item` | Update a line item |
| `delete_invoice_line_item` | Delete a line item |
| `record_payment` | Record a payment on an invoice |
| `create_credit_note` | Create a credit note (Gutschrift) |
| `create_cancellation` | Create a cancellation invoice (Stornorechnung) |

### Quotes (12)
| Tool | Description |
|------|-------------|
| `list_quotes` | List quotes/proposals |
| `get_quote` | Get quote with line items |
| `create_quote` | Create a draft quote |
| `update_quote` | Update a quote |
| `delete_quote` | Delete a quote |
| `update_quote_status` | Update quote status |
| `send_quote_email` | Send quote via email |
| `duplicate_quote` | Duplicate a quote |
| `convert_quote_to_invoice` | Convert accepted quote to invoice |
| `add_quote_line_item` | Add a line item |
| `update_quote_line_item` | Update a line item |
| `delete_quote_line_item` | Delete a line item |

### Recurring Invoices (8)
| Tool | Description |
|------|-------------|
| `list_recurring_invoices` | List recurring invoice templates |
| `get_recurring_invoice` | Get recurring invoice details |
| `create_recurring_invoice` | Create a recurring invoice |
| `update_recurring_invoice` | Update a recurring invoice |
| `delete_recurring_invoice` | Delete a recurring invoice |
| `pause_recurring_invoice` | Pause auto-generation |
| `resume_recurring_invoice` | Resume auto-generation |
| `generate_recurring_invoice_now` | Generate an invoice now |

### Payment Reminders (6)
| Tool | Description |
|------|-------------|
| `list_reminders` | List payment reminders (Mahnungen) |
| `get_reminder` | Get reminder details |
| `get_reminder_suggestion` | Get suggested reminder for overdue invoice |
| `create_reminder` | Create a payment reminder |
| `send_reminder_email` | Send reminder via email |
| `delete_reminder` | Delete a reminder |

### Finance (11)
| Tool | Description |
|------|-------------|
| `get_finance_overview` | Monthly revenue vs expenses |
| `get_vat_summary` | USt-Voranmeldung (KZ 81/86/66/83) |
| `list_received_invoices` | List incoming invoices |
| `get_received_invoice` | Get received invoice details |
| `approve_received_invoice` | Approve a received invoice |
| `list_suppliers` | List all suppliers |
| `get_supplier` | Get supplier details |
| `create_supplier` | Create a supplier |
| `update_supplier` | Update supplier details |
| `delete_supplier` | Delete a supplier |
| `get_datev_export` | Preview DATEV export data |

### Team Planning (5)
| Tool | Description |
|------|-------------|
| `list_absences` | List team absences |
| `create_absence` | Create an absence entry |
| `update_absence` | Update an absence |
| `delete_absence` | Delete an absence |
| `get_vacation_stats` | Get vacation quota/usage stats |

### Pages (7)
| Tool | Description |
|------|-------------|
| `list_pages` | List all pages |
| `get_page` | Get page with content |
| `create_page` | Create a new page |
| `update_page` | Update page metadata |
| `update_page_content` | Update page content |
| `delete_page` | Delete a page and children |
| `get_page_tree` | Get page tree hierarchy |

### Whiteboards (6)
| Tool | Description |
|------|-------------|
| `list_whiteboards` | List all whiteboards |
| `get_whiteboard` | Get whiteboard with content |
| `create_whiteboard` | Create a whiteboard |
| `update_whiteboard` | Update whiteboard metadata |
| `delete_whiteboard` | Delete a whiteboard |
| `duplicate_whiteboard` | Duplicate a whiteboard |

### File Storage (12)
| Tool | Description |
|------|-------------|
| `list_files` | List files in a folder |
| `get_file` | Get file details |
| `delete_file` | Delete a file |
| `get_file_download_url` | Get presigned download URL |
| `list_folders` | List folders |
| `create_folder` | Create a new folder |
| `update_folder` | Update folder name/color |
| `delete_folder` | Delete a folder and contents |
| `get_folder_tree` | Get full folder hierarchy |
| `create_share_link` | Create a WeTransfer-style share link |
| `list_share_links` | List active share links |
| `revoke_share_link` | Revoke a share link |

### Tags (4)
| Tool | Description |
|------|-------------|
| `list_tags` | List all tags |
| `create_tag` | Create a tag |
| `update_tag` | Update a tag |
| `delete_tag` | Delete a tag |

### Areas (4)
| Tool | Description |
|------|-------------|
| `list_areas` | List project areas/groups |
| `create_area` | Create a project area |
| `update_area` | Update an area |
| `delete_area` | Delete an area |

### Notifications (4)
| Tool | Description |
|------|-------------|
| `list_notifications` | List recent notifications |
| `get_unread_count` | Get unread notification count |
| `mark_notification_read` | Mark a notification as read |
| `mark_all_notifications_read` | Mark all as read |

### Organization (8)
| Tool | Description |
|------|-------------|
| `get_organization` | Get organization details |
| `update_organization` | Update organization settings |
| `list_members` | List team members |
| `invite_member` | Invite a new member via email |
| `update_member_role` | Change a member's role |
| `remove_member` | Remove a member |
| `global_search` | Search across all entities |
| `get_activity_feed` | Get recent activity feed |

## Development

```bash
# Clone the repo
git clone https://github.com/dversum/dversum.git
cd dversum/mcp-server

# Install dependencies
npm install

# Build
npm run build

# Run locally
DVERSUM_API_URL=http://localhost:8080/api/v1 \
DVERSUM_API_TOKEN=your-jwt-token \
node dist/bin/dversum-mcp.js
```

## License

MIT

