MCP Teamleader Focus
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADMIN | No | Optional password that unlocks the Deals, Invoices, and Quotations tools. Leave unset to run without those tools. | |
| TEAMLEADER_CLIENT_ID | Yes | Your OAuth2 Client ID | |
| TEAMLEADER_CLIENT_SECRET | Yes | Your OAuth2 Client Secret | |
| TEAMLEADER_REFRESH_TOKEN | Yes | Your OAuth2 Refresh Token | |
| TEAMLEADER_DEFAULT_LEDGER_ACCOUNT | No | Ledger account number used as the default 'Rekening' on invoice lines. | 700000 |
| TEAMLEADER_DEFAULT_PRODUCT_CATEGORY_ID | No | Pin the default 'Rekening' to a specific product category ID instead of looking it up by ledger number. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| teamleader_list_contactsB | List contacts from Teamleader Focus with optional filtering and pagination |
| teamleader_get_contactB | Get detailed information about a specific contact |
| teamleader_create_contactC | Create a new contact in Teamleader Focus |
| teamleader_update_contactC | Update an existing contact in Teamleader Focus |
| teamleader_delete_contactA | Delete a contact from Teamleader Focus. This is irreversible. |
| teamleader_tag_contactA | Add one or more tags to a contact (creates the tag if it doesn't exist). Unlike update, this does not overwrite existing tags. |
| teamleader_untag_contactB | Remove one or more tags from a contact. |
| teamleader_link_contact_to_companyB | Link a contact to a company, optionally with a position and decision-maker flag. |
| teamleader_update_contact_company_linkC | Update the details (position, decision-maker flag) of an existing contact–company link. |
| teamleader_unlink_contact_from_companyB | Unlink a contact from a company. |
| teamleader_list_companiesA | List companies from Teamleader Focus with optional filtering and pagination |
| teamleader_get_companyB | Get detailed information about a specific company |
| teamleader_create_companyC | Create a new company in Teamleader Focus |
| teamleader_update_companyC | Update an existing company in Teamleader Focus. |
| teamleader_delete_companyA | Delete a company from Teamleader Focus. This is irreversible. |
| teamleader_tag_companyA | Add one or more tags to a company (creates the tag if it doesn't exist). Does not overwrite existing tags. |
| teamleader_untag_companyB | Remove one or more tags from a company. |
| teamleader_list_tasksB | List tasks from Teamleader Focus with optional filtering and pagination |
| teamleader_create_taskC | Create a new task in Teamleader Focus |
| teamleader_get_taskA | Get detailed information about a specific task. |
| teamleader_update_taskB | Update an existing task (title, description, due date, work type, assignee, customer, linked deal/project). |
| teamleader_complete_taskB | Mark a task as complete. |
| teamleader_reopen_taskA | Reopen a task that had been marked as complete. |
| teamleader_delete_taskA | Delete a task. This is irreversible. |
| teamleader_schedule_taskA | Schedule a task in the calendar by giving it a start and end time. Returns the created calendar event. |
| teamleader_list_eventsC | List calendar events from Teamleader Focus with optional filtering and pagination |
| teamleader_get_eventA | Get detailed information about a specific event |
| teamleader_create_eventB | Create a new calendar event in Teamleader Focus |
| teamleader_update_eventC | Update a calendar event (title, description, times, location, work type, attendees, links). |
| teamleader_cancel_eventA | Cancel a calendar event for all attendees. |
| teamleader_list_projectsB | List projects from the Teamleader Focus (next-gen) projects module, with optional filtering and pagination. |
| teamleader_get_projectB | Get detailed information about a specific project. |
| teamleader_create_projectA | Create a new project in Teamleader Focus (next-gen projects module). Only 'title' is required; everything else is optional. Set start_date/end_date to schedule the project. The creating user is automatically added as an owner. |
| teamleader_update_projectA | Update an existing project. All fields except 'id' are optional. Use this to add or change the project's start_date/end_date, title, description, budgets, etc. |
| teamleader_close_projectB | Mark a project as closed. |
| teamleader_reopen_projectB | Reopen a previously closed project. |
| teamleader_duplicate_projectA | Duplicate an existing project into a new project with the given title. |
| teamleader_delete_projectA | Delete a project. Requires a delete strategy to decide what happens to linked tasks and time trackings. This is irreversible. |
| teamleader_assign_projectB | Assign a user or team to a project. |
| teamleader_unassign_projectB | Unassign a user or team from a project. |
| teamleader_add_project_ownerC | Add a user as an owner of a project. |
| teamleader_remove_project_ownerB | Remove a user as an owner of a project. |
| teamleader_add_project_customerB | Add a customer (contact or company) to a project. |
| teamleader_remove_project_customerB | Remove a customer (contact or company) from a project. |
| teamleader_add_project_dealC | Link a deal to a project. |
| teamleader_remove_project_dealA | Unlink a deal from a project. |
| teamleader_add_project_quotationC | Link a quotation to a project. |
| teamleader_remove_project_quotationB | Unlink a quotation from a project. |
| teamleader_get_current_userA | Get the currently authenticated Teamleader user (useful to find your own user ID, account, language and timezone). |
| teamleader_list_usersA | List users (co-workers) in the Teamleader account. Use to find user IDs for responsible_user_id / assignee / owner fields. |
| teamleader_list_teamsB | List teams in the Teamleader account (with members and team lead). |
| teamleader_list_departmentsA | List departments (company entities). Use to find department_id for invoices, quotations, projects, tax rates. |
| teamleader_list_work_typesA | List work types. Use to find work_type_id for tasks, events and time tracking. |
| teamleader_list_activity_typesA | List activity types (task, meeting, call). Use to find activity_type_id when creating events. |
| teamleader_list_tax_ratesA | List available tax rates. Use to find tax_rate_id for invoice and quotation line items. Optionally filter by department. |
| teamleader_list_productsA | List products. Use to find product_id for invoice/quotation line items. |
| teamleader_get_productA | Get details for a single product, including selling price, tax rate and category. |
| teamleader_list_product_categoriesB | List product categories. Use to find product_category_id. Optionally filter by department. |
| teamleader_list_deal_phasesA | List deal phases (stages), sorted by their order in the flow. Use to find phase_id for creating deals or moving them. Optionally filter by pipeline. |
| teamleader_list_deal_pipelinesA | List deal pipelines. The response meta includes the default pipeline ID. Use to find pipeline/phase IDs. |
| teamleader_list_deal_sourcesA | List deal sources. Use to find source_id when creating/updating deals. |
| teamleader_list_lost_reasonsA | List lost reasons for deals. Use to find reason_id when marking a deal as lost. |
| teamleader_list_custom_field_definitionsA | List custom field definitions. Use to discover custom field IDs and their configuration (options for select fields) per context (contact, company, deal, project, invoice, etc.). |
| teamleader_list_notesB | List notes attached to a specific subject (e.g. a contact, company, deal or project). |
| teamleader_create_noteB | Add a note to a subject (contact, company, deal, project, invoice, quotation, etc.). Optionally notify users. |
| teamleader_update_noteB | Update the content of an existing note. |
| teamleader_list_time_trackingC | List logged time-tracking entries, optionally filtered by user, subject, or date range. |
| teamleader_get_time_trackingA | Get detailed information about a specific time-tracking entry. |
| teamleader_add_time_trackingA | Log time worked (e.g. '1 hour of effort') against a subject such as a task/todo, ticket, milestone, event, company, or contact. Provide either duration_minutes or duration_seconds together with started_at. Note: Teamleader splits an entry that spans midnight into multiple entries automatically. |
| teamleader_update_time_trackingC | Update an existing time-tracking entry (duration, description, work type, subject, started_at, invoiceable). |
| teamleader_delete_time_trackingA | Delete a time-tracking entry. This is irreversible. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 71 tools
Each tool targets a distinct resource and action, with clear descriptions. Even with 71 tools, there is no ambiguity—e.g., list_time_tracking vs get_time_tracking, create_task vs schedule_task, and all reference list tools are uniquely scoped.
All tools follow a consistent 'teamleader_verb_noun' pattern. Verbs like list, get, create, update, delete, tag, untag, link, unlink, complete, reopen, schedule, assign, add, remove are used uniformly, with no mixed conventions.
71 tools is high, but the server covers a comprehensive CRM API (contacts, companies, projects, tasks, events, time tracking, notes, plus many reference-data lists). Each tool serves a distinct purpose, so the count is justified for the broad scope, though it exceeds typical ranges.
The server provides solid CRUD for contacts, companies, projects, tasks, events, and time tracking, plus notes (but no delete). However, deal management (create/update/delete deals) is absent, and invoice/quotation CRUD is missing—only linking to projects is supported. These are notable gaps for a full Teamleader Focus integration.