# io.github.boostuagency/boostu-teamleader-mcp (npm · boostu-teamleader-mcp)

MCP server for Teamleader Focus CRM. Use Teamleader in Claude and other AI assistants.

- Trust score: 66/100 (medium)
- Change this week: +21
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `boostu-teamleader-mcp`: 66/100 (this document), [markdown](https://verifymcp.io/servers/boostuagency-boostu-teamleader-mcp/boostu-teamleader-mcp.md), [page](https://verifymcp.io/servers/boostuagency-boostu-teamleader-mcp/boostu-teamleader-mcp)

## Channel facts

- Registry: `npm`
- Package: `boostu-teamleader-mcp`
- Version: `2.1.4`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 19 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 6002 tokens (~58/item across 103 items; 103 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 91/100
  - 99% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 75% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add boostuagency-boostu-teamleader-mcp -- npx -y boostu-teamleader-mcp
```

### Codex

```bash
codex mcp add boostuagency-boostu-teamleader-mcp -- npx -y boostu-teamleader-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "boostuagency-boostu-teamleader-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "boostu-teamleader-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add boostuagency-boostu-teamleader-mcp --command npx --arg -y --arg boostu-teamleader-mcp
```

### Hermes

```yaml
mcp_servers:
  boostuagency-boostu-teamleader-mcp:
    command: "npx"
    args: ["-y", "boostu-teamleader-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "boostuagency-boostu-teamleader-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "boostu-teamleader-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 66, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 62, +42)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Tool coverage: 99 → unverified
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: MIT

### 2026-07-31 (score 20, −25)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 45, +18)

- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 99

### 2026-07-28 (score 27, −18)

- [functional regression] Tool coverage: 99 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 45)

First indexed and scored.

## MCP tools (103)

### `teamleader_list_contacts` (~98 tokens)

List contacts from Teamleader Focus with optional filtering and pagination

Input parameters:

- `page` (number): Page number (default: 1)
- `page_size` (number): Page size (default: 20, max: 100)
- `tags` (array): Filter by tags
- `term` (string): Search term to filter contacts
- `updated_since` (string): ISO 8601 date - only contacts updated after this date

### `teamleader_get_contact` (~28 tokens)

Get detailed information about a specific contact

Input parameters:

- `id` (string, required): The contact ID

### `teamleader_create_contact` (~106 tokens)

Create a new contact in Teamleader Focus

Input parameters:

- `email` (string): Primary email address
- `first_name` (string, required): First name
- `gender` (string): Gender
- `language` (string): Language code (e.g. 'en', 'fr', 'nl')
- `last_name` (string, required): Last name
- `mobile` (string): Mobile number
- `phone` (string): Phone number
- `tags` (array): Tags to assign

### `teamleader_update_contact` (~106 tokens)

Update an existing contact in Teamleader Focus

Input parameters:

- `email` (string): Primary email address
- `first_name` (string): First name
- `gender` (string): Gender
- `id` (string, required): The contact ID to update
- `language` (string): Language code
- `last_name` (string): Last name
- `mobile` (string): Mobile number
- `phone` (string): Phone number
- `tags` (array): Tags to assign

### `teamleader_list_companies` (~111 tokens)

List companies from Teamleader Focus with optional filtering and pagination

Input parameters:

- `page` (number): Page number (default: 1)
- `page_size` (number): Page size (default: 20, max: 100)
- `tags` (array): Filter by tags
- `term` (string): Search term to filter companies
- `updated_since` (string): ISO 8601 date - only companies updated after this date
- `vat_number` (string): Filter by VAT number

### `teamleader_get_company` (~28 tokens)

Get detailed information about a specific company

Input parameters:

- `id` (string, required): The company ID

### `teamleader_create_company` (~97 tokens)

Create a new company in Teamleader Focus

Input parameters:

- `email` (string): Primary email address
- `language` (string): Language code (e.g. 'en', 'fr', 'nl')
- `name` (string, required): Company name
- `phone` (string): Phone number
- `tags` (array): Tags to assign
- `vat_number` (string): VAT number
- `website` (string): Website URL

### `teamleader_list_deals` (~118 tokens)

List deals/opportunities from Teamleader Focus with optional filtering and pagination

Input parameters:

- `page` (number): Page number (default: 1)
- `page_size` (number): Page size (default: 20, max: 100)
- `phase_id` (string): Filter by deal phase ID
- `responsible_user_id` (string): Filter by responsible user ID
- `term` (string): Search term to filter deals
- `updated_since` (string): ISO 8601 date - only deals updated after this date

### `teamleader_get_deal` (~29 tokens)

Get detailed information about a specific deal

Input parameters:

- `id` (string, required): The deal ID

### `teamleader_create_deal` (~161 tokens)

Create a new deal/opportunity in Teamleader Focus

Input parameters:

- `customer_id` (string, required): Customer ID (contact or company)
- `customer_type` (string, required): Customer type
- `department_id` (string): Department ID
- `estimated_closing_date` (string): Estimated closing date (YYYY-MM-DD)
- `estimated_probability` (number): Estimated probability (0-1)
- `estimated_value_amount` (number): Estimated value amount
- `estimated_value_currency` (string): Currency code (e.g. 'EUR', 'USD')
- `phase_id` (string, required): Deal phase ID
- `responsible_user_id` (string): Responsible user ID
- `source_id` (string): Source ID
- `title` (string, required): Deal title

### `teamleader_update_deal` (~116 tokens)

Update an existing deal in Teamleader Focus

Input parameters:

- `estimated_closing_date` (string): Estimated closing date (YYYY-MM-DD)
- `estimated_probability` (number): Estimated probability (0-1)
- `estimated_value_amount` (number): Estimated value amount
- `estimated_value_currency` (string): Currency code (e.g. 'EUR', 'USD')
- `id` (string, required): The deal ID to update
- `responsible_user_id` (string): Responsible user ID
- `title` (string): Deal title

### `teamleader_list_tasks` (~94 tokens)

List tasks from Teamleader Focus with optional filtering and pagination

Input parameters:

- `customer_id` (string): Customer ID to filter by
- `customer_type` (string): Customer type to filter by
- `page` (number): Page number (default: 1)
- `page_size` (number): Page size (default: 20, max: 100)
- `term` (string): Search term to filter tasks

### `teamleader_create_task` (~195 tokens)

Create a new task in Teamleader Focus. The Teamleader API requires a title, a due date and a work type. Use teamleader_work_types_list to find a work_type_id.

Input parameters:

- `assignee_id` (string): Assignee ID
- `assignee_type` (string): Assignee type
- `customer_id` (string): Link task to a customer ID
- `customer_type` (string): Link task to a customer type
- `deal_id` (string): Link task to a deal ID
- `description` (string): Task description (optional)
- `due_on` (string, required): Due date in YYYY-MM-DD format (required)
- `project_id` (string): Link task to a project ID (new projects module)
- `title` (string, required): Task title (required)
- `work_type_id` (string, required): Work type ID (required). Use teamleader_work_types_list to find one.

### `teamleader_list_events` (~133 tokens)

List calendar events from Teamleader Focus with optional filtering and pagination

Input parameters:

- `ends_after` (string): ISO 8601 datetime - events ending after this date
- `ends_before` (string): ISO 8601 datetime - events ending before this date
- `page` (number): Page number (default: 1)
- `page_size` (number): Page size (default: 20, max: 100)
- `starts_after` (string): ISO 8601 datetime - events starting after this date
- `starts_before` (string): ISO 8601 datetime - events starting before this date

### `teamleader_get_event` (~28 tokens)

Get detailed information about a specific event

Input parameters:

- `id` (string, required): The event ID

### `teamleader_create_event` (~100 tokens)

Create a new calendar event in Teamleader Focus

Input parameters:

- `activity_type_id` (string, required): Activity type ID
- `attendee_ids` (array): List of attendees
- `description` (string): Event description
- `ends_at` (string, required): End datetime (ISO 8601)
- `location` (string): Event location
- `starts_at` (string, required): Start datetime (ISO 8601)
- `title` (string, required): Event title

### `teamleader_list_invoices` (~146 tokens)

List invoices from Teamleader Focus with optional filtering and pagination

Input parameters:

- `department_id` (string): Filter by department ID
- `invoice_date_after` (string): Filter invoices dated after (YYYY-MM-DD)
- `invoice_date_before` (string): Filter invoices dated before (YYYY-MM-DD)
- `page` (number): Page number (default: 1)
- `page_size` (number): Page size (default: 20, max: 100)
- `status` (array): Filter by status (e.g. ['draft', 'outstanding', 'paid'])
- `updated_since` (string): ISO 8601 date - only invoices updated after this date

### `teamleader_get_invoice` (~28 tokens)

Get detailed information about a specific invoice

Input parameters:

- `id` (string, required): The invoice ID

### `teamleader_create_invoice` (~137 tokens)

Create a new draft invoice in Teamleader Focus

Input parameters:

- `customer_id` (string, required): Customer ID
- `customer_type` (string, required): Customer type
- `department_id` (string, required): Department ID
- `invoice_date` (string): Invoice date (YYYY-MM-DD, defaults to today)
- `line_items` (array, required): Line items for the invoice
- `note` (string): Note to include on the invoice
- `payment_term_days` (number): Number of days for payment term
- `payment_term_type` (string, required): Payment term type (e.g. 'cash', 'end_of_month', 'after_invoice_date')

### `teamleader_invoices_book` (~71 tokens)

Book a draft invoice into accounting and assign it a number. SIDE EFFECT: books the draft into accounting and assigns a number; not freely reversible.

Input parameters:

- `id` (string, required): The invoice ID to book
- `on` (string): Book date (YYYY-MM-DD). Defaults to today if omitted.

### `teamleader_invoices_send` (~65 tokens)

Send an invoice by email to the specified recipients. SIDE EFFECT: emails the customer.

Input parameters:

- `id` (string, required): The invoice ID to send
- `recipients_to` (array, required): Email addresses in the To field
- `subject` (string): Custom email subject line

### `teamleader_invoices_register_payment` (~82 tokens)

Register a payment against an invoice.

Input parameters:

- `amount` (number, required): Payment amount
- `currency` (string, required): Currency code (e.g. 'EUR')
- `id` (string, required): The invoice ID
- `paid_at` (string, required): Payment date-time (ISO 8601)
- `payment_method_id` (string): Optional payment method ID

### `teamleader_invoices_download` (~53 tokens)

Get a temporary download URL for an invoice in the specified format.

Input parameters:

- `format` (string, required): Download format: 'pdf' or 'ubl/e-fff'
- `id` (string, required): The invoice ID

### `teamleader_quotations_list` (~51 tokens)

List quotations, optionally filtered by deal id.

Input parameters:

- `deal_id` (string): Filter by deal ID
- `page` (number)
- `page_size` (number): max 100

### `teamleader_quotations_info` (~26 tokens)

Get a single quotation by id.

Input parameters:

- `id` (string, required)

### `teamleader_quotations_create` (~42 tokens)

Create a quotation on a deal. Provide one or more line items.

Input parameters:

- `deal_id` (string, required)
- `line_items` (array, required)

### `teamleader_quotations_update` (~34 tokens)

Update a quotation's line items.

Input parameters:

- `id` (string, required)
- `line_items` (array, required)

### `teamleader_quotations_accept` (~35 tokens)

Accept a quotation. SIDE EFFECT: marks the quotation accepted (hard to undo).

Input parameters:

- `id` (string, required)

### `teamleader_quotations_send` (~53 tokens)

Send a quotation by email. SIDE EFFECT: emails the customer.

Input parameters:

- `id` (string, required)
- `recipients_to` (array, required): Email addresses in the To field
- `subject` (string)

### `teamleader_products_list` (~48 tokens)

List products, optionally filtered by search term.

Input parameters:

- `page` (number)
- `page_size` (number): max 100
- `term` (string): Filter by search term

### `teamleader_products_info` (~24 tokens)

Get a single product by id.

Input parameters:

- `id` (string, required)

### `teamleader_product_categories_list` (~33 tokens)

List product categories.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_price_lists_list` (~33 tokens)

List price lists.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_units_of_measure_list` (~35 tokens)

List units of measure.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_deal_phases_list` (~35 tokens)

List deal phases.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_deal_pipelines_list` (~35 tokens)

List deal pipelines.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_deal_sources_list` (~34 tokens)

List deal sources.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_lost_reasons_list` (~37 tokens)

List lost reasons for deals.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_tax_rates_list` (~33 tokens)

List tax rates.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_payment_terms_list` (~33 tokens)

List payment terms.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_withholding_tax_rates_list` (~36 tokens)

List withholding tax rates.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_work_types_list` (~62 tokens)

List work types. Use this to find a work_type_id for creating tasks or time tracking.

Input parameters:

- `page` (number)
- `page_size` (number): max 100
- `term` (string): Search term in the work type name

### `teamleader_users_list` (~48 tokens)

List users, optionally filtered by search term.

Input parameters:

- `page` (number)
- `page_size` (number): max 100
- `term` (string): Filter by search term

### `teamleader_users_info` (~24 tokens)

Get a single user by id.

Input parameters:

- `id` (string, required)

### `teamleader_users_me` (~16 tokens)

Get the currently authenticated user.

### `teamleader_teams_list` (~32 tokens)

List teams.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_departments_list` (~32 tokens)

List departments.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_custom_field_definitions_list` (~36 tokens)

List custom field definitions.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_custom_field_definitions_info` (~29 tokens)

Get a single custom field definition by id.

Input parameters:

- `id` (string, required)

### `teamleader_credit_notes_list` (~64 tokens)

List credit notes, optionally filtered by invoice or department.

Input parameters:

- `department_id` (string): Filter by department ID
- `invoice_id` (string): Filter by invoice ID
- `page` (number)
- `page_size` (number): max 100

### `teamleader_credit_notes_info` (~26 tokens)

Get a single credit note by id.

Input parameters:

- `id` (string, required)

### `teamleader_subscriptions_list` (~65 tokens)

List subscriptions, optionally filtered by customer.

Input parameters:

- `customer_id` (string): Customer ID for filtering (requires customer_type)
- `customer_type` (string): Customer type for filtering
- `page` (number)
- `page_size` (number): max 100

### `teamleader_subscriptions_info` (~25 tokens)

Get a single subscription by id.

Input parameters:

- `id` (string, required)

### `teamleader_subscriptions_create` (~120 tokens)

Create a new subscription. SIDE EFFECT: creates recurring invoicing for the customer.

Input parameters:

- `billing_periods` (number, required): Number of billing periods
- `billing_unit` (string, required): Billing cycle unit
- `customer_id` (string, required): Customer ID
- `customer_type` (string, required): Customer type
- `department_id` (string, required): Department ID
- `line_items` (array, required): One or more line items for the subscription
- `starts_on` (string, required): Start date (YYYY-MM-DD)
- `title` (string, required): Subscription title

### `teamleader_subscriptions_update` (~39 tokens)

Update a subscription's title.

Input parameters:

- `id` (string, required): The subscription ID
- `title` (string): New title for the subscription

### `teamleader_subscriptions_deactivate` (~40 tokens)

Deactivate a subscription. SIDE EFFECT: stops future invoicing for this subscription.

Input parameters:

- `id` (string, required): The subscription ID to deactivate

### `teamleader_projects_list` (~64 tokens)

List nextgen projects, optionally filtered by search term or status.

Input parameters:

- `page` (number)
- `page_size` (number): max 100
- `status` (string): Filter by project status
- `term` (string): Search term to filter projects

### `teamleader_projects_info` (~26 tokens)

Get a single nextgen project by id.

Input parameters:

- `id` (string, required)

### `teamleader_projects_create` (~86 tokens)

Maak een nieuw nextgen-project. Enkel title is verplicht.

Input parameters:

- `description` (string): Project description
- `due_on` (string): Due date (YYYY-MM-DD)
- `extra` (object): Any other documented projects-v2/projects.create field
- `starts_on` (string): Start date (YYYY-MM-DD)
- `title` (string, required): Project title (required)

### `teamleader_projects_update` (~97 tokens)

Update een nextgen-project. Enkel meegegeven velden worden aangepast.

Input parameters:

- `description` (string): Project description
- `due_on` (string): Due date (YYYY-MM-DD)
- `extra` (object): Any other documented projects-v2/projects.update field
- `id` (string, required): Project ID (required)
- `starts_on` (string): Start date (YYYY-MM-DD)
- `title` (string): Project title

### `teamleader_projects_close` (~34 tokens)

Sluit een nextgen-project. SIDE EFFECT: markeert het project als gesloten.

Input parameters:

- `id` (string, required)

### `teamleader_projects_reopen` (~26 tokens)

Heropen een gesloten nextgen-project.

Input parameters:

- `id` (string, required)

### `teamleader_projects_duplicate` (~25 tokens)

Dupliceer een nextgen-project.

Input parameters:

- `id` (string, required)

### `teamleader_projects_delete` (~37 tokens)

Verwijder een nextgen-project. SIDE EFFECT: verwijdert het project onomkeerbaar.

Input parameters:

- `id` (string, required)

### `teamleader_projects_assign` (~48 tokens)

Wijs een gebruiker of team toe aan een nextgen-project.

Input parameters:

- `assignee_id` (string, required)
- `assignee_type` (string, required)
- `id` (string, required)

### `teamleader_projects_unassign` (~55 tokens)

Verwijder de toewijzing van een gebruiker of team op een nextgen-project.

Input parameters:

- `assignee_id` (string, required)
- `assignee_type` (string, required)
- `id` (string, required)

### `teamleader_projects_add_owner` (~41 tokens)

Voeg een eigenaar (gebruiker) toe aan een nextgen-project.

Input parameters:

- `id` (string, required)
- `user_id` (string, required)

### `teamleader_projects_remove_owner` (~42 tokens)

Verwijder een eigenaar (gebruiker) van een nextgen-project.

Input parameters:

- `id` (string, required)
- `user_id` (string, required)

### `teamleader_projects_add_customer` (~49 tokens)

Koppel een klant (contact of bedrijf) aan een nextgen-project.

Input parameters:

- `customer_id` (string, required)
- `customer_type` (string, required)
- `id` (string, required)

### `teamleader_projects_remove_customer` (~50 tokens)

Ontkoppel een klant (contact of bedrijf) van een nextgen-project.

Input parameters:

- `customer_id` (string, required)
- `customer_type` (string, required)
- `id` (string, required)

### `teamleader_projects_add_deal` (~37 tokens)

Koppel een deal aan een nextgen-project.

Input parameters:

- `deal_id` (string, required)
- `id` (string, required)

### `teamleader_projects_remove_deal` (~38 tokens)

Ontkoppel een deal van een nextgen-project.

Input parameters:

- `deal_id` (string, required)
- `id` (string, required)

### `teamleader_projects_add_quotation` (~37 tokens)

Koppel een offerte aan een nextgen-project.

Input parameters:

- `id` (string, required)
- `quotation_id` (string, required)

### `teamleader_projects_remove_quotation` (~38 tokens)

Ontkoppel een offerte van een nextgen-project.

Input parameters:

- `id` (string, required)
- `quotation_id` (string, required)

### `teamleader_time_tracking_list` (~51 tokens)

List time tracking entries, optionally filtered by user.

Input parameters:

- `page` (number)
- `page_size` (number): max 100
- `user_id` (string): Filter by user ID

### `teamleader_time_tracking_add` (~122 tokens)

Add a time tracking entry. SIDE EFFECT: creates a time log record.

Input parameters:

- `description` (string): Description of the work done
- `duration` (number, required): Duration in seconds
- `invoiceable` (boolean): Whether this time is invoiceable
- `started_at` (string, required): Start datetime (ISO 8601)
- `subject_id` (string): Subject ID (requires subject_type)
- `subject_type` (string): Subject type (e.g. project, task, deal)
- `work_type_id` (string): Work type ID

### `teamleader_time_tracking_update` (~52 tokens)

Update a time tracking entry's duration or description.

Input parameters:

- `description` (string): New description
- `duration` (number): New duration in seconds
- `id` (string, required): Time tracking entry ID

### `teamleader_timer_start` (~83 tokens)

Start a running timer. SIDE EFFECT: starts a live timer that must be stopped.

Input parameters:

- `description` (string): Description of the work
- `subject_id` (string): Subject ID (requires subject_type)
- `subject_type` (string): Subject type (e.g. project, task, deal)
- `work_type_id` (string): Work type ID

### `teamleader_timer_stop` (~58 tokens)

Stop a running timer. SIDE EFFECT: stops the timer and creates a time tracking entry.

Input parameters:

- `ended_at` (string): End datetime (ISO 8601); defaults to now
- `id` (string, required): Timer ID to stop

### `teamleader_calls_list` (~64 tokens)

List calls, optionally filtered by customer.

Input parameters:

- `customer_id` (string): Customer ID for filtering (requires customer_type)
- `customer_type` (string): Customer type for filtering
- `page` (number)
- `page_size` (number): max 100

### `teamleader_calls_create` (~87 tokens)

Create a call activity. SIDE EFFECT: creates a call record.

Input parameters:

- `assignee_id` (string): User ID to assign the call to
- `customer_id` (string): Customer ID (requires customer_type)
- `customer_type` (string): Customer type
- `description` (string): Call description
- `due_at` (string, required): Call datetime (ISO 8601)

### `teamleader_calls_complete` (~35 tokens)

Mark a call as completed. SIDE EFFECT: updates the call status.

Input parameters:

- `id` (string, required): Call ID to complete

### `teamleader_meetings_list` (~33 tokens)

List meetings.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_meetings_create` (~87 tokens)

Schedule a meeting. SIDE EFFECT: creates a meeting record.

Input parameters:

- `attendee_user_ids` (array): User IDs to invite as attendees
- `ends_at` (string, required): End datetime (ISO 8601)
- `location` (string): Meeting location
- `starts_at` (string, required): Start datetime (ISO 8601)
- `title` (string, required): Meeting title

### `teamleader_meetings_complete` (~37 tokens)

Mark a meeting as completed. SIDE EFFECT: updates the meeting status.

Input parameters:

- `id` (string, required): Meeting ID to complete

### `teamleader_tickets_list` (~82 tokens)

List support tickets, optionally filtered by customer or status.

Input parameters:

- `customer_id` (string): Customer ID for filtering (requires customer_type)
- `customer_type` (string): Customer type for filtering
- `page` (number)
- `page_size` (number): max 100
- `ticket_status_id` (string): Filter by ticket status ID

### `teamleader_tickets_info` (~26 tokens)

Get a single support ticket by id.

Input parameters:

- `id` (string, required)

### `teamleader_tickets_create` (~82 tokens)

Create a new support ticket for a customer. SIDE EFFECT: creates a ticket record.

Input parameters:

- `customer_id` (string, required): Customer ID
- `customer_type` (string, required): Customer type
- `description` (string): Ticket description / initial message
- `subject` (string, required): Ticket subject
- `ticket_status_id` (string): Initial ticket status ID

### `teamleader_tickets_update` (~50 tokens)

Update a ticket's subject or status.

Input parameters:

- `id` (string, required): Ticket ID
- `subject` (string): New subject
- `ticket_status_id` (string): New ticket status ID

### `teamleader_tickets_add_message` (~53 tokens)

Add a reply/message to a ticket. SIDE EFFECT: posts a message on the ticket thread.

Input parameters:

- `body` (string, required): Message body / reply text
- `ticket_id` (string, required): Ticket ID

### `teamleader_ticket_status_list` (~35 tokens)

List all available ticket statuses.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_contacts_add_tags` (~34 tokens)

Add one or more tags to a contact.

Input parameters:

- `id` (string, required)
- `tags` (array, required)

### `teamleader_contacts_remove_tags` (~34 tokens)

Remove one or more tags from a contact.

Input parameters:

- `id` (string, required)
- `tags` (array, required)

### `teamleader_companies_add_tags` (~35 tokens)

Add one or more tags to a company.

Input parameters:

- `id` (string, required)
- `tags` (array, required)

### `teamleader_companies_remove_tags` (~35 tokens)

Remove one or more tags from a company.

Input parameters:

- `id` (string, required)
- `tags` (array, required)

### `teamleader_notes_list` (~90 tokens)

List notes linked to a subject (e.g. contact, company, deal). subject_type and subject_id are required.

Input parameters:

- `page` (number)
- `page_size` (number): max 100
- `subject_id` (string, required): ID of the linked subject
- `subject_type` (string, required): Type of the linked subject, e.g. 'contact', 'company', 'deal'

### `teamleader_notes_create` (~77 tokens)

Create a note linked to a subject (e.g. contact, company, deal).

Input parameters:

- `content` (string, required): Text content of the note
- `subject_id` (string, required): ID of the linked subject
- `subject_type` (string, required): Type of the linked subject, e.g. 'contact', 'company', 'deal'

### `teamleader_files_list` (~90 tokens)

List files linked to a subject (e.g. contact, company, deal). subject_type and subject_id are required.

Input parameters:

- `page` (number)
- `page_size` (number): max 100
- `subject_id` (string, required): ID of the linked subject
- `subject_type` (string, required): Type of the linked subject, e.g. 'contact', 'company', 'deal'

### `teamleader_files_download` (~35 tokens)

Get a temporary download URL for a file by its ID.

Input parameters:

- `id` (string, required): ID of the file to download

### `teamleader_files_upload` (~106 tokens)

Step 1 of a two-step file upload flow — returns an upload URL/location; the actual bytes are then PUT to that URL out of band. Provide the subject to link the file to and the intended file name.

Input parameters:

- `file_name` (string, required): Name of the file to upload
- `subject_id` (string, required): ID of the linked subject
- `subject_type` (string, required): Type of the linked subject, e.g. 'contact', 'company', 'deal'

### `teamleader_webhooks_list` (~34 tokens)

List registered webhooks.

Input parameters:

- `page` (number)
- `page_size` (number): max 100

### `teamleader_webhooks_register` (~72 tokens)

Register a webhook URL for the given event types (e.g. deal.created, invoice.booked).

Input parameters:

- `types` (array, required): List of event types to subscribe to, e.g. ['deal.created', 'invoice.booked']
- `url` (string, required): The HTTPS URL to receive webhook POST requests

### `teamleader_webhooks_unregister` (~48 tokens)

Unregister a webhook URL for the given event types.

Input parameters:

- `types` (array, required): List of event types to unsubscribe from
- `url` (string, required): The webhook URL to unregister

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/boostuagency-boostu-teamleader-mcp/boostu-teamleader-mcp#diagnostics

## Score history

- 2026-08-03: 66
- 2026-08-02: 62
- 2026-08-01: 20
- 2026-07-31: 20
- 2026-07-30: 45
- 2026-07-28: 27
- 2026-07-27: 45

## Links

- npm package: https://www.npmjs.com/package/boostu-teamleader-mcp
- Socket report: https://socket.dev/npm/package/boostu-teamleader-mcp
- Repository: https://github.com/boostuagency/boostu-teamleader-mcp
- Changelog RSS feed: https://verifymcp.io/servers/boostuagency-boostu-teamleader-mcp/boostu-teamleader-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/boostuagency-boostu-teamleader-mcp/boostu-teamleader-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/boostuagency-boostu-teamleader-mcp/boostu-teamleader-mcp
